db

package
v1.19.8 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2025 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DBPGX *pgxpool.Conn

DB is a pointer to the explorer-database

View Source
var EmbedPgsqlSchema embed.FS
View Source
var EmbedSqliteSchema embed.FS
View Source
var ReaderDb *sqlx.DB

Functions

func ApplyEmbeddedDbSchema

func ApplyEmbeddedDbSchema(version int64) error

func ConvertInt64ToUint64 added in v1.14.0

func ConvertInt64ToUint64(i int64) uint64

ConvertInt64ToUint64 converts an int64 to a uint64, supporting the full range of int64, but the value is translated to the range of uint64.

func ConvertUint64ToInt64 added in v1.14.0

func ConvertUint64ToInt64(u uint64) int64

ConvertUint64ToInt64 converts a uint64 to an int64, supporting the full range of uint64, but the value is translated to the range of int64.

func DeleteFinalizedForks added in v1.11.0

func DeleteFinalizedForks(finalizedRoots [][]byte, tx *sqlx.Tx) error

func DeletePendingFunctionSignatures

func DeletePendingFunctionSignatures(sigBytes []types.TxSignatureBytes, tx *sqlx.Tx) error

func DeleteUnfinalizedBlocksBefore added in v1.11.0

func DeleteUnfinalizedBlocksBefore(slot uint64, tx *sqlx.Tx) error

func DeleteUnfinalizedDutiesBefore added in v1.11.0

func DeleteUnfinalizedDutiesBefore(epoch uint64, tx *sqlx.Tx) error

func DeleteUnfinalizedEpochsBefore added in v1.14.0

func DeleteUnfinalizedEpochsBefore(epoch uint64, tx *sqlx.Tx) error

func DeleteValidatorNames

func DeleteValidatorNames(validatorNames []uint64, tx *sqlx.Tx) error

func EngineQuery

func EngineQuery(queryMap map[dbtypes.DBEngineType]string) string

func GetBlob

func GetBlob(commitment []byte, withData bool) *dbtypes.Blob

func GetBlockHeadByRoot added in v1.11.0

func GetBlockHeadByRoot(root []byte) *dbtypes.BlockHead

func GetBlockHeadBySlot added in v1.15.0

func GetBlockHeadBySlot(slot uint64) *dbtypes.BlockHead

func GetConsolidationRequestTxsByDequeueRange added in v1.12.1

func GetConsolidationRequestTxsByDequeueRange(dequeueFirst uint64, dequeueLast uint64) []*dbtypes.ConsolidationRequestTx

func GetConsolidationRequestTxsByTxHashes added in v1.12.1

func GetConsolidationRequestTxsByTxHashes(txHashes [][]byte) []*dbtypes.ConsolidationRequestTx

func GetConsolidationRequestTxsFiltered added in v1.12.1

func GetConsolidationRequestTxsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.ConsolidationRequestTxFilter) ([]*dbtypes.ConsolidationRequestTx, uint64, error)

func GetConsolidationRequestsByElBlockRange added in v1.12.1

func GetConsolidationRequestsByElBlockRange(firstSlot uint64, lastSlot uint64) []*dbtypes.ConsolidationRequest

func GetConsolidationRequestsFiltered added in v1.12.0

func GetConsolidationRequestsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.ConsolidationRequestFilter) ([]*dbtypes.ConsolidationRequest, uint64, error)

func GetDepositTxs

func GetDepositTxs(firstIndex uint64, limit uint32) []*dbtypes.DepositTx

func GetDepositTxsByIndexes added in v1.15.0

func GetDepositTxsByIndexes(indexes []uint64) []*dbtypes.DepositTx

func GetDepositTxsFiltered

func GetDepositTxsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.DepositTxFilter) ([]*dbtypes.DepositTx, uint64, error)

func GetDepositsFiltered

func GetDepositsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.DepositFilter, txFilter *dbtypes.DepositTxFilter) ([]*dbtypes.DepositWithTx, uint64, error)

func GetEpochs

func GetEpochs(firstEpoch uint64, limit uint32) []*dbtypes.Epoch

func GetExplorerState

func GetExplorerState(key string, returnValue interface{}) (interface{}, error)

func GetFilteredSlots

func GetFilteredSlots(filter *dbtypes.BlockFilter, firstSlot uint64, offset uint64, limit uint32) []*dbtypes.AssignedSlot

func GetForkBlockCounts added in v1.18.3

func GetForkBlockCounts(startSlot uint64, endSlot uint64) (map[uint64]uint64, error)

GetForkBlockCounts returns the number of blocks for each fork ID

func GetForkById added in v1.12.1

func GetForkById(forkId uint64) *dbtypes.Fork

func GetForkVisualizationData added in v1.18.3

func GetForkVisualizationData(startSlot uint64, endSlot uint64) ([]*dbtypes.Fork, error)

func GetHighestMevBlockSlotByRelay

func GetHighestMevBlockSlotByRelay(relayId uint8) (uint64, error)

func GetHighestRootBeforeSlot

func GetHighestRootBeforeSlot(slot uint64, withOrphaned bool) []byte

func GetLatestBlobAssignment

func GetLatestBlobAssignment(commitment []byte) *dbtypes.BlobAssignment

func GetMaxValidatorIndex added in v1.14.0

func GetMaxValidatorIndex() (uint64, error)

GetMaxValidatorIndex returns the highest validator index in the database

func GetMevBlockByBlockHash

func GetMevBlockByBlockHash(blockHash []byte) *dbtypes.MevBlock

func GetMevBlocksByBlockHashes added in v1.16.0

func GetMevBlocksByBlockHashes(blockHashes [][]byte) map[string]*dbtypes.MevBlock

GetMevBlocksByBlockHashes retrieves multiple MEV blocks in a single database query for better performance

func GetMevBlocksFiltered

func GetMevBlocksFiltered(offset uint64, limit uint32, filter *dbtypes.MevBlockFilter) ([]*dbtypes.MevBlock, uint64, error)

func GetOrphanedBlock

func GetOrphanedBlock(root []byte) *dbtypes.OrphanedBlock

func GetOrphanedEpoch added in v1.18.3

func GetOrphanedEpoch(epoch uint64, headRoot []byte) *dbtypes.OrphanedEpoch

func GetPendingFunctionSignatures

func GetPendingFunctionSignatures(limit uint64) []*dbtypes.TxPendingFunctionSignature

func GetSlashingForValidator

func GetSlashingForValidator(validator uint64) *dbtypes.Slashing

func GetSlashingsFiltered

func GetSlashingsFiltered(offset uint64, limit uint32, finalizedBlock uint64, filter *dbtypes.SlashingFilter) ([]*dbtypes.Slashing, uint64, error)

func GetSlotAssignment

func GetSlotAssignment(slot uint64) uint64

func GetSlotBlobCountByExecutionHashes added in v1.18.3

func GetSlotBlobCountByExecutionHashes(blockHashes [][]byte) []*dbtypes.BlockBlobCount

func GetSlotByRoot

func GetSlotByRoot(root []byte) *dbtypes.Slot

func GetSlotStatus

func GetSlotStatus(blockRoots [][]byte) []*dbtypes.BlockStatus

func GetSlotsByBlockHash

func GetSlotsByBlockHash(blockHash []byte) []*dbtypes.Slot

func GetSlotsByParentRoot

func GetSlotsByParentRoot(parentRoot []byte) []*dbtypes.Slot

func GetSlotsByRoots added in v1.11.1

func GetSlotsByRoots(roots [][]byte) map[phase0.Root]*dbtypes.Slot

func GetSlotsRange

func GetSlotsRange(firstSlot uint64, lastSlot uint64, withMissing bool, withOrphaned bool) []*dbtypes.AssignedSlot

func GetSyncAssignmentsForPeriod

func GetSyncAssignmentsForPeriod(period uint64) []uint64

func GetSyncCommitteeParticipation added in v1.18.3

func GetSyncCommitteeParticipation(slot uint64) (float64, error)

func GetTxFunctionSignaturesByBytes

func GetTxFunctionSignaturesByBytes(sigBytes []types.TxSignatureBytes) []*dbtypes.TxFunctionSignature

func GetUnfinalizedBlock

func GetUnfinalizedBlock(root []byte) *dbtypes.UnfinalizedBlock

func GetUnfinalizedBlocks

func GetUnfinalizedBlocks(filter *dbtypes.UnfinalizedBlockFilter) []*dbtypes.UnfinalizedBlock

func GetUnfinalizedDuty added in v1.11.0

func GetUnfinalizedDuty(epoch uint64, dependentRoot []byte) *dbtypes.UnfinalizedDuty

func GetUnfinalizedEpoch

func GetUnfinalizedEpoch(epoch uint64, headRoot []byte) *dbtypes.UnfinalizedEpoch

func GetUnfinalizedForks added in v1.11.0

func GetUnfinalizedForks(finalizedSlot uint64) []*dbtypes.Fork

func GetUnknownFunctionSignatures

func GetUnknownFunctionSignatures(sigBytes []types.TxSignatureBytes) []*dbtypes.TxUnknownFunctionSignature

func GetValidatorByIndex added in v1.14.0

func GetValidatorByIndex(index phase0.ValidatorIndex) *dbtypes.Validator

GetValidatorByIndex returns a validator by index

func GetValidatorByPubkey added in v1.14.0

func GetValidatorByPubkey(pubkey []byte) *dbtypes.Validator

GetValidatorByPubkey returns a validator by pubkey

func GetValidatorIndexesByFilter added in v1.14.0

func GetValidatorIndexesByFilter(filter dbtypes.ValidatorFilter, currentEpoch uint64) ([]uint64, error)

GetValidatorIndexesByFilter returns validator indexes matching a filter

func GetValidatorNames

func GetValidatorNames(minIdx uint64, maxIdx uint64) []*dbtypes.ValidatorName

func GetValidatorRange added in v1.14.0

func GetValidatorRange(startIndex uint64, endIndex uint64) []*dbtypes.Validator

GetValidatorRange returns validators in a given index range

func GetVoluntaryExitForValidator

func GetVoluntaryExitForValidator(validator uint64) *dbtypes.VoluntaryExit

func GetVoluntaryExitsFiltered

func GetVoluntaryExitsFiltered(offset uint64, limit uint32, finalizedBlock uint64, filter *dbtypes.VoluntaryExitFilter) ([]*dbtypes.VoluntaryExit, uint64, error)

func GetWithdrawalRequestTxsByDequeueRange added in v1.12.1

func GetWithdrawalRequestTxsByDequeueRange(dequeueFirst uint64, dequeueLast uint64) []*dbtypes.WithdrawalRequestTx

func GetWithdrawalRequestTxsByTxHashes added in v1.12.1

func GetWithdrawalRequestTxsByTxHashes(txHashes [][]byte) []*dbtypes.WithdrawalRequestTx

func GetWithdrawalRequestTxsFiltered added in v1.12.1

func GetWithdrawalRequestTxsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.WithdrawalRequestTxFilter) ([]*dbtypes.WithdrawalRequestTx, uint64, error)

func GetWithdrawalRequestsByElBlockRange added in v1.12.1

func GetWithdrawalRequestsByElBlockRange(firstSlot uint64, lastSlot uint64) []*dbtypes.WithdrawalRequest

func GetWithdrawalRequestsFiltered added in v1.11.0

func GetWithdrawalRequestsFiltered(offset uint64, limit uint32, canonicalForkIds []uint64, filter *dbtypes.WithdrawalRequestFilter) ([]*dbtypes.WithdrawalRequest, uint64, error)

func InsertBlob

func InsertBlob(blob *dbtypes.Blob, tx *sqlx.Tx) error

func InsertBlobAssignment

func InsertBlobAssignment(blobAssignment *dbtypes.BlobAssignment, tx *sqlx.Tx) error

func InsertConsolidationRequestTxs added in v1.12.1

func InsertConsolidationRequestTxs(consolidationTxs []*dbtypes.ConsolidationRequestTx, tx *sqlx.Tx) error

func InsertConsolidationRequests added in v1.11.0

func InsertConsolidationRequests(consolidations []*dbtypes.ConsolidationRequest, tx *sqlx.Tx) error

func InsertDepositTxs

func InsertDepositTxs(depositTxs []*dbtypes.DepositTx, tx *sqlx.Tx) error

func InsertDeposits

func InsertDeposits(deposits []*dbtypes.Deposit, tx *sqlx.Tx) error

func InsertEpoch

func InsertEpoch(epoch *dbtypes.Epoch, tx *sqlx.Tx) error

func InsertFork added in v1.11.0

func InsertFork(fork *dbtypes.Fork, tx *sqlx.Tx) error

func InsertMevBlocks

func InsertMevBlocks(mevBlocks []*dbtypes.MevBlock, tx *sqlx.Tx) error

func InsertMissingSlot

func InsertMissingSlot(block *dbtypes.SlotHeader, tx *sqlx.Tx) error

func InsertOrphanedBlock

func InsertOrphanedBlock(block *dbtypes.OrphanedBlock, tx *sqlx.Tx) error

func InsertOrphanedEpoch added in v1.18.3

func InsertOrphanedEpoch(epoch *dbtypes.OrphanedEpoch, tx *sqlx.Tx) error

func InsertPendingFunctionSignatures

func InsertPendingFunctionSignatures(txPendingSigs []*dbtypes.TxPendingFunctionSignature, tx *sqlx.Tx) error

func InsertSlashings

func InsertSlashings(slashings []*dbtypes.Slashing, tx *sqlx.Tx) error

func InsertSlot

func InsertSlot(slot *dbtypes.Slot, tx *sqlx.Tx) error

func InsertSyncAssignments

func InsertSyncAssignments(syncAssignments []*dbtypes.SyncAssignment, tx *sqlx.Tx) error

func InsertTxFunctionSignature

func InsertTxFunctionSignature(txFuncSig *dbtypes.TxFunctionSignature, tx *sqlx.Tx) error

func InsertUnfinalizedBlock

func InsertUnfinalizedBlock(block *dbtypes.UnfinalizedBlock, tx *sqlx.Tx) error

func InsertUnfinalizedDuty added in v1.11.0

func InsertUnfinalizedDuty(duty *dbtypes.UnfinalizedDuty, tx *sqlx.Tx) error

func InsertUnfinalizedEpoch

func InsertUnfinalizedEpoch(epoch *dbtypes.UnfinalizedEpoch, tx *sqlx.Tx) error

func InsertUnknownFunctionSignatures

func InsertUnknownFunctionSignatures(txUnknownSigs []*dbtypes.TxUnknownFunctionSignature, tx *sqlx.Tx) error

func InsertValidator added in v1.14.0

func InsertValidator(validator *dbtypes.Validator, tx *sqlx.Tx) error

InsertValidator inserts a single validator into the database

func InsertValidatorBatch added in v1.14.0

func InsertValidatorBatch(validators []*dbtypes.Validator, tx *sqlx.Tx) error

InsertValidatorBatch inserts multiple validators in a batch

func InsertValidatorNames

func InsertValidatorNames(validatorNames []*dbtypes.ValidatorName, tx *sqlx.Tx) error

func InsertVoluntaryExits

func InsertVoluntaryExits(voluntaryExits []*dbtypes.VoluntaryExit, tx *sqlx.Tx) error

func InsertWithdrawalRequestTxs added in v1.12.1

func InsertWithdrawalRequestTxs(withdrawalTxs []*dbtypes.WithdrawalRequestTx, tx *sqlx.Tx) error

func InsertWithdrawalRequests added in v1.11.0

func InsertWithdrawalRequests(elRequests []*dbtypes.WithdrawalRequest, tx *sqlx.Tx) error

func IsEpochSynchronized

func IsEpochSynchronized(epoch uint64) bool

func IsSyncCommitteeSynchronized

func IsSyncCommitteeSynchronized(period uint64) bool

func MustCloseDB

func MustCloseDB()

func MustInitDB

func MustInitDB(dbcfg *types.DatabaseConfig)

func RunDBTransaction

func RunDBTransaction(handler func(tx *sqlx.Tx) error) error

func SetExplorerState

func SetExplorerState(key string, value interface{}, tx *sqlx.Tx) error

func StreamOrphanedEpochs added in v1.18.3

func StreamOrphanedEpochs(epoch uint64, cb func(duty *dbtypes.OrphanedEpoch)) error

func StreamUnfinalizedBlocks added in v1.11.0

func StreamUnfinalizedBlocks(slot uint64, cb func(block *dbtypes.UnfinalizedBlock)) error

func StreamUnfinalizedDuties added in v1.11.0

func StreamUnfinalizedDuties(epoch uint64, cb func(duty *dbtypes.UnfinalizedDuty)) error

func StreamUnfinalizedEpochs added in v1.11.0

func StreamUnfinalizedEpochs(epoch uint64, cb func(duty *dbtypes.UnfinalizedEpoch)) error

func StreamValidatorsByIndexes added in v1.14.0

func StreamValidatorsByIndexes(indexes []uint64, cb func(validator *dbtypes.Validator) bool) error

func UpdateConsolidationRequestTxHash added in v1.12.1

func UpdateConsolidationRequestTxHash(slotRoot []byte, slotIndex uint64, txHash []byte, tx *sqlx.Tx) error

func UpdateFinalizedForkParents added in v1.11.0

func UpdateFinalizedForkParents(finalizedRoots [][]byte, tx *sqlx.Tx) error

func UpdateForkParent added in v1.11.1

func UpdateForkParent(parentRoot []byte, parentForkId uint64, tx *sqlx.Tx) error

func UpdateMevBlockByEpoch

func UpdateMevBlockByEpoch(epoch uint64, slotsPerEpoch uint64, canonicalHashes [][]byte, tx *sqlx.Tx) error

func UpdateUnfinalizedBlockExecutionTimes added in v1.17.0

func UpdateUnfinalizedBlockExecutionTimes(root []byte, minExecTime uint32, maxExecTime uint32, execTimes []byte, tx *sqlx.Tx) error

func UpdateUnfinalizedBlockForkId added in v1.11.0

func UpdateUnfinalizedBlockForkId(roots [][]byte, forkId uint64, tx *sqlx.Tx) error

func UpdateUnfinalizedBlockStatus added in v1.11.0

func UpdateUnfinalizedBlockStatus(roots [][]byte, blockStatus dbtypes.UnfinalizedBlockStatus, tx *sqlx.Tx) error

func UpdateWithdrawalRequestTxHash added in v1.12.1

func UpdateWithdrawalRequestTxHash(slotRoot []byte, slotIndex uint64, txHash []byte, tx *sqlx.Tx) error

Types

type BlobStatistics added in v1.19.5

type BlobStatistics struct {
	BlobsLast1h            uint64
	BlobsLast24h           uint64
	BlobsLast7d            uint64
	BlobsLast18d           uint64
	BlocksWithBlobsLast1h  uint64
	BlocksWithBlobsLast24h uint64
	BlocksWithBlobsLast7d  uint64
	BlocksWithBlobsLast18d uint64
	BlobGasLast1h          uint64
	BlobGasLast24h         uint64
	BlobGasLast7d          uint64
	BlobGasLast18d         uint64
}

func GetBlobStatistics added in v1.19.5

func GetBlobStatistics(currentSlot uint64) (*BlobStatistics, error)

type EpochParticipation added in v1.18.3

type EpochParticipation struct {
	Epoch       uint64 `db:"epoch"`
	BlockCount  uint64 `db:"block_count"`
	Eligible    uint64 `db:"eligible"`
	VotedTarget uint64 `db:"voted_target"`
	VotedHead   uint64 `db:"voted_head"`
	VotedTotal  uint64 `db:"voted_total"`
}

EpochParticipation represents participation data for a finalized canonical epoch

func GetFinalizedEpochParticipation added in v1.18.3

func GetFinalizedEpochParticipation(startEpoch, endEpoch uint64) ([]*EpochParticipation, error)

GetFinalizedEpochParticipation gets participation data for finalized canonical epochs in the given range

type ForkParticipationByEpoch added in v1.18.3

type ForkParticipationByEpoch struct {
	ForkId        uint64  `db:"fork_id"`
	Epoch         uint64  `db:"epoch"`
	Participation float64 `db:"avg_participation"`
	SlotCount     uint64  `db:"slot_count"`
}

ForkParticipationByEpoch represents participation data for a fork in a specific epoch

func GetForkParticipationByEpoch added in v1.18.3

func GetForkParticipationByEpoch(startEpoch, endEpoch uint64, forkIds []uint64) ([]*ForkParticipationByEpoch, error)

GetForkParticipationByEpoch gets average participation per fork per epoch for the given epoch range This is optimized to fetch all data in one query to avoid expensive repeated queries

type OrphanedEpochParticipation added in v1.18.3

type OrphanedEpochParticipation struct {
	Epoch       uint64 `db:"epoch"`
	HeadForkId  uint64 `db:"epoch_head_fork_id"`
	BlockCount  uint64 `db:"block_count"`
	Eligible    uint64 `db:"eligible"`
	VotedTarget uint64 `db:"voted_target"`
	VotedHead   uint64 `db:"voted_head"`
	VotedTotal  uint64 `db:"voted_total"`
}

OrphanedEpochParticipation represents participation data for an orphaned epoch

func GetOrphanedEpochParticipation added in v1.18.3

func GetOrphanedEpochParticipation(startEpoch, endEpoch uint64) ([]*OrphanedEpochParticipation, error)

GetOrphanedEpochParticipation gets participation data for orphaned epochs in the given range

type UnfinalizedEpochParticipation added in v1.18.3

type UnfinalizedEpochParticipation struct {
	Epoch       uint64 `db:"epoch"`
	HeadForkId  uint64 `db:"epoch_head_fork_id"`
	BlockCount  uint64 `db:"block_count"`
	Eligible    uint64 `db:"eligible"`
	VotedTarget uint64 `db:"voted_target"`
	VotedHead   uint64 `db:"voted_head"`
	VotedTotal  uint64 `db:"voted_total"`
}

UnfinalizedEpochParticipation represents participation data for an unfinalized epoch

func GetUnfinalizedEpochParticipation added in v1.18.3

func GetUnfinalizedEpochParticipation(startEpoch, endEpoch uint64) ([]*UnfinalizedEpochParticipation, error)

GetUnfinalizedEpochParticipation gets participation data for unfinalized epochs in the given range This is used for pruned epochs that are stored in the database

Jump to

Keyboard shortcuts

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