Skip to content
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

feat(client): Channel Timeout Tests #428

Open
refcell opened this issue Aug 13, 2024 · 1 comment
Open

feat(client): Channel Timeout Tests #428

refcell opened this issue Aug 13, 2024 · 1 comment

Comments

@refcell
Copy link
Collaborator

refcell commented Aug 13, 2024

Description

#427 implements an optimization for the client program to avoid needing to walk back the full chainnel_timeout window of L1 blocks, but this codepath isn't tested.

This issue is to write a test suite that incorporates the client's driver logic that walks back the channel_timeout window.

The first test case to cover is that a partial channel causes the client to fail. This currently doesn't work since when witness data is missing, the client is stuck in an infinite loop waiting for the oracle to retrieve the data.

A comprehensive test case to cover the happy path should do the following.

  • Start derivation at the L1 origin of the agreed upon pre-state optimistically.
  • The first channel that is closed is considered partially read, causing decoding to fail.
  • The pipeline should bubble up a batch decoding failure error.
  • Then the client's driver should reset the pipeline and re-start channel_timeout L1 blocks prior to the L1 origin.
@refcell
Copy link
Collaborator Author

refcell commented Aug 23, 2024

We should be able to use derivation test fixtures from https://github.com/ethereum-optimism/tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant