synchronizernode

package
v0.0.0-...-1fc73c6 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2025 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULT_DELAY = 3 * time.Second
View Source
const DefaultBatchSize = 50
View Source
const LIMIT = uint64(50)
View Source
const OUTPUT_ORDER_BY = `
	ORDER BY o.created_at ASC, o.index ASC, o.input_epoch_application_id ASC
`

Variables

This section is empty.

Functions

func FormatTransactionId

func FormatTransactionId(txId []byte) string

nolint

func NewSynchronizerCreateWorker

func NewSynchronizerCreateWorker(
	inputRepository *repository.InputRepository,
	inputRefRepository *repository.RawInputRefRepository,
	dbRawUrl string,
	rawRepository *RawRepository,
	synchronizerUpdate *SynchronizerUpdate,
	decoder *decoder.OutputDecoder,
	synchronizerReport *SynchronizerReport,
	synchronizerOutputUpdate *SynchronizerOutputUpdate,
	outputRefRepository *repository.RawOutputRefRepository,
	synchronizerOutputCreate *SynchronizerOutputCreate,
	synchronizerCreateInput *SynchronizerInputCreator,
	synchronizerOutputExecuted *SynchronizerOutputExecuted,
) supervisor.Worker

Types

type AbiDecoder

type AbiDecoder struct {
	// contains filtered or unexported fields
}

func NewAbiDecoder

func NewAbiDecoder(abi *abi.ABI) *AbiDecoder

func (AbiDecoder) GetMapRaw

func (s AbiDecoder) GetMapRaw(rawData []byte) (map[string]any, error)

type FilterID

type FilterID struct {
	IDgt uint64
}

type FilterInput

type FilterInput struct {
	AppID         uint64
	InputIndexGte uint64
	IDgt          uint64
	IsStatusNone  bool
	Status        string
}

type FilterOutput

type FilterOutput struct {
	IDgt                uint64
	HaveTransactionHash bool
}

type Output

type Output struct {
	Index                uint64    `db:"index"`
	InputIndex           uint64    `db:"input_index"`
	RawData              []byte    `db:"raw_data"`
	Hash                 []byte    `db:"hash,omitempty"`
	OutputHashesSiblings []byte    `db:"output_hashes_siblings,omitempty"`
	TransactionHash      []byte    `db:"execution_transaction_hash,omitempty"`
	CreatedAt            time.Time `db:"created_at"`
	UpdatedAt            time.Time `db:"updated_at"`
	ApplicationId        uint64    `db:"input_epoch_application_id"`
	AppContract          []byte    `db:"app_contract"`
}

type Pagination

type Pagination struct {
	Limit uint64
}

type RawInput

type RawInput struct {
	Index              uint64    `db:"index"` // numeric(20,0)
	RawData            []byte    `db:"raw_data"`
	BlockNumber        uint64    `db:"block_number"` // numeric(20,0)
	Status             string    `db:"status"`
	MachineHash        []byte    `db:"machine_hash,omitempty"`
	OutputsHash        []byte    `db:"outputs_hash,omitempty"`
	EpochIndex         uint64    `db:"epoch_index"`
	ApplicationId      int       `db:"epoch_application_id"`
	TransactionRef     []byte    `db:"transaction_reference,omitempty"`
	CreatedAt          time.Time `db:"created_at"`
	UpdatedAt          time.Time `db:"updated_at"`
	SnapshotURI        []byte    `db:"snapshot_uri,omitempty"`
	ApplicationAddress []byte    `db:"application_address"`
}

type RawInputAppAddress

type RawInputAppAddress struct {
	Address []byte `db:"iapplication_address"`
}

type RawReport

type RawReport struct {
	Index         uint64 `db:"index"`
	InputIndex    uint64 `db:"input_index"`
	ApplicationId int    `db:"input_epoch_application_id"`
	RawData       []byte `db:"raw_data"`
	AppContract   []byte `db:"app_contract"`
}

type RawRepository

type RawRepository struct {
	Db *sqlx.DB
	// contains filtered or unexported fields
}

func NewRawRepository

func NewRawRepository(connectionURL string, db *sqlx.DB) *RawRepository

func (*RawRepository) FindAllInputsGtRef

func (s *RawRepository) FindAllInputsGtRef(ctx context.Context, inputRef *repository.RawInputRef) ([]RawInput, error)

func (*RawRepository) FindAllOutputsExecutedAfter

func (s *RawRepository) FindAllOutputsExecutedAfter(ctx context.Context, outputRef *repository.RawOutputRef) ([]Output, error)

func (*RawRepository) FindAllOutputsGtRefLimited

func (s *RawRepository) FindAllOutputsGtRefLimited(ctx context.Context, outputRef *repository.RawOutputRef) ([]Output, error)

func (*RawRepository) FindAllOutputsWithProofGte

func (s *RawRepository) FindAllOutputsWithProofGte(ctx context.Context, filter *repository.RawOutputRef) ([]Output, error)

func (*RawRepository) FindAllRawInputs

func (s *RawRepository) FindAllRawInputs(ctx context.Context) ([]RawInput, error)

func (*RawRepository) FindAllReportsGt

func (s *RawRepository) FindAllReportsGt(ctx context.Context, ourReport *model.FastReport) ([]RawReport, error)

func (*RawRepository) FindInputByOutput

func (s *RawRepository) FindInputByOutput(ctx context.Context, filter FilterID) (*RawInput, error)

func (*RawRepository) First50RawInputsGteRefWithStatus

func (s *RawRepository) First50RawInputsGteRefWithStatus(ctx context.Context, inputRef repository.RawInputRef, status string) ([]RawInput, error)

type RosettaStatusRef

type RosettaStatusRef struct {
	RawStatus string
	Status    model.CompletionStatus
}

func GetStatusRosetta

func GetStatusRosetta() []RosettaStatusRef

type SynchronizerCreateWorker

type SynchronizerCreateWorker struct {
	SynchronizerReport         *SynchronizerReport
	DbRawUrl                   string
	RawRepository              *RawRepository
	SynchronizerUpdate         *SynchronizerUpdate
	Decoder                    *decoder.OutputDecoder
	SynchronizerOutputUpdate   *SynchronizerOutputUpdate
	SynchronizerOutputCreate   *SynchronizerOutputCreate
	SynchronizerCreateInput    *SynchronizerInputCreator
	SynchronizerOutputExecuted *SynchronizerOutputExecuted
	// contains filtered or unexported fields
}

func (SynchronizerCreateWorker) Start

func (s SynchronizerCreateWorker) Start(ctx context.Context, ready chan<- struct{}) error

Start implements supervisor.Worker.

func (SynchronizerCreateWorker) String

func (s SynchronizerCreateWorker) String() string

String implements supervisor.Worker.

func (SynchronizerCreateWorker) WatchNewInputs

func (s SynchronizerCreateWorker) WatchNewInputs(stdCtx context.Context) error

type SynchronizerInputCreator

type SynchronizerInputCreator struct {
	InputRepository       *repository.InputRepository
	RawInputRefRepository *repository.RawInputRefRepository
	RawNodeV2Repository   *RawRepository
	AbiDecoder            *AbiDecoder
}

func NewSynchronizerInputCreator

func NewSynchronizerInputCreator(
	inputRepository *repository.InputRepository,
	rawInputRefRepository *repository.RawInputRefRepository,
	rawRepository *RawRepository,
	abiDecoder *AbiDecoder,
) *SynchronizerInputCreator

func (*SynchronizerInputCreator) CreateInput

func (s *SynchronizerInputCreator) CreateInput(ctx context.Context, rawInput RawInput) error

func (*SynchronizerInputCreator) GetAdvanceInputFromMap

func (s *SynchronizerInputCreator) GetAdvanceInputFromMap(rawInput RawInput) (*model.AdvanceInput, error)

func (SynchronizerInputCreator) SyncInputs

func (s SynchronizerInputCreator) SyncInputs(ctx context.Context) error

type SynchronizerOutputCreate

type SynchronizerOutputCreate struct {
	VoucherRepository      *repository.VoucherRepository
	NoticeRepository       *repository.NoticeRepository
	RawNodeV2Repository    *RawRepository
	RawOutputRefRepository *repository.RawOutputRefRepository
	AbiDecoder             *AbiDecoder
}

func NewSynchronizerOutputCreate

func NewSynchronizerOutputCreate(
	voucherRepository *repository.VoucherRepository,
	noticeRepository *repository.NoticeRepository,
	rawRepository *RawRepository,
	rawOutputRefRepository *repository.RawOutputRefRepository,
	abiDecoder *AbiDecoder,
) *SynchronizerOutputCreate

func (*SynchronizerOutputCreate) CreateOutput

func (s *SynchronizerOutputCreate) CreateOutput(ctx context.Context, rawOutputRef *repository.RawOutputRef, rawOutput Output) error

func (*SynchronizerOutputCreate) SyncOutputs

func (s *SynchronizerOutputCreate) SyncOutputs(ctx context.Context) error

func (*SynchronizerOutputCreate) ToConvenienceNotice

func (s *SynchronizerOutputCreate) ToConvenienceNotice(rawOutput Output) (*model.ConvenienceNotice, error)

func (*SynchronizerOutputCreate) ToConvenienceVoucher

func (s *SynchronizerOutputCreate) ToConvenienceVoucher(rawOutput Output) (*model.ConvenienceVoucher, error)

func (*SynchronizerOutputCreate) ToRawOutputRef

func (s *SynchronizerOutputCreate) ToRawOutputRef(rawOutput Output) (*repository.RawOutputRef, error)

type SynchronizerOutputExecuted

type SynchronizerOutputExecuted struct {
	VoucherRepository      *repository.VoucherRepository
	NoticeRepository       *repository.NoticeRepository
	RawNodeV2Repository    *RawRepository
	RawOutputRefRepository *repository.RawOutputRefRepository
}

func NewSynchronizerOutputExecuted

func NewSynchronizerOutputExecuted(
	voucherRepository *repository.VoucherRepository,
	noticeRepository *repository.NoticeRepository,
	rawRepository *RawRepository,
	rawOutputRefRepository *repository.RawOutputRefRepository,
) *SynchronizerOutputExecuted

func (*SynchronizerOutputExecuted) SyncOutputsExecution

func (s *SynchronizerOutputExecuted) SyncOutputsExecution(ctx context.Context) error

func (*SynchronizerOutputExecuted) UpdateExecutionData

func (s *SynchronizerOutputExecuted) UpdateExecutionData(
	ctx context.Context,
	rawOutput Output,
) error

type SynchronizerOutputUpdate

type SynchronizerOutputUpdate struct {
	VoucherRepository      *repository.VoucherRepository
	NoticeRepository       *repository.NoticeRepository
	RawNodeV2Repository    *RawRepository
	RawOutputRefRepository *repository.RawOutputRefRepository
}

func NewSynchronizerOutputUpdate

func NewSynchronizerOutputUpdate(
	voucherRepository *repository.VoucherRepository,
	noticeRepository *repository.NoticeRepository,
	rawRepository *RawRepository,
	rawOutputRefRepository *repository.RawOutputRefRepository,
) *SynchronizerOutputUpdate

func (*SynchronizerOutputUpdate) SetTopPriority

func (s *SynchronizerOutputUpdate) SetTopPriority(
	ctx context.Context,
	rawOutput Output,
) error

func (*SynchronizerOutputUpdate) SyncOutputsProofs

func (s *SynchronizerOutputUpdate) SyncOutputsProofs(ctx context.Context) error

func (*SynchronizerOutputUpdate) UpdateProof

func (s *SynchronizerOutputUpdate) UpdateProof(
	ctx context.Context,
	rawOutput Output,
	hashes []string,
) error

type SynchronizerReport

type SynchronizerReport struct {
	ReportRepository *repository.ReportRepository
	RawRepository    *RawRepository
}

func NewSynchronizerReport

func NewSynchronizerReport(
	reportRepository *repository.ReportRepository,
	rawRepository *RawRepository,
) *SynchronizerReport

func (*SynchronizerReport) SyncReports

func (s *SynchronizerReport) SyncReports(ctx context.Context) error

type SynchronizerUpdate

type SynchronizerUpdate struct {
	DbRawUrl              string
	RawNodeRepository     *RawRepository
	RawInputRefRepository *repository.RawInputRefRepository
	InputRepository       *repository.InputRepository
	BatchSize             int
}

func NewSynchronizerUpdate

func NewSynchronizerUpdate(
	rawInputRefRepository *repository.RawInputRefRepository,
	rawNode *RawRepository,
	inputRepository *repository.InputRepository,
) SynchronizerUpdate

func (*SynchronizerUpdate) SyncInputStatus

func (s *SynchronizerUpdate) SyncInputStatus(ctx context.Context) error

Jump to

Keyboard shortcuts

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