Skip to content

Development#9

Closed
JuanMarchetto wants to merge 21 commits into
mainfrom
development
Closed

Development#9
JuanMarchetto wants to merge 21 commits into
mainfrom
development

Conversation

@JuanMarchetto

Copy link
Copy Markdown
Owner

No description provided.

JuanMarchetto and others added 21 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>
…isibility

- Add Anchor program (scan_guard) for PDA-based nonce replay protection
- Add SKR token to balances, swap system, and README
- Abstract crypto vocabulary in user-facing screens
- Remove dead bell icon, unhide Trade and Profile tabs
- Add haptic feedback on scan and claim success
- Normalize extreme font sizes in trade screen
- Update README with traction links and Orb Explorer references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add lightweight custom i18n system with expo-localization for device
locale detection, typed t() function, React context, and persistent
language preference via SecureStore. All ~300 hardcoded English strings
across 15 screens replaced with t() calls. Argentine Spanish translations
for the full app. Language picker in Settings with English/Español toggle.

Security hardened: try-catch in LanguageProvider init with finally guard,
English fallback for missing translation keys, typed setLanguage storage,
Translations type enforcement on es.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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