feat(balances): add EURC token balances with tabbed UI #251
Workflow file for this run
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
| name: Claude Auto Review | |
| on: | |
| pull_request: | |
| types: [opened] | |
| branches: [main, develop] | |
| issue_comment: | |
| types: [created] | |
| jobs: | |
| review: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: | | |
| github.event_name == 'pull_request' | |
| || ( | |
| github.event_name == 'issue_comment' | |
| && github.event.issue.pull_request | |
| && contains(github.event.comment.body, '@claude review') | |
| ) | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| issues: write | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Claude Review | |
| uses: WalletConnect/actions/claude/auto-review@d589468690b138fc8319fb1dcfc1825b1dd5c25f | |
| with: | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| project_context: | | |
| This is a Swift implementation of WalletConnect protocol and SDKs for native iOS, macOS, and tvOS applications, providing both wallet-side and app-side implementations. | |
| Repository Structure (Swift Package Manager): | |
| Core Protocol Layer: | |
| - WalletConnectSign: Core Sign protocol implementation with session management, proposal handling, request/response flow | |
| - WalletConnectPairing: Pairing protocol for establishing connections between wallets and dApps | |
| - WalletConnectRelay: WebSocket relay client with automatic reconnection and message queue management | |
| Wallet SDK: | |
| - ReownWalletKit: Complete wallet-side SDK combining Sign, Push, Verify, and Yttrium integration | |
| - WalletConnectNotify: Push notification protocol with Identity and Push dependencies | |
| - WalletConnectPush: Push notification delivery via networking and JWT | |
| App SDK: | |
| - ReownAppKit: Embeddable dApp SDK with QR code scanning, wallet connection UI, Coinbase Wallet SDK integration | |
| - ReownAppKitUI: SwiftUI and UIKit components for wallet connection flows (buttons, modals, account views) | |
| - ReownAppKitBackport: Backport utilities for older iOS versions | |
| Infrastructure: | |
| - WalletConnectNetworking: HTTP client and relay integration layer | |
| - HTTPClient: Low-level HTTP client implementation | |
| - WalletConnectKMS: Key Management System for cryptographic operations (key generation, signing, encryption) | |
| - WalletConnectJWT: JWT token generation and validation for authentication | |
| - WalletConnectIdentity: Identity management and verification | |
| - WalletConnectVerify: Domain verification and attestation system | |
| - WalletConnectSigner: Signing operations abstraction | |
| Utilities: | |
| - Commons: Common data types and extensions | |
| - JSONRPC: JSON-RPC 2.0 protocol implementation | |
| - WalletConnectUtils: Shared utilities, logging, encoding/decoding | |
| - Database: Persistent storage layer | |
| - Events: Event analytics and telemetry | |
| Router: | |
| - ReownRouter: Modern deep linking and universal links handling | |
| - WalletConnectRouterLegacy: Legacy routing implementation for backwards compatibility | |
| Integrations: | |
| - YttriumWrapper: Swift wrapper for Yttrium Rust library (account abstraction, version 0.9.68 pinned) | |
| - YttriumUtilsWrapper: Utility functions from Yttrium | |
| - QRCode (14.3.1+): QR code generation | |
| - CoinbaseWalletSDK (1.1.0+): Coinbase Wallet integration | |
| Tech Stack: | |
| - Swift 5 with Swift Package Manager | |
| - Minimum Deployment: iOS 13+, macOS 11+, tvOS 13+ | |
| - Swift Concurrency: async/await, actors, structured concurrency | |
| - Privacy: PrivacyInfo.xcprivacy resources for App Privacy Details | |
| - Testing: XCTest for unit tests across all major modules | |
| - Resources: Asset catalogs (xcassets), PackageConfig.json | |
| Key Considerations: | |
| - Follow Swift best practices and Swift API Design Guidelines | |
| - Proper async/await patterns with Swift concurrency (avoid callback hell, use structured concurrency) | |
| - Memory management: understand ARC, avoid retain cycles with weak/unowned, proper capture lists in closures | |
| - Platform-specific considerations: conditional compilation for iOS/macOS/tvOS differences | |
| - Error handling: use Swift's typed error handling, provide descriptive error types | |
| - Thread safety: use actors for mutable state, @MainActor for UI updates, avoid data races | |
| - Security: secure keychain storage for sensitive data (via KMS), proper JWT validation, domain verification | |
| - Networking: handle network failures gracefully, implement retry logic, WebSocket reconnection | |
| - Protocol compliance: strict adherence to WalletConnect protocol specifications | |
| - Dependency management: pinned Yttrium version (0.9.68) for stability, semantic versioning for other deps | |
| - Testing: unit tests for business logic, mock networking layers, test async operations properly | |
| - Documentation: use Swift's documentation markup (///) for public APIs | |
| - Privacy: declare data collection in PrivacyInfo.xcprivacy files | |
| - Backwards compatibility: maintain legacy router for existing integrations | |
| - Yttrium Integration: Swift wrappers around Rust FFI, handle cross-language error boundaries |