Description
Problem
#542 will close #414 by adding more clarity around validation vs handling. Where recv packet validation will return an ibc err ack upon failure, while recv packet handling would panic upon any system critical failure.
#542 is intended be refactoring (no functionality changes), whereas this issue is concerned with changing provider functionality to return an IBC err ack on recv slash packet validation when the validator from the packet is not found or unbonded.
Closing criteria
Change functionality of provider as described below, test new functionality properly.
Problem details
Currently, when the validator from a recv slash packet is not found or unbonded, we simply log an error and drop the packet. There is no err ack that is returned to the consumer. We should return an err ack in this case, by adding a check to validateSlashPacket()
Note that changing this functionality seems trivial, but there are a good amount of tests that non-trivially rely on current provider functionality, TestConsumerPacketSendExpiredClient
as example.