Skip to content
This repository has been archived by the owner on Feb 26, 2024. It is now read-only.

v7.0.2

Compare
Choose a tag to compare
@MicaiahReid MicaiahReid released this 03 Feb 20:59
· 205 commits to develop since this release

 Fixes   Changelog   Known Issues   Future Plans 


Two more fixes are ready in this release! Thank you to our issue reporters for these bringing these to our attention (@Ruj89 and @davidmurdoch). It means a lot to us that you use Ganache and want to be a part of making it even better.

In this release we've changed 3 files across 2 merged pull requests, tallying 151 additions and 46 deletions.

Last call for T-shirts

If you helped contribute to Ganache v7 in any way, we tagged you in our v7 release notes to let you know you're eligible to receive a limited edition Ganache T-shirt. We've had many of you claim the goods and want to get these bad boys made, but we want to be sure all of our contributors have had the chance to claim them first. If you're on the list¹ and you're interested, email us at [email protected] by Thursday, February 10th to claim.


Fixes


Fix how we return logs from eth_subscribe (#2268)

In an oversight on our end, we unintentionally had a breaking change between Ganache v6 and v7 in which we started aggregating event logs and emitting them once for every transaction that triggered them. Ganache v6 was inline with Geth's logging, which emits separately for each event.

With this release we've fixed this behavior to once again be inline with Geth. When using eth_subscribe to subscribe to logs, you can expect each emitted contract event to emit a separate log with the following structure:

{
  type: "eth_subscription",
  data: {
    result: {
        address: address,
        blockHash: blockHash,
        blockNumber: blockNumber,
        data: data,
        logIndex: logIndex,
        removed: removed,
        topics: topics,
        transactionHash: transactionHash,
        transactionIndex: transactionIndex
    },
    subscription: subscriptionId
  }
}

back to fixes

Fix type compatibility with Web3 (#2272) (#4743 in ChainSafe/web3.js)

After the initial release of Ganache v7 we found that our provider type wasn't playing nice with Web3's provider type. After a little digging, we found that both repos had bugs. Our side of the fix is available in this new release, and we've opened a PR in the web3.js repo to fix it on their end. This should be merged in their coming 1.7.1 release. Shout out to the ChainSafe team for getting this merged and for all of the sweet stuff they make.

back to fixes

back to top


Changelog

back to changelog

back to top


Known Issues

Top Priority Issues:

  • evm_mine and miner_start don't respect --mode.instamine=eager (#2029)
  • Ganache forking is not working as expected (#2122)
  • Ganache v7.0.0 - typings are broken (#2134)
  • A rejected transaction should possibly be added back into the pool (#2176)
  • Shutting down the Ganache Server v7.0.2 (#2185)
  • Node.js v12 outputs a µWS warning in the console (#2095)
  • Simulating transactions on Ganache v7 fork throws insufficient funds error (#2162)
  • Ganache's provider type is not compatible with Web3 (#2125)
  • Websocket logs subscription not supported by Geth Client (#2206)

Coming Soon™:

  • evm_setAccountNonce is race-conditiony (#1646)
  • --miner.callGasLimit implementation is wrong (#1645)
  • We don't return a proper pending block (#772)
  • Forking doesn't work in the browser (#1245)
  • Uncles aren't fully supported when forking (#786)
  • Forking may fail in weird and unexpected ways. We need to "error better" here (#615)
  • Node.js v12 doesn't handle memory as well as 14+ and may crash computing very large debug_traceTransaction results (#2106)
  • Our bundle size is larger than ideal (#2096)

back to top


Future Plans

  • Update the eth_maxPriorityFeePerGas RPC method to return as Geth does, eth_gasPrice - baseFeePerGas (#2097)
  • Add support for the eth_feeHistory RPC method (#1470)
  • Support for enabling eligible draft EIPs before they are finalized or considered for inclusion in a hard fork (#1507)
  • New hard fork support well in advance of the hard fork launch (#2099)
  • Add an eth_createAccessList method (#1056)
  • Track test performance metrics over time (#2105)
  • Track real world Ganache usage (opt-in and anonymized) to better tune performance and drive bug fixes and feature development (#2100)
  • Track test coverage (#2101)
  • evm_mine will return the new blocks instead of just 0x0 (#536)
  • Add new evm_setCode and evm_setStorageAt RPC methods (#649)
  • Make evm_snapshot ids globally unique (unpredictable instead of a counter) (#655)
  • Support eth_getRawTransactionByHash RPC method (#135)
  • Support debug_accountAt RPC method (#813)
  • Allow "mining" to be disabled on start up (#248)
  • Set CLI options via config file, package.json, or ENV vars (#2102)
  • Create a CLI interactive/REPL mode (#2103)
  • Enable a CLI daemon mode (#2104)
  • "Flavor" Plugins: We're building support for Layer 2 plugins into Ganache so we can start up and manage other chains. e.g., The ganache filecoin command will look for the @ganache/filecoin package and start up a Filecoin and IPFS server.
  • Multi-chain configurations: you'll be able to start up your project's entire blockchain "ecosystem" from a single ganache command: e.g., ganache --flavor ethereum --flavor filecoin --flavor optimism.
    • this is where defining your CLI options via JSON config will come in very handy!
  • We've laid the groundwork for additional performance improvements. We expect to see an additional 2-5x speed up for typical testing workloads in the near future.

Open new issues (or join our team) to influence what we gets implemented and prioritized.

back to top

1. Ganache v7 Contributors:
@davidmurdoch @MicaiahReid @gnidan @eggplantzzz @kevinweaver @cds-amal @haltman-at @kevinbluer @seesemichaelj @tcoulter @nicholasjpaterno @eshaben @CruzMolina @honestbonsai @domob1812 @moda20 @0xGorilla @fedgiac @FFdhorkin @NicsTr @convexman @rainwater11 @aliveli186 @winksaville @anvacaru @nepoche @gas1cent @Fatorin @0xng @wilwade @MatthiasLohr @alexhultman


💖 The Truffle Team