Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type QueryOptions ¶
type QueryOptions struct { Limit int `json:"limit" mapstructure:"limit"` SortByHeight int `json:"sortByHeight" mapstructure:"sortByHeight"` Immature bool `json:"immature" mapstructure:"immature"` Matured bool `json:"mature" mapstructure:"mature"` Expired bool `json:"expired" mapstructure:"expired"` Active bool `json:"active" mapstructure:"active"` }
QueryOptions describe how a query should be executed.
type SelectedTicket ¶
type SelectedTicket struct { Ticket *Ticket `json:"ticket" mapstructure:"ticket"` // The selected ticket Power util.String `json:"power" mapstructure:"power"` // Sum of ticket.Value and all delegated ticket value }
SelectedTicket represents data of a selected ticket
type SelectedTickets ¶
type SelectedTickets []*SelectedTicket
SelectedTickets is a collection of SelectedTicket
func (*SelectedTickets) Get ¶
func (v *SelectedTickets) Get(proposerPubKey util.Bytes32) *SelectedTicket
Get finds a ticket by proposer public key
func (*SelectedTickets) GetWithIndex ¶
func (v *SelectedTickets) GetWithIndex(proposerPubKey util.Bytes32) (*SelectedTicket, int)
GetWithIndex finds a ticket by proposer public key and also returns its index in the list.
type Ticket ¶
type Ticket struct { Type types.TxCode `json:"type"` // The type of ticket Hash util.HexBytes `json:"hash"` // Hash of the ticket purchase transaction ExpireBy uint64 `json:"expireBy"` // Block height when the ticket becomes expired MatureBy uint64 `json:"matureBy"` // Block height when the ticket enters maturity. ProposerPubKey util.Bytes32 `json:"proposerPubKey"` // The public key of the validator that owns the ticket. BLSPubKey util.Bytes `json:"blsPubKey"` // The BLS public key derived from the same private key of proposer Delegator string `json:"delegator"` // Delegator is the address of the original creator of the ticket Height uint64 `json:"height"` // The block height where this ticket was seen. Index int `json:"index"` // The index of the ticket in the transactions list. Value util.String `json:"value"` // The value paid for the ticket (as a child - then for the parent ticket) CommissionRate float64 `json:"commissionRate"` // The percentage of reward paid to the validator }
Ticket represents a validator ticket
type TicketManager ¶
type TicketManager interface { // Index adds a ticket (and child tickets) to the ticket index. Index(tx types.BaseTx, blockHeight uint64, txIndex int) error // Remove deletes a ticket by its hash Remove(hash util.HexBytes) error // GetByProposer finds tickets belonging to the // given proposer public key. GetByProposer(ticketType types.TxCode, proposerPubKey util.Bytes32, queryOpt ...interface{}) ([]*Ticket, error) // CountActiveValidatorTickets returns the number of matured and unexpired tickets. CountActiveValidatorTickets() (int, error) // GetNonDelegatedTickets returns all non-delegated, active tickets // belonging to the given public key // // pubKey: The public key of the pubKey // ticketType: Filter the search to a specific ticket type GetNonDelegatedTickets(pubKey util.Bytes32, ticketType types.TxCode) ([]*Ticket, error) // Query finds and returns tickets that match the given query Query(qf func(t *Ticket) bool, queryOpt ...interface{}) []*Ticket // QueryOne finds and returns a ticket that match the given query QueryOne(qf func(t *Ticket) bool) *Ticket // GetByHash get a ticket by hash GetByHash(hash util.HexBytes) *Ticket // UpdateExpireBy updates the expire height of a ticket UpdateExpireBy(hash util.HexBytes, newExpireHeight uint64) error // GetTopHosts gets host tickets with the most total delegated value. GetTopHosts(limit int) (SelectedTickets, error) // GetTopValidators gets validator tickets with the most total delegated value. GetTopValidators(limit int) (SelectedTickets, error) // ValueOfNonDelegatedTickets returns the sum of value of all // non-delegated, unexpired tickets which has the given public // key as the proposer; Includes both validator and host tickets. // // pubKey: The public key of the proposer // maturityHeight: if set to non-zero, only tickets that reached maturity before // or on the given height are selected. Otherwise, the current chain height is used. ValueOfNonDelegatedTickets(pubKey util.Bytes32, maturityHeight uint64) (float64, error) // ValueOfDelegatedTickets returns the sum of value of all // delegated, unexpired tickets which has the given public // key as the proposer; Includes both validator and host tickets. // // pubKey: The public key of the proposer // maturityHeight: if set to non-zero, only tickets that reached maturity before // or on the given height are selected. Otherwise, the current chain height is used. ValueOfDelegatedTickets(pubKey util.Bytes32, maturityHeight uint64) (float64, error) // ValueOfTickets returns the sum of value of all unexpired // tickets where the given public key is the proposer or delegator; // Includes both validator and host tickets. // // pubKey: The public key of the proposer // maturityHeight: if set to non-zero, only tickets that reached maturity before // or on the given height are selected. Otherwise, the current chain height is used. ValueOfTickets(pubKey util.Bytes32, maturityHeight uint64) (float64, error) // ValueOfAllTickets returns the sum of value of all unexpired // tickets; Includes both validator and host tickets. // // maturityHeight: if set to non-zero, only tickets that reached maturity before // or on the given height are selected. Otherwise, the current chain height is used. ValueOfAllTickets(maturityHeight uint64) (float64, error) // GetUnExpiredTickets finds unexpired tickets that have the given proposer // public key as the proposer or the delegator; // // pubKey: The public key of the proposer // maturityHeight: if set to non-zero, only tickets that reached maturity before // or on the given height are selected. Otherwise, the current chain height is used. GetUnExpiredTickets(pubKey util.Bytes32, maturityHeight uint64) ([]*Ticket, error) // Stop stops the ticket manager Stop() error }
TicketManager describes a ticket manager Get finds tickets belonging to the given proposer.
Click to show internal directories.
Click to hide internal directories.