Documentation ¶
Index ¶
- type Client
- func (c *Client) FeePercentage(ctx context.Context) (float64, error)
- func (c *Client) Process(ctx context.Context, ticket *wallet.VSPTicket, feeTx *wire.MsgTx) error
- func (c *Client) ProcessManagedTickets(ctx context.Context, tickets []*wallet.VSPTicket) error
- func (c *Client) ProcessUnprocessedTickets(ctx context.Context, tickets []*wallet.VSPTicket)
- func (c *Client) SetVoteChoice(ctx context.Context, ticket *wallet.VSPTicket, choices map[string]string, ...) error
- func (c *Client) TrackedTickets() []*TicketInfo
- type Config
- type DialFunc
- type Policy
- type State
- type TicketInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
func (*Client) Process ¶
Process begins processing a VSP fee payment for a ticket. If feeTx contains inputs, is used to pay the VSP fee. Otherwise, new inputs are selected and locked to prevent double spending the fee.
feeTx may be nil or may point to an empty transaction. It is modified with the inputs and the fee and change outputs before returning without an error. The fee transaction is also recorded as unpublised in the wallet, and the fee hash is associated with the ticket.
func (*Client) ProcessManagedTickets ¶
ProcessManagedTickets adds the provided tickets to the client and resumes their fee payment process. Noop if a given ticket is already added, or if the ticket is not registered with the VSP. This is used to recover VSP tracking after seed restores.
func (*Client) ProcessUnprocessedTickets ¶
ProcessUnprocessedTickets adds the provided tickets to the client. Noop if a given ticket is already added.
func (*Client) SetVoteChoice ¶
func (c *Client) SetVoteChoice(ctx context.Context, ticket *wallet.VSPTicket, choices map[string]string, tspendPolicy map[string]string, treasuryPolicy map[string]string) error
SetVoteChoice takes the provided consensus, tspend and treasury key voting preferences, and checks if they match the status of the specified ticket from the connected VSP. The status provides the current voting preferences so we can just update from there if need be.
func (*Client) TrackedTickets ¶
func (c *Client) TrackedTickets() []*TicketInfo
TrackedTickets returns information about all outstanding tickets tracked by a vsp.Client instance.
Currently this returns only info about tickets which fee hasn't been paid or confirmed at enough depth to be considered committed to.
type Config ¶
type Config struct { // URL specifies the base URL of the VSP URL string // PubKey specifies the VSP's base64 encoded public key PubKey string // Dialer specifies an optional dialer when connecting to the VSP. Dialer DialFunc // Wallet specifies a loaded wallet. Wallet *wallet.Wallet // Default policy for fee payments unless another is provided by the // caller. Policy *Policy Params *chaincfg.Params }
type TicketInfo ¶
type TicketInfo struct { TicketHash chainhash.Hash CommitmentAddr stdaddr.StakeAddress VotingAddr stdaddr.StakeAddress State State Fee dcrutil.Amount FeeHash chainhash.Hash }
TicketInfo stores per-ticket info tracked by a VSP Client instance.