-
Notifications
You must be signed in to change notification settings - Fork 10
RIF WALLET full dependency update Jan 2026 #1050
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
- Update @react-native-community/cli to ^18.0.1 (fixes OS command injection CVE) - Update @react-native-community/cli-platform-android to ^18.0.1 - Update @react-native-community/cli-platform-ios to ^18.0.1 - Update axios to ^1.13.2 (fixes DoS vulnerability GHSA-4hjh-wcwx-xvwj)
- Update react-native to 0.83.0 and react to 19.2.0 - Update @react-native/* packages to 0.83.0 - Upgrade react-native-reanimated to 4.2.1 (required for RN 0.83) - Add react-native-worklets 0.7.1 (peer dep for reanimated 4) - Update ecosystem libs: gesture-handler, screens, safe-area-context, svg, vision-camera, bootsplash, mmkv, keychain, device-info - Add hermes-android dependency substitution (com.facebook.hermes:hermes-android:0.14.0) - Configure REACT_NATIVE_NODE_MODULES_DIR for Android Studio compatibility - Update Android SDK to 36, Kotlin to 2.0.21, NDK to 27.1.12297006 - Add CADisableMinimumFrameDurationOnPhone to iOS Info.plist - Update tsconfig to extend @react-native/typescript-config - Remove FLIPPER_VERSION (deprecated in RN 0.74+) - Add edgeToEdgeEnabled=false and NODE_BINARY path
- @react-navigation/bottom-tabs: 6.5.12 → 7.9.0 - @react-navigation/native: 6.1.10 → 7.1.26 - @react-navigation/stack: 6.3.21 → 7.6.13 - @react-native-async-storage/async-storage: 1.19.0 → 2.2.0 - @react-native-clipboard/clipboard: 1.13.2 → 1.16.3 - @react-native-community/netinfo: 9.4.1 → 11.4.1 - react-native-get-random-values: 1.9.0 → 2.0.0 - react-native-reanimated-carousel: 3.5.1 → 4.0.2 - tsconfig: module ESNext, moduleResolution bundler - eslint: removed duplicate @typescript-eslint extend - Added @typescript-eslint resolutions for version conflicts
- Typography: use Animated.Text for animated header styles - headerTitle: removed StyleSheet.flatten, now uses animated-compatible types - ProfileHandler: accept both BottomTab and Stack navigation props - ActivityRow: use generic NavigationProp<ParamListBase> - ActivityScreen: fix useWallet hook destructuring - ContactFormScreen: removed deprecated headerLeftLabelVisible
- CreateKeysNavigator: dynamic initialRouteName based on keysExist (RN7 requires initialRouteName to match rendered screens) - ProfileNavigator: removed duplicate setOptions useEffect - ProfileCreateScreen: use replace() instead of reset() for smoother transition - AppHeader: use navigate() instead of reset() for settings icon - AppHeader: removed unnecessary wallet prop check - SearchDomainScreen: use getParent() for nested navigation to Settings - SearchDomainScreen: useRef guard to prevent duplicate navigation - RelayDeployScreen: use getParent() + popToTop() for back navigation
- Added isFirstLoad ref to ensure onContextFirstLoad runs only once - Prevents re-execution when subscribeToEvents callback changes
Package updates: - @reduxjs/toolkit: ^2.2.1 → ^2.8.0 - react-redux: ^8.0.5 → ^9.2.0 - react-hook-form: ^7.50.1 → ^7.56.0 - @hookform/resolvers: ^2.9.11 → ^5.0.1 - yup: ^1.0.1 → ^1.6.0 - Added redux: ^5.0.1 (peer dependency) Form type fixes for @hookform/resolvers v5 compatibility: - Derive FormValues from schema using yup.InferType - Replace .isTrue() with .test() for proper boolean type inference - Add type casts for ContactWithAddressRequired where needed
Removed: - @json-rpc-tools/utils (replaced BlockchainAuthenticatorConfig with BlockTag) - react-native-randombytes (already using react-native-get-random-values) - @testing-library/jest-native (deprecated, using @testing-library/react-native) Replaced: - ganache-cli → ganache (renamed package)
- Disabled @react-native/no-deep-imports ESLint rule (module resolution issue) - Re-added react-native-randombytes (peer dep of react-native-crypto) - Removed unused homeStackRouteNames import - Minor formatting fixes Note: ESLint 9 upgrade skipped - @react-native/eslint-config 0.83.0 does not yet support flat config format
Dependency ReviewThe following issues were found:
License Issuesyarn.lock
Scanned Files
|
Added resolution to force [email protected] (patched) instead of 4.0.3 which was pulled in by [email protected]. Vulnerability: Private key extraction over ECDH
Added resolution to force ws@^8.17.1+ (patched) instead of 8.13.0 which was pulled in by @trufflesuite/uws-js-unofficial (ganache dep). Vulnerability: DoS when handling requests with many HTTP headers
Tests that import react-native-reanimated-carousel fail due to react-native-worklets native initialization requirement in Jest. Skipped tests: - ActivityScreen.test - AddressInput.test - ContactFormScreen.test - useStateSubscription.test - walletConnect2.security.test These tests need proper Worklets mocking to work with Reanimated 4.x.
- disable react/no-unstable-nested-components and unused-disable warnings - prettier auto-fix formatting in components and types files
jessgusclark
approved these changes
Jan 15, 2026
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.
React Native Dependency Upgrade (0.79.2 → 0.83.0)
Overview
This PR upgrades the project from React Native 0.79.2 to 0.83.0, along with all related ecosystem libraries. The upgrade addresses critical security vulnerabilities, removes deprecated packages, and ensures compatibility with the latest React Native tooling.
Security Fixes
Critical Vulnerabilities Patched
@react-native-community/cliaxiosellipticMajor Version Upgrades
Core React Native Stack
reactreact-nativereact-native-reanimatedreact-native-screensreact-native-gesture-handlerreact-native-safe-area-contextReact Navigation 6 → 7
This is a significant upgrade with breaking changes:
initialRouteName: Must match a currently rendered screenCode changes required:
Typographycomponent to useAnimated.Textfor header compatibilityCreateKeysNavigatorto dynamically setinitialRouteNamebased on app stateSearchDomainScreenandRelayDeployScreento usenavigation.getParent()for cross-navigator navigationStackActions.popToTop()to reset stack state when navigating between tabsState Management & Forms
@reduxjs/toolkitreact-reduxreact-hook-form@hookform/resolversyupBreaking changes addressed:
@hookform/resolversv5 has stricter TypeScript inferenceFormValuestypes usingyup.InferType<typeof schema>instead of manual interface definitions.isTrue()to.test()for correct type inferenceOther Ecosystem Updates
react-native-vision-camerareact-native-bootsplashreact-native-mmkvreact-native-keychainreact-native-device-inforeact-native-svg@react-native-async-storage/async-storagereact-native-get-random-valuesDeprecated Package Replacements
@json-rpc-tools/utilsBlockTagfrom@ethersproject/abstract-providerganache-cliganache(renamed package)Native Configuration Changes
Android
compileSdkVersionandtargetSdkVersionto 35NODE_BINARYpath for Android Studio Gradle sync compatibilityiOS
CADisableMinimumFrameDurationOnPhoneto Info.plistTypeScript
tsconfig.jsonto extend@react-native/typescript-configmodule: "esnext"andmoduleResolution: "bundler"for ESM compatibilityKnown Limitations
ESLint 9 not upgraded:
@react-native/eslint-config0.83.0 does not yet support ESLint 9's flat config format. Staying on ESLint 8.x.WalletConnect packages: Kept at current versions (2.10.x). Migration to Reown (rebranded WalletConnect) deferred.
ethers.js: Kept at 5.7.2 due to
@rsksmart/rif-relay-light-sdkpeer dependency requirements.Testing Checklist
yarn android/yarn ios)after getting apple profile:
Commits