controllers

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2018 License: ISC, MIT Imports: 34 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// 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.
	MaxUsers = 10000

	StakepooldUpdateKindAll     = "ALL"
	StakepooldUpdateKindUsers   = "USERS"
	StakepooldUpdateKindTickets = "TICKETS"
)

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 *exccjson.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,
	adminUserIDs []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) AdminStatus

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

AdminStatus renders the status page.

func (*MainController) AdminTickets

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

AdminTickets renders the administrative tickets page.

func (*MainController) AdminTicketsPost

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

AdminTicketsPost validates and processes the form posted from AdminTickets.

func (*MainController) CalcEstimatedTicketExpiry

func (controller *MainController) CalcEstimatedTicketExpiry() time.Time

CalcEstimatedTicketExpiry returns a time.Time reflecting the estimated time that the ticket will expire. A safety margin of 5% padding is applied to ensure the ticket is not removed prematurely. XXX we should really be using the actual expiry height of the ticket instead of an estimated time but the stakepool doesn't have a way to retrieve that information yet.

func (*MainController) CheckAndResetUserVoteBits

func (controller *MainController) CheckAndResetUserVoteBits(dbMap *gorp.DbMap) (map[int64]*models.User, error)

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) (exccutil.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) StakepooldGetIgnoredLowFeeTickets

func (controller *MainController) StakepooldGetIgnoredLowFeeTickets() (map[chainhash.Hash]string, error)

StakepooldGetIgnoredLowFeeTickets performs a gRPC GetIgnoredLowFeeTickets request against all stakepoold instances and returns the first result fetched without errors

func (*MainController) StakepooldUpdateAll

func (controller *MainController) StakepooldUpdateAll(dbMap *gorp.DbMap, updateKind string) error

StakepooldUpdateAll attempts to trigger all connected stakepoold instances to pull a data update of the specified kind.

func (*MainController) Stats

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

Stats renders the stats page.

func (*MainController) TicketAddressForUserID

func (controller *MainController) TicketAddressForUserID(uid int) (exccutil.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) 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() ([]*exccjson.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