You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey @gusin13, the idea of SyncFinalityProviderStatus is to mark it as registered if the FP exists on chain
Should we use a query that verifies that the FP exists on the consumer chain?
Bug Description
SyncFinalityProviderStatus
incorrectly updating the status of Finality Providers (FPs) that don't actually exist on the consumer chain.finality-provider/finality-provider/service/app.go
Line 256 in 627a8d0
Current Behavior
SyncFinalityProviderStatus
queries voting power for all locally stored FPs without checking their existence on the chain.QueryFinalityProviderVotingPower
return a response (with zero power) even for non-existent FPs.SyncFinalityProviderStatus
to update statuses of FPs that aren't actually on the chain.Expected Behavior
SyncFinalityProviderStatus
should only update statuses for FPs that actually exist on the consumer chain.Root Cause
SyncFinalityProviderStatus
before querying power.QueryFinalityProviderVotingPower
across consumers.Notes
The Babylon contract (used in babylon-sdk) currently returns a zero power response instead of an error for non-existent FPs:
this causes the SyncFinalityProviderStatus to mark the FP as REGISTERED even if it doesn't exist on the consumer chain
This problem doesn't occur for Babylon finality provider as Babylon grpc query returns err if FP doesn't exist
The text was updated successfully, but these errors were encountered: