# Bloques dependientes

Algunos bloques dependen de módulos compartidos (providers, helpers, query, etc.).

Instala las dependencias primero.

{% hint style="warning" %}
Si omites las dependencias, encontrarás errores de contexto faltante en tiempo de ejecución.
{% endhint %}

### Diagrama de dependencias

Usa el diagrama de dependencias interactivo para confirmar qué necesita un bloque.

{% embed url="<https://blocks.trustlesswork.com/get-started/dependencies>" %}

***

### Dependencias por grupo de bloques

#### Listados (Escrows por Signatario / Escrows por Rol)

Se aplica a:

* Escrows por Signatario: [Tabla](https://blocks.trustlesswork.com/blocks/escrows-escrows-by-signer-table), [Tarjetas](https://blocks.trustlesswork.com/blocks/escrows-escrows-by-signer-cards)
* Escrows por Rol: [Tabla](https://blocks.trustlesswork.com/blocks/escrows-escrows-by-role-table), [Tarjetas](https://blocks.trustlesswork.com/blocks/escrows-escrows-by-role-cards)

Módulos requeridos:

* `wallet-kit`
* `providers`
* `handle-errors`
* `helpers`
* `tanstack`
* `escrows/single-release` o `escrows/multi-release` o `escrows/single-multi-release` (depende de qué acciones quieras habilitar)

{% hint style="info" %}
Incluir **todos** providers para listados.

Los listados abren diálogos de detalles y necesitan los contextos dialog + amount.
{% endhint %}

{% code title="CLI (ejemplos)" %}

```sh
# Núcleo
npx trustless-work add wallet-kit
npx trustless-work add tanstack
npx trustless-work add providers

# Acciones (elige lo que necesitas)
npx trustless-work add escrows/single-release
# npx trustless-work add escrows/multi-release
# npx trustless-work add escrows/single-multi-release

# Módulos utilitarios opcionales
npx trustless-work add handle-errors
npx trustless-work add helpers
```

{% endcode %}

#### Acciones (single-release / multi-release)

Todas las acciones single-release y multi-release ([Inicializar Escrow](https://blocks.trustlesswork.com/blocks/escrows-initialize-escrow), [Financiar Escrow](https://blocks.trustlesswork.com/blocks/escrows-fund-escrow), [Cambiar estado del hito](https://blocks.trustlesswork.com/blocks/escrows-change-milestone-status), [Aprobar hito](https://blocks.trustlesswork.com/blocks/escrows-approve-milestone), [Liberar](https://blocks.trustlesswork.com/blocks/escrows-release-escrow), [Disputar](https://blocks.trustlesswork.com/blocks/escrows-dispute-escrow), [Resolver](https://blocks.trustlesswork.com/blocks/escrows-resolve-dispute), [Actualizar Escrow](https://blocks.trustlesswork.com/blocks/escrows-update-escrow)) requieren:

* `wallet-kit`
* `providers`
* `handle-errors`
* `tanstack`
* `helpers`

{% code title="CLI (mínimo para acciones)" %}

```sh
npx trustless-work add wallet-kit
npx trustless-work add tanstack
npx trustless-work add providers

npx trustless-work add handle-errors
npx trustless-work add helpers
```

{% endcode %}

***

### Wrapper de providers (el orden importa)

Envuelve tu app con estos providers, en este orden exacto.

Incluir `EscrowDialogsProvider` y `EscrowAmountProvider` cuando uses diálogos o el contexto de amount.

{% hint style="danger" %}
No reordenes los providers.

La mayoría de los problemas de “hooks que no funcionan” provienen del orden de los providers.
{% endhint %}

{% code title="app/layout.tsx" overflow="wrap" %}

```tsx
import { ReactQueryClientProvider } from "@/components/tw-blocks/providers/ReactQueryClientProvider";
import { TrustlessWorkProvider } from "@/components/tw-blocks/providers/TrustlessWork";
import { WalletProvider } from "@/components/tw-blocks/wallet-kit/WalletProvider";
import { EscrowProvider } from "@/components/tw-blocks/providers/EscrowProvider";
import { EscrowDialogsProvider } from "@/components/tw-blocks/providers/EscrowDialogsProvider";
import { EscrowAmountProvider } from "@/components/tw-blocks/providers/EscrowAmountProvider";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        <ReactQueryClientProvider>
          <TrustlessWorkProvider>
            <WalletProvider>
              <EscrowProvider>
                <EscrowDialogsProvider>
                  <EscrowAmountProvider>
                    {children}
                  </EscrowAmountProvider>
                </EscrowDialogsProvider>
              </EscrowProvider>
            </WalletProvider>
          </TrustlessWorkProvider>
        </ReactQueryClientProvider>
      </body>
    </html>
  );
}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.trustlesswork.com/trustless-work/v1-es/escrow-blocks-sdk/bloques-dependientes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
