-
-
Notifications
You must be signed in to change notification settings - Fork 2
Enhance fork mode documentation with plain-English explanations and comprehensive troubleshooting #26
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
Enhance fork mode documentation with plain-English explanations and comprehensive troubleshooting #26
Conversation
…tical examples, and comprehensive troubleshooting Co-authored-by: joe10832 <103850533+joe10832@users.noreply.github.com>
joe10832
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR significantly improves the fork mode documentation by making blockchain forking concepts more accessible to developers through plain-English explanations, comprehensive examples, and enhanced troubleshooting guidance.
- Rewrote technical descriptions using accessible language with practical context
- Added detailed step-by-step examples for DeFi (Aave) and NFT marketplace (OpenSea) integration testing
- Expanded troubleshooting section from 6 to 10 common issues with debugging strategies
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| README.md | Enhanced fork mode overview with clearer explanations and comprehensive quick start example |
| docs/node/overview.mdx | Added detailed real-world testing scenarios with Aave and OpenSea examples, plus navigation improvements |
| docs/node/configuration.mdx | Expanded troubleshooting section with 4 new issues and added debugging strategies |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| expect(blockNumber).toBeGreaterThan(18500000); | ||
|
|
||
| // Check that we have test accounts with balance | ||
| const balance = await node.getBalance('0x...'); // Your test account address |
Copilot
AI
Sep 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The placeholder address 0x... in the code example should be replaced with a complete valid Ethereum address format or a more descriptive placeholder like 0x1234...5678 to show the expected format.
| const balance = await node.getBalance('0x...'); // Your test account address | |
| const balance = await node.getBalance('0x1234...5678'); // Your test account address |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
joe10832
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| .withLocalNode({ | ||
| fork: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key', | ||
| forkBlockNumber: 18500000, | ||
| forkBlockNumber: 18500000, // Use a known good block with stable state |
Copilot
AI
Sep 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The comment mentions 'stable state' but doesn't explain what makes this specific block number stable or how developers should choose their own block number. Consider adding guidance on selecting appropriate fork blocks.
| forkBlockNumber: 18500000, // Use a known good block with stable state | |
| forkBlockNumber: 18500000, // Use a recent, finalized block where the protocol state is stable. | |
| // Choose a block that is not during a major upgrade or reorg, and ideally after all relevant transactions have settled. | |
| // You can find suitable block numbers using a block explorer (e.g., Etherscan) by looking for blocks just before or after important events. |
| // Test with real NFT collections and marketplace contracts | ||
| await page.goto('https://opensea.io/collection/your-collection'); | ||
| // ... test NFT bidding logic | ||
| await page.goto('https://opensea.io/collection/bored-ape-yacht-club'); |
Copilot
AI
Sep 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Using a specific NFT collection (BAYC) in the example may become outdated or unavailable. Consider using a more generic example or explaining how developers should substitute their own collection URLs.
| await page.goto('https://opensea.io/collection/bored-ape-yacht-club'); | |
| // Replace <your-nft-collection> with your desired NFT collection slug | |
| await page.goto('https://opensea.io/collection/<your-nft-collection>'); |
| const config = configure() | ||
| .withLocalNode({ | ||
| fork: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key', | ||
| forkBlockNumber: 18500000, // Specific block reduces memory |
Copilot
AI
Sep 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment suggests that using a specific block number reduces memory usage, but this isn't necessarily accurate. Specific block numbers provide reproducibility, while using 'latest' might actually use more memory due to ongoing state changes. The comment should clarify this distinction.
| forkBlockNumber: 18500000, // Specific block reduces memory | |
| forkBlockNumber: 18500000, // Specific block ensures reproducibility and may use less memory than 'latest' |
This PR significantly improves the fork mode documentation to make blockchain forking concepts more accessible to developers. The enhancements focus on clarity, practical examples, and comprehensive troubleshooting support.
What's Changed
Plain-English Explanations
Enhanced Real-World Examples
Comprehensive Troubleshooting
Expanded the troubleshooting section from 6 to 10 common issues:
Improved Navigation
Before/After Comparison
Before: Fork mode documentation was technically accurate but assumed deep blockchain knowledge
After: Documentation now guides developers from basic concepts to advanced troubleshooting with practical examples
The changes maintain all existing functionality while making the toolkit significantly more approachable for developers new to blockchain testing. All code examples are syntactically correct and follow established patterns in the codebase.
Files Modified
README.md- Enhanced fork mode overview with clearer examplesdocs/node/overview.mdx- Added comprehensive real-world testing scenariosdocs/node/configuration.mdx- Expanded troubleshooting with debugging strategiesCreated from VS Code via the GitHub Pull Request extension.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.