Releases: trufflesuite/truffle
v5.11.5 — Dessertressed
Hello all! Tiny release this week, just internal improvements and dependency updates. Thanks once again to @legobeat for getting all of these! That's it for now!
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Internal improvements
Dependency updates
v5.11.4 — Malted milk powder
Hello all! Not much this week, primarily just a bunch of internal improvements and dependency updates. 🏗️ Thanks to @legobeat for getting a bunch of these! 🧱🥁 We've also updated the list of Sourcify networks, even though the fetcher no longer actually checks it.
That's it for now! 👋
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancements
- Add new sourcify networks; fix problem with beam testnet (#6182 by @haltman-at)
Internal improvements
- Remove gitHead field that snuck its way in (#6187 by @haltman-at)
- Indicate Node.js supported versions (#6180 by @legobeat)
- Pin nodejs 20 to 20.5 due to regression in 20.6 (#6186 by @legobeat)
- Deprioritize Truffle relays (#6183 by @haltman-at)
- Enforce new minimum node version (#6184 by @haltman-at)
Dependency updates
- Deduplicate babel packages (#6185 by @legobeat)
- Replace
node-ipc
9.2.1 with@achrinza/node-ipc
9.2.7 (#6178 by @legobeat) - Update semver from 7.5.2 to 7.5.4 (#6177 by @legobeat)
- Update axios from 1.2.4 to 1.5.0; update axios-retry from 3.1.9 to 3.7.0 (#6175 by @legobeat)
- Update apollo-server-core from 3.11.0 to 3.12.1 (#6173 by @dependabot[bot])
v5.11.3 — Twenty chocolate nodules
Hello all, Truffle now supports Node 20! 🎉
That being the case, we've also finally dropped support for Node 14. Of course Node 14 went end-of-life quite a while back, 🗓️ but we'd kept support for it up until we had Node 20 working. And now it is! Together with that, we've updated Ganche to Ganache 7.9.1.
There are some additional minor updates this week. The list of Sourcify networks has been updated once again. 🌐 However, we've also disabled the check here, so the Sourcify fetcher can now be used with networks we haven't bothered to add to the list, should we be tardy with any updates. Also, we fixed a small problem in the debugger that could crop up if you used modifier arguments together with user-defined value types. 👷
That's it for now! 👋
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancements
- Remove invalid networks check from Sourcify fetcher (#6171 by @haltman-at)
- Support Node 20 (#6169 by @haltman-at)
- Add sourcify chains for sourcify 2.6.0 (#6162 by @haltman-at)
Bug fixes
- Fix modifier argument detection by factoring out no-op handling (#6168 by @haltman-at)
Dependency updates
- Update Ganache to 7.9.1 (#6169 by @haltman-at)
v5.11.2 — Chocolate-hazelnut frozen yogurt
Hi all! 👋
We've got a small release this week. We've updated Truffle for Solidity 0.8.21 in various ways, including allowing better debugging of Yul 🎄 contracts when compiled with it, though this is a little experimental. 🧪 We've also updated the list of networks that can be used with truffle debug --fetch-external
🕵️ and truffle call --fetch-external
☎️, including adding support for Consensys's own Linea ⛓️ network!
That's all for this week, so bye for now! 👋
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancements
- Allow decoding while debugging Yul sources in Solidity 0.8.21 (and related changes) (#6154 by @haltman-at)
- Update sourcify networks for sourcify 2.5.0 (#6156 by @haltman-at)
- Update Truffle Init to use solc 0.8.21 (#6155 by @haltman-at)
- Add more networks to etherscan fetcher (including linea) (#6152 by @haltman-at)
Dependency update
- Upgrade solc to v0.8.21 (#6155 by @haltman-at)
v5.11.1 — Watermelon ice cream
Hello hello! 🫠 This week we have a minor release that includes some maintenance work 🔧 and updates to the new visual debugger in Truffle Dashboard (check out the v5.11.0 release notes for more info on getting started using it). Shout out to @dependabot for being cool and bumping stuff! Hee ho!
We hope your week is going well and we'll see you next time!
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancement
- add a tooltip for the debug button in the tx signer for dashboard (#6142 by @eggplantzzz)
Bug fix
- correct typo in etherscan message in Truffle Dashboard debugger (#6147 by @eggplantzzz)
Internal improvement
- move source range data into Sources component (#6146 by @eggplantzzz)
Dependency update
- bump word-wrap from 1.2.3 to 1.2.4 (#6143 by @dependabot[bot])
5.11.0 — Apple pie, no bugs allowed
Hey again everyone, welcome back! 👯
This week's release contains a special new feature; we have ported our CLI debugger 🙅🏽♀️🐛 over to work with Truffle Dashboard! So now you can step through your Solidity code in the browser! After installing the new version of Truffle, run truffle dashboard
on the command line. After Truffle Dashboard starts up, just navigate to the URL specified and you can get started! There may be a few preparation steps for you to get up-and-running with your code, so expand the information below for more! We hope you enjoy it and, as always, let us know if you find some bugs so that we can improve it!
--more on getting started with the dashboard debugger--
The first thing you will want to do is connect MetaMask to Dashboard using the button in the lower left. Then switch MetaMask to use the network you are interested in.To use the debugger to step through code, Truffle Dashboard will first need to have the compilations for the contracts involved. If the sources are verified on Etherscan, then using the debugger is simple: enter your transaction hash in the input field and click Debug. Truffle will automatically fetch them for you and compile them! If you are debugging a transaction and you have the sources locally in a Truffle or HardHat project, you can send them to Truffle Dashboard using one of the following two methods...
For Truffle projects 🍫
If you have a Truffle project with the source files, you should first open Truffle Dashboard by running truffle dashboard
in a terminal. Once Truffle Dashboard is running, navigate in a web browser to the URL specified. You should see a page with "Truffle Dashboard" in the top left. In another terminal, navigate to your Truffle project directory and run truffle develop
. After the development
console opens up, run migrate --compile-all
. After you migration is complete, Truffle Dashboard will have your compilations saved in the browser! You can then enter the transaction hash you are interested in in the Dashboard Debugger and click Debug! The debugger will load up your session and you can then step through your transaction. Neat!
For HardHat projects 👷♀️
If you have a HardHat project with the source files, you should open Truffle Dashboard by running truffle dashboard
in a terminal. Once Truffle Dashboard is running, navigate in a web browser to the URL specified. You should see a page with "Truffle Dashboard" in the top-left. In another terminal window, navigate to your HardHat project's root directory and install the @truffle/dashboard-hardhat-plugin by running npm install @truffle/dashboard-hardhat-plugin
. In your hardhat-config.ts
, add import "@truffle/dashboard-hardhat-plugin"
to the top of the file. Then run npx hardhat compile
to send the compilations to Truffle Dashboard where
they will be saved in the browser! You can then enter the transaction hash you are interested in in the Dashboard Debugger and click Debug! The debugger will load up your session and you can then step through your transaction. Voila!
Note 1: You can verify that the compilation was received by opening the developer console in your browser. Set the logging levels to "all levels" and you should see a "received cli-event message" that looks something like the screenshot below.
Note 2: The debugger is a bit resource-intensive and slow to initialize, and may even lock up your browser for a short time. But get yourself a coffee, and hopefully before you return it will be up and running! 💜
So the debugger for Truffle Dashboard is the meat 🍖 of this week's release. Besides that, we have a handful of maintenance-related PRs; some debugger/decoder-related bug fixes and a bump to the Ganache version utilized by Truffle. We also have to give a shoutout to @BreadQL for making a teeny tiny edit to a README in Truffle. Thanks!
We hope you all enjoy the weekend and we'll see you soon!
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
New feature
- add debugger to Truffle Dashboard (#6058 by @eggplantzzz)
Enhancements
- add support for multicall3 to decoder interpretations (#6137 by @haltman-at)
- update sourcify networks for sourcify 2.4.0 (#6141 by @haltman-at)
- update README.md (#6133 by @BreadQL)
Bug fixes
- have debugger skip anything called from a generated source while stepping (#6138 by @haltman-at)
- ensure
CalldataDecodingInspector
always passes through inspector options (#6136 by @haltman-at)
Internal improvement
- replace google analytics with mixpanel (#6132 by @eggplantzzz)
Dependency update
- update Ganache to 7.9.0 (#6134 by @haltman-at)
v5.10.2 — Icebox cake
How to upgrade
Welcome to another Truffle release!
This week we have a small set of updates, focused on improving the decoding and debugging experience. 🚈 Our Decoder's input interfaces are now more flexible; 🤸 it accepts both string
's and bigint
's in places where only number
's were accepted. Additionally, address value now has a contractClass
interpretation field that may provide additional information like contract name and payability. 📚
We also updated our source fetcher 🧲 to support the layer-2 Rollux blockchain mainnet and testnet.
Stay tuned for more next week! Enjoy the rest of your week. 🦆
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
New feature
- Add
contractClass
interpretation to address values (#6130 by @haltman-at)
Enhancements
- Allow strings and bigints instead of numbers in decoder input fields (#6131 by @haltman-at)
- Add Rollux & its testnet to Sourcify fetcher (#6127 by @haltman-at)
v5.10.1 — Rum baba
Hey everybody! Here's a Truffle release that will end your Friday with joy. 👨🍳
If you're using Truffle Test, Debugger, or Decoder, you'll be happy to know that our event decoding is improved to support contracts that use Solidity >= 0.8.20. 🕺 And if you're a fan of Yul, our Decoder can now properly decode internal function pointers from contracts compiled with viaIR
enabled. 👟 With these cases covered, it means decoding everywhere inside Truffle is hardened to give you a more stable experience.
Thanks to @calebyouki for bringing our attention to an issue related to the programmatic usage of @truffle/test
. 🪂 We've gone ahead and fixed that. Additionally, thank you to @73alexstep, @vlasov-hub, @BIOtrice, @elenaqi, and @HelenCodePro for looking after our readme's, cheers and welcome! 🐣
As per usual, our fetchers are kept up to date to reflect what Etherscan and Sourcify currently support. 🏌️ We also made an improvement to a codec component.
Try a rum baba if you can find one. 🥃 If not, well, still have a good weekend! We'll be back next week with more.
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancements
- Allow decoding of internal function pointers in
viaIR
compilations (in Solidity 0.8.20) (#6050 by @haltman-at) - Properly handle event decoding in Solidity 0.8.20 (#6049 by @haltman-at)
- Specify "magic" variables' type only in component tooltip, not via prefix (#6116 by @gnidan)
- Add zora network to Sourcify fetcher (#6117 by @haltman-at)
Bug fixes
- Handle using @truffle/test without @truffle/core (#6118 by @eggplantzzz)
Internal improvements
- Remove cronos testnet from Etherscan fetcher (#6120 by @haltman-at)
- Remove slow Hardhat test (#6114 by @haltman-at)
- Remove flaky hardhat test (#6099 by @haltman-at)
- Update README.md (#6110 by @73alexstep)
- Update README.md (#6109 by @vlasov-hub)
- Update README.md (#6104 by @BIOtrice)
- Update README.md (#6103 by @elenaqi)
- Update CONTRIBUTING.md (#6100 by @HelenCodePro)
Dependency updates
- Upgrade semver to 7.5.2 (#6121 by @dependabot[bot])
v5.10.0 — Chocolate fountain
Hello everyone, we've got a new Truffle for you!
The biggest addition this week is the new package @truffle/codec-components
! If you're making use of the @truffle/decoder
or @truffle/debugger
🕵 libraries, you may have found yourself saying, this output format is quite nice, but how do I display it on a webpage? 🕸️ Well, @truffle/codec-components
gives you a convenient way of doing so! Behold!
Look at that those collapsible arrays! This library is still pretty internal for now, but you can look forward to its use in Truffle features to come. And we are working on documentation and interfaces to make it more generally available in the future!
Speaking of @truffle/decoder
, we've upgraded it so that it can make use of 4byte.directory 📖 to decode transactions it otherwise can't make sense of. In order to use this, you'll need to pass { projectInfo: <...>, selectorDirectory: { enabled: true } }
when starting it up. (You can also set it to use a website other than 4byte.directory, so long as you have one that follows the same protocol. 🕴️)
If you do this, then when you get back a message decoding or unknown decoding, it may have attached a selectorBasedDecodings
interpretation; this will be an array of decodings based on what can be found on 4byte.directory. Note such decodings will be pretty bare-bones 🩻, but they'll be there!
But we've got other enhancements this week as well! Thanks to @farcaller, you can now override the copy of chai ☕ used for assert
and expect
in truffle test
🧪 by putting a different package in your config. Just write
module.exports = {
//rest of truffle-config.js
chai: {
package: require("my-preferred-chai")
}
}
and you should be good to go!
Also this week, the truffle dashboard
command now allows a --no-auto-open
option to prevent it from automatically opening a browser window 🪟; we've fixed some bugs 🐛 that prevented some people from compiling, decoding, or debugging their contracts; and we've updated what chains you can use truffle debug -x
or truffle call -x
with. ⛓️
We hope that's enough for you for one release! But if it isn't, well, come back next week!
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
New feature
Enhancements
- Allow Truffle Dashboard to run without launching a browser window automatically (#6096 by @cliffoo)
- Allow decoder to use 4byte.directory to decode (#6057 by @haltman-at)
- Allow to override chai from the config (#5974 by @farcaller)
- Add chains for Sourcify 2.2.3 (#6089 by @haltman-at)
- Add means for Dashboard to fetch and compile external contracts (#6075 by @eggplantzzz)
- Add ResultInspector option to use objects for mappings (#6074 by @eggplantzzz)
Bug fixes
- Add missing codec component for new error type (#6097 by @haltman-at)
- Put try/catch guard around ENS forward resolution in decoder/debugger (#6083 by @haltman-at)
- Correct resolver import in legacy workflow compile (#6078 by @eggplantzzz)
Internal improvements
- Increase timeout on some more tests, remove needless imports (#6092 by @haltman-at)
- Further increase timeouts on hardhat related tests (#6091 by @haltman-at)
- Replace bootstrap with install in scripts/workflows (#6090 by @haltman-at)
- Reject SolidityAST contracts verified on Etherscan (#6082 by @haltman-at)
v5.9.4 — Bowlful of berries
Hello again everyone! 👋
This week we have a few improvements for you. 🛠️ One impacts truffle call
and makes Truffle more accurately resolve function overloads. More accuracy is always better! 📐 Additionally there is an update that improves the way Truffle Dashboard operates when using the Frame wallet. It used to hang when no account was connected but Truffle now produces some helpful output in that case. Nice!
We hope your week goes well and we'll see you next time!
How to upgrade
We recommend upgrading to the latest version of Truffle by running:
npm uninstall -g truffle
npm install -g truffle
Changelog
Enhancement
- Swap priority order of booleans/strings if
strictBooleans
is on (#6044 by @haltman-at) - In Dashboard, notify user if no Frame account is/can be connected (#6071 by @cliffoo)