بنقرة واحدة
mock-eliminator
Elimina todo o mock data do CYPHER V3 e substitui por integrações reais com APIs de produção
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Elimina todo o mock data do CYPHER V3 e substitui por integrações reais com APIs de produção
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Testa cada API route do CYPHER V3 com dados reais — valida schemas, mede performance, detecta breaking changes, garante que cada endpoint retorna o que promete
Especialista em Bitcoin Ordinals, Runes, BRC-20, Rare Sats, wallet integration e protocolo Bitcoin para CYPHER V3
Modo John Carmack — foco absoluto numa única tarefa técnica, sem distrações, implementação direta e eficiente
Escreve código TypeScript/React/Next.js de produção para CYPHER V3
Garante o fluxo correto de dados desde APIs externas até ao utilizador — cache em camadas, fallbacks inteligentes, transformação de dados, sem dados stale ou inválidos na UI
Identifica e corrige bugs, memory leaks, hydration mismatches, e erros silenciosos no CYPHER V3
| name | mock-eliminator |
| description | Elimina todo o mock data do CYPHER V3 e substitui por integrações reais com APIs de produção |
| version | 2.0 |
| tags | ["mock-data","api-integration","production","ordinals","runes"] |
# Executar SEMPRE no início
grep -rn "mockData\|MOCK_DATA\|mock_data\|isMock\|useMock" src/ --include="*.ts" --include="*.tsx"
grep -rn "fakePrices\|dummyData\|sampleData\|testData\|placeholderData" src/
grep -rn "Math\.random()\|Math\.floor(Math\.random" src/ --include="*.ts" --include="*.tsx"
grep -rn "hardcoded\|HARDCODED\|// TODO.*real\|// FIXME.*api\|// temp\|// temporary" src/
grep -rn "\[\s*{.*name.*price.*volume.*}\s*\]" src/ # arrays hardcoded de assets
// ❌ MOCK (remover)
const mockCollections = [
{ name: "NodeMonkes", floorPrice: 0.05, volume24h: 12.5 },
{ name: "Bitcoin Puppets", floorPrice: 0.03, volume24h: 8.2 },
]
// ✅ REAL (substituir por)
import { HiroAPI } from '@/lib/api/hiro'
async function getOrdinalCollections() {
const hiro = new HiroAPI()
return await hiro.getCollections({
limit: 20,
sortBy: 'volume_24h',
order: 'desc'
})
}
// ❌ MOCK
const mockRunes = [
{ name: "DOG•GO•TO•THE•MOON", price: 0.000001, marketCap: 50000 },
]
// ✅ REAL
import { HiroAPI } from '@/lib/api/hiro'
async function getRunesMarket() {
const hiro = new HiroAPI()
return await hiro.getRunes({ limit: 50, orderBy: 'market_cap' })
}
// ✅ REAL
import { UniSatAPI } from '@/lib/api/unisat'
async function getBRC20Tokens() {
const unisat = new UniSatAPI(process.env.UNISAT_API_KEY!)
return await unisat.getBRC20List({ start: 0, limit: 20 })
}
// ✅ REAL
import { OrdiscanAPI } from '@/lib/api/ordiscan'
async function getRareSats(address: string) {
const ordiscan = new OrdiscanAPI(process.env.ORDISCAN_API_KEY!)
return await ordiscan.getAddressSatributes(address)
}
// ✅ REAL com Redis cache
import { redis } from '@/lib/cache/redis'
async function getBitcoinPrice(): Promise<number> {
const cached = await redis.get('btc:price')
if (cached) return parseFloat(cached)
const res = await fetch(
'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd',
{ headers: { 'x-cg-pro-api-key': process.env.COINGECKO_API_KEY! } }
)
const data = await res.json()
const price = data.bitcoin.usd
await redis.setex('btc:price', 30, price.toString()) // 30s cache
return price
}
src/services/runes/ — P0, dados de mercado são coresrc/services/ordinals/ — P0, core featuresrc/services/brc20/ — P1src/services/rare-sats/ — P1src/components/*/mock* — P2// Para cada ficheiro com mock data:
// 1. Identificar a estrutura de dados esperada
// 2. Encontrar a API que fornece esses dados
// 3. Criar função async com cache Redis
// 4. Adicionar error handling com fallback
// 5. Remover completamente o mock
// NUNCA:
const data = USE_MOCK ? mockData : await fetchReal()
// → Isto é techdívida — o mock deve desaparecer COMPLETAMENTE
# Confirmar que não há mais mock
grep -rn "mock\|MOCK\|fake\|dummy\|placeholder" src/ | grep -v "test\|spec\|__tests__\|\.test\."
# Build deve passar
npm run build
# Type check
npm run type-check
https://api.hiro.so — free tier disponível, rate limit 1000 req/hrprocess.env.UNISAT_API_KEYprocess.env.ORDISCAN_API_KEYprocess.env.OKX_API_KEY