github trufflesuite/ganache v7.6.0

latest releases: v7.9.2, ganache@7.9.2, v7.9.1...
21 months ago

 Highlights   New Features   Miscellaneous   Changelog   Known Issues   Future Plans 


It's been about a month and a half since our last release, and we've been busy! This release has a couple of minor improvements and a big feature, but we've got even more exciting things coming down the pipe, like stable support for the merge hardfork, genesis.json support, "flavor" plugins, "interactive" docs, and a Ganache UI update! We're ending the year strong and we'll be starting it even stronger <insert motivational poster here>.

Thank you to our PR contributors @tenthirtyone, @jeffsmale90, @emilyJLin95, and @MicaiahReid. We'd also like to thank users that contributed to issues closed by the release @fvictorio, @kiview, @leofisG, @mabo-lh, @zhcppy, @ilyar, @lourenc, @mfornet, @kylezs, @TheArhaam, @anthanh, @GradeyCullins, @hacken-audits, @amandesai01, @rudewalt, and @parthlaw.

We use your feedback to plan our roadmap, so if you have some time, we encourage you to browse our issues to find anything you'd like implemented/fixed sooner. Give them a 👍 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.

We've changed 17 files across 5 merged pull requests, tallying 1237 additions and 153 deletions, since our last release.


Highlights

The release delivers a long-awaited and highly-requested feature: detach mode (starring Sandra Bullock, directed by Jeff Smale)!

Detach mode affords users the ability to start Ganache in the background with a simple flag: --detach. Check out the details and example usage below.

back to top


New Features

feat: add detach mode to the CLI (#3568)

A common, and rather annoying pattern projects have needed to implement is:

ganache & sleep 5
# interact with localhost:8545 somehow

This set of commands starts Ganache in the background (using &) and then waits a while (how much changes a lot from machine to machine) until it's ready.

Another inefficient workflow that Ganache has necessitated is maintaining a dedicated terminal just for running Ganache. This becomes extra annoying when you want to have different instances and flavors of Ganache running at the same time.

Ganache can do better...

Enter: Detach mode.

You can now start Ganache with the --detach flag, which will cause it return to the console as soon as it is ready to receive requests, outputting a nickname for the instance that can later be used to stop the instance.

The command ganache instances list will show you all of the instances of Ganache running in Detach mode, and you can stop them with ganache instances stop <name>.

$ ganache instances list
┌───────┬─────────────────────────┬──────────┬─────────┬────────────────┬────────┐
│   PID │ Name                    │ Flavor   │ Version │ Host           │ Uptime │
├───────┼─────────────────────────┼──────────┼─────────┼────────────────┼────────┤
│ 12182 │ salted_caramel_ganache  │ ethereum │ 7.6.0   │ 127.0.0.1:8545 │     4s │
├───────┼─────────────────────────┼──────────┼─────────┼────────────────┼────────┤
│ 53184 │ candied_caramel_truffle │ ethereum │ 7.6.0   │ 127.0.0.1:8546 │ 2m 56s │
└───────┴─────────────────────────┴──────────┴─────────┴────────────────┴────────┘

With the following command, you can start Ganache, run your tests, and stop Ganache when you are finished:

GANACHE=$(ganache --detach) && npm run test; ganache instances stop $GANACHE

Note that we use a ; in the above example. This will ensure ganache instances stop $GANACHE runs even if the tests fail.

Or, if you use PowerShell, you can do:

$GANACHE=ganache --detach; npm run test; ganache instances stop $GANACHE

We see Detach mode as the foundation for a new way of interacting with Ganache, and we plan on expanding the scope and features in upcoming releases. We'd love to hear your feedback on the feature, and your ideas on how to improve it. We'll be using the detach-mode label to track ideas and issues; have a look through the existing ones and add your voice by commenting or 👍, or open a new issue.

Fixes: #1001

back to top


Miscellaneous

  • ci: update actions/workflows to use Node 16 (#3833)
  • docs: document eth_feeHistory in RCP-METHODS.md (#3840)
  • docs: update README.md to clarify usage (#3723)
  • docs: add server to list of startup option namespaces in README.md (#3890)

ci: update actions/workflows to use Node 16 (#3833)

Just getting with the times by updating some GitHub Actions.

back to miscellaneous

docs: document eth_feeHistory in RCP-METHODS.md (#3840)

It does what it says on the label.

back to miscellaneous

docs: update README.md to clarify usage (#3723)

Clarifying how to run Ganache for usage on the CLI, as well as in programmatic usage.

back to miscellaneous

docs: add server to list of startup option namespaces in README.md (#3890)

smol change

back to miscellaneous

back to top


Changelog

back to top


Known Issues

Top Priority:

  • The Merge #3971
  • debug_storageRangeAt fails to find storage when the slot was created earlier in the same block (#3338)
  • 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 and miner_start don't respect --mode.instamine=eager (#2029)
  • evm_setAccount* is race-conditiony (#1646)
  • @ganache/filecoin@alpha doesn't work with ganache@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


Future Plans

Top Priority:

  • Accept a genesis.json file (#1042)

Coming Soon™:

  • Switch to esbuild to make build times faster/reasonable (#1555)
  • 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

Don't miss a new ganache release

NewReleases is sending notifications on new releases.