mirror of
https://github.com/grassrootseconomics/eth-tracker.git
synced 2025-04-22 08:21:03 +02:00
update handler interface. Add Name method
This commit is contained in:
parent
0f55babf41
commit
f981007e71
@ -16,4 +16,4 @@ registries = [
|
||||
"0xd1FB944748aca327a1ba036B082993D9dd9Bfa0C",
|
||||
"0x0cc9f4fff962def35bb34a53691180b13e653030",
|
||||
]
|
||||
blacklist = ["0x765DE816845861e75A25fCA122bb6898B8B1282a"]
|
||||
blacklist = [""]
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
|
||||
type (
|
||||
Handler interface {
|
||||
Name() string
|
||||
HandleLog(context.Context, LogMessage, emitter.Emitter) error
|
||||
HandleRevert(context.Context, RevertMessage, emitter.Emitter) error
|
||||
}
|
||||
@ -42,5 +43,7 @@ type (
|
||||
func New() []Handler {
|
||||
return []Handler{
|
||||
&TokenTransferHandler{},
|
||||
&TokenMintHandler{},
|
||||
&TokenBurnHandler{},
|
||||
}
|
||||
}
|
||||
|
@ -16,12 +16,20 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
burnEventName = "TOKEN_BURN"
|
||||
)
|
||||
|
||||
var (
|
||||
tokenBurnTopicHash = w3.H("0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5")
|
||||
tokenBurnEvent = w3.MustNewEvent("tokenBurn(address indexed _tokenBurner, uint256 _value)")
|
||||
tokenBurnToSig = w3.MustNewFunc("tokenBurn(uint256)", "bool")
|
||||
)
|
||||
|
||||
func (h *TokenBurnHandler) Name() string {
|
||||
return burnEventName
|
||||
}
|
||||
|
||||
func (h *TokenBurnHandler) HandleLog(ctx context.Context, msg LogMessage, emitter emitter.Emitter) error {
|
||||
if msg.Log.Topics[0] == tokenBurnTopicHash {
|
||||
var (
|
||||
@ -39,7 +47,7 @@ func (h *TokenBurnHandler) HandleLog(ctx context.Context, msg LogMessage, emitte
|
||||
Success: true,
|
||||
Timestamp: msg.BlockTime,
|
||||
TxHash: msg.Log.TxHash.Hex(),
|
||||
TxType: "TOKEN_BURN",
|
||||
TxType: burnEventName,
|
||||
Payload: map[string]any{
|
||||
"tokenBurner": tokenBurner.Hex(),
|
||||
"value": value.String(),
|
||||
@ -73,7 +81,7 @@ func (h *TokenBurnHandler) HandleRevert(ctx context.Context, msg RevertMessage,
|
||||
Success: false,
|
||||
Timestamp: msg.Timestamp,
|
||||
TxHash: msg.TxHash,
|
||||
TxType: "TOKEN_BURN",
|
||||
TxType: burnEventName,
|
||||
Payload: map[string]any{
|
||||
"revertReason": msg.RevertReason,
|
||||
"tokenBurner": msg.From,
|
||||
|
@ -16,12 +16,20 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
mintEventName = "TOKEN_MINT"
|
||||
)
|
||||
|
||||
var (
|
||||
tokenMintTopicHash = w3.H("0xab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8")
|
||||
tokenMintEvent = w3.MustNewEvent("tokenMint(address indexed _tokenMinter, address indexed _beneficiary, uint256 _value)")
|
||||
tokenMintToSig = w3.MustNewFunc("tokenMintTo(address, uint256)", "bool")
|
||||
)
|
||||
|
||||
func (h *TokenMintHandler) Name() string {
|
||||
return mintEventName
|
||||
}
|
||||
|
||||
func (h *TokenMintHandler) HandleLog(ctx context.Context, msg LogMessage, emitter emitter.Emitter) error {
|
||||
if msg.Log.Topics[0] == tokenMintTopicHash {
|
||||
var (
|
||||
@ -40,7 +48,7 @@ func (h *TokenMintHandler) HandleLog(ctx context.Context, msg LogMessage, emitte
|
||||
Success: true,
|
||||
Timestamp: msg.BlockTime,
|
||||
TxHash: msg.Log.TxHash.Hex(),
|
||||
TxType: "TOKEN_MINT",
|
||||
TxType: mintEventName,
|
||||
Payload: map[string]any{
|
||||
"tokenMinter": tokenMinter.Hex(),
|
||||
"to": to.Hex(),
|
||||
@ -76,7 +84,7 @@ func (h *TokenMintHandler) HandleRevert(ctx context.Context, msg RevertMessage,
|
||||
Success: false,
|
||||
Timestamp: msg.Timestamp,
|
||||
TxHash: msg.TxHash,
|
||||
TxType: "TOKEN_MINT",
|
||||
TxType: mintEventName,
|
||||
Payload: map[string]any{
|
||||
"revertReason": msg.RevertReason,
|
||||
"tokenMinter": msg.From,
|
||||
|
@ -16,13 +16,21 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
transferEventName = "TOKEN_TRANSFER"
|
||||
)
|
||||
|
||||
var (
|
||||
tokenTransferTopicHash = w3.H("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef")
|
||||
tokenTransferEvent = w3.MustNewEvent("tokenTransfer(address indexed _from, address indexed _to, uint256 _value)")
|
||||
tokenTransferSig = w3.MustNewFunc("tokenTransfer(address, uint256)", "bool")
|
||||
tokenTransferFromSig = w3.MustNewFunc("tokenTransferFrom(address, address, uint256)", "bool")
|
||||
tokenTransferEvent = w3.MustNewEvent("Transfer(address indexed _from, address indexed _to, uint256 _value)")
|
||||
tokenTransferSig = w3.MustNewFunc("transfer(address, uint256)", "bool")
|
||||
tokenTransferFromSig = w3.MustNewFunc("transferFrom(address, address, uint256)", "bool")
|
||||
)
|
||||
|
||||
func (h *TokenTransferHandler) Name() string {
|
||||
return transferEventName
|
||||
}
|
||||
|
||||
func (h *TokenTransferHandler) HandleLog(ctx context.Context, msg LogMessage, emitter emitter.Emitter) error {
|
||||
if msg.Log.Topics[0] == tokenTransferTopicHash {
|
||||
var (
|
||||
@ -41,7 +49,7 @@ func (h *TokenTransferHandler) HandleLog(ctx context.Context, msg LogMessage, em
|
||||
Success: true,
|
||||
Timestamp: msg.BlockTime,
|
||||
TxHash: msg.Log.TxHash.Hex(),
|
||||
TxType: "TOKEN_TRANSFER",
|
||||
TxType: transferEventName,
|
||||
Payload: map[string]any{
|
||||
"from": from.Hex(),
|
||||
"to": to.Hex(),
|
||||
@ -77,7 +85,7 @@ func (h *TokenTransferHandler) HandleRevert(ctx context.Context, msg RevertMessa
|
||||
Success: false,
|
||||
Timestamp: msg.Timestamp,
|
||||
TxHash: msg.TxHash,
|
||||
TxType: "TOKEN_TRANSFER",
|
||||
TxType: transferEventName,
|
||||
Payload: map[string]any{
|
||||
"revertReason": msg.RevertReason,
|
||||
"from": msg.From,
|
||||
@ -104,7 +112,7 @@ func (h *TokenTransferHandler) HandleRevert(ctx context.Context, msg RevertMessa
|
||||
Success: false,
|
||||
Timestamp: msg.Timestamp,
|
||||
TxHash: msg.TxHash,
|
||||
TxType: "TOKEN_TRANSFER",
|
||||
TxType: transferEventName,
|
||||
Payload: map[string]any{
|
||||
"revertReason": msg.RevertReason,
|
||||
"from": from.Hex(),
|
||||
|
@ -2,6 +2,7 @@ package processor
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/celo-org/celo-blockchain/core/types"
|
||||
@ -33,7 +34,7 @@ func (p *Processor) processBlock(ctx context.Context, block types.Block) error {
|
||||
}
|
||||
|
||||
if err := p.handleLogs(ctx, msg); err != nil {
|
||||
p.logg.Error("handler error", "handler_type", "log", "error", err)
|
||||
p.logg.Error("handler error", "handler_type", "log", "handler_name", "error", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -77,7 +78,7 @@ func (p *Processor) processBlock(ctx context.Context, block types.Block) error {
|
||||
func (p *Processor) handleLogs(ctx context.Context, msg handler.LogMessage) error {
|
||||
for _, handler := range p.handlers {
|
||||
if err := handler.HandleLog(ctx, msg, p.emitter); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("handler: %s err: %v", handler.Name(), err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,7 +88,7 @@ func (p *Processor) handleLogs(ctx context.Context, msg handler.LogMessage) erro
|
||||
func (p *Processor) handleRevert(ctx context.Context, msg handler.RevertMessage) error {
|
||||
for _, handler := range p.handlers {
|
||||
if err := handler.HandleRevert(ctx, msg, p.emitter); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("handler: %s err: %v", handler.Name(), err)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user