moonstream/crawlers/ldb/cmd/data.go

69 wiersze
1.4 KiB
Go

package cmd
import (
"database/sql"
"math/big"
humbug "github.com/bugout-dev/humbug/go/pkg"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/eth/ethconfig"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/node"
)
// Modified lightweight go-ethereum struct
// Source: github.com/ethereum/go-ethereum/cmd/geth/config.go
type gethConfig struct {
Eth ethconfig.Config
Node node.Config
}
// Predefined connections to blockchain and database
type LocalConnections struct {
Stack *node.Node
Chain *core.BlockChain
ChainDB ethdb.Database
Database *sql.DB
}
type HumbugReporter struct {
Reporter *humbug.HumbugReporter
}
// Lightweight transactions for database operations
type LightTransaction struct {
Hash string
}
// Lightweight block for database operations
type LightBlock struct {
Hash string
Number *big.Int
Transactions []LightTransaction
}
// Malformed block structure which will be submitted to humbug journal
type CorruptBlock struct {
Number uint64 `json:"number"`
Source string `json:"source"`
Description string `json:"description"`
}
type CorruptBlocks struct {
Blocks []CorruptBlock `json:"blocks"`
}
// Concurrency jobs structure
type Job struct {
BlockNumber uint64
Results chan<- Result
}
// TODO(kompotkot): Find way to remove Number, it repeats Job
type Result struct {
ErrorOutput string
ErrorSource string
Number uint64
Output string
}