diff --git a/android/app/build.gradle b/android/app/build.gradle index 51216db6a..581cd6fb0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -78,7 +78,7 @@ import com.android.build.OutputFile */ project.ext.react = [ - enableHermes: false, // clean and rebuild if changing + enableHermes: true, // clean and rebuild if changing ] apply from: "../../node_modules/react-native/react.gradle" diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 0e7aa93d6..b964573e4 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -9,6 +9,10 @@ # Add any project specific keep options here: +-keep class com.facebook.hermes.unicode.** { *; } +-keep class com.facebook.jni.** { *; } -keep class com.sifir.** { *;} -keep interface com.sifir.** { *;} --keep enum com.sifir.** { *;} \ No newline at end of file +-keep enum com.sifir.** { *;} +-keep class com.swmansion.reanimated.** { *; } +-keep class com.facebook.react.turbomodule.** { *; } diff --git a/android/app/src/main/java/io/bluewallet/bluewallet/MainApplication.java b/android/app/src/main/java/io/bluewallet/bluewallet/MainApplication.java index 11c16adfc..a23fec2ea 100644 --- a/android/app/src/main/java/io/bluewallet/bluewallet/MainApplication.java +++ b/android/app/src/main/java/io/bluewallet/bluewallet/MainApplication.java @@ -12,6 +12,8 @@ import java.lang.reflect.InvocationTargetException; import com.facebook.react.modules.i18nmanager.I18nUtil; import java.util.List; import com.bugsnag.android.Bugsnag; +import com.facebook.react.bridge.JSIModulePackage; +import com.swmansion.reanimated.ReanimatedJSIModulePackage; public class MainApplication extends Application implements ReactApplication { @@ -35,6 +37,11 @@ public class MainApplication extends Application implements ReactApplication { protected String getJSMainModuleName() { return "index"; } + + @Override + protected JSIModulePackage getJSIModulePackage() { + return new ReanimatedJSIModulePackage(); + } }; @Override diff --git a/package-lock.json b/package-lock.json index 095e5dea2..43c83fb46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "react-native-elements": "3.4.2", "react-native-fingerprint-scanner": "https://github.com/BlueWallet/react-native-fingerprint-scanner#ce644673681716335d786727bab998f7e632ab5e", "react-native-fs": "2.19.0", - "react-native-gesture-handler": "2.4.0", + "react-native-gesture-handler": "2.4.1", "react-native-handoff": "https://github.com/BlueWallet/react-native-handoff#31d005f93d31099d0e564590a3bbd052b8a02b39", "react-native-haptic-feedback": "1.13.1", "react-native-idle-timer": "https://github.com/BlueWallet/react-native-idle-timer#8587876d68ab5920e79619726aeca9e672beaf2b", @@ -87,7 +87,7 @@ "react-native-quick-actions": "0.3.13", "react-native-randombytes": "3.6.1", "react-native-rate": "1.2.9", - "react-native-reanimated": "2.2.4", + "react-native-reanimated": "2.8.0", "react-native-safe-area-context": "3.4.1", "react-native-screens": "3.13.1", "react-native-secure-key-store": "https://github.com/BlueWallet/react-native-secure-key-store#63ab38c9d382a819844a086a69cc204c46aa93f9", @@ -102,7 +102,7 @@ "react-native-windows": "0.67.6", "react-test-render": "1.1.2", "readable-stream": "3.6.0", - "realm": "10.16.0", + "realm": "^10.20.0-beta.5", "rn-ldk": "github:BlueWallet/rn-ldk#v0.8.1", "rn-nodeify": "10.3.0", "scryptsy": "2.1.0", @@ -6130,6 +6130,11 @@ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" }, + "node_modules/@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -12021,11 +12026,6 @@ "ua-parser-js": "^0.7.30" } }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "node_modules/fbjs/node_modules/core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", @@ -21633,11 +21633,6 @@ "node": ">= 8" } }, - "node_modules/mockdate": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", - "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" - }, "node_modules/moment": { "version": "2.29.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", @@ -23670,9 +23665,9 @@ } }, "node_modules/react-native-gesture-handler": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.4.0.tgz", - "integrity": "sha512-8Aao3iGAmlpTbazEt8AfTdEXiPL052Psv8VztKCdvEUW+rCmUso/2pdWCzmqwG0XQdi9ojYW9lg6A7bpaCK7EA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.4.1.tgz", + "integrity": "sha512-qJHkZAWyuvZvEm8jV6TsYKeTgkYmoNsKrO/CEx0YaisAcHSiaiMx2Dy/0/QQ7oZr3t5aL4rJqWtOEZCADNbfeQ==", "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", @@ -23897,33 +23892,22 @@ } }, "node_modules/react-native-reanimated": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.2.4.tgz", - "integrity": "sha512-Nn648MfEEnTCEiWsl1YmfkojiLyV0NMY0EiRdDRbZNfJVfxBuyqhCxI/4Jd7aBi162qpgf8XK2mByYgvF4zLrQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.8.0.tgz", + "integrity": "sha512-kJvf/UWLBMaGCs9X66MKq5zdFMgwx8D0nHnolbHR7s8ZnbLdb7TlQ/yuzIXqn/9wABfnwtNRI3CyaP1aHWMmZg==", "dependencies": { - "@babel/plugin-transform-object-assign": "^7.10.4", - "fbjs": "^3.0.0", - "mockdate": "^3.0.2", + "@babel/plugin-transform-object-assign": "^7.16.7", + "@babel/preset-typescript": "^7.16.7", + "@types/invariant": "^2.2.35", + "invariant": "^2.2.4", + "lodash.isequal": "^4.5.0", + "setimmediate": "^1.0.5", "string-hash-64": "^1.0.3" }, "peerDependencies": { + "@babel/core": "^7.0.0-0", "react": "*", - "react-native": "*", - "react-native-gesture-handler": "*" - } - }, - "node_modules/react-native-reanimated/node_modules/fbjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz", - "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==", - "dependencies": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" + "react-native": "*" } }, "node_modules/react-native-safe-area-context": { @@ -24734,9 +24718,9 @@ "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=" }, "node_modules/realm": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/realm/-/realm-10.16.0.tgz", - "integrity": "sha512-6kS7JKs0xrFmimmiPxOhi/QGyXQg91K3I+eXIVNQYdmrcmAY5na6S1f1/MVAwd+NzA0ALl3mgGr5uCPvpiWasA==", + "version": "10.20.0-beta.5", + "resolved": "https://registry.npmjs.org/realm/-/realm-10.20.0-beta.5.tgz", + "integrity": "sha512-NI6DUaD8+WfcPMUn4KD/KEmPmBus2T4ScjUKiYQ0YuUR31qtoQZ6A2WM6Mf2WBM+XGStqBxM09hte+eX0Q6XcQ==", "hasInstallScript": true, "dependencies": { "@realm.io/common": "^0.1.1", @@ -24766,7 +24750,7 @@ "npm": ">=7" }, "peerDependencies": { - "react-native": ">=0.60" + "react-native": ">=0.66.0" }, "peerDependenciesMeta": { "react-native": { @@ -27614,6 +27598,7 @@ "url": "https://paypal.me/faisalman" } ], + "peer": true, "engines": { "node": "*" } @@ -33012,6 +32997,11 @@ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" }, + "@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" + }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -37672,11 +37662,6 @@ } } }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -45200,11 +45185,6 @@ } } }, - "mockdate": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", - "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" - }, "moment": { "version": "2.29.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", @@ -46764,9 +46744,9 @@ } }, "react-native-gesture-handler": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.4.0.tgz", - "integrity": "sha512-8Aao3iGAmlpTbazEt8AfTdEXiPL052Psv8VztKCdvEUW+rCmUso/2pdWCzmqwG0XQdi9ojYW9lg6A7bpaCK7EA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.4.1.tgz", + "integrity": "sha512-qJHkZAWyuvZvEm8jV6TsYKeTgkYmoNsKrO/CEx0YaisAcHSiaiMx2Dy/0/QQ7oZr3t5aL4rJqWtOEZCADNbfeQ==", "requires": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", @@ -46928,30 +46908,17 @@ } }, "react-native-reanimated": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.2.4.tgz", - "integrity": "sha512-Nn648MfEEnTCEiWsl1YmfkojiLyV0NMY0EiRdDRbZNfJVfxBuyqhCxI/4Jd7aBi162qpgf8XK2mByYgvF4zLrQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.8.0.tgz", + "integrity": "sha512-kJvf/UWLBMaGCs9X66MKq5zdFMgwx8D0nHnolbHR7s8ZnbLdb7TlQ/yuzIXqn/9wABfnwtNRI3CyaP1aHWMmZg==", "requires": { - "@babel/plugin-transform-object-assign": "^7.10.4", - "fbjs": "^3.0.0", - "mockdate": "^3.0.2", + "@babel/plugin-transform-object-assign": "^7.16.7", + "@babel/preset-typescript": "^7.16.7", + "@types/invariant": "^2.2.35", + "invariant": "^2.2.4", + "lodash.isequal": "^4.5.0", + "setimmediate": "^1.0.5", "string-hash-64": "^1.0.3" - }, - "dependencies": { - "fbjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz", - "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - } } }, "react-native-safe-area-context": { @@ -47598,9 +47565,9 @@ "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=" }, "realm": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/realm/-/realm-10.16.0.tgz", - "integrity": "sha512-6kS7JKs0xrFmimmiPxOhi/QGyXQg91K3I+eXIVNQYdmrcmAY5na6S1f1/MVAwd+NzA0ALl3mgGr5uCPvpiWasA==", + "version": "10.20.0-beta.5", + "resolved": "https://registry.npmjs.org/realm/-/realm-10.20.0-beta.5.tgz", + "integrity": "sha512-NI6DUaD8+WfcPMUn4KD/KEmPmBus2T4ScjUKiYQ0YuUR31qtoQZ6A2WM6Mf2WBM+XGStqBxM09hte+eX0Q6XcQ==", "requires": { "@realm.io/common": "^0.1.1", "bindings": "^1.5.0", @@ -49856,7 +49823,8 @@ "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "peer": true }, "uglify-es": { "version": "3.3.9", diff --git a/package.json b/package.json index 15075cbbd..4e4c4ead9 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "react-native-quick-actions": "0.3.13", "react-native-randombytes": "3.6.1", "react-native-rate": "1.2.9", - "react-native-reanimated": "2.2.4", + "react-native-reanimated": "2.8.0", "react-native-safe-area-context": "3.4.1", "react-native-screens": "3.13.1", "react-native-secure-key-store": "https://github.com/BlueWallet/react-native-secure-key-store#63ab38c9d382a819844a086a69cc204c46aa93f9", @@ -188,7 +188,7 @@ "react-native-windows": "0.67.6", "react-test-render": "1.1.2", "readable-stream": "3.6.0", - "realm": "10.16.0", + "realm": "^10.20.0-beta.5", "rn-ldk": "github:BlueWallet/rn-ldk#v0.8.1", "rn-nodeify": "10.3.0", "scryptsy": "2.1.0",