Truffle Versions Save

:warning: The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over the years.

v5.11.5

6 months ago

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

  • Enforce deduped lockfile when linting dependencies (#6193 by @legobeat)

Dependency updates

v5.11.4

6 months ago

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

Dependency updates

v5.11.3

6 months ago

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

Bug fixes

  • Fix modifier argument detection by factoring out no-op handling (#6168 by @haltman-at)

Dependency updates

v5.11.2

7 months ago

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

Dependency update

v5.11.1

8 months ago

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

Dependency update

v5.11.0

8 months ago

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. Screenshot 2023-07-14 at 2 48 16 PM

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

Enhancements

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

Dependency update

v5.10.2

8 months ago

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

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

9 months ago

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

Internal improvements

Dependency updates

v5.10.0

9 months ago

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!

image

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

  • Introduce new @truffle/codec-components react component library (#6076 by @cliffoo)

Enhancements

Bug fixes

Internal improvements

v5.9.4

9 months ago

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)

Dependency updates

  • bump prettier to ^2.8.8 and clean up some dependencies for @truffle/dashboard-hardhat-plugin (#6072 by @cliffoo)
  • bump typescript to ^4.9.5, bump ttypescript to 1.5.15, bump typedoc to 0.24.8 (#6070 by @cliffoo)