Documentation
¶
Index ¶
- Constants
- func CalculateNumRewardPartitions(numStakingRewards uint64) uint64
- func CalculatePreviousEpochInflationRewards(epochSchedule *sealevel.SysvarEpochSchedule, inflation *Inflation, ...) uint64
- func CalculateRewardPartitionForPubkey(pubkey solana.PublicKey, blockhash [32]byte, numPartitions uint64) uint64
- func CalculateStakePoints(acctsDb *accountsdb.AccountsDb, slotCtx *sealevel.SlotCtx, slot uint64, ...) (map[solana.PublicKey]*CalculatedStakePoints, wide.Uint128)
- func DistributeStakingRewardsForPartition(acctsDb *accountsdb.AccountsDb, partition *Partition, ...) ([]*accounts.Account, []*accounts.Account, uint64)
- func DistributeVotingRewards(acctsDb *accountsdb.AccountsDb, ...) ([]*accounts.Account, []*accounts.Account, uint64)
- func GetInflationNumSlots(epochSchedule *sealevel.SysvarEpochSchedule, epoch uint64, ...) uint64
- func GetInflationStartSlot(f *features.Features) uint64
- func IsWithinRewardsPeriod(epoch uint64, slot uint64, epochSchedule *sealevel.SysvarEpochSchedule) bool
- func SlotInYearForInflation(epochSchedule *sealevel.SysvarEpochSchedule, slotsPerYear float64, ...) float64
- type CalculatedStakePoints
- type CalculatedStakePointsAccumulator
- type CalculatedStakeRewards
- type CommissionSplit
- type Inflation
- type Partition
- type PartitionedRewardDistributionInfo
- type Partitions
- type PointValue
Constants ¶
View Source
const ( RewardTypeFee string = "Fee" RewardTypeRent string = "Rent" RewardTypeVoting string = "Voting" RewardTypeStaking string = "Staking" )
Variables ¶
This section is empty.
Functions ¶
func CalculateStakePoints ¶
func CalculateStakePoints( acctsDb *accountsdb.AccountsDb, slotCtx *sealevel.SlotCtx, slot uint64, stakeHistory *sealevel.SysvarStakeHistory, newWarmupCooldownRateEpoch *uint64, stakeCache map[solana.PublicKey]*sealevel.Delegation, voteCache map[solana.PublicKey]*sealevel.VoteStateVersions, ) (map[solana.PublicKey]*CalculatedStakePoints, wide.Uint128)
func DistributeStakingRewardsForPartition ¶
func DistributeStakingRewardsForPartition(acctsDb *accountsdb.AccountsDb, partition *Partition, stakingRewards map[solana.PublicKey]*CalculatedStakeRewards, slot uint64) ([]*accounts.Account, []*accounts.Account, uint64)
func DistributeVotingRewards ¶
func GetInflationNumSlots ¶
func GetInflationStartSlot ¶
func IsWithinRewardsPeriod ¶
func IsWithinRewardsPeriod(epoch uint64, slot uint64, epochSchedule *sealevel.SysvarEpochSchedule) bool
func SlotInYearForInflation ¶
Types ¶
type CalculatedStakePoints ¶
type CalculatedStakePointsAccumulator ¶
type CalculatedStakePointsAccumulator struct {
// contains filtered or unexported fields
}
func NewCalculatedStakePointsAccumulator ¶
func NewCalculatedStakePointsAccumulator(pubkeys []solana.PublicKey) *CalculatedStakePointsAccumulator
func (*CalculatedStakePointsAccumulator) Add ¶
func (accum *CalculatedStakePointsAccumulator) Add(pk solana.PublicKey, points CalculatedStakePoints)
func (CalculatedStakePointsAccumulator) CalculatedStakePoints ¶
func (accum CalculatedStakePointsAccumulator) CalculatedStakePoints() map[solana.PublicKey]*CalculatedStakePoints
func (CalculatedStakePointsAccumulator) TotalPoints ¶
func (accum CalculatedStakePointsAccumulator) TotalPoints() wide.Uint128
type CalculatedStakeRewards ¶
type CalculatedStakeRewards struct {
StakerRewards uint64
VoterRewards uint64
VoterPubkey solana.PublicKey
NewCreditsObserved uint64
}
func CalculateStakeRewardsForAcct ¶
func CalculateStakeRewardsForAcct(pubkey solana.PublicKey, stakePointsResult *CalculatedStakePoints, delegation *sealevel.Delegation, voteState *sealevel.VoteStateVersions, rewardedEpoch uint64, pointValue PointValue, newRateActivationEpoch *uint64) *CalculatedStakeRewards
type CommissionSplit ¶
type Inflation ¶
type Inflation struct {
Initial float64
Terminal float64
Taper float64
FoundationVal float64
FoundationTerm float64
Unused float64
}
func (*Inflation) Foundation ¶
func (*Inflation) UnmarshalWithDecoder ¶
type Partition ¶
type Partition struct {
// contains filtered or unexported fields
}
func (*Partition) NumPubkeys ¶
type PartitionedRewardDistributionInfo ¶
type PartitionedRewardDistributionInfo struct {
TotalStakingRewards uint64
FirstStakingRewardSlot uint64
NumRewardPartitionsRemaining uint64
Credits map[solana.PublicKey]CalculatedStakePoints
RewardPartitions Partitions
StakingRewards map[solana.PublicKey]*CalculatedStakeRewards
}
func DeterminePartitionedStakingRewardsInfo ¶
func DeterminePartitionedStakingRewardsInfo(rpcc *rpcclient.RpcClient, rpcBackups []string, epochSchedule *sealevel.SysvarEpochSchedule, inflation *Inflation, prevEpochCapitalization uint64, epoch uint64, prevEpoch uint64, slot uint64, slotsPerYear float64, f *features.Features) *PartitionedRewardDistributionInfo
DeterminePartitionedStakingRewardsInfo fetches reward partition info from RPC with failover support. It tries the primary RPC first with retries, then falls back to backup endpoints.
type Partitions ¶
type Partitions []*Partition
func CalculateStakeRewardsAndPartitions ¶
func CalculateStakeRewardsAndPartitions(pointsPerStakeAcct map[solana.PublicKey]*CalculatedStakePoints, slotCtx *sealevel.SlotCtx, stakeHistory *sealevel.SysvarStakeHistory, slot uint64, rewardedEpoch uint64, pointValue PointValue, newRateActivationEpoch *uint64, f *features.Features, stakeCache map[solana.PublicKey]*sealevel.Delegation, voteCache map[solana.PublicKey]*sealevel.VoteStateVersions) (map[solana.PublicKey]*CalculatedStakeRewards, map[solana.PublicKey]*atomic.Uint64, Partitions)
func NewPartitions ¶
func NewPartitions(numPartitions uint64) Partitions
func (Partitions) AddPubkey ¶
func (partitions Partitions) AddPubkey(partitionIdx uint64, pk solana.PublicKey)
func (Partitions) NumPartitions ¶
func (partitions Partitions) NumPartitions() uint64
func (Partitions) Partition ¶
func (partitions Partitions) Partition(partitionIdx uint64) *Partition
type PointValue ¶
Click to show internal directories.
Click to hide internal directories.