mirror of
				https://github.com/grassrootseconomics/eth-tracker.git
				synced 2025-11-04 10:28:22 +01: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