package parser import ( "fmt" types "github.com/thloyi/pump-parser" ) type PumpHandler struct { callback func(*types.Tx) } func NewPumpHandler(cb func(*types.Tx)) *PumpHandler { return &PumpHandler{ callback: func(tx *types.Tx) { //tx.Check(tx2) cb(tx) }, } } func (h *PumpHandler) HandleMessage(rawTx *types.RawTx) { if rawTx.Meta.Err != nil { // Notify the channel about the failed transaction var parsedTx = &types.Tx{} parsedTx.SetRawTx(rawTx) err := parsedTx.Parser() if err != nil { fmt.Printf("parser failed tx error: %s, block: %d tx: %s\n", err, rawTx.Slot, rawTx.TxHash()) return } h.callback(parsedTx) return } var parsedTx = &types.Tx{} parsedTx.SetRawTx(rawTx) err := parsedTx.Parser() if err != nil { fmt.Printf("parser error: %s, block: %d tx: %s\n", err, rawTx.Slot, rawTx.TxHash()) return } if len(parsedTx.Swaps) == 0 { // no swap, ignore return } // fmt.Println(parsedTx.GetTxHash(), len(parsedTx.Swaps)) if h.callback != nil { h.callback(parsedTx) } }