func (cb *unsBuilder) SetContractBackend(backend bind.ContractBackend) UnsBuilder {
	cb.contractBackend = backend
	return cb
}
SetContractBackend set Ethereum backend for communication with UNS registry
package resolution
import (
	"encoding/json"
	"math/big"
	"net/http"
	"strconv"
	"strings"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/vm"
	"github.com/ethereum/go-ethereum/ethclient"
	kns "github.com/jgimeno/go-namehash"
	"github.com/unstoppabledomains/resolution-go/cns/contracts/resolver"
	"github.com/unstoppabledomains/resolution-go/dnsrecords"
	"github.com/unstoppabledomains/resolution-go/uns/contracts/proxyreader"
	"github.com/unstoppabledomains/resolution-go/uns/contracts/registry"
)
type Uns struct {
	cnsDefaultResolver     common.Address
	unsRegistry            common.Address
	cnsStartingEventsBlock uint64
	unsStartingEventsBlock uint64
	proxyReader            *proxyreader.Contract
	supportedKeys          supportedKeys
	contractBackend        bind.ContractBackend
	metadataClient         MetadataClient
}
type UnsBuilder interface {
	SetContractBackend(backend bind.ContractBackend) UnsBuilder
	SetMetadataClient(backend MetadataClient) UnsBuilder
	SetEthereumNetwork(network string) UnsBuilder
	Build() (*Uns, error)
}
type unsBuilder struct {
	contractBackend bind.ContractBackend
	metadataClient  MetadataClient
	network         string
}
type MetadataClient interface {
	Get(url string) (resp *http.Response, err error)
}
const unsMainnetProvider = "https://mainnet.infura.io/v3/c5da69dfac9c4d9d96dd232580d4124e"
const unsTestnetProvider = "https://rinkeby.infura.io/v3/c5da69dfac9c4d9d96dd232580d4124e"
var unsZeroAddress = common.HexToAddress("0x0")
func NewUnsBuilder() UnsBuilder {
	return &unsBuilder{}
}