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

Warp e2e #586

Closed
wants to merge 92 commits into from
Closed

Warp e2e #586

wants to merge 92 commits into from

Conversation

aaronbuchwald
Copy link
Collaborator

@aaronbuchwald aaronbuchwald commented Mar 21, 2023

Why this should be merged

This PR implements the warp precompile. Addresses #440

How this works

This PR adds a warp precompile to integrate warp messaging into Subnet-EVM. This includes a Solidity interface for contracts that want to send a message via warp here.

How this was tested

This code has been tested through precompile unit tests, an e2e VM level test for the VM's handling of verification and acceptance of warp interactions, and an e2e ginkgo test that sends a warp message from subnet A to subnet B where the validator sets of subnet A and B are disjoint.

How is this documented

https://github.com/ava-labs/subnet-evm/blob/warp-e2e/precompile/contracts/warp/README.md

TODO

  • Split out network runner changes + minor changes to load test into Update load test to use ANR for network setup #579
  • Move cleanup into a separate PR: (Receipt handling fix: Warp e2e #586 (comment), BLS key setup for unit tests: Warp e2e #586 (comment))
  • Clean up parsing of AddressedPayload within an UnsignedMessage
  • Improve helpers for unpacking predicate bytes
  • Clean up comments and add README to warp precompile package
  • Add pre-verification gas charges to IntrinsicGas to account for work done in predicate verification
  • Add support for receiving messages from Primary Network
  • Add synchronous signature aggregator API call
  • Benchmark precompile including parsing, P-Chain validator set lookup, and signature verification to calculate gas costs
  • Add unit test for VerifyWithContext on an already validated block with a new context that is valid/invalid
  • Add warp precompile contract execution unit tests
  • Add warp precompile predicate unit tests
  • Stress testing
  • Cleanup and review

@aaronbuchwald aaronbuchwald added enhancement New feature or request warp labels Mar 21, 2023
@aaronbuchwald aaronbuchwald self-assigned this Mar 21, 2023
@aaronbuchwald aaronbuchwald changed the base branch from master to setup-e2e-helpers March 21, 2023 16:09
Base automatically changed from setup-e2e-helpers to master June 27, 2023 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request warp
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants