Проєкт

Для розробників

Код FAIRDRUM відкритий під ліцензією MIT: контракт, сайт, скрипти запуску і тести лежать в одному репозиторії (посилання з'явиться тут після публікації). Тут коротко про те, як усе влаштовано і як запустити власну копію.

Будова

ПапкаЩо всередині
programs/fairdrum/Контракт на Rust і Anchor 1.2.2. Числа гри в consts.rs, розрахунки в engine.rs і math.rs у вигляді звичайних функцій, тому тести йдуть без мережі.
app/Сайт: Vite і TypeScript, сторінки в app/src/pages/, клієнт контракту і робота зі Switchboard у app/src/chain/. Таблиці чисел на сайті генеруються з consts.rs, тому з контрактом не розходяться.
scripts/Запуск: випуск токена, ініціалізація, перевірка записаних налаштувань, тест на devnet, службові виплати, необов'язковий «черговий».
docs/ARCHITECTURE.md (як усе влаштовано), LAUNCH.md (покроковий запуск), AUDIT.md (самоперевірка безпеки і відкриті питання).
e2e/Перевірки сайту в справжньому браузері з підставним гаманцем і підставною мережею.

У проєкті немає сервера і бази даних: сайт складається зі звичайних файлів і читає дані прямо з контракту.

Запустити в себе

Потрібні Node.js 20.19 або новіший і Rust для тестів контракту.

npm install
npm run dev                         # сайт на localhost, без контракту в демо-режимі
npm test                            # тести клієнта
cargo test -p fairdrum --release    # тести контракту
npm run build                       # сайт у папці dist/
npm run build:single                # офлайн-версія: окремі html-файли, відкриваються подвійним клацанням

Покроковий запуск на devnet і в основній мережі з командами і розбором частих помилок: docs/LAUNCH.md у репозиторії.

Налаштування без перезбирання

Файл config.json лежить поруч зі сторінками і читається під час кожного завантаження, тому адреса контракту, вузол мережі та посилання змінюються без збирання. Порожній programId вмикає демо-режим.

{
  "programId": "адреса програми після запуску",
  "cluster": "mainnet-beta",
  "rpc": "https://...",
  "swapUrl": "посилання на обмін FAIRDRUM, коли з'явиться",
  "links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}

Адреса сайту, описи сторінок і підтвердження для вебмайстрів задаються в app/seo.json і app/pages.json; npm run gen:html перезбирає за ними сторінки, карту сайту і robots.txt.

Перевірка коду

Тести

Логіка контракту перевіряється без мережі, зокрема «штормом» із десятків тисяч випадкових операцій: після кожної токени в сховищі мають точно дорівнювати зобов'язанням. Тест перевірений «мутацією»: якщо в розрахунку змістити хоча б одну мінімальну одиницю, він падає.

Що не перевірено

Збирання під Solana, жива робота зі Switchboard і незалежний аудит: статус проєкту. Внутрішня перевірка не замінює аудиту, і в docs/AUDIT.md перелічено, що залишається відкритим.

Звірка з мережею

Після запуску звірте опублікований код із програмою в мережі за інструкцією «Перевірити чесність». Адреси програми і токена читаються на сторінці «Офіційні посилання».

Якщо сайт fairdrum.to недоступний

Ваші токени нікуди не зникають.

Ігровий баланс зберігається в контракті, а не на сайті. Сайт — зручна оболонка, і виведення можна зробити з будь-якої її копії.

  1. Перевірте, що адресу набрано правильно, і відкрийте сайт із закладки. Якщо недоступний лише він, зачекайте: буває тимчасовий збій хостингу.
  2. Відкрийте копію сайту: репозиторій відкритий, а сайт — це звичайні файли. Завантажте офлайн-версію або зберіть свою (npm run build), покладіть поруч config.json зі справжньою адресою програми (її можна звірити на сторінці «Офіційні посилання» і в оглядачі) і відкрийте через будь-який простий вебсервер, наприклад npx vite preview.
  3. Підключіть той самий гаманець. Баланс, ранг і серія прочитаються з контракту, і виведення працює так само, як на основному сайті.
  4. Не вводьте секретну фразу на жодних «дзеркалах». Сайт її ніколи не просить: будь-яка копія, що просить, підроблена.

Копію сайту з чужого джерела перевірте: порівняйте код із репозиторієм проєкту. Без цього ви не знаєте, що саме підпишете. Надійніше зібрати самому.

Ліцензія

MIT: код можна читати, копіювати, змінювати і запускати, зокрема в комерційних цілях, зберігши текст ліцензії. Ліцензія стосується коду, а не назви та адреси fairdrum.to: форк з іншими правилами не повинен видавати себе за цей проєкт.