This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
v7.0.0-beta.0 #1615
davidmurdoch
announced in
Releases
v7.0.0-beta.0
#1615
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Highlights
New Features
Breaking Changes
Fixes
Known Issues
Future Plans
This release is the first beta release of the new and improved Ganache v7.0.0. You'll definitely want to catch up on the previous changes, if you haven't already, before reading on!
Thanks to everyone who tried out our previous alpha releases and provided feedback! You have been immensely helpful!
And thanks again to contributors, mentors, and reviewers: @MicaiahReid, @gnidan, @cds-amal, and @haltman-at. And special thanks to our community members for reporting and commenting on issues fixed by this release: @domob1812, @NicsTr, @convexman, and @rainwater11!
Note: this is a beta release; even these 7.0.0 release notes are "beta" and the information here is likely incomplete. There may still be bugs and kinks to work out before we ship things off to
rc
, then finally tolatest
. You absolutely should use this beta release, please do try it out and let us know if breaks for you!To install globally run:
We've changed 70 files across 12 merged pull requests, tallying 2,616 additions and 65,747 deletions, since our last release. The high number of deletions is due to reverting our lock files back to v1, as we aren't yet confident in npm 7+'s stability.
This release fixes many bugs and adds some new features, but there is one that we are really excited about:
Free integrated archive data for Mainnet, Ropsten, Kovan, Rinkeby, and Görli!
You can now run your own fork of Ethereum's Mainnet with a simple command:
which will automatically connect to a Mainnet Node with full Archive Data, for free! 🤯
Full announcement is below.
back to top
Other than the big Infura + Ganache integration feature mentioned above, we've also added a couple of smaller features that we hope will improve the development experience.
wallet.passphrase
Optionevm_addAccount
/evm_removeAccount
RPC MethodsIntegrate Infura into Ganache forking (#1513)
This is a big deal! You now have free access to Infura²'s archive data for Ethereum's Mainnet, Ropsten, Kovan, Rinkeby, and Görli networks built right into Ganache itself!
The command
ganache --fork
will fork Ethereum's Mainnet at the latest block number with access to full archive data.We currently don't impose restrictions outside of the default limits provided by Infura, but will monitor usage closely in order to limit abuse so we can continue to provide this resource to you for free.
You can also fork from Ropsten, Kovan, Rinkeby, and Görli:
If you prefer using Ganache's option namespaces you can use:
You can also use this feature programmatically:
This feature is made possible by our close relationship with Infura.
Please let us know if you have problems, questions, or suggestions!
back to features
Add a
wallet.passphrase
Option (#1513)This feature allows you to specify a passphrase that will be used for personal namespace commands (
personal_unlockAccount
,personal_sendTransaction
, etc.) on all startup accounts. Before this feature,""
was the default (and only) password for startup accounts.NOTE: Specifying the
wallet.passphrase
parameter does not lock accounts by default. Thewallet.lock
(previouslywallet.secure
) parameter can be used to lock accounts by default. Ifwallet.passphrase
parameter is used withoutwallet.lock
, the passphrase will still be used whenpersonal_lockAccount
is used.back to features
Add
evm_addAccount
/evm_removeAccount
RPC Methods (#1513)The
evm_addAccount
method can be used to add any address to thepersonal
namespace. Ganache will create a fake private key which will then used for all personal namespace commands sent using that added address. Here's an example of how to use this:The
evm_removeAccount
method can be used to do just the opposite — it will remove an account from thepersonal
namespace.back to features
Add support for the "arrowGlacier" hardfork (#1524)
We updated ethereumjs-vm, and related packages, add added support for the "arrowGlacier" hardfork which is set to activate at block number 13,773,000 which is predicted to occur on December 8, 2021.
This hardfork introduces a single change: it pushes the difficulty bomb back several months. This doesn't affect Ganache, other than accepting the hardfork name in our options.
back to features
back to top
We've replaced some previous alpha features and errors (#1513)
In the
[email protected]
release, we introduced theevm_unlockUnknownAccount
andevm_lockUnknownAccount
RPC methods, and we since realized that these could be made simpler to use with a few tweaks. So, the breaking part of this change is that these methods have been removed. The good news is that they've been replaced withevm_addAccount
andevm_removeAccount
, which is explained in more detail in the features section of these notes.We've also updated some error messaging to encourage the use of passphrases over passwords. So, the original error
signer account is locked
error changed toauthentication needed: password or unlock
in[email protected]
and has (hopefully!) finally settled onauthentication needed: passphrase or unlock
in the beta. We doubt this will actually break anything for our users, but we thought we'd mention it just in case.back to top
We've got a handful of fixes in the release, some big (like making forking "chainId-aware"), some small. Thanks again to users who opened issued or provided feedback on these issues!
Fix account locking/unlocking (#1513)
Starting up Ganache creates a set of accounts and saves their private/public keys to an encrypted¹ keyfile, or so we thought. It turns out that there were some cases where the keyfile wasn't properly initialized. So, when an account was locked via
personal_lockAccount
, it was removed from our whitelist of "unlocked" accounts, never to be found again. When an attempt to unlock the account viapersonal_unlockAccount
would then be made, the private key for the account wouldn't be found and the unlock would fail.Now, we properly store accounts in the keyfile, so all accounts in the personal namespace can be locked and unlocked.
back to fixes
Make web3_sha encode data correctly (#1593)
We were previously treating the data as utf-8 instead of hex.
Now we do things the right way.
back to fixes
Make the quiet flag actually work (#1587)
The command
ganache --quite
wasn't making Ganache be quiet.Now it does.
back to fixes
Make forking chainId aware (#1537)
Previous versions of Ganache applied the local hardfork rules to eth_call and debug_traceTransaction calls run in the context of a block that should be executed under different hardfork rules.
This bug may have caused results to be incorrect in cases where new opcodes were added, gas costs changed, or new transaction types added in hardforks.
This fix makes the assumption that the result of a call to
eth_chainId
will accurately identify the chain (Mainnet = 1, Görli = 5, etc).back to fixes
Fix Blake2-256 calculation (#1524)
There was a bug in @ethereumjs/vm package - blake2-256 precompile (see EIP-152) was implemented incorrectly. This was fixed in a newer version and we've upgraded the package in this release.
back to fixes
Remove bigint's n from cli output (#1591)
Startup display on Ganache 7.0.0-alpha.2 included an "n" after some numbers. This release properly prints the numbers without the
n
suffix.back to fixes
Return error for eth_call when call errors (#1589)
We incorrectly were requiring the use of our
vmErrorsOnRPCResponse
flag in order to returneth_call
revert messages and errors.back to fixes
back to top
eth_call
is not behaving as it should in alpha version (#1547)asyncRequestProcessing
doesn't default totrue
like it is supposed to (#1532)debug_traceTransaction
resultsback to top
eth_createAccessList
method.evm_mine
will return the new blocks instead of just0x0
.evm_setCode
andevm_setStorageAt
RPC methods.evm_snapshot
ids globally unique (unpredictable instead of a counter).eth_getRawTransactionByHash
RPC method.debug_accountAt
RPC method.ganache filecoin
command will look for the@ganache/filecoin
package and start up a Filecoin and IPFS server.ganache --flavor ethereum --flavor filecoin --flavor optimism
.Open new issues (or join our team) to influence what we gets implemented and prioritized.
back to top
1. The keyfile isn't always encrypted on start up. If the user starts up Ganache with all accounts unlocked with the default passphrase ("") we will keep the unencrypted private keys in memory.
2. If you don't know already, Infura provides access to Ethereum networks.
💖 The Truffle Team
This discussion was created from the release v7.0.0-beta.0.
Beta Was this translation helpful? Give feedback.
All reactions