controllers

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2017 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const MaxUsers = 10000

MaxUsers is the maximum number of users supported by a stake pool. This is an artificial limit and can be increased by adjusting the ticket/fee address indexes above 10000.

Variables

This section is empty.

Functions

func DisableLog

func DisableLog()

DisableLog disables all library log output. Logging output is disabled by default until either UseLogger or SetLogWriter are called.

func NewGetTicketsCacheData

func NewGetTicketsCacheData(tfar *dcrjson.TicketsForAddressResult) *getTicketsCacheData

NewGetTicketsCacheData is a contructor for getTicketsCacheData that sets the last get time to now.

func UseLogger

func UseLogger(logger btclog.Logger)

UseLogger uses a specified Logger to output package logging info. This should be used in preference to SetLogWriter if the caller is also using btclog.

Types

type ApiController

type ApiController struct {
	system.Controller
}

type BySpentByHeight

type BySpentByHeight []TicketInfoHistoric

BySpentByHeight type implements sort.Sort for types with a SpentByHeight field, namely TicketInfoHistoric, the type for voted/missed/expired tickets.

func (BySpentByHeight) Len

func (a BySpentByHeight) Len() int

func (BySpentByHeight) Less

func (a BySpentByHeight) Less(i, j int) bool

func (BySpentByHeight) Swap

func (a BySpentByHeight) Swap(i, j int)

type ByTicketHeight

type ByTicketHeight []TicketInfoLive

ByTicketHeight type implements sort.Sort for types with a TicketHeight field. This includes all valid tickets, including spend tickets.

func (ByTicketHeight) Len

func (a ByTicketHeight) Len() int

func (ByTicketHeight) Less

func (a ByTicketHeight) Less(i, j int) bool

func (ByTicketHeight) Swap

func (a ByTicketHeight) Swap(i, j int)

type MainController

type MainController struct {
	// embed type for c.Env[""] context and ExecuteTemplate helpers
	system.Controller

	APISecret            string
	APIVersionsSupported []int
	// contains filtered or unexported fields
}

MainController is the wallet RPC controller type. Its methods include the route handlers.

func NewMainController

func NewMainController(params *chaincfg.Params, adminIPs []string,
	APISecret string, APIVersionsSupported []int, baseURL string,
	closePool bool, closePoolMsg string, enablestakepoold bool,
	feeXpubStr string, grpcConnections []*grpc.ClientConn,
	poolFees float64, poolEmail, poolLink, recaptchaSecret, recaptchaSiteKey string,
	smtpFrom, smtpHost, smtpUsername, smtpPassword, version string,
	walletHosts, walletCerts, walletUsers, walletPasswords []string,
	minServers int, realIPHeader, votingXpubStr string,
	maxVotedAge int64) (*MainController, error)

NewMainController is the constructor for the entire controller routing.

func (*MainController) API

func (controller *MainController) API(c web.C, r *http.Request) *system.APIResponse

API is the main frontend that handles all API requests.

func (*MainController) APIAddress

func (controller *MainController) APIAddress(c web.C, r *http.Request) ([]string, codes.Code, string, error)

APIAddress is the API version of AddressPost

func (*MainController) APIPurchaseInfo

func (controller *MainController) APIPurchaseInfo(c web.C,
	r *http.Request) (*poolapi.PurchaseInfo, codes.Code, string, error)

APIPurchaseInfo fetches and returns the user's info or an error

func (*MainController) APIStats

func (controller *MainController) APIStats(c web.C,
	r *http.Request) (*poolapi.Stats, codes.Code, string, error)

APIStats is an API version of the stats page

func (*MainController) APIVoting

func (controller *MainController) APIVoting(c web.C, r *http.Request) ([]string, codes.Code, string, error)

APIVotingPost is the API version of VotingPost

func (*MainController) Address

func (controller *MainController) Address(c web.C, r *http.Request) (string, int)

Address renders the address page.

func (*MainController) AddressPost

func (controller *MainController) AddressPost(c web.C, r *http.Request) (string, int)

AddressPost is address form submit route.

func (*MainController) CheckAndResetUserVoteBits

func (controller *MainController) CheckAndResetUserVoteBits(dbMap *gorp.DbMap)

CheckAndResetUserVoteBits reset users VoteBits if the VoteVersion has changed or if the stored VoteBits are somehow invalid.

func (*MainController) EmailUpdate

func (controller *MainController) EmailUpdate(c web.C, r *http.Request) (string, int)

EmailUpdate validates the passed token and updates the user's email address.

func (*MainController) EmailVerify

func (controller *MainController) EmailVerify(c web.C, r *http.Request) (string,
	int)

EmailVerify renders the email verification page.

func (*MainController) Error

func (controller *MainController) Error(c web.C, r *http.Request) (string, int)

Error renders the error page.

func (*MainController) FeeAddressForUserID

func (controller *MainController) FeeAddressForUserID(uid int) (dcrutil.Address,
	error)

FeeAddressForUserID generates a unique payout address per used ID for fees for an individual pool user.

func (*MainController) GetVoteVersion

func (controller *MainController) GetVoteVersion() (uint32, error)

GetVoteVersion

func (*MainController) Index

func (controller *MainController) Index(c web.C, r *http.Request) (string, int)

Index renders the home page.

func (*MainController) IsValidVoteBits

func (controller *MainController) IsValidVoteBits(userVoteBits uint16) bool

IsValidVoteBits returns an error if voteBits are not valid for agendas

func (*MainController) Logout

func (controller *MainController) Logout(c web.C, r *http.Request) (string, int)

Logout the user.

func (*MainController) PasswordReset

func (controller *MainController) PasswordReset(c web.C, r *http.Request) (string, int)

PasswordReset renders the password reset page.

func (*MainController) PasswordResetPost

func (controller *MainController) PasswordResetPost(c web.C, r *http.Request) (string, int)

PasswordResetPost handles the posted password reset form.

func (*MainController) PasswordUpdate

func (controller *MainController) PasswordUpdate(c web.C, r *http.Request) (string, int)

PasswordUpdate renders the password update page.

func (*MainController) PasswordUpdatePost

func (controller *MainController) PasswordUpdatePost(c web.C, r *http.Request) (string, int)

PasswordUpdatePost handles updating passwords.

func (*MainController) RPCIsStopped

func (controller *MainController) RPCIsStopped() bool

RPCIsStopped checks to see if w.shutdown is set or not.

func (*MainController) RPCStart

func (controller *MainController) RPCStart()

RPCStart starts the connected rpcServers.

func (*MainController) RPCStop

func (controller *MainController) RPCStop() error

RPCStop stops the connected rpcServers.

func (*MainController) RPCSync

func (controller *MainController) RPCSync(dbMap *gorp.DbMap) error

RPCSync checks to ensure that the wallets are synced on startup.

func (*MainController) SendMail

func (controller *MainController) SendMail(emailaddress string, subject string, body string) error

SendMail sends an email with the passed data using the system's SMTP configuration.

func (*MainController) Settings

func (controller *MainController) Settings(c web.C, r *http.Request) (string, int)

Settings renders the settings page.

func (*MainController) SettingsPost

func (controller *MainController) SettingsPost(c web.C, r *http.Request) (string, int)

SettingsPost handles changing the user's email address or password.

func (*MainController) SignIn

func (controller *MainController) SignIn(c web.C, r *http.Request) (string, int)

SignIn renders the signin page.

func (*MainController) SignInPost

func (controller *MainController) SignInPost(c web.C, r *http.Request) (string, int)

SignInPost is the form submit route. Logs user in or sets an appropriate message in session if login was not successful.

func (*MainController) SignUp

func (controller *MainController) SignUp(c web.C, r *http.Request) (string, int)

SignUp renders the signup page.

func (*MainController) SignUpPost

func (controller *MainController) SignUpPost(c web.C, r *http.Request) (string, int)

SignUpPost form submit route. Registers new user or shows Sign Up route with appropriate messages set in session.

func (*MainController) Stats

func (controller *MainController) Stats(c web.C, r *http.Request) (string, int)

Stats renders the stats page.

func (*MainController) Status

func (controller *MainController) Status(c web.C, r *http.Request) (string, int)

Status renders the status page.

func (*MainController) TicketAddressForUserID

func (controller *MainController) TicketAddressForUserID(uid int) (dcrutil.Address,
	error)

TicketAddressForUserID generates a unique ticket address per used ID for generating the 1-of-2 multisig.

func (*MainController) Tickets

func (controller *MainController) Tickets(c web.C, r *http.Request) (string, int)

Tickets renders the tickets page.

func (*MainController) TriggerStakepooldUpdate

func (controller *MainController) TriggerStakepooldUpdate(userid int64) error

TriggerStakepooldUpdate informs stakepoold via gRPC that an update for user information/voting preferences needs to be performed.

func (*MainController) Voting

func (controller *MainController) Voting(c web.C, r *http.Request) (string, int)

Voting renders the voting page.

func (*MainController) VotingPost

func (controller *MainController) VotingPost(c web.C, r *http.Request) (string, int)

VotingPost form submit route.

func (*MainController) WalletStatus

func (controller *MainController) WalletStatus() ([]*dcrjson.WalletInfoResult, error)

WalletStatus returns current WalletInfo from all rpcServers.

type TicketInfoHistoric

type TicketInfoHistoric struct {
	Ticket        string
	SpentBy       string
	SpentByHeight uint32
	TicketHeight  uint32
}

TicketInfoHistoric represents spent tickets, either voted or revoked.

type TicketInfoInvalid

type TicketInfoInvalid struct {
	Ticket string
}

TicketInfoInvalid represents tickets that were not added by the wallets for any reason (e.g. incorrect subsidy address or pool fees).

type TicketInfoLive

type TicketInfoLive struct {
	TicketHeight uint32
	Ticket       string
}

TicketInfoLive represents live or immature (mined) tickets that have yet to be spent by either a vote or revocation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL