Releases: ensdomains/go-ens
Releases · ensdomains/go-ens
Release list
v4.0.0
First release of the ENS-maintained Go library. Package-level reads go through the Universal Resolver, so ENSIP-10 wildcards and ERC-3668 CCIP-Read work. Write and management APIs are unchanged.
This is a breaking major version relative to v3.6.0. Upgrade guide: MIGRATION.md.
Install:
go get github.com/ensdomains/go-ens/v4Added
- Universal Resolver client (
NewUniversalResolver) bound to the canonical proxy0xeEeEEEeE14D718C2B47D9923Deab1335E144EeEeon Ethereum mainnet and Sepolia - Functional options:
WithAddress,WithHTTPClient,WithMaxHops UniversalResolverread helpers:Resolve,ResolveAddress,Reverse,Text,Contenthash,MultiAddressccipreadpackage: ERC-3668 client that followsOffchainLookupreverts, with a 4-hop cap aligned with viem/ethers- Typed Universal Resolver errors (
ResolverNotFoundError,HTTPGatewayError,ReverseAddressMismatchError, …) plus sentinelsErrUnregisteredandErrNoAddress UnknownChainErrorwhen the default constructor is used on a chain without a known UR deploymentDNSEncodefor the DNS wire format the Universal Resolver expects (ENSIP-10)- ENSIP-15 normalisation via
github.com/adraffy/go-ens-normalize CoinTypeETH(60) constant
Changed
- Module path:
github.com/wealdtech/go-ens/v3→github.com/ensdomains/go-ens/v4 context.Contextis required onResolve,ReverseResolve,Format,PublicResolverAddress,Name.Address, andDeriveTokenID- Those reads resolve through the Universal Resolver instead of walking the registry
- Names are normalised with ENSIP-15 (stricter than v3 IDNA; some namehashes differ)
- Reverse resolution requires a primary name that forward-resolves back to the queried address
- Minimum Go version is 1.25.0
github.com/ethereum/go-ethereumis 1.17.5
Security
- CCIP-Read gateway URLs are restricted to
http/https; redirects are not followed; response bodies are capped at 16 MiB - Bump
golang.org/x/cryptoto 0.55.0,golang.org/x/netto 0.58.0, andgithub.com/consensys/gnark-cryptoto 0.18.1
Full notes: CHANGELOG.md