eth

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2019 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetricReceiveMessages                       = "receive_messages"
	MetricParseDataError                        = "parse_data_error"
	MetricVaildationSuccess                     = "validation_success"
	MetricVaildationError                       = "validation_error"
	MetricDatabaseRollback                      = "database_rollback"
	MetricDatabaseCommit                        = "database_commit"
	MetricCronWorkerJob                         = "cron_worker_job"
	MetricCronWorkerJobUpdateMetaData           = "cron_worker_job_update_meta_data"
	MetricCronWorkerJobGetBatchBlock            = "cron_worker_job_get_batch_block"
	MetricCronWorkerJobRefreshContractAddresses = "cron_worker_job_refresh_contract_addresses"
	MetricCronWorkerJobRefreshPoolName          = "cron_worker_job_refresh_pool_name"
	MetricRPCCall                               = "rpc_call"
	MetricRevertBlock                           = "revert_block"

	AccountTypeNormal   = 0
	AccountTypeContract = 1
	AccountTypeMiner    = 2

	TransactionTypeNormal   = 0
	TransactionTypeContract = 1
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CronWorker

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

func NewCronWorker

func NewCronWorker(splitter *ETHSplitter) *CronWorker

func (*CronWorker) Prepare

func (w *CronWorker) Prepare() error

func (*CronWorker) Start

func (w *CronWorker) Start() error

func (*CronWorker) Stop

func (w *CronWorker) Stop()

type ETHBlockData

type ETHBlockData struct {
	Block                *model.Block
	Uncles               []*model.Uncle
	Transactions         []*model.Transaction
	InternalTransactions []*model.InternalTransaction
	TokenTransactions    []*model.TokenTransaction
	Tokens               []*model.Token
	ENSes                []*model.ENS
	Accounts             []*model.Account
	TokenAccounts        []*model.TokenAccount
}

func ParseBlock

func ParseBlock(data string) (*ETHBlockData, error)

parser block

type ETHSplitter

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

func NewSplitter

func NewSplitter(cfg *SplitterConfig) (*ETHSplitter, error)

func (*ETHSplitter) CheckBlock

func (s *ETHSplitter) CheckBlock(curBlock *ETHBlockData) (bool, int64)

func (*ETHSplitter) RevertBlock

func (s *ETHSplitter) RevertBlock(height int64, tx *service.Transaction) error

revert block

func (*ETHSplitter) SaveBlock

func (s *ETHSplitter) SaveBlock(data *ETHBlockData) error

func (*ETHSplitter) Start

func (s *ETHSplitter) Start()

func (*ETHSplitter) Stop

func (s *ETHSplitter) Stop()

type SplitterConfig

type SplitterConfig struct {
	Engine                     *xorm.Engine
	Consumer                   *kafka.ConsumerGroup
	Topic                      string
	DatabaseEnable             bool
	MaxBatchBlock              int
	Endpoint                   string
	User                       string
	Password                   string
	JSONSchemaFile             string
	JSONSchemaValidationEnable bool
}

type TokenAccountBalance

type TokenAccountBalance struct {
	Address      string
	TokenAddress string
	Balance      *big.Int
}

type WorkerJob

type WorkerJob interface {
	Run()
	Name() string
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

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