Skip to content

Commit 1dddaac

Browse files
authored
feat(fe): Update Contract Integrations (Addresses & ABIs) (#75)
* Merge Develop into Main - feat / CI: Add GitHub Actions workflow for Foundry tests (#71) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * feat(ui): sync RainbowKit theme with light/dark mode (#50) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) (#49) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * extract custom-wagmi-provider and fix rainbow themes * fix merge * fix(ClaimRewards): trigger contract refetch to load all resolved rounds with player bets (#52) * fix(fe-wagmi): wrap Toaster in WagmiProvider (#54) * fix(wagmi): wrap Toaster inside WagmiProvider to prevent WagmiProviderNotFoundError * docs(wagmi): add explicit comments about WagmiProvider context requirement * feat(fe-metadata): add Open Graph image and update site description in metadata (#56) * feat(fe-error): add error boundaries and global error page (#58) * docs: add detailed README (#60) * Feature/readme (#61) * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README (#63) * docs: add detailed README * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README * feat(be): add tests, refactor contracts & deploy to Sepolia (#66) * chore: clean up Foundry config * refactor: move setup logic to PredictionPoolScript.run() * feat: add Foundry tests for PredictionPool * refactor(PredictionPool): replace magic number with STRICT_MIN_ROUND_DURATION constant * refactor(Constants_PredictionPool): update MIN_ROUND_DURATION * feat(PredictionPool): make getBetWeight and getTotalWeight public * feat(test): add mock contracts for Chainlink price feeds * feat(test): add comprehensive test suite for PredictionPool * chore: remove unused contracts and interfaces * chore: restructure dependencies * feat: refactor PredictionPoolTokenScript for test compatibility * feat: update core contracts * chore: update Foundry configuration * feat: add comprehensive tests for PredictionPoolToken * feat: update PredictionPool tests * feat: Update Contract Integrations (Addresses & ABIs), and README (#68) * feat(docs): add missing tenderly-action-logs.png for README #63 (#64) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * feat(ui): sync RainbowKit theme with light/dark mode (#50) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) (#49) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * extract custom-wagmi-provider and fix rainbow themes * fix merge * fix(ClaimRewards): trigger contract refetch to load all resolved rounds with player bets (#52) * fix(fe-wagmi): wrap Toaster in WagmiProvider (#54) * fix(wagmi): wrap Toaster inside WagmiProvider to prevent WagmiProviderNotFoundError * docs(wagmi): add explicit comments about WagmiProvider context requirement * feat(fe-metadata): add Open Graph image and update site description in metadata (#56) * feat(fe-error): add error boundaries and global error page (#58) * docs: add detailed README (#60) * Feature/readme (#61) * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README (#63) * docs: add detailed README * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README * Update README (#65) * Merge Develop into Main - feat(be): add tests, refactor contracts & deploy to Sepolia (#67) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * feat(ui): sync RainbowKit theme with light/dark mode (#50) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) (#49) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * extract custom-wagmi-provider and fix rainbow themes * fix merge * fix(ClaimRewards): trigger contract refetch to load all resolved rounds with player bets (#52) * fix(fe-wagmi): wrap Toaster in WagmiProvider (#54) * fix(wagmi): wrap Toaster inside WagmiProvider to prevent WagmiProviderNotFoundError * docs(wagmi): add explicit comments about WagmiProvider context requirement * feat(fe-metadata): add Open Graph image and update site description in metadata (#56) * feat(fe-error): add error boundaries and global error page (#58) * docs: add detailed README (#60) * Feature/readme (#61) * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README (#63) * docs: add detailed README * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README * feat(be): add tests, refactor contracts & deploy to Sepolia (#66) * chore: clean up Foundry config * refactor: move setup logic to PredictionPoolScript.run() * feat: add Foundry tests for PredictionPool * refactor(PredictionPool): replace magic number with STRICT_MIN_ROUND_DURATION constant * refactor(Constants_PredictionPool): update MIN_ROUND_DURATION * feat(PredictionPool): make getBetWeight and getTotalWeight public * feat(test): add mock contracts for Chainlink price feeds * feat(test): add comprehensive test suite for PredictionPool * chore: remove unused contracts and interfaces * chore: restructure dependencies * feat: refactor PredictionPoolTokenScript for test compatibility * feat: update core contracts * chore: update Foundry configuration * feat: add comprehensive tests for PredictionPoolToken * feat: update PredictionPool tests * feat: update Tenderly Web3 Actions with new contract ABIs and addresses * feat: update frontend contract addresses and ABIs * feat: update Tenderly Web3 Actions with new contract ABIs and addresses * (doc): update README with tests section * feat / CI: Add GitHub Actions workflow for Foundry tests (#70) * ci: add GitHub Actions workflow for Foundry tests * ci: add GitHub Actions workflow for Foundry tests * ci: add GitHub Actions workflow for Foundry tests * ci: add GitHub Actions workflow for Foundry tests * feat(docs): improve README (#73) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * feat(ui): sync RainbowKit theme with light/dark mode (#50) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) (#49) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * extract custom-wagmi-provider and fix rainbow themes * fix merge * fix(ClaimRewards): trigger contract refetch to load all resolved rounds with player bets (#52) * fix(fe-wagmi): wrap Toaster in WagmiProvider (#54) * fix(wagmi): wrap Toaster inside WagmiProvider to prevent WagmiProviderNotFoundError * docs(wagmi): add explicit comments about WagmiProvider context requirement * feat(fe-metadata): add Open Graph image and update site description in metadata (#56) * feat(fe-error): add error boundaries and global error page (#58) * docs: add detailed README (#60) * Feature/readme (#61) * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README (#63) * docs: add detailed README * docs: add detailed README * feat(docs): add missing tenderly-action-logs.png for README * feat(be): add tests, refactor contracts & deploy to Sepolia (#66) * chore: clean up Foundry config * refactor: move setup logic to PredictionPoolScript.run() * feat: add Foundry tests for PredictionPool * refactor(PredictionPool): replace magic number with STRICT_MIN_ROUND_DURATION constant * refactor(Constants_PredictionPool): update MIN_ROUND_DURATION * feat(PredictionPool): make getBetWeight and getTotalWeight public * feat(test): add mock contracts for Chainlink price feeds * feat(test): add comprehensive test suite for PredictionPool * chore: remove unused contracts and interfaces * chore: restructure dependencies * feat: refactor PredictionPoolTokenScript for test compatibility * feat: update core contracts * chore: update Foundry configuration * feat: add comprehensive tests for PredictionPoolToken * feat: update PredictionPool tests * feat: Update Contract Integrations (Addresses & ABIs), and README (#68) * feat(docs): add missing tenderly-action-logs.png for README #63 (#64) * feat(ui): add tooltip to GameListenerToastsSwitch & tweak RainbowKit (#48) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): add RoundDataProvider and context Introduced a dedicated RoundDataProvider and RoundDataContext for managing all rounds state across the app. - Provides centralized access to rounds data, loading state, and refetch function. - Replaces legacy Providers context. * refactor(fe): improve useAllRoundsData hook * feat(fe): integrate round data provider and refetch * chore(fe): minor improvements and cleanup * Feature/fe improve UI (#17) * feat(header): make header responsive * feat(table-pagination): improve UI * refactor(create-game-form): improve UI and add comments * fix linters * feat(claim-rewards): add ResolvedRoundsWithPlayerDataProvider and refactor rounds context (#19) * refactor(context): rename and refactor RoundsProvider and useRounds hook * feat(context): add ResolvedRoundsWithPlayerDataProvider and related hooks * feat(claim-rewards): update ClaimRewards components using ResolvedRoundsWithPlayerDataProvider * chore: remove deprecated round data providers and hooks * refactor(rounds): rename and refactor RoundsProvider and useRounds hook * add stats-cards * Feature/fe metadata and analytics (#21) * chore(fe/analytics): integrate Vercel Analytics and Speed Insights * feat(hero): update Hero section * feat(ui): add Logo and integrate into Header * fe: update metadata with descriptive title and description * fe: add favicons, webmanifest, and remove unused public icons * feat(fe): Refactor Bet-on-Games & Claim-Rewards to use new Active/Resolved Rounds contexts (#23) * refactor(hooks): replace usePlayerBetsOnResolvedRounds with generic usePlayerBetsOnRounds * Introduce ActiveRoundsWithPlayerBetsProvider and related hooks * Add ResolvedRoundsWithPlayerBetsAndWinsProvider and related hooks * Remove old RoundsProvider and ResolvedRoundsWithPlayerDataProvider * Refactor use-resolved-rounds and use-rounds to use new providers * Improve BetOnGameForm and RowActions: proper React Query invalidation, tooltip & UI improvements * Update Bet-on-Games tab, table and stats card to use new contexts and hooks * Update Claim-Rewards tables, stats cards and tab to use new contexts and hooks * feat(fe): Polish UI and Extract Reusable Table Components (#25) * refactor: extract reusable table header and cell components * feat(ui): improve Bet-on-Games table columns and actions layout * feat(ui): polish Claim-Rewards table columns and row actions * chore(ui): refine button, tooltip, and side checkbox styling * feat(be): add PredictionPoolToken ERC1155 SC with Chainlink VRF integration (#27) * feat(tenderly): add Web3 Action to mint ERC1155 on RoundResolved event (#29) * feat(fe): Add WebSocket Event Listener & Real-Time UI Updatesr (#31) * chore: update dependencies, next config, and ignore rules * feat(ui): update Hero section * feat(ui): update Toast * feat(chore): add prediction-pool-token config * feat: integrate Alchemy websocket and use-events hook * feat: add event listener switch and hooks, and NFT image display * add license (#33) * fix(wagmi): hydrate wagmi state from cookies in RootLayout (#35) * feat(ui): add custom end-date sorting to Claim Rewards table + cleanup unused components (#37) * feat(ui): remove Motion + make Hero server component + add Footer (#42) * feat(ui): remove motion + make Hero server component + add footer * feat(ui): remove motion + make Hero server component + add footer * style(theme): update color palette and UI components for new theme (#44) * feat(ui): add tooltip to GameListenerToastsSwitch and tweak RainbowKit theme * feat(ui): sync RainbowKit theme with light/dark mode (#50) * Merge Develop into Main - feat(ui): update color palette and UI components for new theme (#45) * feat(fe): Add Hero section and tabs layout for main page (#5) * feat(fe): Add Hero section and base layout structure * feat(fe): Add GameTabs component with tab sections structure * feat(fe): add create-game-form and related components (#7) * feat(fe): add mobile-wallet-support (#9) * update wording accross app (#11) * feat(fe): Add “Bet on Games” Feature with Contract Integration (#13) * chore: update dependencies * feat(fe): update create game form * feat(ui): add shared UI components for tables and dialogs * feat(fe): add hook to fetch all rounds data * feat(fe): add Bet on Games tab with betting form and tables * feat(fe): improve round data management and post-bet refresh (#15) * feat(fe): a…
1 parent 1157109 commit 1dddaac

14 files changed

Lines changed: 320 additions & 279 deletions

File tree

fe/app/_components/hero.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ export const Hero: FC = () => {
1414
Gether
1515
</TypographyH1>
1616

17-
<div
18-
className="mt-6 text-lg md:text-2xl max-w-2xl leading-relaxed"
19-
>
17+
<div className="mt-6 text-lg md:text-2xl max-w-2xl leading-relaxed">
2018
<TypographyH4>
2119
Predict. Bet. Win —{" "}
2220
<span className="text-primary font-semibold">Together</span>.
@@ -34,13 +32,13 @@ export const Hero: FC = () => {
3432
</TypographyLead>
3533
</div>
3634

37-
<Button
38-
asChild
39-
size="lg"
40-
className="mt-10 text-lg px-8 py-6 font-semibold tracking-wide transition-all duration-200 cursor-pointer"
41-
>
42-
<Link href="/#tabs">Start Betting</Link>
43-
</Button>
35+
<Button
36+
asChild
37+
size="lg"
38+
className="mt-10 text-lg px-8 py-6 font-semibold tracking-wide transition-all duration-200 cursor-pointer"
39+
>
40+
<Link href="/#tabs">Start Betting</Link>
41+
</Button>
4442
</section>
4543
);
4644
};

fe/app/_components/tabs/bet-on-games/bet-on-game.form.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import {
2828
import { z } from "zod";
2929
import { getPredictionPoolContractConfig } from "@/app/_contracts/prediction-pool";
3030
import type { ContractConfigT } from "@/app/_contracts/types";
31+
import { useActiveRoundsWithPlayerBetsContext } from "@/app/_hooks/rounds/use-active-rounds-with-player-bets-context";
32+
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
3133
import { useTransactionToast } from "@/app/_hooks/use-tx-toast";
3234
import {
3335
AlertDialogCancel,
@@ -44,8 +46,6 @@ import {
4446
FormMessage,
4547
} from "@/components/ui/form";
4648
import { Input } from "@/components/ui/input";
47-
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
48-
import { useActiveRoundsWithPlayerBetsContext } from "@/app/_hooks/rounds/use-active-rounds-with-player-bets-context";
4949

5050
const formSchema = z.object({
5151
ethValue: z

fe/app/_components/tabs/bet-on-games/bet-on-games.tab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ActiveRoundsWithPlayerBetsProvider } from "@/app/_contexts/active-rounds-with-player-bets-provider";
2+
import { RoundsProvider } from "@/app/_contexts/rounds-provider";
23
import {
34
Card,
45
CardContent,
@@ -11,7 +12,6 @@ import { TypographyH2 } from "../../typography/h2";
1112
import { TypographyLead } from "../../typography/lead";
1213
import { GamesStatsCard } from "./games-stats-card";
1314
import { GamesTable } from "./games-table";
14-
import { RoundsProvider } from "@/app/_contexts/rounds-provider";
1515

1616
export const BetOnGamesTab = () => {
1717
return (

fe/app/_components/tabs/bet-on-games/games-stats-card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
"use client";
22

33
import type { ComponentProps, FC } from "react";
4+
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
45
import type { Card } from "@/components/ui/card";
56
import { StatsCardWithData } from "../stats-card-with-data";
6-
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
77

88
type Props = ComponentProps<typeof Card>;
99

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
"use client";
22

33
import type { FC } from "react";
4-
import { DataTable } from "./data-table";
5-
import { useColumns } from "./use-columns";
6-
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
74
import { usePPoolNewBetEvent } from "@/app/_hooks/events/use-ppool-new-bet-event";
85
import { usePPoolNewStatusEvent } from "@/app/_hooks/events/use-ppool-new-status-event";
6+
import { useRoundsContext } from "@/app/_hooks/rounds/use-rounds-context";
7+
import { DataTable } from "./data-table";
8+
import { useColumns } from "./use-columns";
99

1010
// Wrapped in RoundsProvider & ActiveRoundsWithPlayerBetsProvider
1111
export const GamesTable: FC = () => {
1212
const { rounds } = useRoundsContext();
1313

1414
// refetch rounds when a new on-chain PredictionPool_NewBet event is emitted
1515
// refetch is selective (using ReactQuery queyKeys on roundId)
16-
usePPoolNewBetEvent()
16+
usePPoolNewBetEvent();
1717

1818
// refetch rounds when a new on-chain PredictionPool_NewRoundStatus event is emitted
1919
// refetch is selective (using ReactQuery queyKeys on roundId)
20-
usePPoolNewStatusEvent()
20+
usePPoolNewStatusEvent();
2121

2222
// get tanstack-table columns
2323
const columns = useColumns();
2424

2525
return (
2626
<div className="container mx-auto">
27-
<DataTable columns={columns} data={rounds} />
27+
<DataTable columns={columns} data={rounds} />
2828
</div>
2929
);
3030
};

fe/app/_components/tabs/bet-on-games/use-columns.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,7 @@ export const useColumns = () => {
7878
<TooltipTrigger>
7979
<div className="text-semibold flex items-center gap-x-2">
8080
Bet
81-
<CircleQuestionMarkIcon
82-
size={14}
83-
/>
81+
<CircleQuestionMarkIcon size={14} />
8482
</div>
8583
</TooltipTrigger>
8684
<TooltipContent>

fe/app/_components/tabs/claim-rewards/claim-rewards.tab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ResolvedRoundsWithPlayerBetsAndWinsProvider } from "@/app/_contexts/resolved-rounds-with-player-bets-and-wins-provider";
2+
import { RoundsProvider } from "@/app/_contexts/rounds-provider";
23
import {
34
Card,
45
CardContent,
@@ -11,7 +12,6 @@ import { TypographyH2 } from "../../typography/h2";
1112
import { TypographyLead } from "../../typography/lead";
1213
import { ClaimRewardsTable } from "./claim-rewards-table";
1314
import { ClaimsStatsCard } from "./claims-stats-card";
14-
import { RoundsProvider } from "@/app/_contexts/rounds-provider";
1515

1616
export const ClaimRewardsTab = () => {
1717
return (

fe/app/_components/tabs/claim-rewards/use-columns.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ export const useColumns = () => {
9696
<TooltipTrigger>
9797
<div className="flex items-center gap-x-2 text-semibold">
9898
<span>Claim</span>
99-
<CircleQuestionMarkIcon
100-
size={14}
101-
/>
99+
<CircleQuestionMarkIcon size={14} />
102100
</div>
103101
</TooltipTrigger>
104102
<TooltipContent>

fe/app/_components/tabs/create-game/create-game.form.tsx

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ import {
3838
import { Input } from "@/components/ui/input";
3939
import { Label } from "@/components/ui/label";
4040
import { Skeleton } from "@/components/ui/skeleton";
41-
import { cn } from "@/lib/utils";
42-
import { FeedPairSelect } from "./feed-pair.select";
43-
import { SideCheckBox } from "./side.checkbox";
4441
import {
4542
Tooltip,
4643
TooltipContent,
4744
TooltipTrigger,
4845
} from "@/components/ui/tooltip";
46+
import { cn } from "@/lib/utils";
47+
import { FeedPairSelect } from "./feed-pair.select";
48+
import { SideCheckBox } from "./side.checkbox";
4949

5050
const formSchema = z.object({
5151
ethValue: z
@@ -180,7 +180,9 @@ export const CreateGameForm = () => {
180180
<FormControl>
181181
<FeedPairSelect {...field} onValueChange={field.onChange} />
182182
</FormControl>
183-
<FormDescription>Select a price feed to base your prediction on.</FormDescription>
183+
<FormDescription>
184+
Select a price feed to base your prediction on.
185+
</FormDescription>
184186
<FormMessage />
185187
</FormItem>
186188
)}
@@ -199,26 +201,33 @@ export const CreateGameForm = () => {
199201
<FormControl>
200202
<Input {...field} className="max-sm:w-full w-64" />
201203
</FormControl>
202-
<FormDescription>Reference price used to determine the bet outcome.</FormDescription>
204+
<FormDescription>
205+
Reference price used to determine the bet outcome.
206+
</FormDescription>
203207
<FormMessage />
204208
</FormItem>
205209
)}
206210
/>
207211
<div className="flex flex-col gap-y-2.5 text-3xl">
208212
<Tooltip>
209-
<TooltipTrigger asChild>
210-
<Label className="flex w-fit items-center gap-x-2 text-semibold">
211-
<TargetIcon size={16} />
212-
Current Price (USD)
213-
<CircleQuestionMarkIcon size={14}
214-
/>
215-
</Label>
216-
</TooltipTrigger>
217-
<TooltipContent className="max-w-64 text-sm">
218-
<p>Price data provided by <span className="font-bold italic">Chainlink Price Feeds</span>, aggregated
219-
from multiple exchanges for reliable on-chain market information.</p>
220-
</TooltipContent>
221-
</Tooltip>
213+
<TooltipTrigger asChild>
214+
<Label className="flex w-fit items-center gap-x-2 text-semibold">
215+
<TargetIcon size={16} />
216+
Current Price (USD)
217+
<CircleQuestionMarkIcon size={14} />
218+
</Label>
219+
</TooltipTrigger>
220+
<TooltipContent className="max-w-64 text-sm">
221+
<p>
222+
Price data provided by{" "}
223+
<span className="font-bold italic">
224+
Chainlink Price Feeds
225+
</span>
226+
, aggregated from multiple exchanges for reliable on-chain
227+
market information.
228+
</p>
229+
</TooltipContent>
230+
</Tooltip>
222231

223232
{currentPrice ? (
224233
<Input
@@ -250,7 +259,9 @@ export const CreateGameForm = () => {
250259
/>
251260
</FormControl>
252261
<FormDescription>
253-
Select whether you predict the final price will end above or below your target. </FormDescription>
262+
Select whether you predict the final price will end above or
263+
below your target.{" "}
264+
</FormDescription>
254265
<FormMessage />
255266
</FormItem>
256267
)}
@@ -271,7 +282,9 @@ export const CreateGameForm = () => {
271282
className="max-sm:w-full w-64"
272283
/>
273284
</FormControl>
274-
<FormDescription>Set how long the game will last.</FormDescription>
285+
<FormDescription>
286+
Set how long the game will last.
287+
</FormDescription>
275288
<FormMessage />
276289
</FormItem>
277290
)}
@@ -290,7 +303,9 @@ export const CreateGameForm = () => {
290303
<Input {...field} className="max-sm:w-full w-64" />
291304
</FormControl>
292305

293-
<FormDescription>Enter the amount of ETH you want to stake.</FormDescription>
306+
<FormDescription>
307+
Enter the amount of ETH you want to stake.
308+
</FormDescription>
294309

295310
<FormMessage />
296311
</FormItem>

fe/app/_contexts/root-providers.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
"use client";
22

3-
import { type FC, type PropsWithChildren } from "react";
4-
import {
5-
type State as WagmiState,
6-
} from "wagmi";
3+
import type { FC, PropsWithChildren } from "react";
4+
import type { State as WagmiState } from "wagmi";
75
import { Toaster } from "@/components/ui/sonner";
8-
import { ThemeProvider } from "./theme-provider";
96
import { CustomWagmiProvider } from "./custom-wagmi-provider";
7+
import { ThemeProvider } from "./theme-provider";
108

119
type Props = {
1210
initialWagmiState: WagmiState | undefined;

0 commit comments

Comments
 (0)