Add dflow pumpfun parse
This commit is contained in:
@@ -360,7 +360,7 @@ func ParseTransaction(update *SubscribeUpdateTransaction, loader *AddressTables,
|
||||
parsed = appendParsed(now, parsed, txRes, err, txHash, "okxdexroutev2")
|
||||
case dflowProgramID:
|
||||
txRes, err := parseDFlowInstruction(versioned, i)
|
||||
parsed = appendParsed(now, parsed, txRes, err, txHash, "dflow")
|
||||
parsed = appendParsedBatch(now, parsed, txRes, err, txHash, "dflow")
|
||||
case gmgnProgramID:
|
||||
txRes, err := parseGMGNInstruction(versioned, i)
|
||||
parsed = appendParsed(now, parsed, txRes, err, txHash, "gmgn")
|
||||
@@ -397,6 +397,34 @@ func appendParsed(start time.Time, list []*TxSignal, parsed *TxSignal, err error
|
||||
return list
|
||||
}
|
||||
|
||||
func appendParsedBatch(start time.Time, list []*TxSignal, parsed []*TxSignal, err error, txHash [64]byte, label string) []*TxSignal {
|
||||
if err != nil {
|
||||
if !strings.HasPrefix(err.Error(), "account index") {
|
||||
logger.Debug("txparser: failed to parse", "label", label, "instruction", err, "tx_hash", base58.Encode(txHash[:]))
|
||||
}
|
||||
return list
|
||||
}
|
||||
if len(parsed) == 0 {
|
||||
return list
|
||||
}
|
||||
var end time.Time
|
||||
if !start.IsZero() {
|
||||
end = time.Now()
|
||||
}
|
||||
for _, sig := range parsed {
|
||||
if sig == nil {
|
||||
continue
|
||||
}
|
||||
sig.Label = label
|
||||
if !start.IsZero() {
|
||||
sig.ParseEnd = end
|
||||
sig.ParseStart = start
|
||||
}
|
||||
list = append(list, sig)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
func toVersionedTransaction(update *SubscribeUpdateTransaction) (*versionedTransaction, error) {
|
||||
if update == nil || update.Transaction == nil || update.Transaction.Message == nil {
|
||||
return nil, fmt.Errorf("transaction is nil")
|
||||
|
||||
Reference in New Issue
Block a user