## Description The deposit panel and rewards page have been wired to real contract calls but need integration testing with a connected wallet. ## Deposit Panel (`components/campaign/deposit-panel.tsx`) - [ ] Verify `buildJoinCampaign` is called with correct params - [ ] `amount` needs conversion to stroops (1e7) - [ ] `token` address defaults to USDC — verify it's the correct SAC address - [ ] `campaignId` is correctly parsed from the URL - [ ] Show loading state during transaction - [ ] Show success/error toast after submission - [ ] Refresh campaign data after successful deposit ## Rewards Page (`app/rewards/page.tsx`) - [ ] `buildClaim` called with correct campaign ID - [ ] Currently calls `handleClaim(0)` — needs to use actual campaign IDs from user positions - [ ] Scan user positions across campaigns to show total claimable - [ ] Show vesting progress (how much vested vs total) - [ ] Handle partial claims correctly - [ ] Refresh after successful claim
Description
The deposit panel and rewards page have been wired to real contract calls but need integration testing with a connected wallet.
Deposit Panel (
components/campaign/deposit-panel.tsx)buildJoinCampaignis called with correct paramsamountneeds conversion to stroops (1e7)tokenaddress defaults to USDC — verify it's the correct SAC addresscampaignIdis correctly parsed from the URLRewards Page (
app/rewards/page.tsx)buildClaimcalled with correct campaign IDhandleClaim(0)— needs to use actual campaign IDs from user positions