mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 14:46:42 +00:00
Ignoring system fee log to be reverted
This commit is contained in:
parent
8e1ef9a3ab
commit
173123f62f
1 changed files with 16 additions and 1 deletions
|
|
@ -897,6 +897,12 @@ func (f *Firehose) removeLogBlockIndexOnStateRevertedCalls() {
|
||||||
for _, call := range f.transaction.Calls {
|
for _, call := range f.transaction.Calls {
|
||||||
if call.StateReverted {
|
if call.StateReverted {
|
||||||
for _, log := range call.Logs {
|
for _, log := range call.Logs {
|
||||||
|
if isPolygonFeeTransferLog(log) {
|
||||||
|
// Polygon transfer and fee transfer logs are never reverted, so we must **not** reset them here as
|
||||||
|
// they are properly recorded to the chain's state.
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
firehoseTrace("removing block index from log %s in reverted call %d", hex.EncodeToString(log.Address), call.Index)
|
firehoseTrace("removing block index from log %s in reverted call %d", hex.EncodeToString(log.Address), call.Index)
|
||||||
log.BlockIndex = 0
|
log.BlockIndex = 0
|
||||||
}
|
}
|
||||||
|
|
@ -904,6 +910,15 @@ func (f *Firehose) removeLogBlockIndexOnStateRevertedCalls() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
polygonTransferFeeLogSig = common.HexToHash("0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63")
|
||||||
|
polygonFeeAddress = common.HexToAddress("0x0000000000000000000000000000000000001010")
|
||||||
|
)
|
||||||
|
|
||||||
|
func isPolygonFeeTransferLog(log *pbeth.Log) bool {
|
||||||
|
return bytes.Equal(log.Address, polygonFeeAddress[:]) && len(log.Topics) == 4 && bytes.Equal(log.Topics[0], polygonTransferFeeLogSig[:])
|
||||||
|
}
|
||||||
|
|
||||||
func (f *Firehose) assignOrdinalAndIndexToReceiptLogs() {
|
func (f *Firehose) assignOrdinalAndIndexToReceiptLogs() {
|
||||||
firehoseTrace("assigning ordinal and index to logs")
|
firehoseTrace("assigning ordinal and index to logs")
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
@ -1712,7 +1727,7 @@ func (f *Firehose) OnLog(l *types.Log) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Polygon does add logs outside of a transaction to track native transfers, this is actually deprecated but we must support it
|
// Polygon does add logs outside of a transaction to track native transfers, this is actually deprecated but we must support it
|
||||||
firehoseTrace("adding Polygon log to deferred call state (address=%s, blockIndex=%d)", l.Address, l.Index)
|
firehoseTrace("adding Polygon log to deferred call state (address=%s)", l.Address)
|
||||||
f.deferredCallState.logs = append(f.deferredCallState.logs, log)
|
f.deferredCallState.logs = append(f.deferredCallState.logs, log)
|
||||||
} else {
|
} else {
|
||||||
firehoseTrace("adding log to call (address=%s call=%d [has already %d logs])", l.Address, activeCall.Index, len(activeCall.Logs))
|
firehoseTrace("adding log to call (address=%s call=%d [has already %d logs])", l.Address, activeCall.Index, len(activeCall.Logs))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue