How hafeefapc/events works
FreeEventMap lets people discover local free events and submit event listings to blockchain-backed storage. The main submission flow is map selection and event details, followed by a contract write through the Scaffold-ETH hooks and wallet transaction layer. The repository also includes event browsing, a block explorer, and contract-debugging UI. Event-browsing implementation was not sampled, so its internal data flow is left unspecified.
Main entry points: layout.tsx App shell · useScaffoldWriteContract.ts Contract writes · SearchBar.tsx Address/hash search · page.tsx Mark event
Components 19
Event discovery
- Mark event
packages/nextjs/app/markevents/page.tsx - Browse events
packages/nextjs/app/viewevents/page.tsx
Blockchain access
- Contract reads
packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts - Contract writes
packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts - Transaction handler
packages/nextjs/hooks/scaffold-eth/useTransactor.tsx - Contract registry
packages/nextjs/contracts/deployedContracts.ts - Wallet and RPC config
packages/nextjs/services/web3/wagmiConfig.tsx - EventStorage contract
packages/nextjs/contracts/deployedContracts.ts - Contract debugger
packages/nextjs/app/debug/page.tsx
Chain inspection
- Block explorer
packages/nextjs/app/blockexplorer/page.tsx - Block feed
packages/nextjs/hooks/scaffold-eth/useFetchBlocks.ts - Address/hash search
packages/nextjs/app/blockexplorer/_components/SearchBar.tsx - Address details
packages/nextjs/app/blockexplorer/address/[address]/page.tsx - Transaction details
packages/nextjs/app/blockexplorer/transaction/[txHash]/page.tsx
Shared app shell
- App shell
packages/nextjs/app/layout.tsx
Other components
- Event seeker
- Geocoding service
- Blockchain network
- Wallet user
Connections 25
- Event seeker → Mark event: submits listing
- Mark event → Geocoding service: reverse geocodes
- Mark event → Contract writes: writes listing
- Contract writes → Contract registry: loads ABI and address
- Contract writes → Transaction handler: tracks transaction
- Transaction handler → Wallet and RPC config: gets wallet client
- Transaction handler → Blockchain network: waits for receipt
- Contract writes → Blockchain network: submits contract write
- Browse events → Contract reads: reads event data
- Contract reads → Contract registry: loads ABI and address
- Contract reads → Blockchain network: reads contract
- Event seeker → Browse events: explores events
- Event seeker → Block explorer: inspects chain
- Block explorer → Block feed: loads blocks
- Block feed → Blockchain network: fetches blocks and receipts
- Block explorer → Address/hash search: searches chain data
- Address/hash search → Blockchain network: checks transaction hash
- Address/hash search → Address details: routes address
- Address/hash search → Transaction details: routes transaction
- Event seeker → Contract debugger: inspects contracts
- Wallet user → Wallet and RPC config: connects wallet
- App shell → Mark event: hosts route
- App shell → Browse events: hosts route
- App shell → Block explorer: hosts route
- App shell → Contract debugger: hosts route