database

package
v0.0.0-...-a4e836c Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

Package database exposes the postgres database

Index

Constants

This section is empty.

Variables

View Source
var (

	// TableValidatorRegistration variable
	TableValidatorRegistration = tableBase + "_validator_registration"
	// TableExecutionPayload variable
	TableExecutionPayload = tableBase + "_execution_payload"
	// TableBuilderBlockSubmission variable
	TableBuilderBlockSubmission = tableBase + "_builder_block_submission"
	// TableDeliveredPayload variable
	TableDeliveredPayload = tableBase + "_payload_delivered"
)

Functions

func NewNullInt64

func NewNullInt64(i int64) sql.NullInt64

NewNullInt64 func

func NewNullString

func NewNullString(s string) sql.NullString

NewNullString func

Types

type BlockSubmission

type BlockSubmission struct {
	HeaderResponse  types.GetHeaderResponse
	PayloadResponse types.GetPayloadResponse
	Submission      types.BuilderSubmitBlockRequest
}

BlockSubmission structs

type BuilderBlockSubmissionEntry

type BuilderBlockSubmissionEntry struct {
	ID         int64     `db:"id"`
	InsertedAt time.Time `db:"inserted_at"`

	// Delivered ExecutionPayload
	ExecutionPayloadID sql.NullInt64 `db:"execution_payload_id"`

	// Sim Result
	SimSuccess bool   `db:"sim_success"`
	SimError   string `db:"sim_error"`

	// BidTrace data
	Signature string `db:"signature"`

	Slot       uint64 `db:"slot"`
	ParentHash string `db:"parent_hash"`
	BlockHash  string `db:"block_hash"`

	BuilderPubkey        string `db:"builder_pubkey"`
	ProposerPubkey       string `db:"proposer_pubkey"`
	ProposerFeeRecipient string `db:"proposer_fee_recipient"`

	GasUsed  uint64 `db:"gas_used"`
	GasLimit uint64 `db:"gas_limit"`

	NumTx int    `db:"num_tx"`
	Value string `db:"value"`

	// Helpers
	Epoch             uint64 `db:"epoch"`
	BlockNumber       uint64 `db:"block_number"`
	WasMostProfitable bool   `db:"was_most_profitable"`
}

BuilderBlockSubmissionEntry structs

type DatabaseService

type DatabaseService struct {
	DB *sqlx.DB
}

DatabaseService db

func NewDatabaseService

func NewDatabaseService(dsn string) (*DatabaseService, error)

NewDatabaseService db

func (*DatabaseService) Close

func (s *DatabaseService) Close() error

Close db func

func (*DatabaseService) GetBlockSubmissionEntry

func (s *DatabaseService) GetBlockSubmissionEntry(ctx context.Context, slot uint64, proposerPubkey, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)

GetBlockSubmissionEntry db func

func (*DatabaseService) GetBlockSubmissionEntryByHash

func (s *DatabaseService) GetBlockSubmissionEntryByHash(ctx context.Context, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)

GetBlockSubmissionEntryByHash db func

func (*DatabaseService) GetBuilderSubmissions

GetBuilderSubmissions db func

func (*DatabaseService) GetExecutionPayloadEntryByID

func (s *DatabaseService) GetExecutionPayloadEntryByID(ctx context.Context, executionPayloadID int64) (entry *ExecutionPayloadEntry, err error)

GetExecutionPayloadEntryByID db func

func (*DatabaseService) GetExecutionPayloadEntryBySlotPkHash

func (s *DatabaseService) GetExecutionPayloadEntryBySlotPkHash(ctx context.Context, slot uint64, blockHash string) (entry *ExecutionPayloadEntry, err error)

GetExecutionPayloadEntryBySlotPkHash db func

func (*DatabaseService) GetNumDeliveredPayloads

func (s *DatabaseService) GetNumDeliveredPayloads(ctx context.Context) (uint64, error)

GetNumDeliveredPayloads db func

func (*DatabaseService) GetRecentDeliveredPayloads

func (s *DatabaseService) GetRecentDeliveredPayloads(filters GetPayloadsFilters) ([]*DeliveredPayloadEntry, error)

GetRecentDeliveredPayloads db func

func (*DatabaseService) SaveBuilderBlockSubmissionToDB

func (s *DatabaseService) SaveBuilderBlockSubmissionToDB(ctx context.Context, payload *capella.SubmitBlockRequest, simError error, isMostProfitable bool, receivedAt time.Time) (id int64, err error)

SaveBuilderBlockSubmissionToDB db func

func (*DatabaseService) SaveDeliveredPayload

func (s *DatabaseService) SaveDeliveredPayload(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *types.SignedBlindedBeaconBlock) error

SaveDeliveredPayload db func

func (*DatabaseService) SaveDeliveredPayloadFromProvidedData

func (s *DatabaseService) SaveDeliveredPayloadFromProvidedData(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *capellaapi.SignedBlindedBeaconBlock, bidTrace *v1.BidTrace, getPayloadResponse *api.VersionedExecutionPayload) error

SaveDeliveredPayloadFromProvidedData db func

func (*DatabaseService) SaveValidatorRegistration

func (s *DatabaseService) SaveValidatorRegistration(ctx context.Context, registration types.SignedValidatorRegistration) error

SaveValidatorRegistration db func

type DeliveredPayloadEntry

type DeliveredPayloadEntry struct {
	ID         int64     `db:"id"`
	InsertedAt time.Time `db:"inserted_at"`

	ExecutionPayloadID       sql.NullInt64  `db:"execution_payload_id"`
	SignedBlindedBeaconBlock sql.NullString `db:"signed_blinded_beacon_block"`

	Slot  uint64 `db:"slot"`
	Epoch uint64 `db:"epoch"`

	BuilderPubkey        string `db:"builder_pubkey"`
	ProposerPubkey       string `db:"proposer_pubkey"`
	ProposerFeeRecipient string `db:"proposer_fee_recipient"`

	ParentHash  string `db:"parent_hash"`
	BlockHash   string `db:"block_hash"`
	BlockNumber uint64 `db:"block_number"`

	GasUsed  uint64 `db:"gas_used"`
	GasLimit uint64 `db:"gas_limit"`

	NumTx int    `db:"num_tx"`
	Value string `db:"value"`
}

DeliveredPayloadEntry structs

type ExecutionPayloadEntry

type ExecutionPayloadEntry struct {
	ID         int64     `db:"id"`
	InsertedAt time.Time `db:"inserted_at"`

	Slot           uint64 `db:"slot"`
	ProposerPubkey string `db:"proposer_pubkey"`
	BlockHash      string `db:"block_hash"`

	Version string `db:"version"`
	Payload string `db:"payload"`
}

ExecutionPayloadEntry structs

type GetBuilderSubmissionsFilters

type GetBuilderSubmissionsFilters struct {
	Slot          uint64
	Limit         uint64
	BlockHash     string
	BlockNumber   uint64
	BuilderPubkey string
}

GetBuilderSubmissionsFilters structs

func (GetBuilderSubmissionsFilters) IsDefault

func (g GetBuilderSubmissionsFilters) IsDefault() bool

type GetPayloadsFilters

type GetPayloadsFilters struct {
	Slot          uint64
	Cursor        uint64
	Limit         uint64
	BlockHash     string
	BlockNumber   uint64
	BuilderPubkey string
}

GetPayloadsFilters structs

type IDatabaseService

type IDatabaseService interface {
	SaveValidatorRegistration(ctx context.Context, registration types.SignedValidatorRegistration) error
	SaveBuilderBlockSubmissionToDB(ctx context.Context, payload *capella.SubmitBlockRequest, simError error, isMostProfitable bool, receivedAt time.Time) (id int64, err error)
	SaveDeliveredPayload(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *types.SignedBlindedBeaconBlock) error
	GetBlockSubmissionEntry(ctx context.Context, slot uint64, proposerPubkey, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)
	GetExecutionPayloadEntryByID(ctx context.Context, executionPayloadID int64) (entry *ExecutionPayloadEntry, err error)
	GetExecutionPayloadEntryBySlotPkHash(ctx context.Context, slot uint64, blockHash string) (entry *ExecutionPayloadEntry, err error)
	GetRecentDeliveredPayloads(filters GetPayloadsFilters) ([]*DeliveredPayloadEntry, error)
	GetNumDeliveredPayloads(ctx context.Context) (uint64, error)
	GetBuilderSubmissions(ctx context.Context, filters GetBuilderSubmissionsFilters) ([]*BuilderBlockSubmissionEntry, error)
	GetBlockSubmissionEntryByHash(ctx context.Context, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)
	SaveDeliveredPayloadFromProvidedData(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *capellaapi.SignedBlindedBeaconBlock, bidTrace *v1.BidTrace, getPayloadResponse *api.VersionedExecutionPayload) error
}

IDatabaseService db

type MockDB

type MockDB struct {
	mock.Mock
}

MockDB struct

func (*MockDB) GetBlockSubmissionEntry

func (db *MockDB) GetBlockSubmissionEntry(ctx context.Context, slot uint64, proposerPubkey, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)

GetBlockSubmissionEntry func

func (*MockDB) GetBlockSubmissionEntryByHash

func (db *MockDB) GetBlockSubmissionEntryByHash(ctx context.Context, blockHash string) (entry *BuilderBlockSubmissionEntry, err error)

GetBlockSubmissionEntryByHash func

func (*MockDB) GetBuilderSubmissions

func (db *MockDB) GetBuilderSubmissions(context context.Context, filters GetBuilderSubmissionsFilters) ([]*BuilderBlockSubmissionEntry, error)

GetBuilderSubmissions func

func (*MockDB) GetExecutionPayloadEntryByID

func (db *MockDB) GetExecutionPayloadEntryByID(ctx context.Context, executionPayloadID int64) (entry *ExecutionPayloadEntry, err error)

GetExecutionPayloadEntryByID func

func (*MockDB) GetExecutionPayloadEntryBySlotPkHash

func (db *MockDB) GetExecutionPayloadEntryBySlotPkHash(ctx context.Context, slot uint64, blockHash string) (entry *ExecutionPayloadEntry, err error)

GetExecutionPayloadEntryBySlotPkHash func

func (*MockDB) GetNumDeliveredPayloads

func (db *MockDB) GetNumDeliveredPayloads(ctx context.Context) (uint64, error)

GetNumDeliveredPayloads func

func (*MockDB) GetRecentDeliveredPayloads

func (db *MockDB) GetRecentDeliveredPayloads(filters GetPayloadsFilters) ([]*DeliveredPayloadEntry, error)

GetRecentDeliveredPayloads func

func (*MockDB) SaveBuilderBlockSubmissionToDB

func (db *MockDB) SaveBuilderBlockSubmissionToDB(ctx context.Context, payload *capella.SubmitBlockRequest, simError error, isMostProfitable bool, receivedAt time.Time) (id int64, err error)

SaveBuilderBlockSubmissionToDB func

func (*MockDB) SaveDeliveredPayload

func (db *MockDB) SaveDeliveredPayload(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *types.SignedBlindedBeaconBlock) error

SaveDeliveredPayload func

func (*MockDB) SaveDeliveredPayloadFromProvidedData

func (db *MockDB) SaveDeliveredPayloadFromProvidedData(slot uint64, proposerPubkey types.PubkeyHex, blockHash types.Hash, signedBlindedBeaconBlock *capellaapi.SignedBlindedBeaconBlock, bidTrace *v1.BidTrace, getPayloadResponse *api.VersionedExecutionPayload) error

SaveDeliveredPayloadFromProvidedData func

func (*MockDB) SaveValidatorRegistration

func (db *MockDB) SaveValidatorRegistration(ctx context.Context, registration types.SignedValidatorRegistration) error

SaveValidatorRegistration func

type ValidatorRegistrationEntry

type ValidatorRegistrationEntry struct {
	ID         int64     `db:"id"`
	InsertedAt time.Time `db:"inserted_at"`

	Pubkey       string `db:"pubkey"`
	FeeRecipient string `db:"fee_recipient"`
	Timestamp    uint64 `db:"timestamp"`
	GasLimit     uint64 `db:"gas_limit"`
	Signature    string `db:"signature"`
}

ValidatorRegistrationEntry structs

Jump to

Keyboard shortcuts

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