The current version of ethers as of this article is 5.7.0.
Hey all!
Another three months has just flown by, so it's time for another quick update on ethers.
A new v6 branch has been made available too, ethers@beta-exports, which uses pkg.exports to sub-categorize functionality, rather than sub-packages managed by reticulate. It drastically improves the development cycle and makes it much easier to clone, modify and build ethers. Try it out and let me know what you think.
Also, the latest round of Gitcoin is about to kick off, and as usual I highly encourage everyone to spend some time and poke around. There are lots of interesting and worthwhile projects to discover and with the quadratic matching, a little goes a long way to help out some open source projects we all depend on, or new projects we may one day come to depend on. Or just some projects that let us have some fun and enjoyment. Each donation is like a little pat on the back of encouragement, and motivates us to keep on swimming. <3
And now onwards, to some of the recent additions since the last article.
The Merge has already happened on all the testnets, with G-rli being the latest to that party, and with that a few minor changes have been added to ethers to accommodate this historic event.
For nearly all apps there is no code change required at all, as the launch has been very carefully organized around not breaking things.
The one thing people might care about though are the new tags added, "safe" and "finalized", which can be used anywhere a block tag can normally be used, on post-merge networks.
For a much more in-depth explanation of these new block tags, please check out the "Safe Head & Finalized Blocks" section in this article.
The oldest ticket on ethers for quite some time, has finally been closed; Unicode for ENS names, which now allows for wider usage of emojis in ENS names.
An absolutely huge thanks to Raffy for his work on standardizing the normalization for ENS names and creating a specification, including producing several implementations, a reference implementation and a highly compact implementation.
Another better-late-than-never addition in v5.7 is the addition of a ACTION_REJECTED error code, to coalesce the situation where the user (for example, in MetaMask) rejects sending a transaction or signing a message.
A bug, introduced when adding support for non-consistent networks (like BSC and Polygon) was finally squished!
When subscribing to events, in certain situations, the replay counter agewasn't being clamped to the beginning time of subscription, so in some circumstances a newly subscribed event handler would begin emitting old events from the near past, resulting in logs from up to 10 blocks in the past being emitted.
It was a frustrating-at-times bug to hunt down and took quite some time to even reproduce it reliably, but it was rewarding to finally find and fix. A huge thanks to everyone that helped provide support and for your patience.
- Added
baseFeeto theFeeDataobject, for those that wish to re-computemaxFeePerGaswhen using a custommaxPriorityFeePerGas - Updated lots of URLs and endpoint configurations for the various backends
- A couple of Typing changes for quality-of-life improvements
- Web3 secret storage format compatibility fix
- Fixed NodeJS 18 support; they dropped support for RIPEMD-160, so a library has been added to pick up the slack
- Enabled overriding fetch properties as you wish
Thanks for reading! If you have any suggestions or comments, please reach out. And if you want to keep up to date on my random meanderings, follow me on twitter.
Hack the planet! <3
"Well... That was traumatic. But such is the life of an adventurer."