Skip to content

Commit

Permalink
[goreleaser] coingecko update and new topic parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
Defi-Moses committed Oct 31, 2024
1 parent 8e2e6f2 commit cfe785b
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 37 deletions.
59 changes: 25 additions & 34 deletions services/explorer/consumer/parser/rfqparser.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,41 +63,32 @@ func (p *RFQParser) ParserType() string {
func (p *RFQParser) ParseLog(log ethTypes.Log, chainID uint32) (*model.RFQEvent, rfqTypes.EventLog, error) {
logTopic := log.Topics[0]
iFace, err := func(log ethTypes.Log) (rfqTypes.EventLog, error) {
switch logTopic {
case fastbridge.Topic(rfqTypes.BridgeRequestedEvent):
iFace, err := p.Filterer.ParseBridgeRequested(log)
if err != nil {
return nil, fmt.Errorf("could not parse fastbridge bridge requested : %w", err)
}
return iFace, nil
case fastbridge.Topic(rfqTypes.BridgeRelayedEvent):
iFace, err := p.Filterer.ParseBridgeRelayed(log)
if err != nil {
return nil, fmt.Errorf("could not parse fastbridge bridge relayed: %w", err)
}
return iFace, nil
case fastbridge.Topic(rfqTypes.BridgeRefundedEvent):
iFace, err := p.Filterer.ParseBridgeDepositRefunded(log)
if err != nil {
return nil, fmt.Errorf("could not parse fastbridge bridge refunded: %w", err)
}
return iFace, nil
case fastbridge.Topic(rfqTypes.BridgeProvenEvent):
iFace, err := p.Filterer.ParseBridgeProofProvided(log)
if err != nil {
return nil, fmt.Errorf("could not parse fastbridge bridge proven: %w", err)
}
return iFace, nil
case fastbridge.Topic(rfqTypes.BridgeClaimedEvent):
iFace, err := p.Filterer.ParseBridgeDepositClaimed(log)
if err != nil {
return nil, fmt.Errorf("could not parse fastbridge bridge claimed: %w", err)
}
return iFace, nil
default:
logger.Warnf("ErrUnknownTopic in rfq: %s %s chain: %d address: %s", log.TxHash, logTopic.String(), chainID, log.Address.Hex())
return nil, fmt.Errorf(ErrUnknownTopic)
// Get the topic hash safely
bridgeRequestedTopic, err := fastbridge.Topic(rfqTypes.BridgeRequestedEvent)
if err == nil && logTopic == bridgeRequestedTopic {
return p.Filterer.ParseBridgeRequested(log)
}

Check warning on line 70 in services/explorer/consumer/parser/rfqparser.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/consumer/parser/rfqparser.go#L66-L70

Added lines #L66 - L70 were not covered by tests

bridgeRelayedTopic, err := fastbridge.Topic(rfqTypes.BridgeRelayedEvent)
if err == nil && logTopic == bridgeRelayedTopic {
return p.Filterer.ParseBridgeRelayed(log)
}
bridgeProofProvidedTopic, err := fastbridge.Topic(rfqTypes.BridgeProvenEvent)
if err == nil && logTopic == bridgeProofProvidedTopic {
return p.Filterer.ParseBridgeProofProvided(log)

Check warning on line 78 in services/explorer/consumer/parser/rfqparser.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/consumer/parser/rfqparser.go#L72-L78

Added lines #L72 - L78 were not covered by tests
}
bridgeDepositClaimedTopic, err := fastbridge.Topic(rfqTypes.BridgeClaimedEvent)
if err == nil && logTopic == bridgeDepositClaimedTopic {
return p.Filterer.ParseBridgeDepositClaimed(log)
}
bridgeDepositRefundedTopic, err := fastbridge.Topic(rfqTypes.BridgeRefundedEvent)
if err == nil && logTopic == bridgeDepositRefundedTopic {
return p.Filterer.ParseBridgeDepositRefunded(log)
}

Check warning on line 87 in services/explorer/consumer/parser/rfqparser.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/consumer/parser/rfqparser.go#L80-L87

Added lines #L80 - L87 were not covered by tests

logger.Warnf("ErrUnknownTopic in rfq: %s %s chain: %d address: %s",
log.TxHash, logTopic.String(), chainID, log.Address.Hex())
return nil, fmt.Errorf(ErrUnknownTopic)

Check failure on line 91 in services/explorer/consumer/parser/rfqparser.go

View workflow job for this annotation

GitHub Actions / Lint (services/explorer)

SA1006: printf-style function with dynamic format string and no further arguments should use print-style function instead (staticcheck)

Check warning on line 91 in services/explorer/consumer/parser/rfqparser.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/consumer/parser/rfqparser.go#L89-L91

Added lines #L89 - L91 were not covered by tests
}(log)

if err != nil {
Expand Down
7 changes: 4 additions & 3 deletions services/explorer/contracts/fastbridge/topics.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package fastbridge

import (
"bytes"
"fmt"
"strings"

"github.com/ethereum/go-ethereum/accounts/abi"
Expand Down Expand Up @@ -48,10 +49,10 @@ func EventTypeFromTopic(ogTopic common.Hash) *fastbridge.EventType {
}

// Topic gets the topic from the event type.
func Topic(eventType fastbridge.EventType) common.Hash {
func Topic(eventType fastbridge.EventType) (common.Hash, error) {

Check warning on line 52 in services/explorer/contracts/fastbridge/topics.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/contracts/fastbridge/topics.go#L52

Added line #L52 was not covered by tests
topicHash, ok := TopicMap()[fastbridge.EventType(eventType.Int())]
if !ok {
panic("unknown event")
return common.Hash{}, fmt.Errorf("unknown event type: %v", eventType)

Check warning on line 55 in services/explorer/contracts/fastbridge/topics.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/contracts/fastbridge/topics.go#L55

Added line #L55 was not covered by tests
}
return topicHash
return topicHash, nil

Check warning on line 57 in services/explorer/contracts/fastbridge/topics.go

View check run for this annotation

Codecov / codecov/patch

services/explorer/contracts/fastbridge/topics.go#L57

Added line #L57 was not covered by tests
}

0 comments on commit cfe785b

Please sign in to comment.