Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewBlockConsumer ¶
func UTF8StringFromBytes ¶
Checks whether the bytes passed are valid utf8 string bytes. If they are not returns a sanitised string version of the bytes with offending sequences replaced by the utf8 replacement/error rune and an error indicating the offending byte sequences and their position. Note: always returns a valid string regardless of error.
Types ¶
type AbiProvider ¶
type AbiProvider struct {
// contains filtered or unexported fields
}
AbiProvider provides a method for loading ABIs from disk, and retrieving them from hsc on-demand
func NewAbiProvider ¶
func NewAbiProvider(paths []string, chain chain.Chain, logger *logging.Logger) (provider *AbiProvider, err error)
NewAbiProvider loads ABIs from the filesystem. A set of zero or more files or directories can be passed in the path argument. If an event is encountered for which no ABI is known, it is retrieved from hsc
func (*AbiProvider) GetEventAbi ¶
func (p *AbiProvider) GetEventAbi(eventID abi.EventID, address crypto.Address) (*abi.EventSpec, error)
GetEventAbi get the ABI for a particular eventID. If it is not known, it is retrieved from the hsc node via the address for the contract
type Consumer ¶
type Consumer struct { Config *config.VentConfig Logger *logging.Logger DB *sqldb.SQLDB Chain chain.Chain // external events channel used for when vent is leveraged as a library EventsChannel chan types.EventData Done chan struct{} LastProcessedHeight uint64 // contains filtered or unexported fields }
Consumer contains basic configuration for consumer to run
func NewConsumer ¶
func NewConsumer(cfg *config.VentConfig, log *logging.Logger, eventChannel chan types.EventData) *Consumer
NewConsumer constructs a new consumer configuration. The event channel will be passed a collection of rows generated from all of the events in a single block It will be closed by the consumer when it is finished
func (*Consumer) Run ¶
func (c *Consumer) Run(projection *sqlsol.Projection, stream bool) error
Run connects to a grpc service and subscribes to log events, then gets tables structures, maps them & parse event data. Store data in SQL event tables, it runs forever
func (*Consumer) Shutdown ¶
func (c *Consumer) Shutdown()
Shutdown gracefully shuts down the events consumer
func (*Consumer) StatusMessage ¶
type EventSpecGetter ¶
type Server ¶
type Server struct { Config *config.VentConfig Log *logging.Logger Consumer *Consumer // contains filtered or unexported fields }
Server exposes HTTP endpoints for the service