code: func DeployPublicResolver(auth *bind.TransactOpts, backend bind.ContractBackend, ensAddr common.Address) (common.Address, *types.Transaction, *PublicResolver, error) {
  	parsed, err := abi.JSON(strings.NewReader(PublicResolverABI))
  	if err != nil {
  		return common.Address{}, nil, nil, err
  	}
  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PublicResolverBin), backend, ensAddr)
  	if err != nil {
  		return common.Address{}, nil, nil, err
  	}
  	return address, tx, &PublicResolver{PublicResolverCaller: PublicResolverCaller{contract: contract}, PublicResolverTransactor: PublicResolverTransactor{contract: contract}, PublicResolverFilterer: PublicResolverFilterer{contract: contract}}, nil
  }
docs: // DeployPublicResolver deploys a new Ethereum contract, binding an instance of PublicResolver to it.