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
Every time there is a signer change on an account with multiple signers, we are incorrectly reporting a signer updated effect on the other unaffected signers.
@jrice What do you think of removing the duplicate debit/remove effects in an account merge attack (see last 4 effects of https://horizon.stellar.org/accounts/GBSSDVJTXF6XJUN5EWCUXDMCGYGNCIDTPL6G6WM6FTG3G4GDGDKU7Z2T/effects )
The last two debit/remove effects on the already merged account actually never affected the state, so it seems more correct to omit them. Only the account_credit effect on the receiving account is applied twice.
Otherwise, summing all seen amounts in effects of an account could produce negative balances.
Every time there is a signer change on an account with multiple signers, we are incorrectly reporting a signer updated effect on the other unaffected signers.
For example, the following operation https://horizon.stellar.org/operations/71491809406156801/effects is showing three effects, however, if we look at the XDR representation for the operation.
It is only removing one signer and the weight for the other signers is kept unchanged.
See full Tx Envelope
The root of this problem is on the following line
go/services/horizon/internal/expingest/processors/effects_processor.go
Lines 487 to 499 in 2e9e667
When looking at the
before
andafter
state, we add a delete event if the key is not present on the new state; otherwise, we add an update event.To fix this, we need to add an extra check on the
weight
, and if it's different, then it is an update; otherwise we should not add an effect.The text was updated successfully, but these errors were encountered: