[ ] Working implementation of sovereign's IBC module (which wraps ibc-rs and is currently being implemented by Eiger). Ideally we can have a docker container of a sov sequencer with IBC that the relayer can query for proofs and submit transactions to
[ ] Modifications to the hermes relayer to support querying state + proofs and submitting transactions on Celestia (some of these modifications - like submitting Celestia headers to Sovereign may already be taken care of and more so not even needed if Rollup full nodes are expected to verify Celestia headers anyway)
[ ] Investigate what the API of Sovereign is and what adjustments are needed. It looks like Sovereign emits packets as events in an "Accessory" state not part of the committed tree (similar to Cosmos SDK chains)
[ ] Finish defining the circuits for the proofs
[ ] Either, wait for Sovereign to ship the outer circuits which we can wrap into a groth16 proof (Need to investigate what that looks like i.e. do the public inputs change)
[ ] Try to wrap the inner circuit proofs (either aggregated or not) directly into a groth16 proof.
[ ] Finish the ZK IBC Client (write a keeper to store the header hashes)
Then we can begin to write an e2e test
Other follow ups:
[ ] Investigate how to support sovereign sdk optimistic rollups
Summary
A success criteria for the v1 prototype is to be able to send TIA to and from a Sovereign SDK rollup using the ZK IBC Client.
Any progress and blockers should be tracked here