sidechain

package
v0.0.0-...-fc775d1 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ProtocolRouter

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

ProtocolRouter handles protocol-based transaction routing

func NewProtocolRouter

func NewProtocolRouter() *ProtocolRouter

NewProtocolRouter creates a new protocol router

func (*ProtocolRouter) GetLastRollup

func (pr *ProtocolRouter) GetLastRollup() map[string]time.Time

GetLastRollup returns the last rollup time for each protocol

func (*ProtocolRouter) GetQueueStatus

func (pr *ProtocolRouter) GetQueueStatus() map[string]int

GetQueueStatus returns the current queue status

func (*ProtocolRouter) GetStats

func (pr *ProtocolRouter) GetStats() *RouterStats

GetStats returns router statistics

func (*ProtocolRouter) GetValidatedTransactions

func (pr *ProtocolRouter) GetValidatedTransactions(protocol string) []*ProtocolTransaction

GetValidatedTransactions returns validated transactions for a specific protocol

func (*ProtocolRouter) RouteTransaction

func (pr *ProtocolRouter) RouteTransaction(
	protocol string,
	data []byte,
	sender string,
	recipient string,
) (*ProtocolTransaction, error)

RouteTransaction routes a transaction to the appropriate protocol

func (*ProtocolRouter) SetCallbacks

func (pr *ProtocolRouter) SetCallbacks(
	onValidated func(*ProtocolTransaction) error,
	onFailed func(*ProtocolTransaction, string) error,
	onRollup func(*RollupBlock) error,
)

SetCallbacks sets the callback functions

type ProtocolTransaction

type ProtocolTransaction struct {
	ID           string            `json:"id"`
	Protocol     string            `json:"protocol"` // "BANK" or "MESSAGE"
	Data         []byte            `json:"data"`
	Status       TransactionStatus `json:"status"`
	CreatedAt    time.Time         `json:"created_at"`
	ValidatedAt  *time.Time        `json:"validated_at,omitempty"`
	FailedAt     *time.Time        `json:"failed_at,omitempty"`
	ErrorMessage string            `json:"error_message,omitempty"`
	Sender       string            `json:"sender"`
	Recipient    string            `json:"recipient"`
}

ProtocolTransaction represents a transaction routed to a specific protocol

type RollupBlock

type RollupBlock struct {
	ID           string                 `json:"id"`
	Protocol     string                 `json:"protocol"`
	Transactions []*ProtocolTransaction `json:"transactions"`
	MerkleRoot   string                 `json:"merkle_root"`
	CreatedAt    time.Time              `json:"created_at"`
	BlockNumber  int                    `json:"block_number"`
}

RollupBlock represents a rollup block containing validated transactions

type RouterStats

type RouterStats struct {
	TotalTransactions     int64 `json:"total_transactions"`
	ValidatedTransactions int64 `json:"validated_transactions"`
	FailedTransactions    int64 `json:"failed_transactions"`
	RollupBlocksCreated   int64 `json:"rollup_blocks_created"`

	BankTransactions    int64 `json:"bank_transactions"`
	MessageTransactions int64 `json:"message_transactions"`

	AverageValidationTime time.Duration `json:"average_validation_time"`
	AverageRollupTime     time.Duration `json:"average_rollup_time"`
	// contains filtered or unexported fields
}

RouterStats holds router statistics

type TransactionStatus

type TransactionStatus string

TransactionStatus represents the status of a transaction

const (
	StatusPending   TransactionStatus = "pending"
	StatusValidated TransactionStatus = "validated"
	StatusFailed    TransactionStatus = "failed"
	StatusRolledUp  TransactionStatus = "rolled_up"
)

Jump to

Keyboard shortcuts

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