Ether’s most recent version launched, here’s all you need to know!
Ether’s most recent minor version has just been launched, and it includes some exciting new features as well as bug fixes and improved quality of life.
Lookups off-chain for the L2 in you (via CCIP)
L2 support is a big target for both Ethers and the whole blockchain industry since it enhances the overall experience by lowering gas fees, boosting transaction capacity, and allowing considerably faster transactions.
With the recently finalized CCIP Read (formerly Durin) standard, view and pure contract methods can defer their responses to off-chain services, where storage and data processing are inexpensive, and then have the response verified by the contract using whatever security mechanism the author deems acceptable.
CCIP Read is now supported by all high-level ENS functions, allowing it to resolve addresses (including multi coin, such as BTC), avatars, content-hashes, and any other feature that the built-in ENS resolver can handle.
Because of the potential for security issues with the introduction of CCIP Read, it must be explicitly enabled every call.
Because an external web resource is fetched as directed by a contract that could be controlled by an untrustworthy actor, automatic calls (without user interaction) to untrustworthy contracts should be carefully considered because they could leak users’ IP addresses or be used to coordinate a DDoS attack.
For these reasons, the Provider exposes a new function that a subclass can override, such as to proxy queries through an anonymizing service or reject untrustworthy URLs or contracts.
Support for ENS Wildcards (EIP-2544)
ENS Wildcards is a topic worthy of its own essay, but in a nutshell, it allows a single resolver to respond to and resolve a limitless number of sub-names. While this may not seem particularly spectacular at first, it has huge consequences for L2 adoption.
The problem stemmed from a constraint in the Cloudflare Worker API’s server-side implementation of the fetch function, which is incompatible with certain of ethers’ internal configuration to increase node.js and browser compatibility.