# `Ethers.Contracts.ENS.Resolver`
[🔗](https://github.com/ExWeb3/elixir_ethers/blob/v0.6.12/lib/ethers/contracts/ens.ex#L10)

Ethereum Name Service (ENS) Resolver Contract

# `__default_address__`

```elixir
@spec __default_address__() :: nil
```

Default address of the contract. Returns `nil` if not specified.

To specify a default address see `Ethers.Contract`

# `abi`

```elixir
@spec abi(&lt;&lt;_::256&gt;&gt;, non_neg_integer()) :: Ethers.TxData.t()
```

Prepares `ABI(bytes32 node, uint256 contentTypes)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - contentTypes: `{:uint, 256}`

## Return Types (when called with `Ethers.call/2`)
 - `{:uint, 256}`
 - `:bytes`

# `addr`

```elixir
@spec addr(&lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `addr(bytes32 node)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
 - `:address`

# `addr`

```elixir
@spec addr(&lt;&lt;_::256&gt;&gt;, non_neg_integer()) :: Ethers.TxData.t()
```

Prepares `addr(bytes32 node, uint256 coinType)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - coinType: `{:uint, 256}`

## Return Types (when called with `Ethers.call/2`)
 - `:bytes`

# `authorisations`

```elixir
@spec authorisations(&lt;&lt;_::256&gt;&gt;, Ethers.Types.t_address(), Ethers.Types.t_address()) ::
  Ethers.TxData.t()
```

Prepares `authorisations(bytes32, address, address)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - `{:bytes, 32}`
 - `:address`
 - `:address`

## Return Types (when called with `Ethers.call/2`)
 - `:bool`

# `clear_dns_zone`

```elixir
@spec clear_dns_zone(&lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `clearDNSZone(bytes32 node)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `constructor`

```elixir
@spec constructor(Ethers.Types.t_address()) :: binary()
```

Prepares contract constructor values for deployment.

To deploy a contracts use `Ethers.deploy/2` and pass the result of this function as
`:encoded_constructor` option.

## Parameters
 - _ens: `:address`

# `contenthash`

```elixir
@spec contenthash(&lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `contenthash(bytes32 node)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
 - `:bytes`

# `dns_record`

```elixir
@spec dns_record(&lt;&lt;_::256&gt;&gt;, &lt;&lt;_::256&gt;&gt;, non_neg_integer()) :: Ethers.TxData.t()
```

Prepares `dnsRecord(bytes32 node, bytes32 name, uint16 resource)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - name: `{:bytes, 32}`
 - resource: `{:uint, 16}`

## Return Types (when called with `Ethers.call/2`)
 - `:bytes`

# `has_dns_records`

```elixir
@spec has_dns_records(&lt;&lt;_::256&gt;&gt;, &lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `hasDNSRecords(bytes32 node, bytes32 name)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - name: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
 - `:bool`

# `interface_implementer`

```elixir
@spec interface_implementer(&lt;&lt;_::256&gt;&gt;, &lt;&lt;_::32&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `interfaceImplementer(bytes32 node, bytes4 interfaceID)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - interfaceID: `{:bytes, 4}`

## Return Types (when called with `Ethers.call/2`)
 - `:address`

# `multicall`

```elixir
@spec multicall([binary()]) :: Ethers.TxData.t()
```

Prepares `multicall(bytes[] data)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - data: `{:array, :bytes}`

## Return Types (when called with `Ethers.call/2`)
 - results: `{:array, :bytes}`

# `name`

```elixir
@spec name(&lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `name(bytes32 node)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
 - `:string`

# `pubkey`

```elixir
@spec pubkey(&lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `pubkey(bytes32 node)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
 - x: `{:bytes, 32}`
 - y: `{:bytes, 32}`

# `set_abi`

```elixir
@spec set_abi(&lt;&lt;_::256&gt;&gt;, non_neg_integer(), binary()) :: Ethers.TxData.t()
```

Prepares `setABI(bytes32 node, uint256 contentType, bytes data)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - contentType: `{:uint, 256}`
 - data: `:bytes`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_addr`

```elixir
@spec set_addr(&lt;&lt;_::256&gt;&gt;, Ethers.Types.t_address()) :: Ethers.TxData.t()
```

Prepares `setAddr(bytes32 node, address a)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - a: `:address`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_addr`

```elixir
@spec set_addr(&lt;&lt;_::256&gt;&gt;, non_neg_integer(), binary()) :: Ethers.TxData.t()
```

Prepares `setAddr(bytes32 node, uint256 coinType, bytes a)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - coinType: `{:uint, 256}`
 - a: `:bytes`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_authorisation`

```elixir
@spec set_authorisation(&lt;&lt;_::256&gt;&gt;, Ethers.Types.t_address(), boolean()) ::
  Ethers.TxData.t()
```

Prepares `setAuthorisation(bytes32 node, address target, bool isAuthorised)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - target: `:address`
 - isAuthorised: `:bool`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_contenthash`

```elixir
@spec set_contenthash(&lt;&lt;_::256&gt;&gt;, binary()) :: Ethers.TxData.t()
```

Prepares `setContenthash(bytes32 node, bytes hash)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - hash: `:bytes`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_dns_records`

```elixir
@spec set_dns_records(&lt;&lt;_::256&gt;&gt;, binary()) :: Ethers.TxData.t()
```

Prepares `setDNSRecords(bytes32 node, bytes data)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - data: `:bytes`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_interface`

```elixir
@spec set_interface(&lt;&lt;_::256&gt;&gt;, &lt;&lt;_::32&gt;&gt;, Ethers.Types.t_address()) ::
  Ethers.TxData.t()
```

Prepares `setInterface(bytes32 node, bytes4 interfaceID, address implementer)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - interfaceID: `{:bytes, 4}`
 - implementer: `:address`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_name`

```elixir
@spec set_name(&lt;&lt;_::256&gt;&gt;, String.t()) :: Ethers.TxData.t()
```

Prepares `setName(bytes32 node, string name)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - name: `:string`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_pubkey`

```elixir
@spec set_pubkey(&lt;&lt;_::256&gt;&gt;, &lt;&lt;_::256&gt;&gt;, &lt;&lt;_::256&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `setPubkey(bytes32 node, bytes32 x, bytes32 y)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - x: `{:bytes, 32}`
 - y: `{:bytes, 32}`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `set_text`

```elixir
@spec set_text(&lt;&lt;_::256&gt;&gt;, String.t(), String.t()) :: Ethers.TxData.t()
```

Prepares `setText(bytes32 node, string key, string value)` call parameters on the contract.

This function can be used for a transaction or additionally called for results (Use `Ethers.send_transaction/2`).
No amount of Ether can be sent with this function.

State mutability: `non_payable`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - key: `:string`
 - value: `:string`

## Return Types (when called with `Ethers.call/2`)
This function does not return any values!

# `supports_interface`

```elixir
@spec supports_interface(&lt;&lt;_::32&gt;&gt;) :: Ethers.TxData.t()
```

Prepares `supportsInterface(bytes4 interfaceID)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `pure`

## Function Parameter Types
 - interfaceID: `{:bytes, 4}`

## Return Types (when called with `Ethers.call/2`)
 - `:bool`

# `text`

```elixir
@spec text(&lt;&lt;_::256&gt;&gt;, String.t()) :: Ethers.TxData.t()
```

Prepares `text(bytes32 node, string key)` call parameters on the contract.

This function should only be called for result and never in a transaction on its own. (Use `Ethers.call/2`)

State mutability: `view`

## Function Parameter Types
 - node: `{:bytes, 32}`
 - key: `:string`

## Return Types (when called with `Ethers.call/2`)
 - `:string`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
