polygon

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_blockchain_polygon_polygon_index_types_proto protoreflect.FileDescriptor

Functions

func ToEntireBlocksBatchFromLogProto

func ToEntireBlocksBatchFromLogProto(obj *PolygonBlocksBatch) *seer_common.BlocksBatchJson

func ToEvenFromLogProto

func ToEvenFromLogProto(obj *PolygonEventLog) *seer_common.EventJson

Types

type Client

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

func NewClient

func NewClient(url string, timeout int) (*Client, error)

func (*Client) BlockByHash

func (c *Client) BlockByHash(ctx context.Context, hash common.Hash) (*seer_common.BlockJson, error)

BlockByHash returns the block with the given hash.

func (*Client) ChainType

func (c *Client) ChainType() string

ChainType returns the chain type.

func (*Client) ClientFilterLogs

func (c *Client) ClientFilterLogs(ctx context.Context, q ethereum.FilterQuery, debug bool) ([]*seer_common.EventJson, error)

func (*Client) Close

func (c *Client) Close()

Close closes the underlying RPC client.

func (*Client) DecodeProtoBlocks

func (c *Client) DecodeProtoBlocks(data []string) ([]*PolygonBlock, error)

func (*Client) DecodeProtoEntireBlockToJson

func (c *Client) DecodeProtoEntireBlockToJson(rawData *bytes.Buffer) (*seer_common.BlocksBatchJson, error)

func (*Client) DecodeProtoEntireBlockToLabels

func (c *Client) DecodeProtoEntireBlockToLabels(rawData *bytes.Buffer, abiMap map[string]map[string]*indexer.AbiEntry, threads int) ([]indexer.EventLabel, []indexer.TransactionLabel, error)

func (*Client) DecodeProtoEventLogs

func (c *Client) DecodeProtoEventLogs(data []string) ([]*PolygonEventLog, error)

func (*Client) DecodeProtoTransactions

func (c *Client) DecodeProtoTransactions(data []string) ([]*PolygonTransaction, error)

func (*Client) DecodeProtoTransactionsToLabels

func (c *Client) DecodeProtoTransactionsToLabels(transactions []string, blocksCache map[uint64]uint64, abiMap map[string]map[string]*indexer.AbiEntry) ([]indexer.TransactionLabel, error)

func (*Client) FetchAsProtoBlocksWithEvents

func (c *Client) FetchAsProtoBlocksWithEvents(from, to *big.Int, debug bool, maxRequests int) ([]proto.Message, []indexer.BlockIndex, uint64, error)

func (*Client) FetchBlocksInRange

func (c *Client) FetchBlocksInRange(from, to *big.Int, debug bool) ([]*seer_common.BlockJson, error)

FetchBlocksInRange fetches blocks within a specified range. This could be useful for batch processing or analysis.

func (*Client) FetchBlocksInRangeAsync

func (c *Client) FetchBlocksInRangeAsync(from, to *big.Int, debug bool, maxRequests int) ([]*seer_common.BlockJson, error)

FetchBlocksInRangeAsync fetches blocks within a specified range concurrently.

func (*Client) GetBlockByNumber

func (c *Client) GetBlockByNumber(ctx context.Context, number *big.Int, withTransactions bool) (*seer_common.BlockJson, error)

GetBlockByNumber returns the block with the given number.

func (*Client) GetCode added in v0.1.22

func (c *Client) GetCode(ctx context.Context, address common.Address, blockNumber uint64) ([]byte, error)

Get bytecode of a contract by address.

func (*Client) GetEventsLabels added in v0.1.22

func (c *Client) GetEventsLabels(startBlock uint64, endBlock uint64, abiMap map[string]map[string]*indexer.AbiEntry, blocksCache map[uint64]seer_common.BlockWithTransactions) ([]indexer.EventLabel, error)

func (*Client) GetLatestBlockNumber

func (c *Client) GetLatestBlockNumber() (*big.Int, error)

GetLatestBlockNumber returns the latest block number.

func (*Client) GetTransactionByHash added in v0.1.22

func (c *Client) GetTransactionByHash(ctx context.Context, hash string) (*seer_common.TransactionJson, error)

func (*Client) GetTransactionsLabels added in v0.1.22

func (c *Client) GetTransactionsLabels(startBlock uint64, endBlock uint64, abiMap map[string]map[string]*indexer.AbiEntry, threads int) ([]indexer.TransactionLabel, map[uint64]seer_common.BlockWithTransactions, error)

func (*Client) ParseBlocksWithTransactions

func (c *Client) ParseBlocksWithTransactions(from, to *big.Int, debug bool, maxRequests int) ([]*PolygonBlock, error)

ParseBlocksWithTransactions parses blocks and their transactions into custom data structure. This method showcases how to handle and transform detailed block and transaction data.

func (*Client) ParseEvents

func (c *Client) ParseEvents(from, to *big.Int, blocksCache map[uint64]indexer.BlockCache, debug bool) ([]*PolygonEventLog, error)

func (*Client) ProcessBlocksToBatch

func (c *Client) ProcessBlocksToBatch(msgs []proto.Message) (proto.Message, error)

func (*Client) TransactionReceipt

func (c *Client) TransactionReceipt(ctx context.Context, hash common.Hash) (*types.Receipt, error)

TransactionReceipt returns the receipt of a transaction by transaction hash.

type PolygonBlock

type PolygonBlock struct {
	BlockNumber      uint64                `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	Difficulty       uint64                `protobuf:"varint,2,opt,name=difficulty,proto3" json:"difficulty,omitempty"`
	ExtraData        string                `protobuf:"bytes,3,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"`
	GasLimit         uint64                `protobuf:"varint,4,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"`
	GasUsed          uint64                `protobuf:"varint,5,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
	BaseFeePerGas    string                `protobuf:"bytes,6,opt,name=base_fee_per_gas,json=baseFeePerGas,proto3" json:"base_fee_per_gas,omitempty"` // using string to handle big numeric values
	Hash             string                `protobuf:"bytes,7,opt,name=hash,proto3" json:"hash,omitempty"`
	LogsBloom        string                `protobuf:"bytes,8,opt,name=logs_bloom,json=logsBloom,proto3" json:"logs_bloom,omitempty"`
	Miner            string                `protobuf:"bytes,9,opt,name=miner,proto3" json:"miner,omitempty"`
	Nonce            string                `protobuf:"bytes,10,opt,name=nonce,proto3" json:"nonce,omitempty"`
	ParentHash       string                `protobuf:"bytes,11,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
	ReceiptsRoot     string                `protobuf:"bytes,12,opt,name=receipts_root,json=receiptsRoot,proto3" json:"receipts_root,omitempty"`
	Sha3Uncles       string                `protobuf:"bytes,13,opt,name=sha3_uncles,json=sha3Uncles,proto3" json:"sha3_uncles,omitempty"`
	Size             uint64                `protobuf:"varint,14,opt,name=size,proto3" json:"size,omitempty"`
	StateRoot        string                `protobuf:"bytes,15,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"`
	Timestamp        uint64                `protobuf:"varint,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	TotalDifficulty  string                `protobuf:"bytes,17,opt,name=total_difficulty,json=totalDifficulty,proto3" json:"total_difficulty,omitempty"`
	TransactionsRoot string                `protobuf:"bytes,18,opt,name=transactions_root,json=transactionsRoot,proto3" json:"transactions_root,omitempty"`
	IndexedAt        uint64                `protobuf:"varint,19,opt,name=indexed_at,json=indexedAt,proto3" json:"indexed_at,omitempty"` // using uint64 to represent timestamp
	Transactions     []*PolygonTransaction `protobuf:"bytes,20,rep,name=transactions,proto3" json:"transactions,omitempty"`
	// contains filtered or unexported fields
}

Represents a single blockchain block

func ToProtoSingleBlock

func ToProtoSingleBlock(obj *seer_common.BlockJson) *PolygonBlock

func (*PolygonBlock) Descriptor deprecated

func (*PolygonBlock) Descriptor() ([]byte, []int)

Deprecated: Use PolygonBlock.ProtoReflect.Descriptor instead.

func (*PolygonBlock) GetBaseFeePerGas

func (x *PolygonBlock) GetBaseFeePerGas() string

func (*PolygonBlock) GetBlockNumber

func (x *PolygonBlock) GetBlockNumber() uint64

func (*PolygonBlock) GetDifficulty

func (x *PolygonBlock) GetDifficulty() uint64

func (*PolygonBlock) GetExtraData

func (x *PolygonBlock) GetExtraData() string

func (*PolygonBlock) GetGasLimit

func (x *PolygonBlock) GetGasLimit() uint64

func (*PolygonBlock) GetGasUsed

func (x *PolygonBlock) GetGasUsed() uint64

func (*PolygonBlock) GetHash

func (x *PolygonBlock) GetHash() string

func (*PolygonBlock) GetIndexedAt

func (x *PolygonBlock) GetIndexedAt() uint64

func (*PolygonBlock) GetLogsBloom

func (x *PolygonBlock) GetLogsBloom() string

func (*PolygonBlock) GetMiner

func (x *PolygonBlock) GetMiner() string

func (*PolygonBlock) GetNonce

func (x *PolygonBlock) GetNonce() string

func (*PolygonBlock) GetParentHash

func (x *PolygonBlock) GetParentHash() string

func (*PolygonBlock) GetReceiptsRoot

func (x *PolygonBlock) GetReceiptsRoot() string

func (*PolygonBlock) GetSha3Uncles

func (x *PolygonBlock) GetSha3Uncles() string

func (*PolygonBlock) GetSize

func (x *PolygonBlock) GetSize() uint64

func (*PolygonBlock) GetStateRoot

func (x *PolygonBlock) GetStateRoot() string

func (*PolygonBlock) GetTimestamp

func (x *PolygonBlock) GetTimestamp() uint64

func (*PolygonBlock) GetTotalDifficulty

func (x *PolygonBlock) GetTotalDifficulty() string

func (*PolygonBlock) GetTransactions

func (x *PolygonBlock) GetTransactions() []*PolygonTransaction

func (*PolygonBlock) GetTransactionsRoot

func (x *PolygonBlock) GetTransactionsRoot() string

func (*PolygonBlock) ProtoMessage

func (*PolygonBlock) ProtoMessage()

func (*PolygonBlock) ProtoReflect

func (x *PolygonBlock) ProtoReflect() protoreflect.Message

func (*PolygonBlock) Reset

func (x *PolygonBlock) Reset()

func (*PolygonBlock) String

func (x *PolygonBlock) String() string

type PolygonBlocksBatch

type PolygonBlocksBatch struct {
	Blocks      []*PolygonBlock `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	SeerVersion string          `protobuf:"bytes,2,opt,name=seer_version,json=seerVersion,proto3" json:"seer_version,omitempty"`
	// contains filtered or unexported fields
}

func (*PolygonBlocksBatch) Descriptor deprecated

func (*PolygonBlocksBatch) Descriptor() ([]byte, []int)

Deprecated: Use PolygonBlocksBatch.ProtoReflect.Descriptor instead.

func (*PolygonBlocksBatch) GetBlocks

func (x *PolygonBlocksBatch) GetBlocks() []*PolygonBlock

func (*PolygonBlocksBatch) GetSeerVersion added in v0.1.15

func (x *PolygonBlocksBatch) GetSeerVersion() string

func (*PolygonBlocksBatch) ProtoMessage

func (*PolygonBlocksBatch) ProtoMessage()

func (*PolygonBlocksBatch) ProtoReflect

func (x *PolygonBlocksBatch) ProtoReflect() protoreflect.Message

func (*PolygonBlocksBatch) Reset

func (x *PolygonBlocksBatch) Reset()

func (*PolygonBlocksBatch) String

func (x *PolygonBlocksBatch) String() string

type PolygonEventLog

type PolygonEventLog struct {
	Address          string   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`                                            // The address of the contract that generated the log
	Topics           []string `protobuf:"bytes,2,rep,name=topics,proto3" json:"topics,omitempty"`                                              // Topics are indexed parameters during log generation
	Data             string   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`                                                  // The data field from the log
	BlockNumber      uint64   `protobuf:"varint,4,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`                // The block number where this log was in
	TransactionHash  string   `protobuf:"bytes,5,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"`     // The hash of the transaction that generated this log
	BlockHash        string   `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`                       // The hash of the block where this log was in
	Removed          bool     `protobuf:"varint,7,opt,name=removed,proto3" json:"removed,omitempty"`                                           // True if the log was reverted due to a chain reorganization
	LogIndex         uint64   `protobuf:"varint,8,opt,name=log_index,json=logIndex,proto3" json:"log_index,omitempty"`                         // The index of the log in the block
	TransactionIndex uint64   `protobuf:"varint,9,opt,name=transaction_index,json=transactionIndex,proto3" json:"transaction_index,omitempty"` // The index of the transaction in the block
	// contains filtered or unexported fields
}

func ToProtoSingleEventLog

func ToProtoSingleEventLog(obj *seer_common.EventJson) *PolygonEventLog

func (*PolygonEventLog) Descriptor deprecated

func (*PolygonEventLog) Descriptor() ([]byte, []int)

Deprecated: Use PolygonEventLog.ProtoReflect.Descriptor instead.

func (*PolygonEventLog) GetAddress

func (x *PolygonEventLog) GetAddress() string

func (*PolygonEventLog) GetBlockHash

func (x *PolygonEventLog) GetBlockHash() string

func (*PolygonEventLog) GetBlockNumber

func (x *PolygonEventLog) GetBlockNumber() uint64

func (*PolygonEventLog) GetData

func (x *PolygonEventLog) GetData() string

func (*PolygonEventLog) GetLogIndex

func (x *PolygonEventLog) GetLogIndex() uint64

func (*PolygonEventLog) GetRemoved

func (x *PolygonEventLog) GetRemoved() bool

func (*PolygonEventLog) GetTopics

func (x *PolygonEventLog) GetTopics() []string

func (*PolygonEventLog) GetTransactionHash

func (x *PolygonEventLog) GetTransactionHash() string

func (*PolygonEventLog) GetTransactionIndex

func (x *PolygonEventLog) GetTransactionIndex() uint64

func (*PolygonEventLog) ProtoMessage

func (*PolygonEventLog) ProtoMessage()

func (*PolygonEventLog) ProtoReflect

func (x *PolygonEventLog) ProtoReflect() protoreflect.Message

func (*PolygonEventLog) Reset

func (x *PolygonEventLog) Reset()

func (*PolygonEventLog) String

func (x *PolygonEventLog) String() string

type PolygonTransaction

type PolygonTransaction struct {
	Hash                 string                          `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	BlockNumber          uint64                          `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
	FromAddress          string                          `protobuf:"bytes,3,opt,name=from_address,json=fromAddress,proto3" json:"from_address,omitempty"`
	ToAddress            string                          `protobuf:"bytes,4,opt,name=to_address,json=toAddress,proto3" json:"to_address,omitempty"`
	Gas                  string                          `protobuf:"bytes,5,opt,name=gas,proto3" json:"gas,omitempty"` // using string to handle big numeric values
	GasPrice             string                          `protobuf:"bytes,6,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"`
	MaxFeePerGas         string                          `protobuf:"bytes,7,opt,name=max_fee_per_gas,json=maxFeePerGas,proto3" json:"max_fee_per_gas,omitempty"`
	MaxPriorityFeePerGas string                          ``                                                                /* 127-byte string literal not displayed */
	Input                string                          `protobuf:"bytes,9,opt,name=input,proto3" json:"input,omitempty"` // could be a long text
	Nonce                string                          `protobuf:"bytes,10,opt,name=nonce,proto3" json:"nonce,omitempty"`
	TransactionIndex     uint64                          `protobuf:"varint,11,opt,name=transaction_index,json=transactionIndex,proto3" json:"transaction_index,omitempty"`
	TransactionType      uint64                          `protobuf:"varint,12,opt,name=transaction_type,json=transactionType,proto3" json:"transaction_type,omitempty"`
	Value                string                          `protobuf:"bytes,13,opt,name=value,proto3" json:"value,omitempty"`                                          // using string to handle big numeric values
	IndexedAt            uint64                          `protobuf:"varint,14,opt,name=indexed_at,json=indexedAt,proto3" json:"indexed_at,omitempty"`                // using uint64 to represent timestamp
	BlockTimestamp       uint64                          `protobuf:"varint,15,opt,name=block_timestamp,json=blockTimestamp,proto3" json:"block_timestamp,omitempty"` // using uint64 to represent timestam
	BlockHash            string                          `protobuf:"bytes,16,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`                 // Added field for block hash
	ChainId              string                          `protobuf:"bytes,17,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`                       // Used as a field to match potential EIP-1559 transaction types
	V                    string                          `protobuf:"bytes,18,opt,name=v,proto3" json:"v,omitempty"`                                                  // Used as a field to match potential EIP-1559 transaction types
	R                    string                          `protobuf:"bytes,19,opt,name=r,proto3" json:"r,omitempty"`                                                  // Used as a field to match potential EIP-1559 transaction types
	S                    string                          `protobuf:"bytes,20,opt,name=s,proto3" json:"s,omitempty"`                                                  // Used as a field to match potential EIP-1559 transaction types
	AccessList           []*PolygonTransactionAccessList `protobuf:"bytes,21,rep,name=access_list,json=accessList,proto3" json:"access_list,omitempty"`
	YParity              string                          `protobuf:"bytes,22,opt,name=y_parity,json=yParity,proto3" json:"y_parity,omitempty"` // Used as a field to match potential EIP-1559 transaction types
	Logs                 []*PolygonEventLog              `protobuf:"bytes,23,rep,name=logs,proto3" json:"logs,omitempty"`
	// contains filtered or unexported fields
}

Represents a single transaction within a block

func ToProtoSingleTransaction

func ToProtoSingleTransaction(obj *seer_common.TransactionJson) *PolygonTransaction

func (*PolygonTransaction) Descriptor deprecated

func (*PolygonTransaction) Descriptor() ([]byte, []int)

Deprecated: Use PolygonTransaction.ProtoReflect.Descriptor instead.

func (*PolygonTransaction) GetAccessList

func (x *PolygonTransaction) GetAccessList() []*PolygonTransactionAccessList

func (*PolygonTransaction) GetBlockHash

func (x *PolygonTransaction) GetBlockHash() string

func (*PolygonTransaction) GetBlockNumber

func (x *PolygonTransaction) GetBlockNumber() uint64

func (*PolygonTransaction) GetBlockTimestamp

func (x *PolygonTransaction) GetBlockTimestamp() uint64

func (*PolygonTransaction) GetChainId

func (x *PolygonTransaction) GetChainId() string

func (*PolygonTransaction) GetFromAddress

func (x *PolygonTransaction) GetFromAddress() string

func (*PolygonTransaction) GetGas

func (x *PolygonTransaction) GetGas() string

func (*PolygonTransaction) GetGasPrice

func (x *PolygonTransaction) GetGasPrice() string

func (*PolygonTransaction) GetHash

func (x *PolygonTransaction) GetHash() string

func (*PolygonTransaction) GetIndexedAt

func (x *PolygonTransaction) GetIndexedAt() uint64

func (*PolygonTransaction) GetInput

func (x *PolygonTransaction) GetInput() string

func (*PolygonTransaction) GetLogs

func (x *PolygonTransaction) GetLogs() []*PolygonEventLog

func (*PolygonTransaction) GetMaxFeePerGas

func (x *PolygonTransaction) GetMaxFeePerGas() string

func (*PolygonTransaction) GetMaxPriorityFeePerGas

func (x *PolygonTransaction) GetMaxPriorityFeePerGas() string

func (*PolygonTransaction) GetNonce

func (x *PolygonTransaction) GetNonce() string

func (*PolygonTransaction) GetR

func (x *PolygonTransaction) GetR() string

func (*PolygonTransaction) GetS

func (x *PolygonTransaction) GetS() string

func (*PolygonTransaction) GetToAddress

func (x *PolygonTransaction) GetToAddress() string

func (*PolygonTransaction) GetTransactionIndex

func (x *PolygonTransaction) GetTransactionIndex() uint64

func (*PolygonTransaction) GetTransactionType

func (x *PolygonTransaction) GetTransactionType() uint64

func (*PolygonTransaction) GetV

func (x *PolygonTransaction) GetV() string

func (*PolygonTransaction) GetValue

func (x *PolygonTransaction) GetValue() string

func (*PolygonTransaction) GetYParity

func (x *PolygonTransaction) GetYParity() string

func (*PolygonTransaction) ProtoMessage

func (*PolygonTransaction) ProtoMessage()

func (*PolygonTransaction) ProtoReflect

func (x *PolygonTransaction) ProtoReflect() protoreflect.Message

func (*PolygonTransaction) Reset

func (x *PolygonTransaction) Reset()

func (*PolygonTransaction) String

func (x *PolygonTransaction) String() string

type PolygonTransactionAccessList

type PolygonTransactionAccessList struct {
	Address     string   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	StorageKeys []string `protobuf:"bytes,2,rep,name=storage_keys,json=storageKeys,proto3" json:"storage_keys,omitempty"`
	// contains filtered or unexported fields
}

func (*PolygonTransactionAccessList) Descriptor deprecated

func (*PolygonTransactionAccessList) Descriptor() ([]byte, []int)

Deprecated: Use PolygonTransactionAccessList.ProtoReflect.Descriptor instead.

func (*PolygonTransactionAccessList) GetAddress

func (x *PolygonTransactionAccessList) GetAddress() string

func (*PolygonTransactionAccessList) GetStorageKeys

func (x *PolygonTransactionAccessList) GetStorageKeys() []string

func (*PolygonTransactionAccessList) ProtoMessage

func (*PolygonTransactionAccessList) ProtoMessage()

func (*PolygonTransactionAccessList) ProtoReflect

func (*PolygonTransactionAccessList) Reset

func (x *PolygonTransactionAccessList) Reset()

func (*PolygonTransactionAccessList) String

Jump to

Keyboard shortcuts

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