func NewDNSResolver(backend bind.ContractBackend, domain string) (*DNSResolver, error) {
	registry, err := NewRegistry(backend)
	if err != nil {
		return nil, err
	}
	address, err := registry.ResolverAddress(domain)
	if err != nil {
		return nil, err
	}
	return NewDNSResolverAt(backend, domain, address)
}
NewDNSResolver creates a new DNS resolver for a given domain
package ens
import (
	"fmt"
	"strings"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/types"
	"github.com/wealdtech/go-ens/v3/contracts/dnsresolver"
	"golang.org/x/crypto/sha3"
)
type DNSResolver struct {
	backend      bind.ContractBackend
	domain       string
	Contract     *dnsresolver.Contract
	ContractAddr common.Address
}