Inicializar aplicación

Configuración paso a paso para construir una aplicación basada en appchain, modelada según Adrift

Primeros pasos

Esta guía te ayudará a configurar un nuevo proyecto basado en appchain, siguiendo la estructura de Adrift. Crearás un monorepo con un frontend en Next.js, un indexador Ponder, un backend potenciado por Bun y contratos en Foundry.

Inicio rápido

1. Instalar Bun y Foundry

Bun es un gestor de paquetes y entorno de ejecución de JavaScript/TypeScript moderno y rápido, utilizado en Adrift para instalar dependencias, ejecutar scripts y procesar tareas de backend. Foundry es un potente conjunto de herramientas para desarrollar, probar e implementar contratos inteligentes en Solidity, elegido por su velocidad y experiencia de desarrollo.

Sigue las instrucciones oficiales para tu plataforma para instalar ambas herramientas antes de continuar.

2. Crear la estructura de tu proyecto

Adrift utiliza una estructura de monorepo para mantener el frontend, el indexador, el backend y los contratos organizados en un solo lugar. Esto facilita el desarrollo, la gestión de dependencias y la implementación de aplicaciones complejas con múltiples componentes.

mkdir my-appchain-project && cd my-appchain-project
mkdir -p apps/site apps/indexer apps/cron contracts

3. Estructurar el frontend (Next.js + Bun)

Next.js es un popular framework de React para construir aplicaciones web modernas y rápidas. En Adrift, impulsa la interfaz de usuario y la lógica del lado del cliente. Bun se utiliza aquí para la gestión de dependencias y la ejecución de la aplicación.

bun create next ./apps/site
cd apps/site
bun install

4. Estructurar el indexador (Ponder)

Ponder es una herramienta orientada a TypeScript, amigable para desarrolladores, para indexar eventos de blockchain y sincronizar datos on-chain con una base de datos local. Adrift utiliza Ponder para rastrear el estado del juego y de los jugadores, facilitando la creación de interfaces de usuario en tiempo real impulsadas por datos on-chain.

cd ../../apps/indexer
bun init
bun add ponder
# Add your ponder.config.ts and ponder.schema.ts (see Adrift for examples)

5. Estructurar los contratos (Foundry)

Foundry se utiliza para todo el desarrollo de contratos inteligentes en Adrift. Proporciona compilación, pruebas y despliegue rápidos para contratos Solidity, y es ampliamente adoptado en el ecosistema Ethereum.

cd ../../contracts
forge init
# Add your contracts and scripts (see Adrift for factory pattern)

Estructura del proyecto

Esta estructura mantiene cada parte de tu proyecto de appchain modular y mantenible, siguiendo el ejemplo de Adrift.

my-appchain-project/
  apps/
    site/      # Next.js frontend
    indexer/   # Ponder indexer
    cron/      # Backend/cron jobs
  contracts/   # Solidity contracts (Foundry)
  bun.lock     # Bun lockfile

Instalar dependencias

cd apps/site && bun install
cd ../indexer && bun install
cd ../cron && bun install
cd ../../contracts && forge install

Ejecutar las aplicaciones

  • Frontend (Next.js + Bun):

    cd apps/site
    bun run dev
  • Indexador (Ponder):

    cd apps/indexer
    bun run dev
  • Contratos:

    cd contracts
    forge build
    forge test
    # Deploy: forge script script/Deploy.s.sol:DeployFactories --rpc-url <your_rpc_url>

Próximos pasos

  • Configura la conexión de tu cadena en apps/site/utils/chain.ts
  • Configura la integración de la cartera con Wagmi y Para en el frontend
  • Define tu esquema Ponder y los manejadores de eventos en el indexador
  • Implementa la lógica de tu contrato y los scripts de despliegue en contracts/
  • Construye tu UI y hooks para la lógica del juego, el estado del jugador y la aleatoriedad

Para más detalles, consulta el repositorio de Adrift y las guías más profundas sobre contratos, configuración de carteras, secuenciación, indexador y lógica de juego.