Skip to content

chore: merge main branch into stable#368

Merged
5ran6 merged 41 commits intostablefrom
main
Feb 13, 2026
Merged

chore: merge main branch into stable#368
5ran6 merged 41 commits intostablefrom
main

Conversation

@onahprosper
Copy link
Collaborator

Sync all changes from `main` into `stable` to keep both branches aligned. This includes the merged stable changes plus all main-only commits.

Key changes being synced from main:

  • EIP-7702 wallet migration (v2): Wallet migration modals, banner, context, and `useEIP7702Account` hook
  • Cross-chain balance display: CNGN rate fallbacks and sorted balance hooks
  • Biconomy integration: Added `biconomyNexusV120` and `biconomyPaymasterKey` config
  • BNB fixes: Canonical BNB fallback network and normalized filter
  • CNGN improvements: Deduped rate fetching, cross-chain balance sorting hook, simplified mobile display
  • Heroku compatibility: Dropped `engines.pnpm`
  • Typography: Updated font import in `globals.css` for specific font weights
  • Layout: Constrained `MaintenanceNoticeModal` width

Conflicts resolved (kept both sides):

  • `app/lib/config.ts` — biconomy + maintenance config
  • `app/types.ts` — biconomy + maintenance types
  • `app/components/AppLayout.tsx` — MigrationBannerWrapper + MaintenanceNoticeModal/Banner imports
  • `app/components/index.ts` — WalletMigrationBanner + MaintenanceNoticeModal/Banner exports
  • `app/context/BalanceContext.tsx` — BSC fallback transport from stable
  • `.github/workflows/create-release.yml` — main subject-line format with block redirect

References

  • Merges all commits from `main` that were not yet in `stable`

Testing

  • Verified no leftover conflict markers in any source files

  • Verified all imports (`bsc`, `fallback` from viem) are present

  • Verified `Config` type matches `config` object properties

  • This change adds test coverage for new/changed/fixed functionality

Checklist

  • I have added documentation and tests for new/changed functionality in this PR
  • All active GitHub checks for tests, formatting, and security are passing
  • The correct base branch is being used, if not `main`

By submitting a PR, I agree to Paycrest's Contributor Code of Conduct and Contribution Guide.

jeremy0x and others added 30 commits January 5, 2026 22:12
- Add parallel balance fetching across all supported networks
- Update wallet displays to group balances by network with sorting
- Implement comprehensive CNGN rate fallback system with caching
- Add loading states and error handling for rate failures
- Fix balance display to show raw CNGN amounts with USD equivalents
- Optimize rate fetching with 5min TTL cache and parallel fallbacks
- Ensure CNGN balances excluded from totals when rates unavailable

Closes #276
- Extract repeated CNGN conversion logic into reusable applyCNGNBalanceConversion function
- Remove code duplication across 4 different balance handling sections
- Maintain same functionality while improving maintainability
- Single source of truth for CNGN balance conversion rules
- Fixed type mismatch in Promise.allSettled result filtering
- Replaced problematic type predicate with type assertion
- Resolves build compilation error while maintaining type safety
- Upgraded pnpm from version 10.14.0 to 10.27.0 for improved package management and performance.
- Removed dollar value display for CNGN tokens on mobile wallet view
- Mobile now shows only raw CNGN amounts for cleaner UI
- Desktop continues to show both raw amounts and dollar equivalents
- Maintains consistent raw balance display across platforms
- Add AbortController signal support to fetchRate for proper request cancellation
- Extract constants (CNGN_CACHE_TTL, timeouts, RELIABLE_NETWORKS) for maintainability
- Implement try-finally wrappers to guarantee timeout cleanup and prevent memory leaks
- Remove unused imports (networks from mocks, getCNGNRateForNetwork from WalletDetails)
- Remove unused lastSuccessfulRate state variable
- Remove all console.log statements for production readiness
- Refactor applyCNGNBalanceConversion to pure function (returns new object)
- Add concurrency batching (3 networks at a time) to prevent RPC endpoint overload
- Fix loading state by awaiting fetchCrossChainBalances for complete data
- Remove blocking refetchCNGNRate calls (redundant, each network fetches own rate)
- Fix CNGN balance fallback logic to check rawBalances existence explicitly
- Update misleading "race condition" comment to describe actual behavior

This addresses 17 legitimate issues and 2 best-practice violations from CodeRabbit and Copilot review feedback.
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
Co-authored-by: jeremy0x <jeremy0x@users.noreply.github.com>
* feat: add refetch rate on retry transaction after failure

* chore: update CODEOWNERS to change review request from @jeremy0x to @onahprosper

* chore: update CODEOWNERS to include @5ran6 as a reviewer

---------

Co-authored-by: Your Name <prosp@example.com>
feat: implement cross-chain balance display
fix: drop engines.pnpm for Heroku compatibility
* feat: implement wallet migration feature with modals and context support

- Added WalletMigrationBanner and WalletMigrationModal components for user migration prompts.
- Introduced WalletTransferApprovalModal for handling wallet transfer approvals.
- Created hooks for managing EIP-7702 account setup and migration status checks.
- Implemented backend API routes for deprecating old wallets and checking migration status.
- Updated context to include migration-related components and logic.
- Enhanced UI with new images and improved user feedback during migration processes.

* fix: clean up documentation and remove unused chain reference in Privy config

- Corrected the return type documentation in the TokensContext function.
- Removed baseSepolia from the supportedChains list in PrivyClientConfig as it is no longer needed.

* feat: enhance wallet deprecation API with JWT authentication and user validation

- Implemented JWT verification for secure access to the wallet deprecation endpoint.
- Added checks to ensure the authenticated user matches the provided userId and wallet address.
- Improved error handling for unauthorized access and token validation.
- Introduced rollback mechanisms for database operations to maintain data integrity during migration.
- Updated KYC data migration logic to allow for partial success reporting.

* feat: implement wallet migration status handling and update wallet selection logic

- Introduced useMigrationStatus hook to check and manage wallet migration status.
- Updated components (MobileDropdown, Navbar, SettingsDropdown, WalletDetails, TransactionForm, TransactionPreview) to utilize migration status for determining active wallet and balance.
- Enhanced error handling in migration status API response to improve user experience during wallet transitions.
- Adjusted balance fetching logic to prioritize embedded wallets post-migration.
- Refactored wallet selection logic to ensure correct wallet type is displayed based on migration state.

* feat: update wallet migration logic and enhance component integration

- Refactored wallet migration handling across components to utilize the new useShouldUseEOA hook for determining active wallet type.
- Updated MobileDropdown, Navbar, SettingsDropdown, WalletDetails, and TransferForm components to reflect changes in wallet selection based on migration status.
- Improved balance fetching logic to prioritize embedded wallets post-migration and ensure accurate display of wallet balances.
- Enhanced UI elements in WalletMigrationBanner and WalletMigrationModal for better user experience during migration processes.
- Added new dependencies and updated configuration files to support recent changes.

* feat: add Biconomy Nexus V1.2.0 contract address and integrate into transaction handling

- Introduced biconomyNexusV120 configuration to store the Biconomy Nexus V1.2.0 contract address.
- Updated useEIP7702Account hook to utilize the new configuration for authorization checks.
- Enhanced TransactionPreview component to incorporate the Biconomy Nexus address in wallet authorization logic.
- Improved error handling for authorization failures and ensured correct implementation address is set during transactions.

* fix: standardize Biconomy Nexus V1.2.0 address format and update transaction handling

- Updated the Biconomy Nexus V1.2.0 contract address to use a consistent lowercase format.
- Refactored TransactionPreview component to directly use the updated address instead of the config variable for improved clarity.
- Commented out unused code related to approval instructions to streamline the transaction process.

* refactor: enhance transaction authorization handling and streamline approval instructions

- Updated the Biconomy Nexus V1.2.0 address usage to improve clarity in the TransactionPreview component.
- Added a delay for authorization propagation and improved error handling during authorization verification.
- Streamlined the approval instruction process by ensuring both approval and order creation instructions are included in the transaction.
- Commented out unused balance calculation logic for clarity.

* fix: improve error handling and update wallet migration logic

- Enhanced error handling during wallet upsert and rollback processes in the wallet deprecation API.
- Updated the MigrationZeroBalanceModal component to streamline local storage checks.
- Modified the useWalletMigrationStatus hook to include access token validation for API requests and improved error logging for migration status checks.
- Added validation for the Biconomy Nexus address configuration to ensure proper setup.

* refactor: improve migration status handling and streamline component logic

- Updated MigrationZeroBalanceModal to reset check state when the storage key changes.
- Enhanced useWalletMigrationStatus hook to manage migration completion state and improve balance-based UI logic.
- Commented out unused approval instruction code in TransactionPreview for clarity and streamlined transaction processing.
- Improved error handling for Biconomy Nexus address configuration warnings without crashing the app.

* fix: update wallet migration status handling for improved logic

- Enhanced useWalletMigrationStatus hook to set migration completion state when access token is unavailable.
- Streamlined balance checking logic to ensure accurate migration status updates without waiting for balance loading.

* fix: improve dependency management in migration status hooks

- Added eslint-disable comments to avoid exhaustive-deps warnings in useMigrationStatus and useWalletMigrationStatus hooks.
- Streamlined the useWalletMigrationStatus hook by omitting getAccessToken from dependencies to prevent excessive API calls while maintaining functionality.

* fix: update wallet migration sql

* fix: enhance migration status API and improve error handling

- Added authorization token verification to the migration status route to ensure user authentication.
- Implemented user ID validation to prevent unauthorized access to migration status data.
- Improved error handling for database connection issues and refined response messages for various error scenarios.
- Updated TransactionPreview component to ensure proper transaction approval instructions are included and clarified balance calculations.

* fix: add spacer to WalletMigrationBanner to prevent content overlap

- Introduced a spacer element in the WalletMigrationBanner component to offset the fixed banner height, ensuring that underlying content is not obscured during wallet migration processes.

* fix: correct typos in wallet migration modals

- Fixed "heavy liftings" to "heavy lifting" in WalletMigrationModal.
- Changed "fiats" to "fiat" in WalletMigrationSuccessModal.
- Updated comments in WalletTransferApprovalModal for clarity on amount handling.

---------

Co-authored-by: Your Name <prosp@example.com>
fix: correct HTML entity in WalletMigrationSuccessModal button text
- Added useWallets hook to MobileDropdown for wallet management.
- Imported useCNGNRate in WalletDetails for currency rate handling.
- Updated BalanceContext to fetch cross-chain balances for embedded wallets, enhancing balance accuracy and user experience.
feat: integrate wallet fetching and cross-chain balance updates
…n handling

- Updated WalletMigrationBanner to conditionally display messages based on remaining funds migration status.
- Introduced smartWalletRemainingTotal in BalanceContext to track remaining funds after migration.
- Enhanced useWalletMigrationStatus hook to determine if remaining funds migration is necessary.
- Adjusted MigrationContext to pass remaining funds migration status to WalletMigrationBanner.
- Improved loading indicators and UI elements in WalletTransferApprovalModal for better user experience.
…text

- Consolidated balance fetching functionality into a shared helper function, fetchCrossChainEntriesForAddress, to reduce code duplication.
- Updated fetchCrossChainBalances and fetchCrossChainTotalForAddress to utilize the new helper for improved clarity and maintainability.
- Removed direct RPC URL handling for specific chains, simplifying the network configuration process.
onahprosper and others added 8 commits February 11, 2026 12:04
…ce-check

feat: enhance WalletMigrationBanner and context for improved migratio…
#363)

* feat: enhance wallet migration modals and context for improved user experience

- Updated MigrationZeroBalanceModal to include acknowledgment callback for migration status refetching.
- Enhanced WalletMigrationBanner and WalletMigrationModal with improved UI elements and loading indicators.
- Refactored balance context to clear per-network balances on fetch errors, ensuring accurate migration status display.
- Integrated migration status refetching mechanism in useMigrationStatus and useWalletMigrationStatus hooks for better state management.

* fix: improve error handling in MigrationZeroBalanceModal
…anner

feat: enhance maintenance notice functionality with auto-hide feature
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 13, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

5ran6 and others added 3 commits February 13, 2026 13:59
@5ran6 5ran6 merged commit 6c56c60 into stable Feb 13, 2026
1 check 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.

7 participants

Comments