FeatherScript

FeatherScript

chain::4663

Docs

06 / 09

Development

Local setup and dev workflow

Requisitos previos

HerramientaVersión mínimaUso
Node.js18+Frontend
npm9+Gestión de paquetes
GitCualquieraControl de versiones
FoundryÚltimaContrato (opcional para solo frontend)

Instalar Foundry

curl -L https://foundry.paradigm.xyz | bash
foundryup

En Windows, usa foundryup o WSL.


Clonar e instalar

cd FeatherScript
npm install

Configuración de entorno

Copia el archivo de ejemplo:

cp .env.example .env.local

Edita .env.local:

# Dirección del contrato InscriptionRegistry desplegado
NEXT_PUBLIC_REGISTRY_ADDRESS=0x0000000000000000000000000000000000000000

Sin esta variable, el frontend arranca en modo demo (UI funcional, sin transacciones).


Desarrollo del frontend

npm run dev

Abre http://localhost:3000.

Hot reload

Next.js recarga automáticamente al editar archivos en app/, components/ y lib/.

Build de producción local

npm run build
npm run start

Verifica que no hay errores de TypeScript antes de desplegar.


Desarrollo del contrato

cd contracts
forge install foundry-rs/forge-std

Compilar

forge build

Artefactos en contracts/out/.

Ejecutar tests

forge test

Con más detalle:

forge test -vvv

Formatear Solidity

forge fmt

Estructura de configuración

contracts/foundry.toml

[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc = "0.8.24"
optimizer = true
optimizer_runs = 200

[rpc_endpoints]
robinhood = "https://rpc.mainnet.chain.robinhood.com"
robinhood_testnet = "https://rpc.testnet.chain.robinhood.com"

Uso:

forge test --fork-url robinhood_testnet

tsconfig.json

Excluye contracts/ del compilador TypeScript del frontend.

next.config.ts

images: { unoptimized: true }

Necesario para servir el logo PNG sin optimizador de imágenes remoto.


Flujo de trabajo recomendado

Diagram

flowchart LR
    A[forge test] --> B[Deploy testnet]
    B --> C[Copiar address a .env.local]
    C --> D[npm run dev]
    D --> E[Probar inscripción]
    E --> F{¿OK?}
    F -->|No| G[Debug + fix]
    G --> A
    F -->|Sí| H[Deploy mainnet]
    H --> I[npm run build]
    I --> J[Deploy frontend]

Consejos de desarrollo

Probar sin contrato desplegado

La UI es completamente navegable. Verás el banner de "Demo mode" en el formulario de inscripción.

Probar con Anvil (local)

anvil

En otra terminal:

cd contracts
forge script script/Deploy.s.sol --rpc-url http://127.0.0.1:8545 --broadcast

Configura MetaMask con red local (Chain ID 31337) y usa la private key de Anvil.

Depurar transacciones

  • Usa el explorer de testnet para ver logs del evento Inscribed
  • En el frontend, revisa la consola del navegador para errores wagmi
  • cast run $TX_HASH --rpc-url ... para simular la tx

Siguiente lectura

← Back to AppInscribe On-Chain