relay

package
v0.2.40 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2023 License: MIT Imports: 29 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
}

type ArweaveParser added in v0.2.40

type ArweaveParser struct {
	*task.Task

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

Gets contract's source and init state

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) WithBackoff added in v0.2.40

func (self *OneBlockDownloader) WithBackoff(maxElapsedTime, maxInterval time.Duration) *OneBlockDownloader

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      string
	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 It uses Streamer to get new blocks from the Sequencer It uses Sequencer's REST API for downloading historical blocks Downloads historical blocks in case there's a gap in the 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) 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 TransactionOrchestrator added in v0.2.40

type TransactionOrchestrator struct {
	*task.Task

	Output chan *Payload

	TransactionOutput chan *arweave.Block
	// contains filtered or unexported fields
}

Task that saves transactions to the payload It reuses listener.TransactionOrchestrator

func NewTransactionOrchestrator added in v0.2.40

func NewTransactionOrchestrator(config *config.Config) (self *TransactionOrchestrator)

Using Arweave client periodically checks for blocks of transactions

func (*TransactionOrchestrator) WithInputChannel added in v0.2.40

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

func (*TransactionOrchestrator) WithTransactionInput added in v0.2.40

func (self *TransactionOrchestrator) WithTransactionInput(v chan *listener.Payload) *TransactionOrchestrator

Jump to

Keyboard shortcuts

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