package core import ( ctypes "github.com/tendermint/tendermint/rpc/core/types" rpctypes "github.com/tendermint/tendermint/rpc/lib/types" "github.com/tendermint/tendermint/types" ) // Broadcast evidence of the misbehavior. // // ```shell // curl 'localhost:26657/broadcast_evidence?evidence={amino-encoded DuplicateVoteEvidence}' // ``` // // ```go // client := client.NewHTTP("tcp://0.0.0.0:26657", "/websocket") // err := client.Start() // if err != nil { // // handle error // } // defer client.Stop() // res, err := client.BroadcastEvidence(&types.DuplicateVoteEvidence{PubKey: ev.PubKey, VoteA: ev.VoteA, VoteB: ev.VoteB}) // ``` // // > The above command returns JSON structured like this: // // ```json // ``` // // | Parameter | Type | Default | Required | Description | // |-----------+----------------+---------+----------+-----------------------------| // | evidence | types.Evidence | nil | true | Amino-encoded JSON evidence | func BroadcastEvidence(ctx *rpctypes.Context, ev types.Evidence) (*ctypes.ResultBroadcastEvidence, error) { err := evidencePool.AddEvidence(ev) if err != nil { return nil, err } return &ctypes.ResultBroadcastEvidence{Hash: ev.Hash()}, nil }