Description
Connect the admin page (frontend/app/admin/page.tsx) to allow battle creators to manage battles through the BattleManager contract.
Tasks
Contract Functions Used
BattleManager.createBattle(string theme, uint64 submissionStart, uint64 submissionEnd, uint64 votingEnd, uint256 minStake, uint256 maxSubmissionsPerUser) - Create new battle
BattleManager.startSubmissionPhase(uint256 battleId) - Open submissions
BattleManager.startVotingPhase(uint256 battleId) - Open voting
BattleManager.finalizeBattle(uint256 battleId) - Finalize battle and distribute prizes
BattleManager.archiveBattle(uint256 battleId) - Archive finalized battle
BattleManager.pause() - Pause contract
BattleManager.unpause() - Unpause contract
BattleManager.owner() - Check if user is owner
Files to Modify
frontend/app/admin/page.tsx
frontend/hooks/useCreateBattle.ts (new file)
frontend/hooks/useBattleAdmin.ts (new file - for phase transitions)
Description
Connect the admin page (
frontend/app/admin/page.tsx) to allow battle creators to manage battles through theBattleManagercontract.Tasks
useCreateBattle()that callsBattleManager.createBattle()via wagmiuseStartSubmissionPhase()that callsBattleManager.startSubmissionPhase(battleId)useStartVotingPhase()that callsBattleManager.startVotingPhase(battleId)useFinalizeBattle()that callsBattleManager.finalizeBattle(battleId)useArchiveBattle()that callsBattleManager.archiveBattle(battleId)usePauseBattle()that callsBattleManager.pause()useUnpauseBattle()that callsBattleManager.unpause()Contract Functions Used
BattleManager.createBattle(string theme, uint64 submissionStart, uint64 submissionEnd, uint64 votingEnd, uint256 minStake, uint256 maxSubmissionsPerUser)- Create new battleBattleManager.startSubmissionPhase(uint256 battleId)- Open submissionsBattleManager.startVotingPhase(uint256 battleId)- Open votingBattleManager.finalizeBattle(uint256 battleId)- Finalize battle and distribute prizesBattleManager.archiveBattle(uint256 battleId)- Archive finalized battleBattleManager.pause()- Pause contractBattleManager.unpause()- Unpause contractBattleManager.owner()- Check if user is ownerFiles to Modify
frontend/app/admin/page.tsxfrontend/hooks/useCreateBattle.ts(new file)frontend/hooks/useBattleAdmin.ts(new file - for phase transitions)