Para desenvolvedores
O código do FAIRDRUM é aberto sob a licença MIT: o contrato, o site, os scripts de lançamento e os testes ficam em um único repositório (o link aparecerá aqui depois da publicação). Aqui, em resumo, como tudo funciona e como rodar a sua própria cópia.
Estrutura
| Pasta | O que há dentro |
|---|---|
programs/fairdrum/ | Contrato em Rust e Anchor 1.2.2. Os números do jogo estão em consts.rs, os cálculos em engine.rs e math.rs, na forma de funções comuns, por isso os testes rodam sem rede. |
app/ | Site: Vite e TypeScript, páginas em app/src/pages/, cliente do contrato e integração com a Switchboard em app/src/chain/. As tabelas de números do site são geradas a partir de consts.rs, por isso não divergem do contrato. |
scripts/ | Lançamento: emissão do token, inicialização, verificação das configurações gravadas, teste na devnet, pagamentos de serviço e um “keeper” opcional. |
docs/ | ARCHITECTURE.md (como tudo funciona), LAUNCH.md (lançamento passo a passo), AUDIT.md (autoverificação de segurança e questões em aberto). |
e2e/ | Verificações do site em um navegador de verdade, com uma carteira e uma rede simuladas. |
O projeto não tem servidor nem banco de dados: o site é feito de arquivos comuns e lê os dados diretamente do contrato.
Rodar na sua máquina
São necessários Node.js 20.19 ou mais recente e Rust para os testes do contrato.
npm install
npm run dev # site em localhost, sem contrato, em modo demo
npm test # testes do cliente
cargo test -p fairdrum --release # testes do contrato
npm run build # site na pasta dist/
npm run build:single # versão offline: arquivos html separados, abertos com um clique duplo
Lançamento passo a passo na devnet e na rede principal, com comandos e análise de erros frequentes: docs/LAUNCH.md no repositório.
Configurações sem recompilar
O arquivo config.json fica ao lado das páginas e é lido a cada carregamento, por isso o endereço do contrato, o nó da rede e os links mudam sem uma nova compilação. Um programId vazio ativa o modo demo.
{
"programId": "endereço do programa depois do lançamento",
"cluster": "mainnet-beta",
"rpc": "https://...",
"swapUrl": "link para a troca de FAIRDRUM, quando existir",
"links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}
O endereço do site, as descrições das páginas e as verificações para webmasters são definidos em app/seo.json e app/pages.json; npm run gen:html gera de novo, a partir deles, as páginas, o mapa do site e o robots.txt.
Verificação do código
Testes
A lógica do contrato é verificada sem rede, inclusive com uma “tempestade” de dezenas de milhares de operações aleatórias: depois de cada uma, os tokens no cofre precisam ser exatamente iguais às obrigações. O teste foi validado por “mutação”: se no cálculo for deslocada ao menos uma unidade mínima, ele falha.
O que não foi verificado
A compilação para a Solana, o funcionamento real com a Switchboard e a auditoria independente: status do projeto. A verificação interna não substitui a auditoria, e em docs/AUDIT.md estão listados os pontos que continuam em aberto.
Conferência com a rede
Depois do lançamento, confira o código publicado com o programa na rede seguindo a instrução “Verificar a honestidade”. Os endereços do programa e do token estão na página “Links oficiais”.
Se o site fairdrum.to estiver indisponível
O saldo do jogo fica no contrato, não no site. O site é uma interface prática, e o saque pode ser feito de qualquer cópia dele.
- Confira se o endereço foi digitado corretamente e abra o site a partir de um favorito. Se só ele estiver fora do ar, espere: às vezes há uma falha temporária da hospedagem.
- Abra uma cópia do site: o repositório é aberto e o site é feito de arquivos comuns. Baixe a versão offline ou compile a sua (
npm run build), coloque ao lado umconfig.jsoncom o endereço real do programa (dá para conferi-lo na página “Links oficiais” e no explorador) e abra por qualquer servidor web simples, por exemplonpx vite preview. - Conecte a mesma carteira. O saldo, o rank e a sequência serão lidos do contrato, e o saque funciona do mesmo jeito que no site principal.
- Não digite a frase secreta em nenhum “espelho”. O site nunca a pede: qualquer cópia que a peça é falsa.
Verifique uma cópia do site vinda de uma fonte alheia: compare o código com o repositório do projeto. Sem isso, você não sabe o que exatamente vai assinar. É mais seguro compilar você mesmo.
Licença
MIT: o código pode ser lido, copiado, alterado e executado, inclusive para fins comerciais, mantendo o texto da licença. A licença diz respeito ao código, e não ao nome e ao endereço fairdrum.to: um fork com regras diferentes não deve se passar por este projeto.