eth-tracker/internal/handler/handler.go

51 lines
1.0 KiB
Go
Raw Normal View History

2024-05-23 08:41:39 +02:00
package handler
import (
"context"
"github.com/celo-org/celo-blockchain/core/types"
"github.com/grassrootseconomics/celo-tracker/internal/cache"
"github.com/grassrootseconomics/celo-tracker/internal/pub"
)
type (
Handler interface {
Name() string
HandleLog(context.Context, LogMessage) error
HandleRevert(context.Context, RevertMessage) error
}
HandlerPipeline []Handler
LogMessage struct {
Log *types.Log
Timestamp uint64
}
RevertMessage struct {
From string
RevertReason string
InputData string
Block uint64
ContractAddress string
Timestamp uint64
TxHash string
}
)
func New(pub pub.Pub, cache cache.Cache) HandlerPipeline {
return []Handler{
NewTokenTransferHandler(pub),
NewPoolSwapHandler(pub),
NewFaucetGiveHandler(pub),
NewPoolDepositHandler(pub),
NewTokenMintHandler(pub),
NewTokenBurnHandler(pub),
NewQuoterPriceHandler(pub),
NewOwnershipHandler(pub),
NewSealHandler(pub),
NewIndexAddHandler(pub, cache),
NewIndexRemoveHandler(pub, cache),
}
}