github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/evidence/abci.go (about)

     1  package evidence
     2  
     3  import (
     4  	"fmt"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  
     8  	abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types"
     9  	tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types"
    10  )
    11  
    12  // BeginBlocker iterates through and handles any newly discovered evidence of
    13  // misbehavior submitted by Tendermint. Currently, only equivocation is handled.
    14  func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k Keeper) {
    15  	for _, tmEvidence := range req.ByzantineValidators {
    16  		switch tmEvidence.Type {
    17  		case tmtypes.ABCIEvidenceTypeDuplicateVote:
    18  			evidence := ConvertDuplicateVoteEvidence(tmEvidence)
    19  			k.HandleDoubleSign(ctx, evidence.(Equivocation))
    20  
    21  		default:
    22  			k.Logger(ctx).Error(fmt.Sprintf("ignored unknown evidence type: %s", tmEvidence.Type))
    23  		}
    24  	}
    25  }