From af3118d2fc9d9b078facd43ec689c2ccdc0f1388 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:30:15 +0100 Subject: [PATCH] Fix/rfq status (#2261) * [goreleaser] * do not flatten [goreleaser] * [goreleaser] * lint fix --------- Co-authored-by: Trajan0x --- services/rfq/relayer/reldb/db.go | 4 ++++ services/rfq/relayer/reldb/quoterequeststatus_string.go | 5 +++-- services/rfq/relayer/service/chainindexer.go | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/services/rfq/relayer/reldb/db.go b/services/rfq/relayer/reldb/db.go index f3af3ed0b7..44b5dd2ddd 100644 --- a/services/rfq/relayer/reldb/db.go +++ b/services/rfq/relayer/reldb/db.go @@ -92,6 +92,8 @@ func (q QuoteRequest) GetDestIDPair() string { // // TODO: consider making this an interface and exporting that. // +// EXTREMELY IMPORTANT: DO NOT ADD NEW VALUES TO THIS ENUM UNLESS THEY ARE AT THE END. +// //go:generate go run golang.org/x/tools/cmd/stringer -type=QuoteRequestStatus type QuoteRequestStatus uint8 @@ -123,6 +125,8 @@ const ( ClaimPending // ClaimCompleted means the relayer has called Claim() on the origin chain, and the tx has been confirmed on chain. ClaimCompleted + // RelayRaceLost means another relayer has relayed the tx. + RelayRaceLost ) // Int returns the int value of the quote request status. diff --git a/services/rfq/relayer/reldb/quoterequeststatus_string.go b/services/rfq/relayer/reldb/quoterequeststatus_string.go index 7ceddf9945..d3dc73c429 100644 --- a/services/rfq/relayer/reldb/quoterequeststatus_string.go +++ b/services/rfq/relayer/reldb/quoterequeststatus_string.go @@ -20,11 +20,12 @@ func _() { _ = x[ProvePosted-10] _ = x[ClaimPending-11] _ = x[ClaimCompleted-12] + _ = x[RelayRaceLost-13] } -const _QuoteRequestStatus_name = "SeenNotEnoughInventoryDeadlineExceededWillNotProcessCommittedPendingCommittedConfirmedRelayStartedRelayCompletedProvePostingProvePostedClaimPendingClaimCompleted" +const _QuoteRequestStatus_name = "SeenNotEnoughInventoryDeadlineExceededWillNotProcessCommittedPendingCommittedConfirmedRelayStartedRelayCompletedProvePostingProvePostedClaimPendingClaimCompletedRelayRaceLost" -var _QuoteRequestStatus_index = [...]uint8{0, 4, 22, 38, 52, 68, 86, 98, 112, 124, 135, 147, 161} +var _QuoteRequestStatus_index = [...]uint8{0, 4, 22, 38, 52, 68, 86, 98, 112, 124, 135, 147, 161, 174} func (i QuoteRequestStatus) String() string { i -= 1 diff --git a/services/rfq/relayer/service/chainindexer.go b/services/rfq/relayer/service/chainindexer.go index 41121c28f0..ec22be411c 100644 --- a/services/rfq/relayer/service/chainindexer.go +++ b/services/rfq/relayer/service/chainindexer.go @@ -78,7 +78,8 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) case *fastbridge.FastBridgeBridgeRelayed: // it wasn't me if event.Relayer != r.signer.Address() { - return nil + //nolint: wrapcheck + return r.db.UpdateQuoteRequestStatus(ctx, event.TransactionId, reldb.RelayRaceLost) } err = r.handleRelayLog(ctx, event) @@ -88,7 +89,8 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) case *fastbridge.FastBridgeBridgeProofProvided: // it wasn't me if event.Relayer != r.signer.Address() { - return nil + //nolint: wrapcheck + return r.db.UpdateQuoteRequestStatus(ctx, event.TransactionId, reldb.RelayRaceLost) } err = r.handleProofProvided(ctx, event) @@ -98,7 +100,8 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) case *fastbridge.FastBridgeBridgeDepositClaimed: // it wasn't me if event.Relayer != r.signer.Address() { - return nil + //nolint: wrapcheck + return r.db.UpdateQuoteRequestStatus(ctx, event.TransactionId, reldb.RelayRaceLost) } err = r.handleDepositClaimed(ctx, event, chainID)