# `Rujira.Node`
[🔗](https://github.com/RujiraNetwork/rujira_ex/blob/v0.0.1/lib/rujira/node.ex#L1)

Behaviour and configurable delegator for chain node queries.

Consumers configure the implementation via application env:

    config :rujira_ex, node: MyApp.NodeImpl

The implementation must export `query/3`.

# `query_fun3`

```elixir
@type query_fun3() :: (GRPC.Channel.t(), term(), keyword() -&gt;
                   {:ok, term()} | {:error, GRPC.RPCError.t() | term()})
```

# `query_fun`

```elixir
@type query_fun() :: (GRPC.Channel.t(), term() -&gt;
                  {:ok, term()} | {:error, GRPC.RPCError.t() | term()})
```

# `query`

```elixir
@callback query(query_fun() | query_fun3(), term(), keyword()) ::
  {:ok, term()} | {:error, term()}
```

# `query`

```elixir
@spec query(query_fun() | query_fun3(), term(), keyword()) ::
  {:ok, term()} | {:error, term()}
```

---

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