github.com/number571/tendermint@v0.34.11-gost/rpc/core/evidence.go (about) 1 package core 2 3 import ( 4 "fmt" 5 6 ctypes "github.com/number571/tendermint/rpc/core/types" 7 rpctypes "github.com/number571/tendermint/rpc/jsonrpc/types" 8 "github.com/number571/tendermint/types" 9 ) 10 11 // BroadcastEvidence broadcasts evidence of the misbehavior. 12 // More: https://docs.tendermint.com/master/rpc/#/Evidence/broadcast_evidence 13 func (env *Environment) BroadcastEvidence( 14 ctx *rpctypes.Context, 15 ev types.Evidence) (*ctypes.ResultBroadcastEvidence, error) { 16 17 if ev == nil { 18 return nil, fmt.Errorf("%w: no evidence was provided", ctypes.ErrInvalidRequest) 19 } 20 21 if err := ev.ValidateBasic(); err != nil { 22 return nil, fmt.Errorf("evidence.ValidateBasic failed: %w", err) 23 } 24 25 if err := env.EvidencePool.AddEvidence(ev); err != nil { 26 return nil, fmt.Errorf("failed to add evidence: %w", err) 27 } 28 return &ctypes.ResultBroadcastEvidence{Hash: ev.Hash()}, nil 29 }