프로젝트

개발자용

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에는 적용되지 않습니다. 다른 규칙으로 만든 포크가 이 프로젝트를 사칭해서는 안 됩니다.