This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
v7.4.0 #3438
davidmurdoch
announced in
Releases
v7.4.0
#3438
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Highlights
New Features
Fixes
Miscellaneous
Changelog
Known Issues
Future Plans
It's been a little while since you've seen a Ganache release, but trust us, we're hard at work making Ganache better. Today we've got 2 new features, 2 bug fixes, and 11 miscellaneous internal changes to prove it 💪
We've changed 44 files across 16 merged pull requests, tallying 9431 additions and 172 deletions, since our last 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, or open a PR to fix an existing issue.
And a huge thank you to all issue openers/commenters (@area, @facuspagnuolo, @saurik, @simon-jentzsch) and contributors (@jeffsmale90, @cds-amal, @MicaiahReid, @gnidan, @tenthirtyone) who were a part of making this release happen!
We've merged 16 Pull Requests for this release, and most of them were internal facing changes or small bug fixes you probably won't notice. However, there are two new features you'll really love!
Ganache joins Remix, Foundry, and Vyper in supporting Hardhat style
console.log
statements from directly within Solidity!We've implemented
eth_getProof
which opens up the possibility to use Ganache together with Layer-2 blockchains, among other possibilities.back to top
console.log
from Solidity (#3327, #3421)eth_getProof
RPC method (#3199)feat: add the ability to use
console.log
from Solidity (#3327, #3421)Ganache now supports
console.log
in Solidity!Ganache now understands the output of Vyper's
print
statement and Hardhat'sconsole.sol
library contract.Details and how-tos will be written up in Truffle's upcoming
console.log
release. So stay tuned for that!If you want to try it out in your Truffle projects today you don't have to wait! Install our new package
@ganache/console.log
(npm install @ganache/console.log
) then use it in your Solidity contracts as follows:Make sure you are using the latest version of Ganache (v7.4.0 or later) and you should then see
console.log
output alongside the usual Ganache output! Example:back to new features
feat: add
eth_getProof
RPC method (#3199)EIP-1186 proposes a new
eth_getProof
RPC method, which returns a number of useful values, including hashes and proofs associated with the given address and storage keys.You can call this new RPC method with something like:
And it will return something like this:
A great big thanks to the team at EthereumJS, and specifically to @jochem-brouwer, whose implementation of
eth_getProof
does all of the heavy lifting for us. 🎉Fixes: #3076 and #382.
back to new features
back to top
fix: issue where
Quantity.toNumber()
returns incorrect value with leading00
bytes, and meaningful byte length > 6 (#3328)A regression in v7.3.1 introduced an issue where (in a fairly narrow edge case) an incorrect value was returned from an internal RPC data representation.
The return value of
Quantity.toNumber()
was incorrect in the case where the input buffer contained at least one leading00
byte, and the significant byte length was greater than 6.The result was a significantly lower value – the correct value right shifted by the number of leading
00
bytes.e.g.,
[0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
would have been converted to[0x10, 0x00, 0x00, 0x00, 0x00, 0x00]
resulting in:
17_592_186_044_416
instead of4_503_599_627_370_496
.back to fixes
fix: set up the chain correctly to ensure a consistent start time (#3389)
Previously, when initializing Ganache, slightly different start times could be used in different places. This caused calls to
evm_increaseTime
to return a value 1 second less than expected.With this change, Ganache uses a single call to
Date.now()
for calculating the internal time offset.Fixes: #3271.
back to fixes
back to top
--verbose
cli help text (#3354)callGasLimit
default value in README (#3322)concurrency: production
in Release workflow (#3355)hasOwn
JSDoc so it is correct (#3379)callGasLimit
default change to breaking changes list inUPGRADE-GUIDE.md
(#3320)chore: add "Pull Requests" section to CONTRIBUTING.md (#3289)
You may have guessed it, but this change adds a "Pull Requests" section to our CONTRIBUTING.md! But while we're here talking about how you can contribute to Ganache, why not check out our help wanted and good first time contributor issues to start contributing yourself!
back to miscellaneous
ci: avoid timeouts in mac-os github actions (#3356)
A recently introduced test borders on the edge of "just fast enough" and "too slow" and was causing intermittent test timeouts in the our GitHub Actions macOS runner. We've increased the timeout of this test to give it plenty of overhead.
back to miscellaneous
docs: update
--verbose
cli help text (#3354)The documentation for the
--verbose
CLI flag was inaccurate. Now it isn't.back to miscellaneous
test: fix intermittent test failure (#3357)
A recent change improved the accuracy of internal types and caused a test to become flaky. Whenever the
from
orto
values in the test contained leading00
s (like0x00C7656EC7ab88b098defB751B7401B5f6d8976F
) the test would fail.Before the change in #2983
Quantity.from("0x0011223344").toBuffer()
would returnBuffer< 00 11 22 33 44 >
; after #2983 leading00
bytes are stripped off, returningBuffer< 11 22 33 44 >
. This change would cause the test to fail because the Ethereum JSAddress
class validates the length of the input buffer, and throws if it is not exactly 20 bytes.We now use an
Address
class to handle the addresses in this test.back to miscellaneous
build(deps): bump parse-url from 6.0.0 to 6.0.2 (#3334)
Thanks, @dependabot!
back to miscellaneous
chore: create CODEOWNERS (#3188)
This just sets up an initial
CODEOWNERS
file so we can improve our code review process in the near future.back to miscellaneous
docs: correct
callGasLimit
default value in README (#3322)This goes along with #3320 to correct some documentation on a previous release that changed our default
callGasLimit
value.back to miscellaneous
chore: enforce
concurrency: production
in Release workflow (#3355)This ensures we don't trigger multiple Releases at once. See https://docs.github.com/en/actions/deployment/about-deployments/deploying-with-github-actions#using-concurrency for details on how this works.
back to miscellaneous
chore: update internal
hasOwn
JSDoc so it is correct (#3379)The JSDoc comment for our internal
hasOwn
helper was out of date with the implementation. Now it's not.back to miscellaneous
docs: add
callGasLimit
default change to breaking changes list inUPGRADE-GUIDE.md
(#3320)A known change in default start up options in Ganache v7 was left undocumented. This change adds a note about this change to our UPGRADE-GUIDE.md.
back to miscellaneous
chore: remove unused build file (#3274)
Just removing some totally unused code. Nothing to see here!
back to miscellaneous
back to top
Quantity.toNumber()
returns incorrect value with leading00
bytes, and meaningful byte length > 6 (@jeffsmale90)console.log
from Solidity #3327 feat: add the ability to useconsole.log
from Solidity (@davidmurdoch)--verbose
cli help text #3354 docs: update--verbose
cli help text (@cds-amal)Quantity
in test #3357 test: fix intermittent test failure (@davidmurdoch)callGasLimit
default value in README #3322 docs: correctcallGasLimit
default value in README (@davidmurdoch)concurrency: production
in Release workflow #3355 chore: enforceconcurrency: production
in Release workflow (@davidmurdoch)hasOwn
JSDoc so it is correct #3379 chore: update internalhasOwn
JSDoc so it is correct (@davidmurdoch)callGasLimit
default change to breaking change list in UPGRADE-GUIDE #3320 docs: addcallGasLimit
default change to breaking changes list inUPGRADE-GUIDE.md
(@davidmurdoch)eth_getProof
RPC method #3199 feat: addeth_getProof
RPC method (@jeffsmale90)console.log
event context is defined #3421 fix: ensureconsole.log
event context is defined (@davidmurdoch)back to top
Top Priority:
debug_storageRangeAt
fails to find storage when the slot was created earlier in the same block (#3338)evm_mine
with atimestamp
does not persist time offset (#3265)eth_feeHistory
RPC endpoint (#1470)eth_createAccessList
RPC method (#1056)Coming Soon™:
evm_mine
andminer_start
don't respect --mode.instamine=eager (#2029)evm_setAccountNonce
is race-conditiony (#1646)@ganache/filecoin@alpha
doesn't work withganache@alpha
(#1150)evm_mine
,eth_getLogs
returns same logs for all blocks (#533)back to top
Top Priority:
Coming Soon™:
back to top
Open new issues (or join our team) to influence what we gets implemented and prioritized.
💖 The Truffle Team
This discussion was created from the release v7.4.0.
Beta Was this translation helpful? Give feedback.
All reactions