Documentation
¶
Index ¶
- Constants
- Variables
- func CalculateLifetimeNodeRewardsAllLegacy(rp *rocketpool.RocketPool, intervalSize *big.Int, ...) (map[string]*big.Int, error)
- func DownloadRewardsFile(fileName string, interval uint64, cid string, isDaemon bool) ([]byte, error)
- func ExportEpoch(epoch uint64, client rpc.Client) error
- func GetLastBlocks(startEpoch, endEpoch uint64, client rpc.Client) ([]*types.MinimalBlock, error)
- func IsAtlasDeployed(rp *rocketpool.RocketPool) (bool, error)
- func IsMergeUpdateDeployed(rp *rocketpool.RocketPool) (bool, error)
- func MarkMissedBlocks(startEpoch, endEpoch uint64) error
- func MarkOrphanedBlocks(startEpoch, endEpoch uint64, blocks []*types.MinimalBlock) error
- func Start(client rpc.Client) error
- func StartEthStoreExporter(bnAddress string, enAddress string, ...)
- func UpdatePubkeyTag()
- type BidTrace
- type EthStoreExporter
- type MinipoolPerformanceFile
- type NetworkRewardsInfo
- type NodeRewardsInfo
- type QuotedBigInt
- type RewardsFile
- type RocketpoolDAOMember
- type RocketpoolDAOProposal
- type RocketpoolDAOProposalMemberVotes
- type RocketpoolExporter
- func (rp *RocketpoolExporter) DownloadMissingRewardTrees() error
- func (rp *RocketpoolExporter) Init() error
- func (rp *RocketpoolExporter) InitDAOMembers() error
- func (rp *RocketpoolExporter) InitDAOProposals() error
- func (rp *RocketpoolExporter) InitMinipools() error
- func (rp *RocketpoolExporter) InitNodes() error
- func (rp *RocketpoolExporter) Run() error
- func (rp *RocketpoolExporter) Save(count int64) error
- func (rp *RocketpoolExporter) SaveDAOMembers() error
- func (rp *RocketpoolExporter) SaveDAOProposals() error
- func (rp *RocketpoolExporter) SaveDAOProposalsMemberVotes() error
- func (rp *RocketpoolExporter) SaveMinipools() error
- func (rp *RocketpoolExporter) SaveNetworkStats() error
- func (rp *RocketpoolExporter) SaveNodes() error
- func (rp *RocketpoolExporter) SaveRewardTrees() error
- func (rp *RocketpoolExporter) TagValidators() error
- func (rp *RocketpoolExporter) Update(count int64) error
- func (rp *RocketpoolExporter) UpdateDAOMembers() error
- func (rp *RocketpoolExporter) UpdateDAOProposals() error
- func (rp *RocketpoolExporter) UpdateMinipools() error
- func (rp *RocketpoolExporter) UpdateNetworkStats() error
- func (rp *RocketpoolExporter) UpdateNodes(includeCumulativeRpl bool) error
- type RocketpoolMinipool
- type RocketpoolNetworkStats
- type RocketpoolNode
- type RocketpoolRewardTreeDownloadable
- type RocketpoolRewards
- type SSVExporterResponse
- type SmoothingPoolMinipoolPerformance
- type TotalRewards
- type VerifyResponse
Constants ¶
View Source
const GethEventLogInterval = 25000
Variables ¶
View Source
var Client *rpc.Client
View Source
var RP_CONFIG *smartnodeCfg.SmartnodeConfig
Functions ¶
func DownloadRewardsFile ¶
func ExportEpoch ¶
ExportEpoch will export an epoch from rpc into the database
func GetLastBlocks ¶
GetLastBlocks will get all blocks for a range of epochs
func IsAtlasDeployed ¶
func IsAtlasDeployed(rp *rocketpool.RocketPool) (bool, error)
func IsMergeUpdateDeployed ¶
func IsMergeUpdateDeployed(rp *rocketpool.RocketPool) (bool, error)
Redstone activation check Credit https://github.com/rocket-pool/smartnode/blob/4fd78852a331a7ec7a7e462fef2bcd49d1f0b0af/shared/utils/rp/update-checks.go
func MarkMissedBlocks ¶
MarkMissedBlocks will mark the missed blocks in the database
func MarkOrphanedBlocks ¶
func MarkOrphanedBlocks(startEpoch, endEpoch uint64, blocks []*types.MinimalBlock) error
MarkOrphanedBlocks will mark the orphaned blocks in the database
func StartEthStoreExporter ¶
func StartEthStoreExporter(bnAddress string, enAddress string, updateInterval, errorInterval, sleepInterval time.Duration)
start exporting of eth.store into db
func UpdatePubkeyTag ¶
func UpdatePubkeyTag()
Types ¶
type BidTrace ¶
type BidTrace struct {
Slot uint64 `json:"slot,string"`
ParentHash string `json:"parent_hash"`
BlockHash string `json:"block_hash"`
BuilderPubkey string `json:"builder_pubkey"`
ProposerPubkey string `json:"proposer_pubkey"`
ProposerFeeRecipient string `json:"proposer_fee_recipient"`
GasLimit uint64 `json:"gas_limit,string"`
GasUsed uint64 `json:"gas_used,string"`
Value types.WeiString `json:"value"`
}
type EthStoreExporter ¶
type EthStoreExporter struct {
DB *sqlx.DB
BNAddress string
ENAddress string
UpdateInverval time.Duration
ErrorInterval time.Duration
Sleep time.Duration
}
func (*EthStoreExporter) ExportDay ¶
func (ese *EthStoreExporter) ExportDay(day string) error
func (*EthStoreExporter) Run ¶
func (ese *EthStoreExporter) Run()
type MinipoolPerformanceFile ¶
type MinipoolPerformanceFile struct {
Index uint64 `json:"index"`
Network string `json:"network"`
MinipoolPerformance map[common.Address]*SmoothingPoolMinipoolPerformance `json:"minipoolPerformance"`
}
type NetworkRewardsInfo ¶
type NetworkRewardsInfo struct {
CollateralRpl *QuotedBigInt `json:"collateralRpl"`
OracleDaoRpl *QuotedBigInt `json:"oracleDaoRpl"`
SmoothingPoolEth *QuotedBigInt `json:"smoothingPoolEth"`
}
Rewards per network
type NodeRewardsInfo ¶
type NodeRewardsInfo struct {
RewardNetwork uint64 `json:"rewardNetwork"`
CollateralRpl *QuotedBigInt `json:"collateralRpl"`
OracleDaoRpl *QuotedBigInt `json:"oracleDaoRpl"`
SmoothingPoolEth *QuotedBigInt `json:"smoothingPoolEth"`
SmoothingPoolEligibilityRate float64 `json:"smoothingPoolEligibilityRate"`
MerkleData []byte `json:"-"`
MerkleProof []string `json:"merkleProof"`
}
Node operator rewards
type QuotedBigInt ¶
func NewQuotedBigInt ¶
func NewQuotedBigInt(x int64) *QuotedBigInt
func NewQuotedBigIntFromBigInt ¶
func NewQuotedBigIntFromBigInt(x *big.Int) *QuotedBigInt
func (*QuotedBigInt) MarshalJSON ¶
func (b *QuotedBigInt) MarshalJSON() ([]byte, error)
func (*QuotedBigInt) UnmarshalJSON ¶
func (b *QuotedBigInt) UnmarshalJSON(p []byte) error
type RewardsFile ¶
type RewardsFile struct {
// Serialized fields
RewardsFileVersion uint64 `json:"rewardsFileVersion"`
Index uint64 `json:"index"`
Network string `json:"network"`
StartTime time.Time `json:"startTime,omitempty"`
EndTime time.Time `json:"endTime"`
ConsensusStartBlock uint64 `json:"consensusStartBlock,omitempty"`
ConsensusEndBlock uint64 `json:"consensusEndBlock"`
ExecutionStartBlock uint64 `json:"executionStartBlock,omitempty"`
ExecutionEndBlock uint64 `json:"executionEndBlock"`
IntervalsPassed uint64 `json:"intervalsPassed"`
MerkleRoot string `json:"merkleRoot,omitempty"`
MinipoolPerformanceFileCID string `json:"minipoolPerformanceFileCid,omitempty"`
TotalRewards *TotalRewards `json:"totalRewards"`
NetworkRewards map[uint64]*NetworkRewardsInfo `json:"networkRewards"`
NodeRewards map[common.Address]*NodeRewardsInfo `json:"nodeRewards"`
MinipoolPerformanceFile MinipoolPerformanceFile `json:"-"`
}
JSON struct for a complete rewards file
type RocketpoolDAOMember ¶
type RocketpoolDAOMember struct {
Address []byte `db:"address"`
ID string `db:"id"`
URL string `url:"url"`
JoinedTime time.Time `db:"joined_time"`
LastProposalTime time.Time `db:"last_proposal_time"`
RPLBondAmount *big.Int `db:"rpl_bond_amount"`
UnbondedValidatorCount uint64 `db:"unbonded_validator_count"`
}
func NewRocketpoolDAOMember ¶
func NewRocketpoolDAOMember(rp *rocketpool.RocketPool, addr []byte) (*RocketpoolDAOMember, error)
func (*RocketpoolDAOMember) Update ¶
func (r *RocketpoolDAOMember) Update(rp *rocketpool.RocketPool) error
type RocketpoolDAOProposal ¶
type RocketpoolDAOProposal struct {
ID uint64 `db:"id"`
DAO string `db:"dao"`
ProposerAddress []byte `db:"proposer_address"`
Message string `db:"message"`
CreatedTime time.Time `db:"created_time"`
StartTime time.Time `db:"start_time"`
EndTime time.Time `db:"end_time"`
ExpiryTime time.Time `db:"expiry_time"`
VotesRequired float64 `db:"votes_required"`
VotesFor float64 `db:"votes_for"`
VotesAgainst float64 `db:"votes_against"`
MemberVoted bool `db:"member_voted"`
MemberSupported bool `db:"member_supported"`
IsCancelled bool `db:"is_cancelled"`
IsExecuted bool `db:"is_executed"`
Payload []byte `db:"payload"`
State string `db:"state"`
MemberVotes []RocketpoolDAOProposalMemberVotes
}
func NewRocketpoolDAOProposal ¶
func NewRocketpoolDAOProposal(rp *rocketpool.RocketPool, pid uint64) (*RocketpoolDAOProposal, error)
func (*RocketpoolDAOProposal) Update ¶
func (r *RocketpoolDAOProposal) Update(rp *rocketpool.RocketPool) error
type RocketpoolExporter ¶
type RocketpoolExporter struct {
Eth1Client *ethclient.Client
API *rocketpool.RocketPool
DB *sqlx.DB
UpdateInterval time.Duration
MinipoolsByAddress map[string]*RocketpoolMinipool
NodesByAddress map[string]*RocketpoolNode
DAOProposalsByID map[uint64]*RocketpoolDAOProposal
DAOMembersByAddress map[string]*RocketpoolDAOMember
NodeRPLCumulative map[string]*big.Int
NetworkStats RocketpoolNetworkStats
LastRewardTree uint64
RocketpoolRewardTreesDownloadQueue []RocketpoolRewardTreeDownloadable
RocketpoolRewardTreeData map[uint64]RewardsFile
}
func NewRocketpoolExporter ¶
func (*RocketpoolExporter) DownloadMissingRewardTrees ¶
func (rp *RocketpoolExporter) DownloadMissingRewardTrees() error
func (*RocketpoolExporter) Init ¶
func (rp *RocketpoolExporter) Init() error
func (*RocketpoolExporter) InitDAOMembers ¶
func (rp *RocketpoolExporter) InitDAOMembers() error
func (*RocketpoolExporter) InitDAOProposals ¶
func (rp *RocketpoolExporter) InitDAOProposals() error
func (*RocketpoolExporter) InitMinipools ¶
func (rp *RocketpoolExporter) InitMinipools() error
func (*RocketpoolExporter) InitNodes ¶
func (rp *RocketpoolExporter) InitNodes() error
func (*RocketpoolExporter) Run ¶
func (rp *RocketpoolExporter) Run() error
func (*RocketpoolExporter) Save ¶
func (rp *RocketpoolExporter) Save(count int64) error
func (*RocketpoolExporter) SaveDAOMembers ¶
func (rp *RocketpoolExporter) SaveDAOMembers() error
func (*RocketpoolExporter) SaveDAOProposals ¶
func (rp *RocketpoolExporter) SaveDAOProposals() error
func (*RocketpoolExporter) SaveDAOProposalsMemberVotes ¶
func (rp *RocketpoolExporter) SaveDAOProposalsMemberVotes() error
func (*RocketpoolExporter) SaveMinipools ¶
func (rp *RocketpoolExporter) SaveMinipools() error
func (*RocketpoolExporter) SaveNetworkStats ¶
func (rp *RocketpoolExporter) SaveNetworkStats() error
func (*RocketpoolExporter) SaveNodes ¶
func (rp *RocketpoolExporter) SaveNodes() error
func (*RocketpoolExporter) SaveRewardTrees ¶
func (rp *RocketpoolExporter) SaveRewardTrees() error
func (*RocketpoolExporter) TagValidators ¶
func (rp *RocketpoolExporter) TagValidators() error
func (*RocketpoolExporter) Update ¶
func (rp *RocketpoolExporter) Update(count int64) error
func (*RocketpoolExporter) UpdateDAOMembers ¶
func (rp *RocketpoolExporter) UpdateDAOMembers() error
func (*RocketpoolExporter) UpdateDAOProposals ¶
func (rp *RocketpoolExporter) UpdateDAOProposals() error
func (*RocketpoolExporter) UpdateMinipools ¶
func (rp *RocketpoolExporter) UpdateMinipools() error
func (*RocketpoolExporter) UpdateNetworkStats ¶
func (rp *RocketpoolExporter) UpdateNetworkStats() error
func (*RocketpoolExporter) UpdateNodes ¶
func (rp *RocketpoolExporter) UpdateNodes(includeCumulativeRpl bool) error
type RocketpoolMinipool ¶
type RocketpoolMinipool struct {
Address []byte `db:"address"`
Pubkey []byte `db:"pubkey"`
NodeAddress []byte `db:"node_address"`
NodeFee float64 `db:"node_fee"`
DepositType string `db:"deposit_type"`
Status string `db:"status"`
StatusTime time.Time `db:"status_time"`
PenaltyCount uint64 `db:"penalty_count"`
NodeDepositBalance *big.Int `db:"node_deposit_balance"`
NodeRefundBalance *big.Int `db:"node_refund_balance"`
UserDepositBalance *big.Int `db:"user_deposit_balance"`
IsVacant bool `db:"is_vacant"`
Version uint8 `db:"version"`
}
func NewRocketpoolMinipool ¶
func NewRocketpoolMinipool(rp *rocketpool.RocketPool, addr []byte, atlasDeployed bool) (*RocketpoolMinipool, error)
func (*RocketpoolMinipool) Update ¶
func (r *RocketpoolMinipool) Update(rp *rocketpool.RocketPool, atlasDeployed bool) error
type RocketpoolNetworkStats ¶
type RocketpoolNode ¶
type RocketpoolNode struct {
Address []byte `db:"address"`
TimezoneLocation string `db:"timezone_location"`
RPLStake *big.Int `db:"rpl_stake"`
EffectiveRPLStake *big.Int `db:"effective_rpl_stake"`
MinRPLStake *big.Int `db:"min_rpl_stake"`
MaxRPLStake *big.Int `db:"max_rpl_stake"`
RPLCumulativeRewards *big.Int `db:"rpl_cumulative_rewards"`
SmoothingPoolOptedIn bool `db:"smoothing_pool_opted_in"`
ClaimedSmoothingPool *big.Int `db:"claimed_smoothing_pool"`
UnclaimedSmoothingPool *big.Int `db:"unclaimed_smoothing_pool"`
UnclaimedRPLRewards *big.Int `db:"unclaimed_rpl_rewards"`
DepositCredit *big.Int `db:"deposit_credit"`
}
func NewRocketpoolNode ¶
func NewRocketpoolNode(rp *rocketpool.RocketPool, addr []byte, rewardTrees map[uint64]RewardsFile, legacyClaims map[string]*big.Int, atlasDeployed bool) (*RocketpoolNode, error)
func (*RocketpoolNode) Update ¶
func (r *RocketpoolNode) Update(rp *rocketpool.RocketPool, rewardTrees map[uint64]RewardsFile, includeCumulativeRpl bool, legacyClaims map[string]*big.Int, atlasDeployed bool) error
type RocketpoolRewards ¶
type SSVExporterResponse ¶
type SSVExporterResponse struct {
Type string `json:"type"`
Filter struct {
From int `json:"from"`
To int `json:"to"`
} `json:"filter"`
Data []struct {
Index int `json:"index"`
Publickey string `json:"publicKey"`
Operators []struct {
Nodeid int `json:"nodeId"`
Publickey string `json:"publicKey"`
} `json:"operators"`
} `json:"data"`
}
type SmoothingPoolMinipoolPerformance ¶
type SmoothingPoolMinipoolPerformance struct {
Pubkey string `json:"pubkey"`
SuccessfulAttestations uint64 `json:"successfulAttestations"`
MissedAttestations uint64 `json:"missedAttestations"`
ParticipationRate float64 `json:"participationRate"`
MissingAttestationSlots []uint64 `json:"missingAttestationSlots"`
EthEarned float64 `json:"ethEarned"`
}
Minipool stats
type TotalRewards ¶
type TotalRewards struct {
ProtocolDaoRpl *QuotedBigInt `json:"protocolDaoRpl"`
TotalCollateralRpl *QuotedBigInt `json:"totalCollateralRpl"`
TotalOracleDaoRpl *QuotedBigInt `json:"totalOracleDaoRpl"`
TotalSmoothingPoolEth *QuotedBigInt `json:"totalSmoothingPoolEth"`
PoolStakerSmoothingPoolEth *QuotedBigInt `json:"poolStakerSmoothingPoolEth"`
NodeOperatorSmoothingPoolEth *QuotedBigInt `json:"nodeOperatorSmoothingPoolEth"`
}
Total cumulative rewards for an interval
type VerifyResponse ¶
func VerifyReceipt ¶
func VerifyReceipt(googleClient *playstore.Client, receipt *types.PremiumData) (*VerifyResponse, error)
Click to show internal directories.
Click to hide internal directories.