txlayout

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package txlayout is a frozen copy of the transaction layout logic that was originally defined as core.TransactionLayout, introduced in https://github.com/NethermindEth/juno/pull/3304.

Juno now exclusively uses a combined layout to store transactions and receipts in the database. The original TransactionLayout type was removed from core, but migrations and tests still need to read and write data in both the old (per-transaction) and new (combined) layouts.

This package preserves that capability for use by migration code and tests. It should NOT be used by any new production code paths.

Index

Constants

This section is empty.

Variables

View Source
var ErrUnknownTransactionLayout = errors.New("unknown transaction layout")

Functions

This section is empty.

Types

type TransactionLayout

type TransactionLayout int
const (
	// TransactionLayoutPerTx stores each transaction and receipt in separate DB entries
	TransactionLayoutPerTx TransactionLayout = iota
	// TransactionLayoutCombined stores all transactions and receipts per block in a single entry
	TransactionLayoutCombined
)

func (TransactionLayout) BlockByNumber

func (l TransactionLayout) BlockByNumber(
	r db.KeyValueReader,
	blockNum uint64,
) (*core.Block, error)

BlockByNumber returns a full block by number

func (TransactionLayout) DeleteTxsAndReceipts

func (l TransactionLayout) DeleteTxsAndReceipts(
	reader db.KeyValueReader,
	writer db.Batch,
	blockNum uint64,
) error

DeleteTxsAndReceipts deletes all transactions and receipts for a block

func (TransactionLayout) ReceiptByBlockAndIndex

func (l TransactionLayout) ReceiptByBlockAndIndex(
	r db.KeyValueReader,
	blockNumber uint64,
	index uint64,
) (*core.TransactionReceipt, error)

ReceiptByBlockAndIndex returns a receipt by block number and transaction index

func (TransactionLayout) ReceiptsByBlockNumber

func (l TransactionLayout) ReceiptsByBlockNumber(
	r db.KeyValueReader,
	blockNum uint64,
) ([]*core.TransactionReceipt, error)

ReceiptsByBlockNumber returns all receipts in a given block

func (TransactionLayout) TransactionByBlockAndIndex

func (l TransactionLayout) TransactionByBlockAndIndex(
	r db.KeyValueReader,
	blockNumber uint64,
	index uint64,
) (core.Transaction, error)

TransactionByBlockAndIndex returns a transaction by block number and index

func (TransactionLayout) TransactionByHash

func (l TransactionLayout) TransactionByHash(
	r db.KeyValueReader,
	hash *felt.TransactionHash,
) (core.Transaction, error)

TransactionByHash returns a transaction by its hash

func (TransactionLayout) TransactionsByBlockNumber

func (l TransactionLayout) TransactionsByBlockNumber(
	r db.KeyValueReader,
	blockNum uint64,
) ([]core.Transaction, error)

TransactionsByBlockNumber returns all transactions in a given block

func (TransactionLayout) TransactionsByBlockNumberIter

func (l TransactionLayout) TransactionsByBlockNumberIter(
	r db.KeyValueReader,
	blockNum uint64,
) iter.Seq2[core.Transaction, error]

TransactionsByBlockNumberIter returns an iterator over all transactions in a given block

func (TransactionLayout) WriteTransactionsAndReceipts

func (l TransactionLayout) WriteTransactionsAndReceipts(
	w db.KeyValueWriter,
	blockNumber uint64,
	transactions []core.Transaction,
	receipts []*core.TransactionReceipt,
) error

WriteTransactionsAndReceipts writes transactions and receipts for a block

Jump to

Keyboard shortcuts

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