Para desarrolladores
El código de FAIRDRUM es abierto, con licencia MIT: el contrato, el sitio, los scripts de lanzamiento y las pruebas están en un único repositorio (el enlace aparecerá aquí tras la publicación). Aquí se explica brevemente cómo está organizado todo y cómo ejecutar su propia copia.
Estructura
| Carpeta | Contenido |
|---|---|
programs/fairdrum/ | Contrato en Rust y Anchor 1.2.2. Los números del juego están en consts.rs y los cálculos en engine.rs y math.rs, como funciones normales, por lo que las pruebas se ejecutan sin red. |
app/ | Sitio: Vite y TypeScript, páginas en app/src/pages/, cliente del contrato y trabajo con Switchboard en app/src/chain/. Las tablas de cifras del sitio se generan a partir de consts.rs, por lo que no se desvían del contrato. |
scripts/ | Lanzamiento: emisión del token, inicialización, comprobación de los ajustes guardados, prueba en devnet, pagos de servicio y un «guardia» opcional. |
docs/ | ARCHITECTURE.md (cómo está organizado todo), LAUNCH.md (lanzamiento paso a paso), AUDIT.md (autorrevisión de seguridad y cuestiones abiertas). |
e2e/ | Pruebas del sitio en un navegador real, con una billetera simulada y una red simulada. |
El proyecto no tiene servidor ni base de datos: el sitio se compone de archivos normales y lee los datos directamente del contrato.
Ejecutarlo por cuenta propia
Se necesitan Node.js 20.19 o posterior, y Rust para las pruebas del contrato.
npm install
npm run dev # el sitio en localhost, sin contrato, en modo demo
npm test # pruebas del cliente
cargo test -p fairdrum --release # pruebas del contrato
npm run build # el sitio en la carpeta dist/
npm run build:single # versión sin conexión: archivos html independientes, se abren con doble clic
Lanzamiento paso a paso en devnet y en mainnet, con comandos y análisis de los errores más frecuentes: docs/LAUNCH.md en el repositorio.
Ajustes sin recompilar
El archivo config.json está junto a las páginas y se lee en cada carga, por lo que la dirección del contrato, el nodo de la red y los enlaces cambian sin recompilar. Un programId vacío activa el modo demo.
{
"programId": "dirección del programa tras el lanzamiento",
"cluster": "mainnet-beta",
"rpc": "https://...",
"swapUrl": "enlace para intercambiar FAIRDRUM, cuando exista",
"links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}
La dirección del sitio, las descripciones de las páginas y las verificaciones para webmasters se definen en app/seo.json y app/pages.json; npm run gen:html regenera a partir de ellos las páginas, el mapa del sitio y robots.txt.
Verificación del código
Pruebas
La lógica del contrato se comprueba sin red, incluso con una «tormenta» de decenas de miles de operaciones aleatorias: tras cada una, los tokens de la bóveda deben ser exactamente iguales a las obligaciones. La prueba se ha verificado por «mutación»: si en el cálculo se desplaza aunque sea una unidad mínima, la prueba falla.
Qué no está verificado
La compilación para Solana, el funcionamiento real con Switchboard y la auditoría independiente: consulte el estado del proyecto. Una revisión interna no sustituye a una auditoría, y en docs/AUDIT.md se enumera lo que sigue abierto.
Comparación con la red
Tras el lanzamiento, compare el código publicado con el programa de la red siguiendo la guía «Comprobar que el juego es justo». Las direcciones del programa y del token están en la página «Enlaces oficiales».
Si el sitio fairdrum.to no está disponible
El saldo de juego se guarda en el contrato, no en el sitio. El sitio es solo una interfaz cómoda, y el retiro puede hacerse desde cualquier copia suya.
- Compruebe que la dirección está bien escrita y abra el sitio desde un marcador. Si solo este sitio no está disponible, espere: a veces hay un fallo temporal del alojamiento.
- Abra una copia del sitio: el repositorio es abierto y el sitio son archivos normales. Descargue la versión sin conexión o compile la suya (
npm run build), coloque junto a ella unconfig.jsoncon la dirección real del programa (puede compararla en la página «Enlaces oficiales» y en el explorador) y ábrala con cualquier servidor web sencillo, por ejemplonpx vite preview. - Conecte la misma billetera. El saldo, el rango y la racha se leerán del contrato, y el retiro funciona igual que en el sitio principal.
- No introduzca la frase de recuperación en ningún «espejo». El sitio nunca la pide: cualquier copia que la pida es falsa.
Si la copia del sitio viene de una fuente ajena, verifíquela: compare el código con el repositorio del proyecto. Sin eso no sabe qué va a firmar exactamente. Es más seguro compilarla por su cuenta.
Licencia
MIT: el código se puede leer, copiar, modificar y ejecutar, también con fines comerciales, conservando el texto de la licencia. La licencia se refiere al código, no al nombre ni a la dirección de fairdrum.to: un fork con otras reglas no debe hacerse pasar por este proyecto.