Highlights
Fixes
Changelog
Known Issues
Future Plans
A huge thanks to @MicaiahReid for all of his hard work making this release possible. We've had a vision to create "Interactive Documentation" for JSON-RPC since we started the Ganache rewrite back in April of 2019. This documentation had been 80% complete for well over a year, and as most of us know, it's the last 20% that is always the hardest. Micaiah revived this stalled docs initiative and took on the challenge of finishing up that last 20%; he decreased the "time to interactive" from dozens of seconds down to under 3 seconds, fixed tons of bugs, and polished up the interface (with the help of @OnlyOneJMJQ) for a much more usable and consistent look and feel.
We consider this a "first-pass" at interactive documentation, and we have big (top secret!) plans for this platform we hope to bring to life in the future. If you discover any issues, or have ideas on how we can improve the user experience let us know by opening a new issue.
Scroll down to the Highlights section to learn more!
If you have some time, we encourage you to browse our issues to find anything you'd like implemented/fixed sooner. Give them a +1 and we'll use this community feedback to help prioritize what we work on! Or better yet, open a new issue, or open a PR to fix an existing issue if you really want to get involved.
We've changed 29 files across 1 merged pull request, tallying 18716 additions and 4094 deletions, since our last release.
Download high-res video with audio
We are beyond thrilled to announce the official launch of our new interactive documentation site, ganache.dev!
ganache.dev will be the new home of Ganache's documentation. We're starting with interactive JSON-RPC documentation, but we will be building on this platform to provide 100%-in-browser tutorials, examples, and how-to guides, in addition to this reference documentation.
We designed ganache.dev to be useful for advanced users, but also (hopefully) easy for those new to the JSON-RPC layer of Ethereum. If you want to help improve this new "education" initiative there are a few ways you can help:
- open an issue if you find any bugs
- tell us your ideas by opening a new issue or start a discussion
- improve the examples, e.g.
evm_setAccountNonce
- make it faster!
- add
@EIP
tags to RPC methods, e.g.EIP-155
And if you really want to help, get the word out! Here's a handy link that will draft a tweet for you:
Happy hacking!
back to top
fix: improve styling and performance for interactive docs (#4033)
This PR:
- fixes the slow rendering issues of the current interactive docs by lazy-loading the monaco windows as you scroll
- fixes some bits of buggy UI/UX
- fixes all examples from api.ts
- fixes links to source code (they now point to code at commit hash that generated docs [note, in development you'll have to push your changes for these links to work])
- adds color theme switcher
- adds themes to monaco editor to allow ganache styling
- borrows heavily from @OnlyOneJMJQ's PR for styling (#4035)
- improves rendering consistency for users with JS disabled
- groups RPC methods and orders groups in a way that makes sense
- lazy loads ganache
- probably some other stuff
Known Issues:
- arguments list is one string, returns are split on colon
- non-primitive types, like
Transaction
,DATA
,QUANTITY
, etc aren't documented - TypeScript types for the ganache provider is not loaded into the editors
- The
console
andassert
helpers in the editors are incomplete implementations (and lack types)
back to top
- #4033 fix: improve styling and performance for interactive docs (@MicaiahReid)
back to top
Top Priority:
- Add
eth_createAccessList
RPC method (#1056)
Coming Soon™:
- Implications failed: fork.headers -> url (#2627)
- In Geth chain-mode, logic to accept/reject transactions based on gas price/limit should match Geth (#2176)
evm_mine
andminer_start
don't respect --mode.instamine=eager (#2029)evm_setAccount*
is race-conditiony (#1646)@ganache/filecoin@alpha
doesn't work withganache@alpha
(#1150)- Launching ganache with fork is throwing revert errors when communicating with 3rd party contracts (#956)
- Build a real pending block! (#772)
- VM Exception when interfacing with Kyber contract (#606)
- After calling
evm_mine
,eth_getLogs
returns same logs for all blocks (#533) - personal_unlockAccount works with any password (#165)
- --db Option Requires Same Mnemonic and Network ID (#1030)
back to top
Top Priority:
- Accept a genesis.json file (#1042)
Coming Soon™:
- Switch to esbuild to make build times faster/reasonable (#1555)
- fork specific block & specific index (#952)
- Allow to sync forked chain to the latest block (#643)
- Implement a streaming trace capability (#381)
- Improve log performance when forking (#145)
- Log contract events (#45)
back to top
Open new issues to influence what we gets implemented and prioritized.
💖 The Truffle Team