
nitedcrypto
crypto
About
The problem it solves Web3 apps that want posts, likes and tipping usually rely on centralized servers: counters can be altered, tips aren’t tied to content, and integration is heavy. NitedCryptoForum is a tokenless on‑chain social primitive on Base to create posts, record one‑per‑address upvotes, and route ETH tips directly to the author, giving verifiable metrics with no backend. Smart Contract Address(es) 0xDa571Fa0890D0785FCe60587115eBeBE7D9365C2
How it's made
Challenges we ran into Gas y almacenamiento: al principio consideré guardar la lista de votantes por post; era caro de escribir/leer. Lo reemplacé por mapping anidado mapping(uint256 => mapping(address => bool)) y un contador de upvotes. Transferencias de ETH: usar transfer fallaba por el límite de 2300 gas en algunos wallets/contratos. Cambié a call{value: ...}("") con require(ok) para mayor compatibilidad. Orden CEI: para minimizar riesgos de reentrancia en tip, actualicé estado antes de la llamada externa (Checks-Effects-Interactions) y emití eventos después. Contenido largo: almacenar texto on‑chain disparaba el coste. Decidí mover el contenido a metadataURI (IPFS/HTTP) y solo guardar referencias + eventos. IDs y validaciones: añadí require(id > 0 && id <= postCount) para evitar lecturas fuera de rango y errores silenciosos. Ethers v5 vs v6: la dApp del ejemplo usa v5 (Web3Provider, ethers.utils.parseEther). Documenté esto porque mezclar v6 rompía imports en algunos entornos. Redes de Base: hubo fricción al agregar RPCs y chain IDs (8453/84532) en MetaMask. Dejé instrucciones y links a BaseScan para Mainnet y Sepolia. Verificación en BaseScan: la verificación fallaba si usaba ^0.8.20 en lugar de la versión exacta. Compilé con 0.8.20 y el mismo optimizador para publicarlo correctamente. UX de propinas: la UI ya permitía tips directos wallet→wallet; para que cuenten por post, expuse tip(id) y aclaré cuándo usar cada flujo. Alcance de seguridad: el sistema evita doble voto por dirección, pero no es anti‑sybil. Lo dejé documentado como decisión consciente para mantener el contrato mínimo y barato.