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: support l2 plus fendermint tests #1177

Open
wants to merge 12 commits into
base: support-l2-plus
Choose a base branch
from

Conversation

karlem
Copy link
Contributor

@karlem karlem commented Oct 18, 2024

Part of #1080

End-to-End Testing with Fendermint

  • Create end-to-end tests that simulate message propagation:
    • From root to L3 and back.
    • From L3 to L3.
    • Verify that errors propagate properly across these paths.

Changes and Improvements in Materializer for Testability

  • L2+ Subnet Deployment Improvements: Deploying L2+ subnets was previously hindered by insufficient wait times for the deployer's balance to be funded during the top-down finalization process. To address this, a wait_for_balance function has been added, which ensures the deployer has a positive balance before proceeding.

  • Custom Contract Deployment for L2+ Testing: Testing L2+ subnets requires deploying custom contracts, such as the IPC handler actor at the destination. Additionally, only smart contracts (not EOAs) are permitted to trigger cross-network messages. To support this, Materializer now includes a solidity_deployments field in the subnet manifest to enable the deployment of Solidity contracts.

  • Helper Contracts for Testing: Simple helper contracts have been added to the Materializer for testing purposes. These include contracts to trigger cross-net messages and manage IPC handlers at the destination.

@karlem karlem requested a review from a team as a code owner October 18, 2024 17:55
@karlem karlem changed the base branch from main to support-l2-plus October 18, 2024 17:56
// Run the command and handle errors
let output = cmd.output().context("failed to run forge create")?;

println!("OUT: {}", String::from_utf8_lossy(&output.stdout));
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@karlem print stderr in case of failure

.first()
.cloned()
.unwrap_or_else(|| {
panic!("No node with ethapi_http_endpoint found in the contract deployment config")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not panic. Return an error

@karlem karlem changed the title Support l2 plus fendermint tests feat: support l2 plus fendermint tests Oct 28, 2024
@karlem karlem force-pushed the support-l2-plus-fendermint-tests branch from 751c615 to a8aa488 Compare October 28, 2024 15:04
@karlem karlem force-pushed the support-l2-plus-fendermint-tests branch from a8aa488 to 2f44952 Compare October 28, 2024 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

Successfully merging this pull request may close these issues.

1 participant