github trufflesuite/ganache v7.4.4

latest releases: v7.9.2, ganache@7.9.2, v7.9.1...
2 years ago

 Highlights   Fixes   Miscellaneous   Changelog   Known Issues   Future Plans 


With the end of September we mark the successful joining of the original execution layer of Ethereum with its new Proof-Of-Stake consensus layer, the Beacon Chain, better known as The Merge. Congratulations to everyone who contributed to Ethereum's transition from Proof-of-Work to Proof-of-Stake.

To our users interested in trying post-merge features check out Ganache v7.4.4-alpha.0.

A special thank you to our external contributor @eltociear and contributor @jeffsmale90 for their contributions to this release.

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, open a PR to fix an existing issue, or apply to join our team (we're hiring!) if you really want to get involved.

We've changed 8 files across 3 merged pull requests, tallying 119 additions and 49 deletions, since our last release.


Highlights

This release removes zero-config forking support for deprecated testnets: Kovan, Rinkeby, and Ropsten test networks in anticipation of Infura deprecating these testnets from the Infura API on October 5th, 2022. Infura recommends users migrate to Goerli to test deployments.

back to top


Fixes

fix: calling evm_mine with a timestamp argument should reflect the change of time in subsequent blocks (#3531)

Previously, calling evm_mine with a timestamp argument would result in a block with the specified timestamp, but subsequent blocks would have a timestamp that didn't reflect this change in time. This only occurred when miner.timestampIncrement is unspecified or clock.

const provider = ganache.provider();

await provider.request({ method: "evm_mine", params: ["0x1"] });
const { timestamp: firstTimestamp } = await provider.request({
  method: "eth_getBlockByNumber",
  params: ["latest", false],
});

// wait 1 second before mining the second block
await new Promise((resolve, reject) => setTimeout(resolve, 1000));

await provider.request({ method: "evm_mine", params: [] });
const { timestamp: secondTimestamp } = await provider.request({
  method: "eth_getBlockByNumber",
  params: ["latest", false],
});

console.log({
  firstTimestamp,
  secondTimestamp,
});

Will output something like:

{ firstTimestamp: '0x1', secondTimestamp: '0x5e0be0ff' }

Where secondTimestamp is the current time in seconds, but should be 0x2.

With this change, blocks mined after providing a timestamp parameter to evm_mine, will have timestamps that reflect the change in time.

Fixes: #3265

back to top


Miscellaneous

  • refactor: remove support for deprecated test networks (#3732)
  • refactor: fix typo in uint-to-buffer.ts (#3738)

refactor: remove support for deprecated test networks (#3732)

Removes zero-config forking support for deprecated testnets: Kovan, Ropsten, and Rinkeby.

Fixes #3706

back to miscellaneous

refactor: fix typo in uint-to-buffer.ts (#3738)

Corrects missspelling of "signficant" to the more correct "significant".

back to miscellaneous

back to top


Changelog

  • #3531 fix: calling evm_mine with a timestamp argument should reflect the change of time in subsequent blocks (@jeffsmale90)
  • #3732 refactor: remove support for deprecated test networks (@jeffsmale90)
  • #3738 refactor: fix typo in uint-to-buffer.ts (@eltociear)

back to top


Known Issues

Top Priority:

  • debug_storageRangeAt fails to find storage when the slot was created earlier in the same block (#3338)
  • Add eth_feeHistory RPC endpoint (#1470)
  • 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:

  • Add flag for starting ganache in detached mode (#1001)
  • Accept a genesis.json file (#1042)

Coming Soon™:

  • Switch to esbuild to make build times faster/reasonable (#1555)
  • Add eip-155 support (#880)
  • 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 (or join our team) 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.