Releases: trufflesuite/ganache-ui
v1.3.1 - Petersburg fork & More! β
v1.3.1 - Petersburg fork & More! β
The Petersburg hardfork went live on mainnet on block number 7,280,000, on February 28th 2019. This hardfork removes the reentrancy attack vector introduced in the Constantinople hardfork (which also went live on mainnet on block 7,280,000). This release includes [email protected]
which includes support for the Petersburg hardfork. Also: bug fixes!
Release Highlights
The default hardfork in Ganache
, ganache-core
, and ganache-cli
is now petersburg
. We also fixed lots of bugs and paid off some technical debt!
New Features:
- Upgrade to ganache-core 2.5.1 to add support for the Petersburg fork (/trufflesuite/ganache#323 and 84d93d1).
Bug Fixes:
This release also contains some bug fixes!
- Make sure
miner_start
andminer_stop
are asynchronous (/trufflesuite/ganache#322) - Fix bug for transaction receipts with multiple transactions in one block (/trufflesuite/ganache#268)
- Handle invalid block numbers in
eth_getTransactionCount
(/trufflesuite/ganache#291) - Return correct transaction and receipt trie roots (/trufflesuite/ganache#231 and /trufflesuite/ganache#331)
- Fix contract storage access issue when using snapshot and revert (/trufflesuite/ganache#329)
- Fix bug when accessing storage state in
debug_traceTransaction
(/trufflesuite/ganache#330) - Fix regression causing
fork_block_number
option to be ignored (/trufflesuite/ganache#342)
Maintenance and Testing:
- Refactor gas tests (/trufflesuite/ganache#289)
- Enable process listeners for uncaught exceptions in tests (/trufflesuite/ganache#301)
- Remove extra test run from coverall support (/trufflesuite/ganache#299)
- Update lodash (/trufflesuite/ganache#303)
- Add tests for external library function calls (/trufflesuite/ganache#225)
- Improve websocket test coverage (/trufflesuite/ganache#310)
- Update ethers test and ethers.js in package.json so the tests work again (/trufflesuite/ganache#345)
Documentation:
- Clarify
evm_snapshot
behavior inREADME.md
inganache-cli
andganache-core
(#615)
More steady releases to come in the future so keep on filing issues and submitting PRs!
π The Truffle Team
Related Releases
v1.3.0 - CΜΆoΜΆnΜΆsΜΆtΜΆaΜΆnΜΆtΜΆiΜΆnΜΆoΜΆpΜΆlΜΆeΜΆ πΏ
v1.3.0 - CΜΆoΜΆnΜΆsΜΆtΜΆaΜΆnΜΆtΜΆiΜΆnΜΆoΜΆpΜΆlΜΆeΜΆ πΏ
Let's talk about that constantinople
bug that was discovered in the 11th hour, shall we? We are proud to have created software that played a roll in the discovery of the attack and love the way the community of builders (and buidlers!) worked together to postpone the hardfork and come up with a solution!
This release contains the original Constantinople hardfork implementation and is now the default hardfork in Ganache.
It is safe and recommended to test your contracts using the default "constantinople" hardfork available in this release of Ganache. The only expected difference between the hardfork in this release and the proposed Petersburg hardfork is that some transactions under Petersburg will cost more in gas due to the removal of the vulnerable EIP.
Release Highlights
Implements EIP-1013, Hardfork: Constantinople in a new setting, β
βCHAIN
βHARDFORK
. Valid values are currently "Byzantium" and "Constantinople". The default value is "Constantinople".
This version contains the Constantinople hardfork implementation as it was originally intended by EIP-1013. This hardfork did not go live on Mainnet as planned due to a reentrancy attack discovered by ChainSecurity.
We are expecting a variant of Constantinople, currently named Petersburg, with the reentrancy attack vector removed to go live on Mainnet a few weeks from now (EIP PR: ethereum/EIPs#1716). The proposed change from the original Constantinople hardfork is to remove the offending EIP, EIP-1283.
New Features:
- Constantinople support (trufflesuite/ganache#274)
- Hardfork setting (#1107)
Bug Fixes:
This release also contains some bug fixes!
- Make sure
eth_call
,eth_estimateGas
, anddebug_traceTransaction
can't modify state or the state cache (trufflesuite/ganache@e9a54a4) - Don't allow subscription attempts over HTTP (trufflesuite/ganache#252)
- Ensure block numbers specified after
latest
match other EVM implementations (trufflesuite/ganache#228) - Allow dynamic responses in CORS requests (trufflesuite/ganache#226)
- Allow CORS requests to access cookies (ganache-cli doesn't set cookies, but web3 still requires access to them in some browsers) (trufflesuite/ganache@9633943, trufflesuite/ganache@71cc77f)
- Fix pending transactions responses to conform to the JSON-RPC spec (trufflesuite/ganache#227)
More steady releases to come in the future so keep on filing issues and submitting PRs!
π The Truffle Team
Related Releases
v2.0.0-beta.2 - Oven-Ready Chocolate Birthday Cake π
We've purified our cake batter by removing some of those nasty cake invaders π thanks to all of you who tested v2.0.0-beta.1
and reported issues. We really couldn't do this without our supportive community!
The oven is preheated and we're ready to bake this cake! Let us know how this beta works out for you!
Want to Learn More About How Ganache 2 Helps You?
π‘ If you're coming in here fresh, you may have missed our last beta release. In a nutshell, Ganache 2 gives you more insight on what's happening within your dapp with decoded transactions, events, and contract states. Further, workspaces let you persist blockchain state as well as give you the option of multiple configurations.
I highly encourage you to read the release notes for Ganache 2.0.0-beta.1 to learn more about what you gain from Ganache 2 and how to use it!
Bug Fixes π
- No padding in the block detail page with no transactions - #1054
- Ganache is not closing processes on Windows - #1055
- Loading spins indefinitely when having the 'ganache' network name in truffle-config.js - #1056
- "Save" lets you change settings you shouldn't change - #1068
- Saving the quickstart workspace resets the chain - #1069
- "Cancel" on saving workspace crashes - #1074
- Brand new workspace creation had projects when it should have none - #1070
- Pressing the enter key when removing a workspace starts the workspace instead - #1073
v1.2.3 - Core Updates and Small Bug Fixes
Updates to Ganache Core
This release brings some much needed updates from ganache-core, the engine that fuels ganache-cli and this repository. The previous 1.x version used v2.2.1
of ganache-core
. We attempted to release v1.2.3 before when [email protected]
was released. However, due to the build's instability, we decided to postpone v1.2.3
until a stable version of ganache-core
was ready. This release uses [email protected]
. You can see the ganache-core
release notes to see the changes below:
- 2.3.0
- 2.3.1 did not have release notes as it was a quick hotfix build
- 2.3.2-beta.4
- 2.3.2-beta.5
- 2.3.2-beta.6
- 2.3.2
- 2.3.3
Bug Fixes π
A couple of generic bug fixes got merged into the 2.x codebase; this release ports those fixes to the 1.x codebase since 2.0.0
is still in beta.
- Fix Issue Where 0 is Always Prepended in Blocktime Textfield (thanks @LookRain for the PR!) - #949 and trufflesuite/ganache@a2c5c3a
- Ganache Cannot Restart if Log Directory has been Removed - trufflesuite/ganache@505af46 and trufflesuite/ganache@a2c5c3a
v2.0.0-beta.1 - Chocolate Birthday Cake (Batter) π
Ganache turns 2 in the first public beta of this major release! What better way to celebrate than with a cake? The batter is ready; please help us finish the baking process by using the beta in your development workflow. This version is feature-complete, but as with any beta release be on the lookout for cake invaders. π
π‘ Get ready for more dapp insights! You can now save your development blockchains in workspaces. These workspaces contain the configuration of your development chain, along with any Truffle projects you've provided to decode contract and event data.
βΉοΈ Why a major version bump? There is some debate over the use of semver for GUI applications. After our own deliberations, we've decided to bump Ganache's major version to 2.0 because the workflow has breaking changes.
Contents
- Contents
- Workspaces: One Ganache, Multiple Blockchains
- Truffle Projects: Contract & Event Decoding
- Acknowledgments
Workspaces: One Ganache, Multiple Blockchains
In Ganache 2.0 a development blockchain is one part of a larger workspace. Workspaces allow you to save the settings and state of your development blockchain to revisit later.
The other part(s) of a workspace are your desired Truffle projects. By pointing Ganache to a truffle-config.js
or truffle.js
config file (see more in creating workspaces), we can use that project's contract artifact files to decode transaction, storage, and event data.
New Home Screen
When you open Ganache 2.0, you'll see a new home screen. On this screen you're prompted to load an existing workspace (if any exist), create a new custom workspace, or quickstart a one-click blockchain with default options. We'll go over each of these options below.
The Quickstart Workspace
The QUICKSTART
button on the home screen opens the Quickstart
workspace. This workspace is similar to how Ganache 1.x worked: you get a brand new blockchain with a genesis block every time you open it. The Quickstart
workspace is meant to provide a clean slate for prototype development.
Workspace Default Configuration
Every workspace has it's own configuration. Each workspace's configuration is based off the Quickstart configuration at the time of workspace creation. While these can be changed, the Quickstart
workspace starts with the below options:
Hostname: 127.0.0.1 - localhost
Port Number: 7545
Network ID: 5777
Automine: true
Error on Tx Failure: true
Account Default Balance: 100
Total Accounts to Generate: 10
Autogenerate HD Mnemonic: false
Lock Accounts: false
Output Logs to File: false
Verbose Logs: false
However, during workspace creation, the Autogenerate HD Mnemonic
is set to true
to maintain the same set of accounts.
Creating Workspaces
There are two methods to create a workspace described below.
Saving the Current Quickstart Blockchain as a New Workspace
As mentioned above, the Quickstart
workspace resets the blockchain on every restart. Perhaps we found ourselves prototyping in the Quickstart
workspace to try out a couple of things, but then we want to save the blockchain as a new workspace for later recall.
To accomplish this, click the SAVE
button near the upper right of the screen when in the Quickstart
workspace. You will be taken to the options screen to configure your workspace.
Creating a Workspace From Scratch
You can also create a workspace from the home screen. Clicking the NEW WORKSPACE
button on the home screen will take us to the options screen to configure your workspace.
Workspace Configuration
A workspace name will be randomly generated for you, but you can go ahead and change it. You can also change any of the other configuration options. When you're ready to start the new workspace, click SAVE WORKSPACE
in the top right corner.
You will be taken to the accounts screen. Notice the name of your new workspace near the upper right.
Loading Existing Workspaces
After at least one workspace has been created, the home screen will now have a list of workspaces for you to choose from. You can scroll through the list to find the desired workspace, and then load the workspace by clicking its name.
You will be taken to the accounts page. You'll notice that the blockchain state picked up from where you left off (i.e. mnemonic, accounts, associated balances, block height, transactions, etc.).
Switching Workspaces
To switch workspaces, click the SWTICH
button near the upper right of the screen. You'll be taken to the home screen where you can select a different existing workspace or create a new one.
Deleting Workspaces
To delete a workspace, from the home screen, hover over the workspace name and click the trash can icon on the right hand side. From there you'll see a prompt asking you to confirm the deletion. Click REMOVE
to delete the workspace. This action is irreversible! While your linked Truffle projects will remain safe and unchanged, the blockchain data (i.e. blocks, transactions, events, etc.) will be deleted.
Truffle Projects: Contract & Event Decoding
Ganache 2.0 goes beyond blocks and transactions, providing you with fully decoded contract and event data. To get these benefits we must add Truffle projects to our workspace.
<a name="user-content-truffle-projects-contract-event-de...
v1.2.2 - Bug Fixes π
Release Highlights
- Switched from ganache-cli to ganache-core, which should provide some performance improvement
- Updates to [email protected] which contains
gasPrice
related fixes, improved gas estimation, and adds new features - see v2.2.1 release notes for more info. - Allows for a smaller minimum window size than in previous versions.
- Adds a "clear logs" button to the log view.
Note: if you're reading this on Ganache v1.1.0 or v1.2.0 on Windows you'll need to click here to get the latest release instead of clicking the button below.
v1.2.1 - Bug Fixes π
Release Highlights
- Updated to ganache-cli v6.1.6 to fix a problem introduced by an updated dependency which broke
eth_sendRawTransaction
, and therefore made it so that MetaMask wouldn't work with the previous release. - Fixed the update dialog on Windows so that it'll actually open the page to take you to the update.
Note: if you're reading this on Ganache v1.1.0 or v1.2.0 on Windows you'll need to click here to get the latest release instead of clicking the button below.
v1.2.0 - Glazed Doughnut π©
Release highlights
- Adds numerous settings including
- Initial account balance
- Account locking/unlocking
- Logfile directory
- Detects common networking issues preventing the server from starting and allows user to edit settings to correct these problems.
- Fixes bug which prevented the UI from working correctly when listening on
0.0.0.0
- Adds an About page to the settings view.
- Displays scrollbars on areas with scrollable content.
- Fixes Window menu for Accounts, Blocks, Transactions, Logs, and Settings on mac.
- Updates ganache-cli to v6.1.5 - release notes.
- Also includes ganache-core v2.1.4 - release notes.
v1.1.0 - Candy Apple π
Release Highlights
- WebSockets and Web3 1.0 pub/sub support!
- On first start every user now gets their own unique and persistent mnemonic!
- Configurable handling of contract runtime errors for compatibility with geth/parity!
- Notifies when new versions are released!
- Much, much more stable than v1.0.2 and prior!
Enjoy!
-- The Truffle Team
v1.1.0-beta.1 - Candy Apple π
Release Highlights
- Exposes a settings switch to control transaction error reporting behavior mentioned in previous beta release.
- Handles errors on startup better, exposing the bug dialog box rather than hanging.
- Includes changes from ganache-cli v6.1.0-beta.1 and ganache-core v2.1.0-beta.1
- Fix
evm_mine
to return a valid JSON RPC response (trufflesuite/ganache#354) - Revert default value of
vmErrorsOnRPCResponse
to true to avoid breaking change - Fixes invalid RPC response errors caused by transactions which should have been rejected before entering the transaction pool (trufflesuite/ganache#84, trufflesuite/ganache#471)
- Makes
eth_call
use the block gas limit when no gas limit is specified - Fixes batch request support (trufflesuite/ganache#320)
- Fix
Note: This release is a beta, meaning we think it's going to be great, but we haven't put it through rigorous manual testing just yet. Please help us out and raise issues for any problems you discover!