update handler interface. Add Name method

This commit is contained in:
2024-04-18 17:28:45 +08:00
parent 0f55babf41
commit f981007e71
6 changed files with 42 additions and 14 deletions

View File

@@ -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{},
}
}

View File

@@ -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,

View File

@@ -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,

View File

@@ -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(),