Skip to content

Tracking Issue: hyperspace-ethereum #10

@chris-compfi

Description

@chris-compfi

See PR #5 for ongoing work.

This is a tracking issue for the hyperspace-ethereum work currently being done, it will list all the missing or incomplete features.

to get started quickly you can check out the branch and go

cargo test -p hyperspace-ethereum --test sanity_checks

Tests are a work in progress so you will see failures like

running 6 tests
test test_deploy_yui_ibc_and_mock_client ... ok
test test_hyperspace_ethereum_client ... ok
test test_ibc_client ... FAILED
test test_ibc_connection ... FAILED
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: TrieError("Invalid state root: [86, 232, 31, 23, 27, 204, 85, 166, 255, 131, 69, 230, 146, 192, 248, 110, 91, 72, 224, 27, 153, 108, 173, 192, 1, 98, 47, 181, 227, 99, 180, 33]")', anvil/src/eth/backend/mem/mod.rs:2250:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test test_ibc_channel ... FAILED
test test_ibc_packet ... FAILED

failures:

---- test_ibc_client stdout ----
thread 'test_ibc_client' panicked at 'not yet implemented: query-client-state: error: Revert(Bytes(0x))', hyperspace/ethereum/src/ibc_provider.rs:250:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- test_ibc_connection stdout ----
thread 'test_ibc_connection' panicked at 'not yet implemented', hyperspace/ethereum/src/ibc_provider.rs:586:9

---- test_ibc_channel stdout ----
thread 'test_ibc_channel' panicked at 'not yet implemented', hyperspace/ethereum/src/ibc_provider.rs:736:12

---- test_ibc_packet stdout ----
[hyperspace/ethereum/src/client.rs:275] &var_name = "0x632c3301e3f531181188889255cd2b5963b70302fac2cc87ce7f5193e3a8ba26"
[hyperspace/ethereum/src/client.rs:275] &storage_index = "0"
thread 'test_ibc_packet' panicked at 'error sending request for url (http://localhost:33585/): connection closed before message completed', hyperspace/ethereum/src/client.rs:287:32


failures:
    test_ibc_channel
    test_ibc_client
    test_ibc_connection
    test_ibc_packet

test result: FAILED. 2 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.45s

yui-ibc-solidity is missing analogues for the following events:

hyperspace-ethereum provider:

  • query_latest_ibc_events
  • ibc_events
  • query_client_consensus
  • query_client_state
  • query_connection_end
  • query_channel_end
  • query_proof
  • query_packet_commitment
  • query_packet_acknowledgement
  • query_next_sequence_recv
  • query_packet_receipt
  • latest_height_and_timestamp
  • query_packet_commitments
  • query_packet_acknowledgements
  • query_unreceived_packets
  • query_unreceived_acknowledgements
  • query_send_packets
  • query_received_packets
  • query_client_update_time_and_height
  • query_host_consensus_state_proof
  • query_timestamp_at
  • query_channels
  • initialize_client_state
  • query_client_id_from_tx_hash
  • query_connection_id_from_tx_hash
  • query_channel_id_from_tx_hash

functions that are only used in tests (optional):

  • query_connection_channels
  • query_connection_using_client
  • query_ibc_balance
  • query_clients

hyperspace-ethereum, test code, sanity_checks.rs:

  • test_ibc_client
  • test_ibc_connection
  • test_ibc_channel
  • test_ibc_packet

Other Missing:

  • Channel/Module white list
  • Chain::submit only passes in messages: Vec<ibc_proto::google::protobuf::Any> which forces us to do redundant work to try and deserialise the message into some other counterparty message so we can see the port-id and channel-id to actually send the message.
  • query_client_message ???
  • get_proof_height ???

Nice to have:

  • Debugging cycle is absolute dog water with yui-ibc, some tooling to help figure out why a particular contract is trapping with a more useful message than revert(x0) would be nice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions