diff --git a/api/handlers/vaa/repository.go b/api/handlers/vaa/repository.go index cb175016d..cf0c81d8d 100644 --- a/api/handlers/vaa/repository.go +++ b/api/handlers/vaa/repository.go @@ -147,6 +147,13 @@ func (r *Repository) FindVaasWithPayload( }) } + // filter by txHash + if q.txHash != "" { + pipeline = append(pipeline, bson.D{ + {"$match", bson.D{bson.E{"txHash", q.txHash}}}, + }) + } + // left outer join on the `parsedVaa` collection pipeline = append(pipeline, bson.D{ {"$lookup", bson.D{ diff --git a/common/domain/const.go b/common/domain/const.go index e847be9af..ebd46e574 100644 --- a/common/domain/const.go +++ b/common/domain/const.go @@ -7,3 +7,4 @@ const ( P2pDevNet = "devnet" ) +const AppIdPortalTokenBridge = "PORTAL_TOKEN_BRIDGE" diff --git a/parser/processor/processor.go b/parser/processor/processor.go index 304fdb718..a97080e52 100644 --- a/parser/processor/processor.go +++ b/parser/processor/processor.go @@ -4,13 +4,13 @@ import ( "context" "github.com/mitchellh/mapstructure" + "github.com/wormhole-foundation/wormhole-explorer/common/domain" "github.com/wormhole-foundation/wormhole-explorer/parser/metrics" "github.com/wormhole-foundation/wormhole-explorer/parser/parser" "go.uber.org/zap" ) const ( - portalTokenBridgeAppID = "PORTAL_TOKEN_BRIDGE" transferPayloadType = 1 attestMetaPayloadType = 2 transferWithPayloadPayloadType = 3 @@ -48,7 +48,7 @@ func (p *Processor) Process(ctx context.Context, vaaParsed *parser.ParsedVaaUpda p.logger.Info("Vaa save in repository", zap.String("id", vaaParsed.ID)) - if vaaParsed.AppID == portalTokenBridgeAppID { + if vaaParsed.AppID == domain.AppIdPortalTokenBridge { input, ok := vaaParsed.Result.(map[string]interface{}) if ok { var result portalTokenBridgePayload diff --git a/tx-tracker/consumer/consumer.go b/tx-tracker/consumer/consumer.go index dd78e4ab4..04fa4c2e9 100644 --- a/tx-tracker/consumer/consumer.go +++ b/tx-tracker/consumer/consumer.go @@ -5,6 +5,7 @@ import ( "fmt" "time" + "github.com/wormhole-foundation/wormhole-explorer/common/domain" "github.com/wormhole-foundation/wormhole-explorer/parser/parser" "github.com/wormhole-foundation/wormhole-explorer/txtracker/chains" @@ -35,8 +36,6 @@ const ( retryDelay = 10 * time.Second ) -const AppIdPortalTokenBridge = "PORTAL_TOKEN_BRIDGE" - // Consumer consumer struct definition. type Consumer struct { consumeFunc queue.VAAConsumeFunc @@ -118,7 +117,7 @@ func (c *Consumer) Start(ctx context.Context) { } // Skip messages that have not been generated by the portal token bridge - if parsedPayload.AppID != AppIdPortalTokenBridge { + if parsedPayload.AppID != domain.AppIdPortalTokenBridge { c.logger.Debug("Skipping VAA because it was not generated by the portal token bridge", zap.String("vaaId", event.ID), )