handlers

package
v1.58.0 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2024 License: GPL-3.0 Imports: 70 Imported by: 0

Documentation

Index

Constants

View Source
const CHART_PREVIEW_POINTS = 100
View Source
const MaxSlotValue = 137438953503 // we only render a page for blocks up to this slot
View Source
const USER_SUBSCRIPTION_LIMIT = 8

var supportedCurrencies = []string{"eur", "usd", "gbp", "cny", "cad", "jpy", "rub", "aud"}

Variables

View Source
var ErrTooManyValidators = errors.New("too many validators")

Functions

func APIDashboardDataBalance

func APIDashboardDataBalance(w http.ResponseWriter, r *http.Request)

TODO Replace app code to work with new income balance dashboard Meanwhile keep old code from Feb 2021 to be app compatible

func APIGetToken

func APIGetToken(w http.ResponseWriter, r *http.Request)

APIGetToken godoc @Summary Exchange your oauth code for an access token or refresh your access token @Tags User @Produce json @Param grant_type formData string true "grant_type use authorization_code for oauth code or refresh_token if you wish to refresh an token" @Param code formData string false "Only required when using authorization_code grant type. Code received via oauth redirect_uri" @Param redirect_uri formData string false "Only required when using authorization_code grant type. Must match the redirect_uri from your oauth flow." @Param refresh_token formData string false "Only required when using refresh_token grant type. The refresh_token you received during authorization_code flow." @Header 200 jwt Authorization "Authorization Only required when using refresh_token grant type. Use any access token that is linked with your refresh_token." @Success 200 {object} utils.OAuthResponse @Failure 400 {object} utils.OAuthErrorResponse @Failure 500 {object} utils.OAuthErrorResponse @Security OAuthAccessCode @Router /api/v1/user/token [post]

func AdConfiguration

func AdConfiguration(w http.ResponseWriter, r *http.Request)

Load Ad Configuration page

func AdConfigurationDeletePost

func AdConfigurationDeletePost(w http.ResponseWriter, r *http.Request)

Delete Ad configuration

func AdConfigurationPost

func AdConfigurationPost(w http.ResponseWriter, r *http.Request)

Insert / Update Ad configuration

func AdvertiseWithUs

func AdvertiseWithUs(w http.ResponseWriter, r *http.Request)

func AdvertiseWithUsPost

func AdvertiseWithUsPost(w http.ResponseWriter, r *http.Request)

func ApiChart

func ApiChart(w http.ResponseWriter, r *http.Request)

ApiChart godoc @Summary Returns charts from the page https://beaconcha.in/charts as PNG @Tags Misc @Produce json @Param chart path string true "Chart name (see https://github.com/gobitfly/eth2-beaconchain-explorer/blob/master/services/charts_updater.go#L20 for all available names)" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/chart/{chart} [get]

func ApiDashboard

func ApiDashboard(w http.ResponseWriter, r *http.Request)

Combined validator get, performance, attestation efficency, sync committee statistics, epoch, historic epoch and rpl Not public documented

func ApiETH1AccountProducedBlocks

func ApiETH1AccountProducedBlocks(w http.ResponseWriter, r *http.Request)

ApiETH1AccountProposedBlocks godoc @Summary Get proposed or mined blocks @Tags Execution @Description Get a list of proposed or mined blocks from a given fee recipient address, proposer index or proposer pubkey. @Description Mixed use of recipient addresses and proposer indexes or proposer pubkeys with an offset is discouraged as it can lead to skipped entries. @Produce json @Param addressIndexOrPubkey path string true "Either the fee recipient address, the proposer index or proposer pubkey. You can provide multiple by separating them with ','. Max allowed index or pubkeys are 100, max allowed user addresses are 20.". You can also use valid ENS names. @Param offset query int false "Offset" default(0) @Param limit query int false "Limit the amount of entries you wish to receive (Maximum: 100)" default(10) maximum(100) @Param sort query string false "Sort via the block number either by 'asc' or 'desc'" default(desc) @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/execution/{addressIndexOrPubkey}/produced [get]

func ApiETH1ExecBlocks

func ApiETH1ExecBlocks(w http.ResponseWriter, r *http.Request)

ApiETH1ExecBlocks godoc @Summary Get execution blocks @Tags Execution @Description Get execution blocks by execution block number @Produce json @Param blockNumber path string true "Provide one or more execution block numbers. Coma separated up to max 100. " @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/execution/block/{blockNumber} [get]

func ApiEpoch

func ApiEpoch(w http.ResponseWriter, r *http.Request)

ApiEpoch godoc @Summary Get epoch by number, latest, finalized @Tags Epoch @Description Returns information for a specified epoch by the epoch number or an epoch tag (can be latest or finalized) @Produce json @Param epoch path string true "Epoch number, the string latest or the string finalized" @Success 200 {object} types.ApiResponse{data=types.APIEpochResponse} "Success" @Failure 400 {object} types.ApiResponse "Failure" @Failure 500 {object} types.ApiResponse "Server Error" @Router /api/v1/epoch/{epoch} [get]

func ApiEpochSlots

func ApiEpochSlots(w http.ResponseWriter, r *http.Request)

ApiEpochSlots godoc @Summary Get epoch blocks by epoch number, latest or finalized @Tags Epoch @Description Returns all slots for a specified epoch @Produce json @Param epoch path string true "Epoch number, the string latest or string finalized" @Success 200 {object} types.ApiResponse{data=[]types.APISlotResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/epoch/{epoch}/slots [get]

func ApiEth1Address

func ApiEth1Address(w http.ResponseWriter, r *http.Request)

ApiEth1Address godoc @Summary Gets information about an Ethereum address. @Tags Execution @Description Returns the ether balance and any token balances for a given Ethereum address. Amount of different ECR20 tokens is limited to 200. If you need more, use the /execution/address/{address}/erc20tokens endpoint. @Produce json @Param address path string true "provide an Ethereum address consists of an optional 0x prefix followed by 40 hexadecimal characters". It can also be a valid ENS name. @Param token query string false "filter for a specific token by providing a ethereum token contract address" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/execution/address/{address} [get]

func ApiEth1AddressERC20Tokens

func ApiEth1AddressERC20Tokens(w http.ResponseWriter, r *http.Request)

ApiEth1AddressERC20Tokens godoc @Summary Returns the ERC20 token balances for a given Ethereum address. @Tags Execution @Description Returns the ERC20 token balances for a given Ethereum address. Supports pagination. @Produce json @Param address path string true "provide an Ethereum address consists of an optional 0x prefix followed by 40 hexadecimal characters". It can also be a valid ENS name. @Param offset query int false "data offset" default(0) @Param limit query int false "data limit (ranging from 1 to 200)" default(200) @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/execution/address/{address}/erc20tokens [get]

func ApiEth1Deposit

func ApiEth1Deposit(w http.ResponseWriter, r *http.Request)

ApiEth1Deposit godoc @Summary Get an eth1 deposit by its eth1 transaction hash @Tags Execution @Produce json @Param txhash path string true "Eth1 transaction hash" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/eth1deposit/{txhash} [get]

func ApiEth1GasNowData

func ApiEth1GasNowData(w http.ResponseWriter, r *http.Request)

ApiETH1GasNowData godoc @Summary Gets the current estimation for gas prices in GWei. @Tags Execution @Description The response is split into four estimated inclusion speeds rapid (15 seconds), fast (1 minute), standard (3 minutes) and slow (> 10 minutes). @Produce json @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/execution/gasnow [get]

func ApiEthStoreDay

func ApiEthStoreDay(w http.ResponseWriter, r *http.Request)

ApiEthStoreDay godoc @Summary Get ETH.STORE® reference rate for a specified beaconchain-day or the latest day @Tags ETH.STORE® @Description ETH.STORE® represents the average financial return validators on the Ethereum network have achieved in a 24-hour period. @Description For each 24-hour period the datapoint is denoted by the number of days that have passed since genesis for that period (= beaconchain-day) @Description See https://github.com/gobitfly/eth.store for further information. @Produce json @Param day path string true "The beaconchain-day (periods of <(24 * 60 * 60) // SlotsPerEpoch // SecondsPerSlot> epochs) to get the the ETH.STORE® for. Must be a number or the string 'latest'." @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/ethstore/{day} [get]

func ApiGraffitiwall

func ApiGraffitiwall(w http.ResponseWriter, r *http.Request)

ApiGraffitiwall godoc @Summary Get the most recent pixels that have been painted. @Tags Misc @Description Returns the most recent pixels that have been painted during the last 10000 slots. @Description Optionally set the slot query parameter to look back further. @Description Boundary coordinates are included. @Description X = 0 and Y = 0 start at the upper left corner. @Description Returns an error if an invalid area is provided by the coordinates. @Produce json @Param startx query int false "Start X offset" default(0) @Param starty query int false "Start Y offset" default(0) @Param endx query int false "End X limit" default(999) @Param endy query int false "End Y limit" default(999) @Param startSlot query string false "Start slot to query (end slot - 10000 if empty)" @Param slot query string false "End slot to query" @Param summarize query bool false "Only return end state of each pixel" default(true) @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/graffitiwall [get]

func ApiHealthz

func ApiHealthz(w http.ResponseWriter, r *http.Request)

ApiHealthz godoc @Summary Health of the explorer @Tags Misc @Description Health endpoint for monitoring if the explorer is in sync @Produce text/plain @Success 200 {object} types.ApiResponse @Router /api/healthz [get]

func ApiHealthzLoadbalancer

func ApiHealthzLoadbalancer(w http.ResponseWriter, r *http.Request)

ApiHealthzLoadbalancer godoc @Summary Health of the explorer-api regarding having a healthy connection to the database @Tags Misc @Description Health endpoint for montitoring if the explorer-api @Produce text/plain @Success 200 {object} types.ApiResponse @Router /api/healthz-loadbalancer [get]

func ApiLatestState

func ApiLatestState(w http.ResponseWriter, r *http.Request)

ApiLatestState godoc @Summary Get the latest state of the network @Tags Network @Description Returns information on the current state of the network @Produce json @Failure 400 {object} types.ApiResponse "Failure" @Failure 500 {object} types.ApiResponse "Server Error" @Router /api/v1/latestState [get]

func ApiProposalLuck

func ApiProposalLuck(w http.ResponseWriter, r *http.Request)

ApiProposalLuck godoc @Summary Get the proposal luck of a validator or a list of validators @Tags Validator @Description Returns the proposal luck of a validator or a list of validators @Produce json @Param validators query string true "Provide a comma separated list of validator indices or pubkeys" @Success 200 {object} types.ApiResponse{data=[]types.ApiProposalLuckResponse} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Router /api/v1/validators/proposalLuck [get]

func ApiRocketpoolStats

func ApiRocketpoolStats(w http.ResponseWriter, r *http.Request)

ApiRocketpoolStats godoc @Summary Get global rocketpool network statistics @Tags Rocketpool @Produce json @Success 200 {object} types.ApiResponse{data=types.APIRocketpoolStatsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/rocketpool/stats [get]

func ApiRocketpoolValidators

func ApiRocketpoolValidators(w http.ResponseWriter, r *http.Request)

ApiRocketpoolValidators godoc @Summary Get rocketpool specific data for given validators @Tags Rocketpool @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Produce json @Success 200 {object} types.ApiResponse{data=types.ApiRocketpoolValidatorResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/rocketpool/validator/{indexOrPubkey} [get]

func ApiSlotAttestations

func ApiSlotAttestations(w http.ResponseWriter, r *http.Request)

ApiSlotAttestations godoc @Summary Get the attestations included in a specific slot @Tags Slot @Description Returns the attestations included in a specific slot @Produce json @Param slot path string true "Slot" @Success 200 {object} types.ApiResponse{data=[]types.APIAttestationResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/attestations [get]

func ApiSlotAttesterSlashings

func ApiSlotAttesterSlashings(w http.ResponseWriter, r *http.Request)

ApiSlotAttesterSlashings godoc @Summary Get the attester slashings included in a specific slot @Tags Slot @Description Returns the attester slashings included in a specific slot @Produce json @Param slot path string true "Slot" @Success 200 {object} types.ApiResponse{data=[]types.APIAttesterSlashingResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/attesterslashings [get]

func ApiSlotDeposits

func ApiSlotDeposits(w http.ResponseWriter, r *http.Request)

ApiSlotDeposits godoc @Summary Get the deposits included in a specific block @Tags Slot @Description Returns the deposits included in a specific block @Produce json @Param slot path string true "Block slot" @Param limit query string false "Limit the number of results" @Param offset query string false "Offset the number of results" @Success 200 {object} types.ApiResponse{[]APIAttestationResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/deposits [get]

func ApiSlotProposerSlashings

func ApiSlotProposerSlashings(w http.ResponseWriter, r *http.Request)

ApiSlotProposerSlashings godoc @Summary Get the proposer slashings included in a specific slot @Tags Slot @Description Returns the proposer slashings included in a specific slot @Produce json @Param slot path string true "Slot" @Success 200 {object} types.ApiResponse{data=[]types.APIProposerSlashingResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/proposerslashings [get]

func ApiSlotVoluntaryExits

func ApiSlotVoluntaryExits(w http.ResponseWriter, r *http.Request)

ApiSlotVoluntaryExits godoc @Summary Get the voluntary exits included in a specific slot @Tags Slot @Description Returns the voluntary exits included in a specific slot @Produce json @Param slot path string true "Slot" @Success 200 {object} types.ApiResponse{data=[]types.APIVoluntaryExitResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/voluntaryexits [get]

func ApiSlotWithdrawals

func ApiSlotWithdrawals(w http.ResponseWriter, r *http.Request)

ApiSlotWithdrawals godoc @Summary Get the withdrawals included in a specific slot @Tags Slot @Description Returns the withdrawals included in a specific slot @Produce json @Param slot path string true "Block slot" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slot}/withdrawals [get]

func ApiSlots

func ApiSlots(w http.ResponseWriter, r *http.Request)

ApiSlots godoc @Summary Get a slot by its slot number or root hash. Alternatively get the latest slot or the slot containing the head block. @Tags Slot @Description Returns a slot by its slot number or root hash, the latest slot with string latest or the slot containing the head block with string head @Produce json @Param slotOrHash path string true "Slot or root hash or the string latest or head" @Success 200 {object} types.ApiResponse{data=types.APISlotResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/slot/{slotOrHash} [get]

func ApiSyncCommittee

func ApiSyncCommittee(w http.ResponseWriter, r *http.Request)

ApiBlockVoluntaryExits godoc ApiSyncCommittee godoc @Summary Get the sync-committee for a sync-period @Tags SyncCommittee @Description Returns the sync-committee for a sync-period. Validators are sorted by sync-committee-index. @Description Sync committees where introduced in the Altair hardfork. Peroids before the hardfork do not contain sync-committees. @Description For mainnet sync-committes first started after epoch 74240 (period 290) and each sync-committee is active for 256 epochs. @Produce json @Param period path string true "Period ('latest' for latest period or 'next' for next period in the future)" @Success 200 {object} types.ApiResponse{data=types.APISyncCommitteeResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/sync_committee/{period} [get]

func ApiValidatorAttestationEffectiveness

func ApiValidatorAttestationEffectiveness(w http.ResponseWriter, r *http.Request)

ApiValidatorAttestationEffectiveness godoc @Summary DEPRECIATED - USE /attestationefficiency (Get the current performance of up to 100 validators) @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/attestationeffectiveness [get]

func ApiValidatorAttestationEfficiency

func ApiValidatorAttestationEfficiency(w http.ResponseWriter, r *http.Request)

ApiValidatorAttestationEfficiency godoc @Summary Get the current performance of up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/attestationefficiency [get]

func ApiValidatorAttestations

func ApiValidatorAttestations(w http.ResponseWriter, r *http.Request)

ApiValidatorAttestations godoc @Summary Get all attestations during the last 100 epochs for up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{[]types.ApiValidatorAttestationsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/attestations [get]

func ApiValidatorBalanceHistory

func ApiValidatorBalanceHistory(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get the balance history of up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Param latest_epoch query int false "The latest epoch to consider in the query" @Param offset query int false "Number of items to skip" @Param limit query int false "Maximum number of items to return, up to 100" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorBalanceHistoryResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/balancehistory [get]

func ApiValidatorBlsChange

func ApiValidatorBlsChange(w http.ResponseWriter, r *http.Request)

ApiValidatorBlsChange godoc @Summary Gets the BLS withdrawal address change for up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorBlsChangeResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/blsChange [get]

func ApiValidatorByEth1Address

func ApiValidatorByEth1Address(w http.ResponseWriter, r *http.Request)

ApiValidatorByEth1Address godoc @Summary Get all validators that belong to an eth1 address @Tags Validator @Produce json @Param eth1address path string true "Eth1 address from which the validator deposits were sent". It can also be a valid ENS name. @Param limit query string false "Limit the number of results (default: 2000)" @Param offset query string false "Offset the results (default: 0)" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorEth1Response} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/eth1/{eth1address} [get]

func ApiValidatorDailyStats

func ApiValidatorDailyStats(w http.ResponseWriter, r *http.Request)

ApiValidatorDailyStats godoc @Summary Get the daily validator stats by the validator index @Tags Validator @Produce json @Param index path string true "Validator index" @Param end_day query string false "End day (default: latest day)" @Param start_day query string false "Start day (default: 0)" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorDailyStatsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/stats/{index} [get]

func ApiValidatorDeposits

func ApiValidatorDeposits(w http.ResponseWriter, r *http.Request)

ApiValidatorDeposits godoc @Summary Get all eth1 deposits for up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorDepositsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/deposits [get]

func ApiValidatorExecutionPerformance

func ApiValidatorExecutionPerformance(w http.ResponseWriter, r *http.Request)

ApiValidatorExecutionPerformance godoc @Summary Get the current execution reward performance of up to 100 validators. If block was produced via mev relayer, this endpoint will use the relayer data as block reward instead of the normal block reward. @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorExecutionPerformanceResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/execution/performance [get]

func ApiValidatorGet

func ApiValidatorGet(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get up to 100 validators @Tags Validator @Description Searching for too many validators based on their pubkeys will lead to a "URI too long" error @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.APIValidatorResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey} [get]

func ApiValidatorIncomeDetailsHistory

func ApiValidatorIncomeDetailsHistory(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get the income detail history of up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Param latest_epoch query int false "The latest epoch to consider in the query" @Param offset query int false "Number of items to skip" @Param limit query int false "Maximum number of items to return, up to 100" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorIncomeHistoryResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/incomedetailhistory [get]

func ApiValidatorLeaderboard

func ApiValidatorLeaderboard(w http.ResponseWriter, r *http.Request)

ApiValidatorLeaderboard godoc @Summary Get the current top 100 performing validators (using the income over the last 7 days) @Tags Validator @Produce json @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorPerformanceResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/leaderboard [get]

func ApiValidatorPerformance

func ApiValidatorPerformance(w http.ResponseWriter, r *http.Request)

ApiValidatorPerformance godoc @Summary Get the current consensus reward performance of up to 100 validators @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorPerformanceResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/performance [get]

func ApiValidatorPost

func ApiValidatorPost(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get up to 100 validators @Tags Validator @Description This POST endpoint exists because the GET endpoint can lead to a "URI too long" error when searching for too many validators based on their pubkeys. @Produce json @Param indexOrPubkey body types.DashboardRequest true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} types.ApiResponse{data=[]types.APIValidatorResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator [post]

func ApiValidatorProposals

func ApiValidatorProposals(w http.ResponseWriter, r *http.Request)

ApiValidatorProposals godoc @Summary Get all proposed blocks during the last 100 epochs for up to 100 validators. Optionally set the epoch query parameter to look back further. @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Param epoch query string false "Page the result by epoch" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorProposalsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/proposals [get]

func ApiValidatorQueue

func ApiValidatorQueue(w http.ResponseWriter, r *http.Request)

ApiValidatorQueue godoc @Summary Get the current validator queue @Tags Validator @Description Returns the current number of validators entering and exiting the beacon chain @Produce json @Success 200 {object} types.ApiResponse{data=types.ApiValidatorQueueResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validators/queue [get]

func ApiValidatorWithdrawals

func ApiValidatorWithdrawals(w http.ResponseWriter, r *http.Request)

ApiValidatorWithdrawals godoc @Summary Get the withdrawal history of up to 100 validators for the last 100 epochs. To receive older withdrawals modify the epoch paraum @Tags Validator @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Param epoch query int false "the start epoch for the withdrawal history (default: latest epoch)" @Success 200 {object} types.ApiResponse{data=[]types.ApiValidatorWithdrawalResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/{indexOrPubkey}/withdrawals [get]

func ApiWithdrawalCredentialsValidators

func ApiWithdrawalCredentialsValidators(w http.ResponseWriter, r *http.Request)

ApiWithdrawalCredentialsValidators godoc @Summary Get validator indexes and pubkeys of a withdrawal credential or eth1 address @Tags Validator @Description Returns the validator indexes and pubkeys of a withdrawal credential or eth1 address @Produce json @Param withdrawalCredentialsOrEth1address path string true "Provide a withdrawal credential or an eth1 address with an optional 0x prefix". It can also be a valid ENS name. @Param limit query int false "Limit the number of results, maximum: 200" default(10) @Param offset query int false "Offset the number of results" default(0) @Success 200 {object} types.ApiResponse{data=[]types.ApiWithdrawalCredentialsResponse} @Failure 400 {object} types.ApiResponse @Router /api/v1/validator/withdrawalCredentials/{withdrawalCredentialsOrEth1address} [get]

func BLSChangeData

func BLSChangeData(w http.ResponseWriter, r *http.Request)

Eth1DepositsData will return eth1-deposits as json

func BLSTableData

func BLSTableData(draw uint64, search string, length, start uint64, orderBy, orderDir string) (*types.DataTableResponse, error)

func BlockTransactionsData

func BlockTransactionsData(w http.ResponseWriter, r *http.Request)

BlockTransactionsData returns the transactions for a specific block

func Broadcast

func Broadcast(w http.ResponseWriter, r *http.Request)

func BroadcastPost

func BroadcastPost(w http.ResponseWriter, r *http.Request)

func BroadcastStatus

func BroadcastStatus(w http.ResponseWriter, r *http.Request)

func Burn

func Burn(w http.ResponseWriter, r *http.Request)

func BurnPageData

func BurnPageData(w http.ResponseWriter, r *http.Request)

func Chart

func Chart(w http.ResponseWriter, r *http.Request)

Chart renders a single chart

func Charts

func Charts(w http.ResponseWriter, r *http.Request)

Charts uses a go template for presenting the page to show charts

func ClientStats

func ClientStats(w http.ResponseWriter, r *http.Request)

ClientStats godoc @Summary Get your client submitted stats @Tags User @Produce json @Param offset path int false "Data offset, default 0" default(0) @Param limit path int false "Data limit, default 180 (~3h)." default(180) @Success 200 {object} types.ApiResponse{data=[]types.StatsDataStruct} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/stats/{offset}/{limit} [get]

func ClientStatsPostNew

func ClientStatsPostNew(w http.ResponseWriter, r *http.Request)

ClientStatsPost godoc @Summary Used in eth2 clients to submit stats to your beaconcha.in account. This data can be accessed by the app or the user stats api call. @Tags User @Produce json @Param apikey query string true "User API key, can be found on https://beaconcha.in/user/settings" @Param machine query string false "Name your device if you have multiple devices you want to monitor" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Router /api/v1/client/metrics [POST]

func ClientStatsPostOld

func ClientStatsPostOld(w http.ResponseWriter, r *http.Request)

func ConfirmEmail

func ConfirmEmail(w http.ResponseWriter, r *http.Request)

ConfirmEmail confirms the email-address of a user.

func Confirmation

func Confirmation(w http.ResponseWriter, r *http.Request)

Will return the confirmation page

func Correlations

func Correlations(w http.ResponseWriter, r *http.Request)

Blocks will return information about blocks using a go template

func CorrelationsData

func CorrelationsData(w http.ResponseWriter, r *http.Request)

func CustomFileServer

func CustomFileServer(handler http.Handler, root http.FileSystem, NotFoundHandler http.HandlerFunc) http.Handler

Custom FileServer which does the same as http.FileServer, but serves custom page on 404 error

func Dashboard

func Dashboard(w http.ResponseWriter, r *http.Request)

func DashboardDataBalance

func DashboardDataBalance(w http.ResponseWriter, r *http.Request)

DashboardDataBalance retrieves the income history of a set of validators

func DashboardDataBalanceCombined

func DashboardDataBalanceCombined(w http.ResponseWriter, r *http.Request)

Dashboard Chart that combines balance data and

func DashboardDataEarnings

func DashboardDataEarnings(w http.ResponseWriter, r *http.Request)

func DashboardDataEffectiveness

func DashboardDataEffectiveness(w http.ResponseWriter, r *http.Request)

func DashboardDataProposals

func DashboardDataProposals(w http.ResponseWriter, r *http.Request)

func DashboardDataProposalsHistory

func DashboardDataProposalsHistory(w http.ResponseWriter, r *http.Request)

func DashboardDataValidators

func DashboardDataValidators(w http.ResponseWriter, r *http.Request)

func DashboardDataWithdrawals

func DashboardDataWithdrawals(w http.ResponseWriter, r *http.Request)

func DecodeMapStructure

func DecodeMapStructure(input interface{}, output interface{}) error

func Deposits

func Deposits(w http.ResponseWriter, r *http.Request)

Deposits will return information about deposits using a go template

func DownloadRewardsHistoricalData

func DownloadRewardsHistoricalData(w http.ResponseWriter, r *http.Request)

func EnsSearch

func EnsSearch(w http.ResponseWriter, r *http.Request)

Will return the EnsPage

func Epoch

func Epoch(w http.ResponseWriter, r *http.Request)

Epoch will show the epoch using a go template

func Epochs

func Epochs(w http.ResponseWriter, r *http.Request)

Epochs will return the epochs using a go template

func EpochsData

func EpochsData(w http.ResponseWriter, r *http.Request)

EpochsData will return the epoch data using a go template

func ErrorOrJSONResponse

func ErrorOrJSONResponse(w http.ResponseWriter, r *http.Request, errorText string, statusCode int)

ErrorOrJSONResponse http.Error for web OR json error for API

func Eth1Address

func Eth1Address(w http.ResponseWriter, r *http.Request)

func Eth1AddressBlobTransactions

func Eth1AddressBlobTransactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressBlocksMined

func Eth1AddressBlocksMined(w http.ResponseWriter, r *http.Request)

func Eth1AddressErc1155Transactions

func Eth1AddressErc1155Transactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressErc20Transactions

func Eth1AddressErc20Transactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressErc721Transactions

func Eth1AddressErc721Transactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressInternalTransactions

func Eth1AddressInternalTransactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressTransactions

func Eth1AddressTransactions(w http.ResponseWriter, r *http.Request)

func Eth1AddressUnclesMined

func Eth1AddressUnclesMined(w http.ResponseWriter, r *http.Request)

func Eth1AddressWithdrawals

func Eth1AddressWithdrawals(w http.ResponseWriter, r *http.Request)

func Eth1Block

func Eth1Block(w http.ResponseWriter, r *http.Request)

func Eth1Blocks

func Eth1Blocks(w http.ResponseWriter, r *http.Request)

func Eth1BlocksData

func Eth1BlocksData(w http.ResponseWriter, r *http.Request)

func Eth1BlocksHighest

func Eth1BlocksHighest(w http.ResponseWriter, r *http.Request)

func Eth1Deposits

func Eth1Deposits(w http.ResponseWriter, r *http.Request)

func Eth1DepositsData

func Eth1DepositsData(w http.ResponseWriter, r *http.Request)

Eth1DepositsData will return eth1-deposits as json

func Eth1DepositsLeaderboard

func Eth1DepositsLeaderboard(w http.ResponseWriter, r *http.Request)

Eth1Deposits will return information about deposits using a go template

func Eth1DepositsLeaderboardData

func Eth1DepositsLeaderboardData(w http.ResponseWriter, r *http.Request)

Eth1DepositsData will return eth1-deposits as json

func Eth1Token

func Eth1Token(w http.ResponseWriter, r *http.Request)

func Eth1TokenTransfers

func Eth1TokenTransfers(w http.ResponseWriter, r *http.Request)

func Eth1TransactionTx

func Eth1TransactionTx(w http.ResponseWriter, r *http.Request)

Tx will show the tx using a go template

func Eth1TransactionTxData

func Eth1TransactionTxData(w http.ResponseWriter, r *http.Request)

func Eth1Transactions

func Eth1Transactions(w http.ResponseWriter, r *http.Request)

func Eth1TransactionsData

func Eth1TransactionsData(w http.ResponseWriter, r *http.Request)

func Eth2Deposits

func Eth2Deposits(w http.ResponseWriter, r *http.Request)

Eth2Deposits will return information about deposits using a go template

func Eth2DepositsData

func Eth2DepositsData(w http.ResponseWriter, r *http.Request)

Eth2DepositsData will return information eth1-deposits in json

func EthClientsServices

func EthClientsServices(w http.ResponseWriter, r *http.Request)

func EthStore

func EthStore(w http.ResponseWriter, r *http.Request)

func ExplorerConfiguration

func ExplorerConfiguration(w http.ResponseWriter, r *http.Request)

Load Explorer Configuration page

func ExplorerConfigurationPost

func ExplorerConfigurationPost(w http.ResponseWriter, r *http.Request)

Insert / Update Ad configuration

func FindValidatorIndicesByEth1Address

func FindValidatorIndicesByEth1Address(search string) (types.SearchValidatorsByEth1Result, error)

search can either be a valid ETH address or an ENS name mapping to one

func FlashRedirectOrJSONErrorResponse

func FlashRedirectOrJSONErrorResponse(w http.ResponseWriter, r *http.Request, name, value, url string, code int)

FlashRedirectOrJSONErrorResponse Set a flash message and redirect for web OR send an json error response with value as its data for API

func FormValueOrJSON

func FormValueOrJSON(r *http.Request, key string) string

FormValueOrJSON FormValue for web OR json value for API

func FormatNodeJobTitle

func FormatNodeJobTitle(nodeJobType types.NodeJobType) string

func FormatNodeJobType

func FormatNodeJobType(nodeJobType types.NodeJobType) string

func GasNow

func GasNow(w http.ResponseWriter, r *http.Request)

Will return the gas now page

func GasNowData

func GasNowData(w http.ResponseWriter, r *http.Request)

func GenerateAPIKey

func GenerateAPIKey(w http.ResponseWriter, r *http.Request)

GenerateAPIKey generates an API key for users that do not yet have a key.

func GenericChart

func GenericChart(w http.ResponseWriter, r *http.Request)

GenericChart uses a go template for presenting the page of a generic chart

func GenericChartData

func GenericChartData(w http.ResponseWriter, r *http.Request)

func GetCurrency

func GetCurrency(r *http.Request) string

func GetCurrencySymbol

func GetCurrencySymbol(r *http.Request) string

func GetCurrentElPrice

func GetCurrentElPrice(r *http.Request) uint64

func GetCurrentElPriceFormatted

func GetCurrentElPriceFormatted(r *http.Request) template.HTML

func GetCurrentElPriceKFormatted

func GetCurrentElPriceKFormatted(r *http.Request) template.HTML

func GetCurrentPrice

func GetCurrentPrice(r *http.Request) uint64

func GetCurrentPriceFormatted

func GetCurrentPriceFormatted(r *http.Request) template.HTML

func GetCurrentPriceKFormatted

func GetCurrentPriceKFormatted(r *http.Request) template.HTML

func GetDataTableStateChanges

func GetDataTableStateChanges(w http.ResponseWriter, r *http.Request)

func GetEnsDomain

func GetEnsDomain(search string) (*types.EnsDomainResponse, error)

func GetExecutionBlockPageData

func GetExecutionBlockPageData(number uint64, limit int) (*types.Eth1BlockPageData, error)

func GetMobileWidgetStats

func GetMobileWidgetStats(w http.ResponseWriter, r *http.Request, indexOrPubkey string)

func GetMobileWidgetStatsGet

func GetMobileWidgetStatsGet(w http.ResponseWriter, r *http.Request)

func GetMobileWidgetStatsPost

func GetMobileWidgetStatsPost(w http.ResponseWriter, r *http.Request)

func GetSlotPageData

func GetSlotPageData(blockSlot uint64) (*types.BlockPageData, error)

func GetSlotsTableData

func GetSlotsTableData(draw, start, length uint64, search string, searchForEmpty bool) (*types.DataTableResponse, error)

func GetTruncCurrentPriceFormatted

func GetTruncCurrentPriceFormatted(r *http.Request) string

func GetValidatorEarnings

func GetValidatorEarnings(validators []uint64, currency string) (*types.ValidatorEarnings, map[uint64]*types.Validator, error)

GetValidatorEarnings will return the earnings (last day, week, month and total) of selected validators, including proposal and statisic information - infused with data from the current day. all values are

func GetValidatorKeysFrom

func GetValidatorKeysFrom(userInput []string) (pubKeys [][]byte, err error)

GetValidatorKeysFrom gets the validator keys from users input

func GetValidatorOnlineThresholdSlot

func GetValidatorOnlineThresholdSlot() uint64

func GetWithdrawableCountFromCursor

func GetWithdrawableCountFromCursor(epoch uint64, validatorindex uint64, cursor uint64) (uint64, error)

func GitcoinFeed

func GitcoinFeed(w http.ResponseWriter, r *http.Request)

func Graffitiwall

func Graffitiwall(w http.ResponseWriter, r *http.Request)

func Heatmap

func Heatmap(w http.ResponseWriter, r *http.Request)

func Imprint

func Imprint(w http.ResponseWriter, r *http.Request)

Imprint will show the imprint data using a go template

func Index

func Index(w http.ResponseWriter, r *http.Request)

Index will return the main "index" page using a go template

func IndexPageData

func IndexPageData(w http.ResponseWriter, r *http.Request)

IndexPageData will show the main "index" page in json format

func InitPageData

func InitPageData(w http.ResponseWriter, r *http.Request, active, path, title string, mainTemplates []string) *types.PageData

func IsMobileAuth

func IsMobileAuth(r *http.Request) bool

IsMobileAuth false for web requests OR true for API (user authorized with authorization token)

func LatestState

func LatestState(w http.ResponseWriter, r *http.Request)

LatestState will return common information that about the current state of the eth2 chain

func Login

func Login(w http.ResponseWriter, r *http.Request)

Login handler renders a template that allows a user to login.

func LoginPost

func LoginPost(w http.ResponseWriter, r *http.Request)

LoginPost handles authenticating the user.

func Logout

func Logout(w http.ResponseWriter, r *http.Request)

Logout handles ending the user session.

func MempoolView

func MempoolView(w http.ResponseWriter, r *http.Request)

func MobileDeviceDeletePOST

func MobileDeviceDeletePOST(w http.ResponseWriter, r *http.Request)

func MobileDeviceSettings

func MobileDeviceSettings(w http.ResponseWriter, r *http.Request)

MobileDeviceSettings godoc @Summary Get your device settings, currently only whether to enable mobile notifcations or not @Tags User @Produce json @Success 200 {object} types.ApiResponse{data=types.MobileSettingsData} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/mobile/settings [get]

func MobileDeviceSettingsPOST

func MobileDeviceSettingsPOST(w http.ResponseWriter, r *http.Request)

MobileDeviceSettingsPOST godoc @Summary Changing your devices mobile settings @Tags User @Produce json @Param notify_enabled body bool true "Whether to enable mobile notifications for this device or not" @Success 200 {object} types.ApiResponse{data=types.MobileSettingsData} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/mobile/settings [post]

func MobileNotificationUpdatePOST

func MobileNotificationUpdatePOST(w http.ResponseWriter, r *http.Request)

MobileNotificationUpdatePOST godoc @Summary Register or update your mobile notification token @Tags User @Produce json @Param token body string true "Your device`s firebase notification token" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/mobile/notify/register [post]

func MobilePage

func MobilePage(w http.ResponseWriter, r *http.Request)

func MobilePricing

func MobilePricing(w http.ResponseWriter, r *http.Request)

func MobileTagedValidators

func MobileTagedValidators(w http.ResponseWriter, r *http.Request)

MobileTagedValidators godoc @Summary Get all your tagged validators @Tags User @Produce json @Success 200 {object} types.ApiResponse{data=[]types.MinimalTaggedValidators} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/validator/saved [get]

func Monitoring

func Monitoring(w http.ResponseWriter, r *http.Request)

func MultipleUsersNotificationsSubscribe

func MultipleUsersNotificationsSubscribe(w http.ResponseWriter, r *http.Request)

func MultipleUsersNotificationsSubscribeWeb

func MultipleUsersNotificationsSubscribeWeb(w http.ResponseWriter, r *http.Request)

func MultipleUsersNotificationsUnsubscribe

func MultipleUsersNotificationsUnsubscribe(w http.ResponseWriter, r *http.Request)

func NotFound

func NotFound(w http.ResponseWriter, r *http.Request)

func NotificationWebhookPage

func NotificationWebhookPage(w http.ResponseWriter, r *http.Request)

Imprint will show the imprint data using a go template

func OKResponse

func OKResponse(w http.ResponseWriter, r *http.Request)

OKResponse writeHeader(200) for web OR writeHeader(200) + empty json OK response

func Pools

func Pools(w http.ResponseWriter, r *http.Request)

func PoolsRocketpool

func PoolsRocketpool(w http.ResponseWriter, r *http.Request)

PoolsRocketpool returns the rocketpool using a go template

func PoolsRocketpoolDataDAOMembers

func PoolsRocketpoolDataDAOMembers(w http.ResponseWriter, r *http.Request)

func PoolsRocketpoolDataDAOProposals

func PoolsRocketpoolDataDAOProposals(w http.ResponseWriter, r *http.Request)

func PoolsRocketpoolDataMinipools

func PoolsRocketpoolDataMinipools(w http.ResponseWriter, r *http.Request)

func PoolsRocketpoolDataNodes

func PoolsRocketpoolDataNodes(w http.ResponseWriter, r *http.Request)

func Pricing

func Pricing(w http.ResponseWriter, r *http.Request)

func PricingPost

func PricingPost(w http.ResponseWriter, r *http.Request)

PricingPost sends an email for a user request for an api subscription

func RedirectOrJSONOKResponse

func RedirectOrJSONOKResponse(w http.ResponseWriter, r *http.Request, url string, code int)

RedirectOrJSONOKResponse Redirect for web OR send an OK json response with empty data for API

func Register

func Register(w http.ResponseWriter, r *http.Request)

Register handler renders a template that allows for the creation of a new user.

func RegisterEthpoolSubscription

func RegisterEthpoolSubscription(w http.ResponseWriter, r *http.Request)

func RegisterMobileSubscriptions

func RegisterMobileSubscriptions(w http.ResponseWriter, r *http.Request)

func RegisterPost

func RegisterPost(w http.ResponseWriter, r *http.Request)

RegisterPost handles the register-formular to register a new user.

func Relays

func Relays(w http.ResponseWriter, r *http.Request)

func RemoveAllValidatorsAndUnsubscribe

func RemoveAllValidatorsAndUnsubscribe(w http.ResponseWriter, r *http.Request)

func ReplaceEnsNameWithAddress

func ReplaceEnsNameWithAddress(search string) string

func RequestResetPassword

func RequestResetPassword(w http.ResponseWriter, r *http.Request)

RequestResetPassword renders a template that lets the user enter his email and request a reset link.

func RequestResetPasswordPost

func RequestResetPasswordPost(w http.ResponseWriter, r *http.Request)

RequestResetPasswordPost sends a password-reset-link to the provided (via form) email.

func ResendConfirmation

func ResendConfirmation(w http.ResponseWriter, r *http.Request)

ResendConfirmation handler sends a template for the user to request another confirmation link via email.

func ResendConfirmationPost

func ResendConfirmationPost(w http.ResponseWriter, r *http.Request)

ResendConfirmationPost handles sending another confirmation email to the user.

func ResetPassword

func ResetPassword(w http.ResponseWriter, r *http.Request)

ResetPassword renders a template that lets the user reset his password. This only works if the hash in the url is correct. Will also confirm email of the user if it has not been confirmed yet.

func ResetPasswordPost

func ResetPasswordPost(w http.ResponseWriter, r *http.Request)

ResetPasswordPost resets the password to the value provided in the form, given that the hash is correct.

func ResolveEnsDomain

func ResolveEnsDomain(w http.ResponseWriter, r *http.Request)

ApiEnsLookup godoc @Summary Get the address for an ens name and vice versa @Tags Ens @Description Returns and object with the ens name and address - if found. @Produce json @Param domain path string true "domain can either be an ens name or an etherum address" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Router /api/v1/ens/lookup/{domain} [get]

func RewardGetUserSubscriptions

func RewardGetUserSubscriptions(w http.ResponseWriter, r *http.Request)

func RewardNotificationSubscribe

func RewardNotificationSubscribe(w http.ResponseWriter, r *http.Request)

func RewardNotificationUnsubscribe

func RewardNotificationUnsubscribe(w http.ResponseWriter, r *http.Request)

func RewardsHistoricalData

func RewardsHistoricalData(w http.ResponseWriter, r *http.Request)

func SaveValidatorName

func SaveValidatorName(w http.ResponseWriter, r *http.Request)
func Search(w http.ResponseWriter, r *http.Request)

Search handles search requests

func SearchAhead

func SearchAhead(w http.ResponseWriter, r *http.Request)

SearchAhead handles responses for the frontend search boxes

func SendBadRequestResponse

func SendBadRequestResponse(w http.ResponseWriter, route, message string)

func SendOKResponse

func SendOKResponse(j *json.Encoder, route string, data []interface{})

func SetAutoContentType

func SetAutoContentType(w http.ResponseWriter, r *http.Request)

SetAutoContentType text/html for web OR application/json for API

func SetDataTableStateChanges

func SetDataTableStateChanges(w http.ResponseWriter, r *http.Request)

func SetPageDataTitle

func SetPageDataTitle(pageData *types.PageData, title string)

func Slot

func Slot(w http.ResponseWriter, r *http.Request)

Slot will return the data for a block contained in the slot

func SlotAttestationsData

func SlotAttestationsData(w http.ResponseWriter, r *http.Request)

SlotAttestationsData returns the attestations for a specific slot

func SlotBlsChangeData

func SlotBlsChangeData(w http.ResponseWriter, r *http.Request)

func SlotDepositData

func SlotDepositData(w http.ResponseWriter, r *http.Request)

SlotDepositData returns the deposits for a specific slot

func SlotFinder

func SlotFinder(w http.ResponseWriter, r *http.Request)

Will return the slot finder page

func SlotViz

func SlotViz(w http.ResponseWriter, r *http.Request)

SlotViz renders a single page with a d3 slot (block) visualisation

func SlotVizMetrics

func SlotVizMetrics(w http.ResponseWriter, r *http.Request)

SlotVizMetrics returns the metrics for the earliest epochs

func SlotVoteData

func SlotVoteData(w http.ResponseWriter, r *http.Request)

SlotVoteData returns the votes for a specific slot

func SlotWithdrawalData

func SlotWithdrawalData(w http.ResponseWriter, r *http.Request)

func Slots

func Slots(w http.ResponseWriter, r *http.Request)

Will return the slots page

func SlotsData

func SlotsData(w http.ResponseWriter, r *http.Request)

SlotsData will return information about slots

func StakingCalculator

func StakingCalculator(w http.ResponseWriter, r *http.Request)

StakingCalculator renders stakingCalculatorTemplate

func StakingServices

func StakingServices(w http.ResponseWriter, r *http.Request)

func StripeCreateCheckoutSession

func StripeCreateCheckoutSession(w http.ResponseWriter, r *http.Request)

StripeCreateCheckoutSession creates a session to checkout api pricing subscription

func StripeCustomerPortal

func StripeCustomerPortal(w http.ResponseWriter, r *http.Request)

StripeCustomerPortal redirects the user to the customer portal

func StripeWebhook

func StripeWebhook(w http.ResponseWriter, r *http.Request)

StripeWebhook receive events from stripe webhook service

func ToEth

func ToEth(wei *big.Int) string

ToEth converts the big.Int wei to its ether string representation.

func ToGWei

func ToGWei(wei *big.Int) string

ToGWei converts the big.Int wei to its gwei string representation.

func ToWei

func ToWei(wei *big.Int) string

ToWei converts the big.Int wei to its gwei string representation.

func UnitConverter

func UnitConverter(w http.ResponseWriter, r *http.Request)

UnitConverter renders unitConverter template

func UserAuthMiddleware

func UserAuthMiddleware(next http.Handler) http.Handler

func UserAuthorizeConfirm

func UserAuthorizeConfirm(w http.ResponseWriter, r *http.Request)

UserAuthorizeConfirm renders the user-authorize template

func UserAuthorizeConfirmPost

func UserAuthorizeConfirmPost(w http.ResponseWriter, r *http.Request)

func UserConfirmUpdateEmail

func UserConfirmUpdateEmail(w http.ResponseWriter, r *http.Request)

ConfirmUpdateEmail confirms and updates the email address of the user. Given an update link the email in the db is changed.

func UserDashboardWatchlistAdd

func UserDashboardWatchlistAdd(w http.ResponseWriter, r *http.Request)

UserDashboardWatchlistAdd godoc @Summary subscribes a user to get notifications from a specific validator via index @Tags User @Produce json @Param pubKey body []string true "Index of validator you want to subscribe to" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/dashboard/save [post]

func UserDashboardWatchlistRemove

func UserDashboardWatchlistRemove(w http.ResponseWriter, r *http.Request)

UserDashboardWatchlistRemove godoc @Summary unsubscribes a user from a specific validator via index from both watchlist and notification events @Tags User @Produce json @Param pubKey body []string true "Index of validator you want to unsubscribe from" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/dashboard/remove [post]

func UserDeletePost

func UserDeletePost(w http.ResponseWriter, r *http.Request)

func UserGlobalNotification

func UserGlobalNotification(w http.ResponseWriter, r *http.Request)

UserSettings renders the user-template

func UserGlobalNotificationPost

func UserGlobalNotificationPost(w http.ResponseWriter, r *http.Request)

UserGlobalNotificationPost handles the global notifications

func UserModalAddNetworkEvent

func UserModalAddNetworkEvent(w http.ResponseWriter, r *http.Request)

UserModalAddNetworkEvent subscribes the user for a network notification

func UserModalManageNotificationModal

func UserModalManageNotificationModal(w http.ResponseWriter, r *http.Request)

UserModalManageNotificationModal a validator to the watchlist and subscribes to events

func UserModalRemoveSelectedValidator

func UserModalRemoveSelectedValidator(w http.ResponseWriter, r *http.Request)

UserModalRemoveSelectedValidator a validator to the watchlist and subscribes to events Takes the POST of a form with an input field attr name = validators and value = <comam separated list of validator pubkeys>

func UserNotifications

func UserNotifications(w http.ResponseWriter, r *http.Request)

func UserNotificationsCenter

func UserNotificationsCenter(w http.ResponseWriter, r *http.Request)

UserNotificationsCenter renders the notificationsCenter template

func UserNotificationsData

func UserNotificationsData(w http.ResponseWriter, r *http.Request)

func UserNotificationsSubscribe

func UserNotificationsSubscribe(w http.ResponseWriter, r *http.Request)

func UserNotificationsSubscribed

func UserNotificationsSubscribed(w http.ResponseWriter, r *http.Request)

UserNotificationsSubscribed godoc @Summary Get a set of events a user is subscribed to @Tags User @Param requestFilter body types.UsersNotificationsRequest false "An object that filters through the active subscriptions" @Produce json @Success 200 {object} types.ApiResponse{data=[]types.Subscription} @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/notifications [post]

func UserNotificationsUnsubscribe

func UserNotificationsUnsubscribe(w http.ResponseWriter, r *http.Request)

func UserNotificationsUnsubscribeByHash

func UserNotificationsUnsubscribeByHash(w http.ResponseWriter, r *http.Request)

func UserSettings

func UserSettings(w http.ResponseWriter, r *http.Request)

UserSettings renders the user-template

func UserSubscriptionsData

func UserSubscriptionsData(w http.ResponseWriter, r *http.Request)

func UserUpdateEmailPost

func UserUpdateEmailPost(w http.ResponseWriter, r *http.Request)

UserUpdateEmailPost gets called from the settings page to request a new email update. Only once the update link is pressed does the email actually change.

func UserUpdateFlagsPost

func UserUpdateFlagsPost(w http.ResponseWriter, r *http.Request)

func UserUpdatePasswordPost

func UserUpdatePasswordPost(w http.ResponseWriter, r *http.Request)

func UserValidatorWatchlistAdd

func UserValidatorWatchlistAdd(w http.ResponseWriter, r *http.Request)

UserValidatorWatchlistAdd godoc @Summary subscribes a user to get notifications from a specific validator @Tags User @Produce json @Param pubKey query string true "Public Key of validator you want to subscribe to" @Param balance_decreases body string false "Submit \"on\" to enable notifications for this event" @Param validator_slashed body string false "Submit \"on\" to enable notifications for this event" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/validator/{pubkey}/add [post]

func UserValidatorWatchlistRemove

func UserValidatorWatchlistRemove(w http.ResponseWriter, r *http.Request)

UserValidatorWatchlistRemove godoc @Summary unsubscribes a user from a specific validator @Tags User @Produce json @Param pubKey query string true "Public Key of validator you want to subscribe to" @Success 200 {object} types.ApiResponse @Failure 400 {object} types.ApiResponse @Failure 500 {object} types.ApiResponse @Security ApiKeyAuth @Router /api/v1/user/validator/{pubkey}/remove [post]

func UsersAddWebhook

func UsersAddWebhook(w http.ResponseWriter, r *http.Request)

func UsersDeleteWebhook

func UsersDeleteWebhook(w http.ResponseWriter, r *http.Request)

func UsersEditWebhook

func UsersEditWebhook(w http.ResponseWriter, r *http.Request)

func UsersModalAddValidator

func UsersModalAddValidator(w http.ResponseWriter, r *http.Request)

UsersModalAddValidator a validator to the watchlist and subscribes to events

func UsersNotificationChannels

func UsersNotificationChannels(w http.ResponseWriter, r *http.Request)

UsersNotificationChannel Accepts form encoded values channel and active to set the global notification settings for a user

func Validator

func Validator(w http.ResponseWriter, r *http.Request)

Validator returns validator data using a go template

func ValidatorAttestationInclusionEffectiveness

func ValidatorAttestationInclusionEffectiveness(w http.ResponseWriter, r *http.Request)

ValidatorAttestationInclusionEffectiveness returns a validator's effectiveness in json

func ValidatorAttestations

func ValidatorAttestations(w http.ResponseWriter, r *http.Request)

ValidatorAttestations returns a validators attestations in json

func ValidatorDeposits

func ValidatorDeposits(w http.ResponseWriter, r *http.Request)

ValidatorDeposits returns a validator's deposits in json

func ValidatorHistory

func ValidatorHistory(w http.ResponseWriter, r *http.Request)

ValidatorHistory returns a validators history in json

func ValidatorProposedBlocks

func ValidatorProposedBlocks(w http.ResponseWriter, r *http.Request)

ValidatorProposedBlocks returns a validator's proposed blocks in json

func ValidatorRewards

func ValidatorRewards(w http.ResponseWriter, r *http.Request)

func ValidatorSlashings

func ValidatorSlashings(w http.ResponseWriter, r *http.Request)

ValidatorSlashings returns a validators slashings in json

func ValidatorStatsTable

func ValidatorStatsTable(w http.ResponseWriter, r *http.Request)

Validator returns validator data using a go template

func ValidatorSync

func ValidatorSync(w http.ResponseWriter, r *http.Request)

ValidatorSync retrieves one page of sync duties of a specific validator for DataTable.

func ValidatorWithdrawals

func ValidatorWithdrawals(w http.ResponseWriter, r *http.Request)

ValidatorWithdrawals returns a validators withdrawals in json

func Validators

func Validators(w http.ResponseWriter, r *http.Request)

Validators returns the validators using a go template

func ValidatorsData

func ValidatorsData(w http.ResponseWriter, r *http.Request)

ValidatorsData returns all validators and basic information about them based on a StateFilter

func ValidatorsLeaderboard

func ValidatorsLeaderboard(w http.ResponseWriter, r *http.Request)

ValidatorsLeaderboard returns the validator-leaderboard using a go template

func ValidatorsLeaderboardData

func ValidatorsLeaderboardData(w http.ResponseWriter, r *http.Request)

ValidatorsLeaderboardData returns the leaderboard of validators according to their income in json

func ValidatorsSlashings

func ValidatorsSlashings(w http.ResponseWriter, r *http.Request)

ValidatorsSlashings returns validator slashing using a go template

func ValidatorsSlashingsData

func ValidatorsSlashingsData(w http.ResponseWriter, r *http.Request)

ValidatorsSlashingsData returns validator slashings in json

func Vis

func Vis(w http.ResponseWriter, r *http.Request)

Vis returns the visualizations using a go template

func VisBlocks

func VisBlocks(w http.ResponseWriter, r *http.Request)

VisBlocks returns the visualizations in json

func VisVotes

func VisVotes(w http.ResponseWriter, r *http.Request)

VisVotes shows the votes visualizations using a go template

func Withdrawals

func Withdrawals(w http.ResponseWriter, r *http.Request)

Withdrawals will return information about recent withdrawals

func WithdrawalsData

func WithdrawalsData(w http.ResponseWriter, r *http.Request)

WithdrawalsData will return eth1-deposits as json

func WithdrawalsTableData

func WithdrawalsTableData(draw uint64, search string, length, start uint64, orderBy, orderDir string, currency string) (*types.DataTableResponse, error)

Types

type ApiValidatorResponse

type ApiValidatorResponse struct {
	Activationeligibilityepoch int64  `json:"activationeligibilityepoch"`
	Activationepoch            int64  `json:"activationepoch"`
	Balance                    int64  `json:"balance"`
	Effectivebalance           int64  `json:"effectivebalance"`
	Exitepoch                  int64  `json:"exitepoch"`
	Lastattestationslot        int64  `json:"lastattestationslot"`
	Name                       string `json:"name"`
	Pubkey                     string `json:"pubkey"`
	Slashed                    bool   `json:"slashed"`
	Status                     string `json:"status"`
	Validatorindex             int64  `json:"validatorindex"`
	Withdrawableepoch          int64  `json:"withdrawableepoch"`
	Withdrawalcredentials      string `json:"withdrawalcredentials"`
	TotalWithdrawals           uint64 `json:"total_withdrawals" db:"total_withdrawals"`
}

type Cached

type Cached struct {
	Data interface{}
	Ts   int64
}

type DashboardResponse

type DashboardResponse struct {
	Validators           interface{}                          `json:"validators"`
	Effectiveness        interface{}                          `json:"effectiveness"`
	CurrentEpoch         interface{}                          `json:"currentEpoch"`
	OlderEpoch           interface{}                          `json:"olderEpoch"`
	Rocketpool           interface{}                          `json:"rocketpool_validators"`
	RocketpoolStats      interface{}                          `json:"rocketpool_network_stats"`
	ExecutionPerformance []types.ExecutionPerformanceResponse `json:"execution_performance"`
	CurrentSyncCommittee interface{}                          `json:"current_sync_committee"`
	NextSyncCommittee    interface{}                          `json:"next_sync_committee"`
	SyncCommitteesStats  *SyncCommitteesInfo                  `json:"sync_committees_stats"`
	ProposalLuckStats    *types.ApiProposalLuckResponse       `json:"proposal_luck_stats"`
}

type PremiumUser

type PremiumUser struct {
	Package                string
	MaxValidators          int
	MaxStats               uint64
	MaxNodes               uint64
	WidgetSupport          bool
	NotificationThresholds bool
	NoAds                  bool
}

func GetUserPremiumByPackage

func GetUserPremiumByPackage(pkg string) PremiumUser

type SyncCommitteesInfo

type SyncCommitteesInfo struct {
	types.SyncCommitteesStats
	ExpectedSlots uint64 `json:"expectedSlots"`
}

type UsersNotificationsRequest

type UsersNotificationsRequest struct {
	EventNames    []string `json:"event_names"`
	EventFilters  []string `json:"event_filters"`
	Search        string   `json:"search"`
	Limit         uint64   `json:"limit"`
	Offset        uint64   `json:"offset"`
	JoinValidator bool     `json:"join_validator"`
}

type ValidatorsDataQueryParams

type ValidatorsDataQueryParams struct {
	Search            string
	SearchIndex       *uint64
	SearchPubkeyExact *string
	SearchPubkeyLike  *string
	OrderBy           string
	OrderDir          string
	Draw              uint64
	Start             uint64
	Length            int64
	StateFilter       string
}

Jump to

Keyboard shortcuts

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