-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for converting IBCEvent
into abci::Event
#81
Comments
Found this while looking at informalsystems/hermes#1375. What is the concrete usecase for converting IBC events into abci events? |
I think the idea is to make an ibc-rs chain (e.g., basecoin-rs) capable of generating events out of executed transactions, so that it can send these events to Hermes (via websocket). Then we can have an integration test that covers the entire feedback loop between basecoin-rs and Hermes, allowing to test the |
So |
basecoin-rs (upon receipt of And here's the code that converts these events to ABCI Events that can be returned to tendermint: |
IBCEvent
into abci::Event
I didn't know this issue before trying my implementation! I'd like to add this conversion so that a chain can emit an IBC event including specified attributes for each event. |
Bumps [github.com/gogo/protobuf](https://github.com/gogo/protobuf) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/gogo/protobuf/releases) - [Commits](gogo/protobuf@v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: github.com/gogo/protobuf dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Crate
ibc
Summary
Currently, there is no way to transform an
IbcEvent
into the correspondingtendermint::abci::Event
.Context
This feature is necessary for being able to test integration of the
ibc
crate against Hermes. More concretely, for this kind of test, the complete path of execution is as follows:send_msgs
to submit a batch of transactions to a chain, and expects as a response aVec<IbcEvent>
:https://github.com/informalsystems/ibc-rs/blob/d5ba86d182a8cc488f3dd500408bdde320db11be/relayer/src/chain.rs#L108
the chain processes these transactions by calling into our
ibc
modules, which produceIbcEvent
types upon delivering a set of transactions.the ABCI interface of a Tendermint chain should produce
abci::Event
types (notIbcEvent
). The present issue covers this step of translatingIbcEvent
intoabci::Event
.the chain responds to the relayer with a vector of
abci::Event
. The relayer then translates these intoIbcEvent
which it can continue processing.Question
Notice that there is a redundant step in the execution above: produce
IbcEvent
(step 2), translate intoabci::Event
(step 3), translate back intoIbcEvent
(step 4). It is not clear if we can avoid this double conversion.Acceptance Criteria
There are two parts to this issue:
probably somewhere in
ics02_client/events.rs
.For Admin Use
The text was updated successfully, but these errors were encountered: