Skip to content

Development - #8

Merged
JuanMarchetto merged 19 commits into
mainfrom
development
Mar 8, 2026
Merged

JuanMarchetto merged 19 commits into
mainfrom
development

Conversation

@JuanMarchetto

Copy link
Copy Markdown
Owner

No description provided.

JuanMarchetto and others added 19 commits March 7, 2026 22:43
… polish

Add reward distribution server with anti-replay QR validation and SPL token
transfers from treasury. Replace local-only reward storage with API-backed
on-chain claims. Add TransactionConfirmation component with Solscan links
across scan, send, trade, and redeem flows. Add Seed Vault detection for
Solana Mobile Seeker devices. Add referral screen with share functionality.
Replace hardcoded reward catalogs with dynamic useRewards hook. Clean up
console statements, trailing whitespace, and placeholder comments.
…on hardening

Remove QR fallback that gave free tokens for any scanned barcode.
Add scan streak tracking with daily streak counter and total scans.
Display streak banner on home screen with scan-now action.
Make /redeem endpoint perform real on-chain token transfers for
token rewards. TransactionConfirmation now detects non-chain
signatures and hides Solscan link accordingly. Add priority fees
via ComputeBudgetProgram to all transfer transactions. Replace
Connection instantiation with shared singleton. Remove all
setTimeout-based cache invalidation in favor of immediate
query invalidation.
…ng, and tests

- Add 2-step redemption flow: server builds tx, user signs with wallet (MWA/Privy), server confirms on-chain
- Port priority fee estimation + send-and-confirm retry from PaniCafe production patterns
- Add server-side streak tracking with multipliers (up to 2x) and milestone bonuses (3/7/14/30 day)
- Add daily challenge system with rotating objectives
- Add AI-powered reward recommendation engine (context-aware based on streak, balance, catalog)
- Expand PaniCafe reward catalog with real products (Café, Medialuna, Croissant, Jugo, Desayuno, Helado)
- Switch server RPC to Helius for priority fees and reliable tx delivery
- Add rate limiting (30 req/min/IP) and wallet address input validation
- Remove scan screen silent fallback — show error on API failure instead of pretending success
- Add streak progress bar, multiplier badge, AI insight card, and daily challenge card to home screen
- Add Seed Vault status and streak stats to settings screen
- Sync streak data with server (local storage as offline fallback)
- Add post-scan streak/milestone feedback UI
- Add 41 passing unit tests for streak logic, multiplier, milestones, AI recommendations, and catalog
- Rewrite README with full feature documentation, architecture diagram, and API reference
- Add SECURITY.md documenting transaction security model
- Add pre-submission audit scripts and healthcheck cron jobs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…commendations

- RPC URL now read from SOLANA_RPC_URL env var with public fallback and warning
- Remove non-functional referral endpoints from server
- Rename "AI-powered" to "Smart" recommendations (honest labeling)
- Update README and API docs to reflect changes
…fy crypto UX

- Extract pure functions to server/streak.ts — tests import instead of copy-pasting
- Persist streak data to streaks.json (survives server restarts)
- Reduce bottom tabs from 5 to 3 (Home, Wallet, Rewards) — Swap and Profile accessible via navigation
- Add Swap/Send buttons to Wallet screen
- Hide raw signatures and Solscan links for email (Privy) users — show "Verified on blockchain" instead
- Hide wallet addresses in settings/profile for Privy users
- Track daily challenge progress per user in streak store
- 44 tests passing (3 new for challenge tracking)
…rnames

- Add PaniCafe box URL parsing to QR scanner (fixes invalid QR on scan)
- Replace duplicated headers in 4 screens with shared Header component
- Show real username: email for Privy, truncated address for wallet users
- Rename AI references to Smart (recommendation, interface, settings)
- Fix HTML entity lint errors in welcome and reward detail screens
- Normalize 10+ fractional font sizes to clean design-system values
- Enhance Header with showBackButton, children slot, and safe area insets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Solana/Expo/TypeScript/dApp Store badges to README
- Add Solscan explorer links for BONDUM and PANICAFE token mints
- Add MIT LICENSE file
- Add GitHub Actions CI workflow (typecheck + server tests)
- Add docs/ with hackathon research and API documentation
- Remove build/health logs from git tracking
- Update .gitignore for scripts/*.log
- Fix remaining AI references in README architecture diagram

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Resolve README.md conflicts (keep badges, Solscan links, smart naming)
- Resolve .gitignore conflict (keep scripts/*.log exclusion)
- Fix server-tests CI: remove npm cache (no lockfile), use npm install

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Node.js v20.6+ deprecated --loader in favor of --import. The old flag
order also caused CI to misinterpret --loader as a file path.
PaniCafe QR codes were failing with "Network request failed" because
they were being sent to the non-deployed Bondum server. Now PaniCafe
QR claims go directly to panicafe.bondum.xyz/api/open-box with the
user's Privy access token for authentication.
React Native's fetch doesn't reliably send Cookie headers.
PaniCafe server updated to accept privyToken from body as fallback.
…ncation

- Header: truncate username to 16 chars max
- Profile: show wallet address + copy button for ALL auth providers
- Profile: wallet recovery/security info (Privy email recovery, MWA seed phrase guidance)
- TransactionConfirmation: tap-to-copy signature, always show Solscan link
- Remove simplified mode — all users see full tx details now
…im layout

- Username: truncated to 20 chars, font reduced from 6xl to 28px, single line
- Removed min-h-[50vh] forcing header to take half the screen
- USDC balance: hidden when 0 (reduces noise for new users)
- NFT card: only shown when user has NFTs (was showing "no NFTs yet")
- Avatar: reduced from 24% to 16% of screen width
- Reduced overall header padding and spacing
…duplicates

- Compact header: logo centered, back button, truncated username + balance
- Pre-claim card: shows token amount, brand badge, full-width buttons
- Post-claim: single set of action buttons (removed duplicate "Scan Another")
- Removed excessive whitespace and floating card layout
- Cleaner scanner view with shorter copy text
Replace plain colored boxes with hand-drawn coupon images from PaniCafe webapp
for all PaniCafe rewards. Adds 11 coupon images, a mapping utility, and a
reusable PanicafeCouponCard component. Shows $PANICAFE token label on detail.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…witch to Orb explorer

- Reward detail checks $PANICAFE balance (not $BONDUM) for PaniCafe rewards
- PaniCafe coupon claims route through PaniCafe production API
  (request-reward-claim → sign → claim-reward), same flow as webapp
- Remove misleading coupon images from scan screens (QR gives tokens, not coupons)
- Replace Solscan with Orb (Helius) explorer for transaction links

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…al hierarchy

- TransactionConfirmation: circular success icon, proper Copy pill button,
  clean tx signature card with border, full-width action buttons (min 48pt)
- Scan pre-claim: centered card with shadow, "You will receive" label above
  hero token amount, proper $PANICAFE/$BONDUM labeling, taller buttons
- Scan post-claim: centered card, streak info cleaned up, less dead space
- Reward detail post-claim: centered card with shadow, coupon image for
  PaniCafe, properly sized action buttons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…n post-claim

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@JuanMarchetto
JuanMarchetto merged commit fb9c87d into main Mar 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant