relay

package
v0.2.76 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: MIT Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArweaveBlock added in v0.2.40

type ArweaveBlock struct {
	// Arweave Blocks with L1 transactions, parsed from Sequencer's txs
	Message *types.MsgArweaveBlock

	// Corresponding block downloaded from Arweave
	Block *arweave.Block

	// Transactions from the block
	Transactions []*arweave.Transaction

	// L1 interactions parsed from Arweave txs
	Interactions []*model.Interaction
}

type ArweaveParser added in v0.2.40

type ArweaveParser struct {
	*task.Task

	Output chan *Payload
	// contains filtered or unexported fields
}

Parses Arweave transactions into Warp's interactions Passes other payloads through

func NewArweaveParser added in v0.2.40

func NewArweaveParser(config *config.Config) (self *ArweaveParser)

Converts Arweave transactions into Warp's interactions

func (*ArweaveParser) WithInputChannel added in v0.2.40

func (self *ArweaveParser) WithInputChannel(v chan *Payload) *ArweaveParser

func (*ArweaveParser) WithMonitor added in v0.2.40

func (self *ArweaveParser) WithMonitor(monitor monitoring.Monitor) *ArweaveParser

type Controller

type Controller struct {
	*task.Task
}

func NewController

func NewController(config *config.Config) (self *Controller, err error)

type OneBlockDownloader added in v0.2.40

type OneBlockDownloader struct {
	*task.Task

	Output chan *Payload
	// contains filtered or unexported fields
}

Task for filling in the arweave blocks in Payload

func NewOneBlockDownloader added in v0.2.40

func NewOneBlockDownloader(config *config.Config) (self *OneBlockDownloader)

Using Arweave client periodically checks for blocks of transactions

func (*OneBlockDownloader) WithClient added in v0.2.40

func (self *OneBlockDownloader) WithClient(client *arweave.Client) *OneBlockDownloader

func (*OneBlockDownloader) WithInputChannel added in v0.2.40

func (self *OneBlockDownloader) WithInputChannel(v chan *Payload) *OneBlockDownloader

func (*OneBlockDownloader) WithMonitor added in v0.2.40

func (self *OneBlockDownloader) WithMonitor(monitor monitoring.Monitor) *OneBlockDownloader

type Parser added in v0.2.40

type Parser struct {
	*task.Task

	Output chan *Payload
	// contains filtered or unexported fields
}

Parses Sequencer's blocks into payload

func NewParser added in v0.2.40

func NewParser(config *config.Config) (self *Parser)

Converts Arweave transactions into Warp's contracts

func (*Parser) WithInputChannel added in v0.2.40

func (self *Parser) WithInputChannel(v chan *types.Block) *Parser

func (*Parser) WithMonitor added in v0.2.40

func (self *Parser) WithMonitor(monitor monitoring.Monitor) *Parser

type Payload

type Payload struct {
	SequencerBlockHash      bytes.HexBytes
	SequencerBlockHeight    int64
	SequencerBlockTimestamp int64

	// L2 interactions parsed from Sequencer's txs
	Interactions []*model.Interaction

	// Bundle items that will be sent to bundlr.network
	BundleItems []*model.BundleItem

	// Info about Arweave blocks
	ArweaveBlocks []*ArweaveBlock
}

type Source

type Source struct {
	*task.Task

	Output chan *types.Block
	// contains filtered or unexported fields
}

Produces a stream of Sequencer's blocks Blocks are put on the Output channel in order of height It uses Streamer to get new blocks from the Sequencer It uses Sequencer's REST API to download historical or missing blocks Handles gaps in the input stream

func NewSource

func NewSource(config *config.Config) (self *Source)

func (*Source) WithClient

func (self *Source) WithClient(client *rpchttp.HTTP) *Source

func (*Source) WithDB

func (self *Source) WithDB(db *gorm.DB) *Source

func (*Source) WithInputChannel

func (self *Source) WithInputChannel(input <-chan *types.Block) *Source

func (*Source) WithMonitor

func (self *Source) WithMonitor(monitor monitoring.Monitor) *Source

type Store

type Store struct {
	*task.Processor[*Payload, *Payload]

	DB *gorm.DB
	// contains filtered or unexported fields
}

Store handles saving data to the database in na robust way. - groups incoming Interactions into batches, - ensures data isn't stuck even if a batch isn't big enough

func NewStore

func NewStore(config *config.Config) (self *Store)

func (*Store) WithDB

func (self *Store) WithDB(v *gorm.DB) *Store

func (*Store) WithInputChannel

func (self *Store) WithInputChannel(v chan *Payload) *Store

func (*Store) WithIsReplacing added in v0.2.55

func (self *Store) WithIsReplacing(v bool) *Store

func (*Store) WithMonitor

func (self *Store) WithMonitor(v monitoring.Monitor) *Store

type Streamer

type Streamer struct {
	*task.Task

	Output chan *types.Block
	// contains filtered or unexported fields
}

Streams new blocks from the sequencer

func NewStreamer

func NewStreamer(config *config.Config) (self *Streamer)

Maintains a persistent websocket connection to the sequencer Gets new blocks through the websocket

func (*Streamer) Pause

func (self *Streamer) Pause()

func (*Streamer) Resume

func (self *Streamer) Resume()

func (*Streamer) WithClient

func (self *Streamer) WithClient(client *rpchttp.HTTP) *Streamer

func (*Streamer) WithMonitor

func (self *Streamer) WithMonitor(v monitoring.Monitor) *Streamer

type TransactionDownloader added in v0.2.70

type TransactionDownloader struct {
	*task.Task

	Output chan *Payload
	// contains filtered or unexported fields
}

Fills in transactions for a given block

func NewTransactionDownloader added in v0.2.70

func NewTransactionDownloader(config *config.Config) (self *TransactionDownloader)

Using Arweave client periodically checks for blocks of transactions

func (*TransactionDownloader) WithClient added in v0.2.70

func (self *TransactionDownloader) WithClient(client *arweave.Client) *TransactionDownloader

func (*TransactionDownloader) WithInputChannel added in v0.2.70

func (self *TransactionDownloader) WithInputChannel(v chan *Payload) *TransactionDownloader

func (*TransactionDownloader) WithMonitor added in v0.2.70

func (self *TransactionDownloader) WithMonitor(monitor monitoring.Monitor) *TransactionDownloader

Jump to

Keyboard shortcuts

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