indexer

package
v2.0.0-rc.14 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Copyright (c) 2023-2024 Nibi, Inc.

Index

Constants

View Source
const (
	KeyPrefixTxHash  = 1
	KeyPrefixTxIndex = 2

	// TxIndexKeyLength is the length of tx-index key
	TxIndexKeyLength = 1 + 8 + 8
)

Variables

This section is empty.

Functions

func LoadFirstBlock

func LoadFirstBlock(db dbm.DB) (int64, error)

LoadFirstBlock loads the first indexed block, returns -1 if db is empty

func LoadLastBlock

func LoadLastBlock(db dbm.DB) (int64, error)

LoadLastBlock returns the latest indexed block number, returns -1 if db is empty

func TxHashKey

func TxHashKey(hash common.Hash) []byte

TxHashKey returns the key for db entry: `tx hash -> tx result struct`

func TxIndexKey

func TxIndexKey(blockNumber int64, txIndex int32) []byte

TxIndexKey returns the key for db entry: `(block number, tx index) -> tx hash`

Types

type EVMTxIndexer

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

EVMTxIndexer implements a eth tx indexer on a KV db.

func NewEVMTxIndexer

func NewEVMTxIndexer(db dbm.DB, logger log.Logger, clientCtx client.Context) *EVMTxIndexer

NewEVMTxIndexer creates the EVMTxIndexer

func (*EVMTxIndexer) CloseDBAndExit

func (indexer *EVMTxIndexer) CloseDBAndExit() error

CloseDBAndExit should be called upon stopping the indexer

func (*EVMTxIndexer) FirstIndexedBlock

func (indexer *EVMTxIndexer) FirstIndexedBlock() (int64, error)

FirstIndexedBlock returns the first indexed block number, returns -1 if db is empty

func (*EVMTxIndexer) GetByBlockAndIndex

func (indexer *EVMTxIndexer) GetByBlockAndIndex(blockNumber int64, txIndex int32) (*eth.TxResult, error)

GetByBlockAndIndex finds eth tx by block number and eth tx index

func (*EVMTxIndexer) GetByTxHash

func (indexer *EVMTxIndexer) GetByTxHash(hash common.Hash) (*eth.TxResult, error)

GetByTxHash finds eth tx by eth tx hash

func (*EVMTxIndexer) IndexBlock

func (indexer *EVMTxIndexer) IndexBlock(block *tmtypes.Block, txResults []*abci.ResponseDeliverTx) error

IndexBlock index all the eth txs in a block through the following steps: - Iterates over all the Txs in Block - Parses eth Tx infos from cosmos-sdk events for every TxResult - Iterates over all the messages of the Tx - Builds and stores indexer.TxResult based on parsed events for every message

func (*EVMTxIndexer) LastIndexedBlock

func (indexer *EVMTxIndexer) LastIndexedBlock() (int64, error)

LastIndexedBlock returns the latest indexed block number, returns -1 if db is empty

Jump to

Keyboard shortcuts

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