github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/internal/rpc/core/evidence.go (about) 1 package core 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/ari-anchor/sei-tendermint/rpc/coretypes" 8 ) 9 10 // BroadcastEvidence broadcasts evidence of the misbehavior. 11 // More: https://docs.tendermint.com/master/rpc/#/Evidence/broadcast_evidence 12 func (env *Environment) BroadcastEvidence(ctx context.Context, req *coretypes.RequestBroadcastEvidence) (*coretypes.ResultBroadcastEvidence, error) { 13 if req.Evidence == nil { 14 return nil, fmt.Errorf("%w: no evidence was provided", coretypes.ErrInvalidRequest) 15 } 16 if err := req.Evidence.ValidateBasic(); err != nil { 17 return nil, fmt.Errorf("evidence.ValidateBasic failed: %w", err) 18 } 19 if err := env.EvidencePool.AddEvidence(ctx, req.Evidence); err != nil { 20 return nil, fmt.Errorf("failed to add evidence: %w", err) 21 } 22 return &coretypes.ResultBroadcastEvidence{Hash: req.Evidence.Hash()}, nil 23 }