Development#9
Closed
JuanMarchetto wants to merge 21 commits into
Closed
Conversation
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.