# useGetEscrowsFromIndexerByRole

## Uso

Este hook customizado expõe uma função para obter os depósitos em garantia que você está procurando.

{% code overflow="wrap" %}

```typescript
import { useGetEscrowsFromIndexerByRole } from "@trustless-work/escrow/hooks";
import { GetEscrowsFromIndexerByRoleParams } from "@trustless-work/escrow/types";

/*
 *  useGetEscrowsFromIndexerByRole 
*/
const { getEscrowsByRole } = useGetEscrowsFromIndexerByRole();

/* 
 * Retorna os depósitos em garantia que você está procurando
 * o payload deve ser do tipo `GetEscrowsFromIndexerByRoleParams`
*/
await getEscrowsByRole(payload);
```

{% endcode %}

### Função

* `getEscrowsByRole`\
  Responsável por construir e retornar dados com base no payload fornecido.

*Argumento:*

`GetEscrowsFromIndexerByRoleParams`: Um objeto contendo os campos necessários para obter os depósitos em garantia por função.

{% content-ref url="../developer-resources/tipos/payloads/obter-caucoes-por-papel" %}
[obter-caucoes-por-papel](https://docs.trustlesswork.com/trustless-work/pt/developer-resources/tipos/payloads/obter-caucoes-por-papel)
{% endcontent-ref %}

*Valor de Retorno:*

`escrows`: Os depósitos em garantia que você está procurando.

***

## Exemplo de UsoForm

{% code title="src/hooks/useGetEscrowsFromIndexerByRole.ts" overflow="wrap" %}

```typescript
import {
  useGetEscrowsFromIndexerByRole,
} from "@trustless-work/escrow/hooks";
import {
  GetEscrowsFromIndexerByRoleParams, 
} from "@trustless-work/escrow/types";

export const useGetEscrowsFromIndexerByRoleForm = () => {

 /*
  *  useGetEscrowsFromIndexerByRole
 */
 const { getEscrowsByRole } = useGetEscrowsFromIndexerByRole();

/*
 * função onSubmit, isso pode ser chamado por um botão de formulário
*/
 const onSubmit = async (payload: GetEscrowsFromIndexerByRoleParams) => {

    try {
      /**
       * Chamada de API usando os hooks do trustless work
       * @Note:
       * - Precisamos passar o payload para a função getEscrowsByRole
       * - O resultado será um depósito em garantia
      */
      const escrows = await getEscrowsByRole(payload);
      
      if (!escrows) {
        throw new Error("Escrows not found");
      }

      /**
       * @Responses:
       * escrows !== null
       * - Depósitos em garantia recebidos com sucesso
       * - Mostrar um toast de sucesso
       *
       * escrows === null
       * - Mostrar um toast de erro
       */
      if (escrows) {
        toast.success("Escrows Received");
      }
    } catch (error: unknown) {
      // lógica para capturar erro
    }
  };
}

```

{% endcode %}
