diff --git a/.gitignore b/.gitignore index 13a4349fc8f..86ff5be4b9e 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,9 @@ yarn-error.log !.yarn/releases !.yarn/sdks !.yarn/versions + +# Local APK size analysis tooling (downloaded binaries) +tools/bundletool*.jar +tools/binaryen/ + +docs/app-release*.apk diff --git a/android/app/build.gradle b/android/app/build.gradle index f9e22b0d811..4e472d16015 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -62,9 +62,11 @@ react { } /** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + * Set this to true to Run Proguard/R8 on Release builds to minify the Java bytecode. + * Keep rules live in proguard-rules.pro. Re-measure with scripts/analyzeApkSize.ts + * after flipping this; smoke-test all wallet types before shipping. */ -def enableProguardInReleaseBuilds = false +def enableProguardInReleaseBuilds = true /** * The preferred build flavor of JavaScriptCore (JSC) @@ -100,6 +102,11 @@ android { // Edge addition: multiDexEnabled true + // Keep only locales we ship strings for (see src/locales/strings). + // Drops the long tail of AndroidX / Play Services translated resources. + resourceConfigurations += [ + 'en', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pt', 'ru', 'vi', 'zh' + ] ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' // Exclude Intel } @@ -172,6 +179,7 @@ android { // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.release minifyEnabled enableProguardInReleaseBuilds + shrinkResources enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } @@ -252,7 +260,28 @@ if (hasProperty('storeFile')) { android.signingConfigs.release.keyPassword = "password" } -// Integrate react-native-vector-icons fonts +// Integrate react-native-vector-icons fonts. +// FontAwesome6_* is never imported from src/; omit it to save ~300 KB compressed. +project.ext.vectoricons = [ + iconFontNames: [ + 'AntDesign.ttf', + 'Entypo.ttf', + 'EvilIcons.ttf', + 'Feather.ttf', + 'FontAwesome.ttf', + 'FontAwesome5_Brands.ttf', + 'FontAwesome5_Regular.ttf', + 'FontAwesome5_Solid.ttf', + 'Fontisto.ttf', + 'Foundation.ttf', + 'Ionicons.ttf', + 'MaterialCommunityIcons.ttf', + 'MaterialIcons.ttf', + 'Octicons.ttf', + 'SimpleLineIcons.ttf', + 'Zocial.ttf' + ] +] apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" import io.sentry.android.gradle.extensions.InstrumentationFeature diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 11b025724a3..ace785d245b 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -1,10 +1,79 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: +# Edge React GUI — R8 / ProGuard keep rules +# Enabled when minifyEnabled=true in android/app/build.gradle. +# These rules aim to keep reflection / JNI entry points used by React Native, +# Hermes, Firebase, Sentry, and the Zcash / Pirate native SDKs. + +# ---- React Native / Hermes / JNI ---- +-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip +-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters +-keep @com.facebook.proguard.annotations.DoNotStrip class * +-keepclassmembers class * { + @com.facebook.proguard.annotations.DoNotStrip *; +} +-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { + void set*(***); + *** get*(); +} +-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } +-keep class * extends com.facebook.react.bridge.NativeModule { *; } +-keepclassmembers,includedescriptorclasses class * { + native ; +} +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } +-keep class com.facebook.react.turbomodule.** { *; } +-keep class com.facebook.hermes.unicode.** { *; } +-keep class com.facebook.jni.** { *; } +-keep class com.facebook.hermes.intl.** { *; } + +# ---- OkHttp / Okio (RN networking) ---- +-dontwarn okhttp3.** +-dontwarn okio.** +-keep class okhttp3.** { *; } +-keep interface okhttp3.** { *; } + +# ---- Firebase / Google Play Services ---- +-keep class com.google.firebase.** { *; } +-keep class com.google.android.gms.** { *; } +-dontwarn com.google.firebase.** +-dontwarn com.google.android.gms.** + +# ---- Sentry ---- +-keep class io.sentry.** { *; } +-dontwarn io.sentry.** + +# ---- Zcash / Pirate protobuf + gRPC (reflection-heavy) ---- +-keep class cash.z.** { *; } +-keep class co.electriccoin.** { *; } +-keep class pirate.** { *; } +-keep class com.google.protobuf.** { *; } +-keep class io.grpc.** { *; } +-dontwarn com.google.protobuf.** +-dontwarn io.grpc.** +-dontwarn com.google.common.** + +# ---- Guava (pulled by Zcash / work-runtime) ---- +-dontwarn com.google.common.** +-keep class com.google.common.** { *; } + +# ---- Pirate SDK optional kotlinx.datetime refs (not on classpath) ---- +-dontwarn kotlinx.datetime.Clock$System +-dontwarn kotlinx.datetime.Clock +-dontwarn kotlinx.datetime.Instant + +# ---- Expo modules ---- +-keep class expo.modules.** { *; } +-dontwarn expo.modules.** + +# ---- Vision Camera / ML Kit ---- +-keep class com.mrousavy.camera.** { *; } +-keep class com.google.mlkit.** { *; } +-dontwarn com.google.mlkit.** + +# ---- Reanimated / Gesture Handler ---- +-keep class com.swmansion.reanimated.** { *; } +-keep class com.swmansion.gesturehandler.** { *; } + +# ---- Keep line numbers for crash reports ---- +-keepattributes SourceFile,LineNumberTable +-renamesourcefileattribute SourceFile diff --git a/docs/apkAccountbasedDupes.json b/docs/apkAccountbasedDupes.json new file mode 100644 index 00000000000..edb6b105b13 --- /dev/null +++ b/docs/apkAccountbasedDupes.json @@ -0,0 +1,138 @@ +{ + "generatedAt": "2026-08-06T04:24:47.579Z", + "multiVersionCount": 153, + "interesting": [ + { + "name": "@noble/hashes", + "versions": [ + "1.3.1", + "1.3.2", + "1.6.0", + "1.6.1", + "1.7.1", + "1.8.0" + ] + }, + { + "name": "@noble/curves", + "versions": [ + "1.1.0", + "1.7.0", + "1.8.1", + "1.9.7" + ] + }, + { + "name": "axios", + "versions": [ + "0.18.1", + "0.21.4", + "0.26.1", + "1.13.5" + ] + }, + { + "name": "readable-stream", + "versions": [ + "2.3.7", + "2.3.8", + "3.6.2", + "4.7.0" + ] + }, + { + "name": "bs58", + "versions": [ + "4.0.1", + "5.0.0", + "6.0.0" + ] + }, + { + "name": "@types/bn.js", + "versions": [ + "4.11.6", + "5.1.5", + "5.2.0" + ] + }, + { + "name": "secp256k1", + "versions": [ + "3.5.2", + "4.0.3", + "5.0.0" + ] + }, + { + "name": "protobufjs", + "versions": [ + "6.11.4", + "7.2.6" + ] + }, + { + "name": "@scure/bip32", + "versions": [ + "1.3.1", + "1.6.0" + ] + }, + { + "name": "@scure/bip39", + "versions": [ + "1.2.1", + "1.5.0" + ] + }, + { + "name": "bn.js", + "versions": [ + "4.12.3", + "5.2.1" + ] + }, + { + "name": "elliptic", + "versions": [ + "6.5.4", + "6.6.1" + ] + }, + { + "name": "safe-buffer", + "versions": [ + "5.1.2", + "5.2.1" + ] + }, + { + "name": "bs58check", + "versions": [ + "2.1.2", + "3.0.1" + ] + }, + { + "name": "bip32", + "versions": [ + "2.0.6", + "4.0.0" + ] + }, + { + "name": "typed-array-buffer", + "versions": [ + "1.0.2", + "1.0.3" + ] + }, + { + "name": "typedarray-to-buffer", + "versions": [ + "3.1.5", + "4.0.0" + ] + } + ] +} \ No newline at end of file diff --git a/docs/apkDexPackages.json b/docs/apkDexPackages.json new file mode 100644 index 00000000000..05586679258 --- /dev/null +++ b/docs/apkDexPackages.json @@ -0,0 +1,485 @@ +{ + "totalBytes": 31643119, + "packages": [ + { + "name": "", + "bytes": 31643119, + "methods": 269980, + "fields": 297675 + }, + { + "name": "com", + "bytes": 12638970, + "methods": 113734, + "fields": 121180 + }, + { + "name": "com.google", + "bytes": 8433155, + "methods": 77184, + "fields": 82250 + }, + { + "name": "androidx", + "bytes": 5387972, + "methods": 43164, + "fields": 46202 + }, + { + "name": "io", + "bytes": 4446335, + "methods": 38574, + "fields": 40505 + }, + { + "name": "com.google.android", + "bytes": 3159476, + "methods": 25363, + "fields": 27024 + }, + { + "name": "kotlin", + "bytes": 3092674, + "methods": 26084, + "fields": 28381 + }, + { + "name": "com.facebook", + "bytes": 2355314, + "methods": 21164, + "fields": 22384 + }, + { + "name": "kotlin.reflect", + "bytes": 1837108, + "methods": 15781, + "fields": 16859 + }, + { + "name": "com.google.crypto", + "bytes": 1651211, + "methods": 16726, + "fields": 18092 + }, + { + "name": "com.google.common", + "bytes": 1609082, + "methods": 16546, + "fields": 17358 + }, + { + "name": "io.sentry", + "bytes": 1354529, + "methods": 12428, + "fields": 12975 + }, + { + "name": "com.facebook.react", + "bytes": 1350407, + "methods": 11583, + "fields": 12368 + }, + { + "name": "cash", + "bytes": 1246510, + "methods": 11031, + "fields": 11526 + }, + { + "name": "cash.z", + "bytes": 1246510, + "methods": 11031, + "fields": 11526 + }, + { + "name": "androidx.camera", + "bytes": 1188164, + "methods": 10306, + "fields": 10812 + }, + { + "name": "kotlinx", + "bytes": 1147857, + "methods": 10161, + "fields": 10546 + }, + { + "name": "io.reactivex", + "bytes": 1134537, + "methods": 9620, + "fields": 10621 + }, + { + "name": "io.ktor", + "bytes": 1116394, + "methods": 9088, + "fields": 9275 + }, + { + "name": "com.google.protobuf", + "bytes": 1068529, + "methods": 11902, + "fields": 12784 + }, + { + "name": "expo", + "bytes": 919203, + "methods": 7545, + "fields": 7684 + }, + { + "name": "expo.modules", + "bytes": 918972, + "methods": 7543, + "fields": 7682 + }, + { + "name": "cash.z.ecc", + "bytes": 885991, + "methods": 6888, + "fields": 6920 + }, + { + "name": "io.grpc", + "bytes": 797216, + "methods": 7055, + "fields": 7239 + }, + { + "name": "androidx.core", + "bytes": 759764, + "methods": 7140, + "fields": 7346 + }, + { + "name": "pirate", + "bytes": 699040, + "methods": 6579, + "fields": 6909 + }, + { + "name": "kotlinx.coroutines", + "bytes": 585371, + "methods": 4879, + "fields": 5136 + }, + { + "name": "kotlin.collections", + "bytes": 583370, + "methods": 4400, + "fields": 5068 + }, + { + "name": "androidx.appcompat", + "bytes": 531412, + "methods": 4547, + "fields": 5416 + }, + { + "name": "io.sentry.android", + "bytes": 523648, + "methods": 4892, + "fields": 5269 + }, + { + "name": "androidx.camera.core", + "bytes": 510139, + "methods": 4652, + "fields": 4889 + }, + { + "name": "androidx.constraintlayout", + "bytes": 476199, + "methods": 2415, + "fields": 2721 + }, + { + "name": "android", + "bytes": 426942, + "methods": 1522, + "fields": 8766 + }, + { + "name": "androidx.collection", + "bytes": 424021, + "methods": 2899, + "fields": 2963 + }, + { + "name": "pirate.android", + "bytes": 405923, + "methods": 3386, + "fields": 3398 + }, + { + "name": "com.google.zxing", + "bytes": 392604, + "methods": 2050, + "fields": 2252 + }, + { + "name": "com.facebook.imagepipeline", + "bytes": 387667, + "methods": 3504, + "fields": 3651 + }, + { + "name": "com.swmansion", + "bytes": 384914, + "methods": 3497, + "fields": 3817 + }, + { + "name": "com.bumptech", + "bytes": 383531, + "methods": 3436, + "fields": 3596 + }, + { + "name": "cash.z.wallet", + "bytes": 360519, + "methods": 4143, + "fields": 4606 + }, + { + "name": "okhttp3", + "bytes": 357084, + "methods": 2779, + "fields": 2799 + }, + { + "name": "org", + "bytes": 330619, + "methods": 3008, + "fields": 3222 + }, + { + "name": "kotlinx.datetime", + "bytes": 307879, + "methods": 2956, + "fields": 3043 + }, + { + "name": "androidx.appcompat.widget", + "bytes": 296609, + "methods": 2472, + "fields": 3187 + }, + { + "name": "androidx.camera.camera2", + "bytes": 282907, + "methods": 2376, + "fields": 2405 + }, + { + "name": "pirate.wallet", + "bytes": 259691, + "methods": 2896, + "fields": 3213 + }, + { + "name": "androidx.recyclerview", + "bytes": 256800, + "methods": 1942, + "fields": 2150 + }, + { + "name": "com.google.firebase", + "bytes": 253156, + "methods": 2190, + "fields": 2233 + }, + { + "name": "androidx.recyclerview.widget", + "bytes": 252152, + "methods": 1930, + "fields": 2138 + }, + { + "name": "org.apache", + "bytes": 249960, + "methods": 2043, + "fields": 2078 + }, + { + "name": "coil3", + "bytes": 247864, + "methods": 2281, + "fields": 2316 + }, + { + "name": "androidx.camera.video", + "bytes": 237682, + "methods": 2008, + "fields": 2077 + }, + { + "name": "okhttp3.internal", + "bytes": 219294, + "methods": 1553, + "fields": 1569 + }, + { + "name": "com.horcrux", + "bytes": 215512, + "methods": 1935, + "fields": 2234 + }, + { + "name": "androidx.core.view", + "bytes": 213022, + "methods": 2236, + "fields": 2263 + }, + { + "name": "androidx.work", + "bytes": 209585, + "methods": 1550, + "fields": 1624 + }, + { + "name": "okio", + "bytes": 208754, + "methods": 1516, + "fields": 1538 + }, + { + "name": "androidx.fragment", + "bytes": 192003, + "methods": 1459, + "fields": 1549 + }, + { + "name": "androidx.fragment.app", + "bytes": 190971, + "methods": 1452, + "fields": 1542 + }, + { + "name": "kotlinx.serialization", + "bytes": 168048, + "methods": 1711, + "fields": 1748 + }, + { + "name": "androidx.constraintlayout.motion", + "bytes": 167583, + "methods": 954, + "fields": 1031 + }, + { + "name": "androidx.work.impl", + "bytes": 162120, + "methods": 1047, + "fields": 1086 + }, + { + "name": "com.mrousavy", + "bytes": 160420, + "methods": 1334, + "fields": 1365 + }, + { + "name": "androidx.constraintlayout.solver", + "bytes": 160107, + "methods": 910, + "fields": 1025 + }, + { + "name": "android.support", + "bytes": 154998, + "methods": 1511, + "fields": 1623 + }, + { + "name": "com.caverock", + "bytes": 154397, + "methods": 824, + "fields": 878 + }, + { + "name": "com.google.gson", + "bytes": 151730, + "methods": 1235, + "fields": 1267 + }, + { + "name": "androidx.core.app", + "bytes": 150320, + "methods": 1397, + "fields": 1441 + }, + { + "name": "kotlin.text", + "bytes": 147001, + "methods": 1089, + "fields": 1271 + }, + { + "name": "androidx.constraintlayout.widget", + "bytes": 130457, + "methods": 435, + "fields": 505 + }, + { + "name": "com.facebook.fresco", + "bytes": 127934, + "methods": 1307, + "fields": 1350 + }, + { + "name": "com.facebook.drawee", + "bytes": 120132, + "methods": 1110, + "fields": 1209 + }, + { + "name": "io.sentry.protocol", + "bytes": 117668, + "methods": 1048, + "fields": 1059 + }, + { + "name": "androidx.lifecycle", + "bytes": 112587, + "methods": 944, + "fields": 962 + }, + { + "name": "com.google.mlkit", + "bytes": 106396, + "methods": 796, + "fields": 813 + }, + { + "name": "androidx.transition", + "bytes": 106188, + "methods": 871, + "fields": 932 + }, + { + "name": "androidx.emoji2", + "bytes": 103254, + "methods": 995, + "fields": 1044 + }, + { + "name": "androidx.appcompat.app", + "bytes": 102736, + "methods": 967, + "fields": 1032 + }, + { + "name": "androidx.webkit", + "bytes": 93832, + "methods": 939, + "fields": 951 + }, + { + "name": "com.reactnativecommunity", + "bytes": 93439, + "methods": 821, + "fields": 930 + } + ] +} \ No newline at end of file diff --git a/docs/apkJsBundleAttribution.json b/docs/apkJsBundleAttribution.json new file mode 100644 index 00000000000..c6632065f9b --- /dev/null +++ b/docs/apkJsBundleAttribution.json @@ -0,0 +1,325 @@ +{ + "totalSourceBytes": 22712011, + "byPackage": [ + { + "name": "(app src)", + "bytes": 5422577 + }, + { + "name": "react-native", + "bytes": 2358091 + }, + { + "name": "@sentry/core", + "bytes": 1617372 + }, + { + "name": "date-fns", + "bytes": 975287 + }, + { + "name": "react-native-reanimated", + "bytes": 795390 + }, + { + "name": "edge-login-ui-rn", + "bytes": 545123 + }, + { + "name": "@sentry/react-native", + "bytes": 425820 + }, + { + "name": "gifted-charts-core", + "bytes": 420734 + }, + { + "name": "@unstoppabledomains/resolution", + "bytes": 383528 + }, + { + "name": "ramda", + "bytes": 351127 + }, + { + "name": "jsrsasign", + "bytes": 342514 + }, + { + "name": "@ethersproject/providers", + "bytes": 325818 + }, + { + "name": "react-native-gifted-charts", + "bytes": 323220 + }, + { + "name": "@sentry-internal/replay", + "bytes": 306384 + }, + { + "name": "react-native-gesture-handler", + "bytes": 264288 + }, + { + "name": "react-native-svg", + "bytes": 253946 + }, + { + "name": "csv-stringify", + "bytes": 233836 + }, + { + "name": "@sentry/browser", + "bytes": 214021 + }, + { + "name": "@ethersproject/signing-key", + "bytes": 202302 + }, + { + "name": "moment", + "bytes": 176435 + }, + { + "name": "@react-navigation/core", + "bytes": 172054 + }, + { + "name": "htmlparser2", + "bytes": 160824 + }, + { + "name": "@react-native/virtualized-lists", + "bytes": 152847 + }, + { + "name": "@ethersproject/shims", + "bytes": 140211 + }, + { + "name": "@sentry-internal/browser-utils", + "bytes": 136785 + }, + { + "name": "@noble/curves", + "bytes": 132233 + }, + { + "name": "whatwg-url-without-unicode", + "bytes": 132220 + }, + { + "name": "react-native-render-html", + "bytes": 123325 + }, + { + "name": "react-native-screens", + "bytes": 122179 + }, + { + "name": "@react-navigation/stack", + "bytes": 120785 + }, + { + "name": "@paraswap/sdk", + "bytes": 119290 + }, + { + "name": "@ethersproject/wordlists", + "bytes": 118362 + }, + { + "name": "@ethersproject/bignumber", + "bytes": 117533 + }, + { + "name": "elliptic", + "bytes": 111541 + }, + { + "name": "@sentry/react", + "bytes": 106593 + }, + { + "name": "@ethersproject/abi", + "bytes": 105532 + }, + { + "name": "react-native-vision-camera", + "bytes": 100776 + }, + { + "name": "posthog-react-native", + "bytes": 99821 + }, + { + "name": "urijs", + "bytes": 98506 + }, + { + "name": "marked", + "bytes": 96949 + }, + { + "name": "edge-core-js", + "bytes": 94128 + }, + { + "name": "react-native-keyboard-controller", + "bytes": 93567 + }, + { + "name": "@tanstack/query-core", + "bytes": 91663 + }, + { + "name": "@ethersproject/json-wallets", + "bytes": 90903 + }, + { + "name": "@native-html/transient-render-engine", + "bytes": 88416 + }, + { + "name": "bn.js", + "bytes": 87862 + }, + { + "name": "@ensdomains/address-encoder", + "bytes": 87849 + }, + { + "name": "@sentry-internal/feedback", + "bytes": 78103 + }, + { + "name": "multihashes", + "bytes": 78027 + }, + { + "name": "cids", + "bytes": 76138 + }, + { + "name": "crypto-addr-codec", + "bytes": 74580 + }, + { + "name": "@react-navigation/drawer", + "bytes": 70020 + }, + { + "name": "@walletconnect/core", + "bytes": 67142 + }, + { + "name": "multibase", + "bytes": 62600 + }, + { + "name": "react-redux", + "bytes": 59041 + }, + { + "name": "@ethersproject/hash", + "bytes": 58468 + }, + { + "name": "buffer", + "bytes": 58353 + }, + { + "name": "@native-html/css-processor", + "bytes": 58296 + }, + { + "name": "@ethersproject/contracts", + "bytes": 56856 + }, + { + "name": "qrcode-generator", + "bytes": 56658 + }, + { + "name": "@react-native-firebase/app", + "bytes": 56262 + }, + { + "name": "big-integer", + "bytes": 51958 + }, + { + "name": "crypto-js", + "bytes": 51287 + }, + { + "name": "lodash.isequal", + "bytes": 49598 + }, + { + "name": "react-native-device-info", + "bytes": 49483 + }, + { + "name": "@noble/hashes", + "bytes": 48613 + }, + { + "name": "react-native-vector-icons", + "bytes": 45582 + }, + { + "name": "uint8arrays", + "bytes": 39601 + }, + { + "name": "expo-file-system", + "bytes": 38400 + }, + { + "name": "@walletconnect/sign-client", + "bytes": 37215 + }, + { + "name": "@react-navigation/bottom-tabs", + "bytes": 35725 + }, + { + "name": "js-sha512", + "bytes": 35516 + }, + { + "name": "@react-navigation/routers", + "bytes": 34705 + }, + { + "name": "expo-modules-core", + "bytes": 34668 + }, + { + "name": "yaob", + "bytes": 34143 + }, + { + "name": "@react-navigation/elements", + "bytes": 32883 + }, + { + "name": "@react-navigation/native", + "bytes": 32666 + }, + { + "name": "@sentry-internal/replay-canvas", + "bytes": 32328 + }, + { + "name": "domutils", + "bytes": 31488 + }, + { + "name": "@react-native-firebase/messaging", + "bytes": 31466 + } + ] +} \ No newline at end of file diff --git a/docs/apkPhase2Phase3Measurements.json b/docs/apkPhase2Phase3Measurements.json new file mode 100644 index 00000000000..0a4e6204340 --- /dev/null +++ b/docs/apkPhase2Phase3Measurements.json @@ -0,0 +1,33 @@ +{ + "generatedAt": "2026-08-06T04:35:00Z", + "stripSavings": { + "libzcashwalletsdk.so": 0, + "librnmonero.so": 0, + "librnzano.so": 0, + "libpiratewalletsdk.so": 0, + "libbarhopper_v3.so": 0 + }, + "hermesBytecodeVersion": 96, + "useLegacyPackagingRecommendation": "keep true for smaller universal APK", + "wasmOpt": { + "mix_fetch_wasm_bg.wasm": { + "before": 3532394, + "after": 3529866, + "saved": 2528 + }, + "go_conn.wasm": { + "status": "failed_needs_bulk_memory" + } + }, + "accountbasedCompression": { + "raw": 29564532, + "gzip9": 6419691, + "brotli11": 4206320, + "apkDeflate": 6478000 + }, + "mlKitCompressedBytes": { + "libbarhopper_both_abis": 3700000, + "mlkit_barcode_models": 860200 + }, + "nymWasmCompressedBytes": 4030000 +} \ No newline at end of file diff --git a/docs/apkSizeAfterPhase1.json b/docs/apkSizeAfterPhase1.json new file mode 100644 index 00000000000..44022395ed8 --- /dev/null +++ b/docs/apkSizeAfterPhase1.json @@ -0,0 +1,1765 @@ +{ + "generatedAt": "2026-08-07T03:56:22.317Z", + "apkPath": "/Users/paul/git-worktrees/edge-react-gui-apkSizeOptimization/docs/app-release-phase1.apk", + "apkFileBytes": 107570199, + "downloadSizeEstimateBytes": 97117836, + "packageName": "co.edgesecure.app", + "versionCode": "21000000", + "versionName": "99.99.99", + "categories": [ + { + "name": "lib/arm64-v8a", + "compressedBytes": 34221559, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284903, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144483, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "lib/armeabi-v7a", + "compressedBytes": 31292451, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246016, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116863, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + }, + { + "name": "assets/(root)", + "compressedBytes": 11989226, + "uncompressedBytes": 11997816, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986160, + "uncompressedBytes": 11986160 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 135, + "uncompressedBytes": 162 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + } + ] + }, + { + "name": "dex", + "compressedBytes": 8945464, + "uncompressedBytes": 23814768, + "entries": 4, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 3011836, + "uncompressedBytes": 7645508 + }, + { + "path": "classes3.dex", + "compressedBytes": 2990676, + "uncompressedBytes": 7934016 + }, + { + "path": "classes2.dex", + "compressedBytes": 2707665, + "uncompressedBytes": 7473576 + }, + { + "path": "classes4.dex", + "compressedBytes": 235287, + "uncompressedBytes": 761668 + } + ] + }, + { + "name": "assets/edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "assets/edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "assets/fonts", + "compressedBytes": 2803179, + "uncompressedBytes": 5637867, + "entries": 36, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + }, + { + "path": "assets/fonts/SourceSansPro-ExtraLight.ttf", + "compressedBytes": 67499, + "uncompressedBytes": 150528 + }, + { + "path": "assets/fonts/SourceSansPro-Italic.ttf", + "compressedBytes": 57096, + "uncompressedBytes": 117328 + } + ] + }, + { + "name": "res", + "compressedBytes": 2112915, + "uncompressedBytes": 2435561, + "entries": 993, + "topEntries": [ + { + "path": "res/drawable-mdpi-v4/node_modules_edgeloginuirn_lib_assets_safeloader.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp3.png", + "compressedBytes": 202550, + "uncompressedBytes": 202550 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp1.png", + "compressedBytes": 185703, + "uncompressedBytes": 185703 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp0.png", + "compressedBytes": 175172, + "uncompressedBytes": 175172 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_duressmode_illustration.png", + "compressedBytes": 151579, + "uncompressedBytes": 151579 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp2.png", + "compressedBytes": 148441, + "uncompressedBytes": 148441 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_backuphero.png", + "compressedBytes": 64116, + "uncompressedBytes": 64116 + }, + { + "path": "res/raw/audio_sent.mp3", + "compressedBytes": 38902, + "uncompressedBytes": 38902 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_paymenttypes_paymenttypelogocashapp.png", + "compressedBytes": 35910, + "uncompressedBytes": 35910 + }, + { + "path": "res/mipmap-xxxhdpi-v4/ic_launcher_foreground.png", + "compressedBytes": 32198, + "uncompressedBytes": 32198 + }, + { + "path": "res/raw/audio_received.mp3", + "compressedBytes": 27621, + "uncompressedBytes": 27621 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_guiplugins_visacardsayanythingillustration.png", + "compressedBytes": 25143, + "uncompressedBytes": 25143 + }, + { + "path": "res/mipmap-xxhdpi-v4/ic_launcher_foreground.png", + "compressedBytes": 20976, + "uncompressedBytes": 20976 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_guiplugins_visabrand.png", + "compressedBytes": 18215, + "uncompressedBytes": 18215 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_paymenttypes_paymenttypelogoklarna.png", + "compressedBytes": 17742, + "uncompressedBytes": 17742 + } + ] + }, + { + "name": "assets/co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "assets/mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "assets/edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "resources.arsc", + "compressedBytes": 695016, + "uncompressedBytes": 695016, + "entries": 1, + "topEntries": [ + { + "path": "resources.arsc", + "compressedBytes": 695016, + "uncompressedBytes": 695016 + } + ] + }, + { + "name": "assets/edge-currency-plugins", + "compressedBytes": 595187, + "uncompressedBytes": 1953489, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + } + ] + }, + { + "name": "other", + "compressedBytes": 255802, + "uncompressedBytes": 639407, + "entries": 198, + "topEntries": [ + { + "path": "okhttp3/internal/publicsuffix/publicsuffixes.gz", + "compressedBytes": 41394, + "uncompressedBytes": 41394 + }, + { + "path": "google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "src/google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "AndroidManifest.xml", + "compressedBytes": 7617, + "uncompressedBytes": 39088 + }, + { + "path": "kotlin/kotlin.kotlin_builtins", + "compressedBytes": 5503, + "uncompressedBytes": 30920 + }, + { + "path": "org/apache/commons/codec/language/bm/gen_rules_any.txt", + "compressedBytes": 3899, + "uncompressedBytes": 13059 + }, + { + "path": "google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "src/google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "src/google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "src/google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "service.proto", + "compressedBytes": 2837, + "uncompressedBytes": 7843 + }, + { + "path": "org/apache/commons/codec/language/bm/ash_rules_any.txt", + "compressedBytes": 2832, + "uncompressedBytes": 9451 + }, + { + "path": "google/protobuf/any.proto", + "compressedBytes": 2621, + "uncompressedBytes": 6154 + } + ] + }, + { + "name": "assets/piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "META-INF", + "compressedBytes": 14308, + "uncompressedBytes": 36077, + "entries": 116, + "topEntries": [ + { + "path": "META-INF/androidx/annotation/annotation/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/java_kotlin-lite-well_known_protos_kotlin_lite.kotlin_module", + "compressedBytes": 391, + "uncompressedBytes": 937 + }, + { + "path": "META-INF/lightwallet-client-lib_release.kotlin_module", + "compressedBytes": 384, + "uncompressedBytes": 820 + }, + { + "path": "META-INF/pirate-android-sdk-1.19.0-beta05_release.kotlin_module", + "compressedBytes": 334, + "uncompressedBytes": 653 + }, + { + "path": "META-INF/okhttp.kotlin_module", + "compressedBytes": 169, + "uncompressedBytes": 273 + }, + { + "path": "META-INF/sentry-android-replay_release.kotlin_module", + "compressedBytes": 169, + "uncompressedBytes": 266 + }, + { + "path": "META-INF/io/sentry/sentry-android-replay/verification.properties", + "compressedBytes": 129, + "uncompressedBytes": 140 + }, + { + "path": "META-INF/versions/9/OSGI-INF/MANIFEST.MF", + "compressedBytes": 129, + "uncompressedBytes": 145 + }, + { + "path": "META-INF/sdk-incubator-lib_release.kotlin_module", + "compressedBytes": 127, + "uncompressedBytes": 161 + }, + { + "path": "META-INF/services/io.grpc.LoadBalancerProvider", + "compressedBytes": 106, + "uncompressedBytes": 206 + }, + { + "path": "META-INF/backend-lib_release.kotlin_module", + "compressedBytes": 91, + "uncompressedBytes": 124 + }, + { + "path": "META-INF/com.google.firebase-firebase-common.kotlin_module", + "compressedBytes": 79, + "uncompressedBytes": 136 + }, + { + "path": "META-INF/java_kotlin-lite-lite_extensions.kotlin_module", + "compressedBytes": 77, + "uncompressedBytes": 85 + } + ] + }, + { + "name": "assets/dexopt", + "compressedBytes": 3619, + "uncompressedBytes": 3750, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 3219, + "uncompressedBytes": 3350 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 400, + "uncompressedBytes": 400 + } + ] + } + ], + "byAbi": [ + { + "name": "arm64-v8a", + "compressedBytes": 34221559, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284903, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144483, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "armeabi-v7a", + "compressedBytes": 31292451, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246016, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116863, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + } + ], + "byAssetPackage": [ + { + "name": "(root)", + "compressedBytes": 11989226, + "uncompressedBytes": 11997816, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986160, + "uncompressedBytes": 11986160 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 135, + "uncompressedBytes": 162 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + } + ] + }, + { + "name": "edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "fonts", + "compressedBytes": 2803179, + "uncompressedBytes": 5637867, + "entries": 36, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + }, + { + "path": "assets/fonts/SourceSansPro-ExtraLight.ttf", + "compressedBytes": 67499, + "uncompressedBytes": 150528 + }, + { + "path": "assets/fonts/SourceSansPro-Italic.ttf", + "compressedBytes": 57096, + "uncompressedBytes": 117328 + } + ] + }, + { + "name": "co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "edge-currency-plugins", + "compressedBytes": 595187, + "uncompressedBytes": 1953489, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + } + ] + }, + { + "name": "piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "dexopt", + "compressedBytes": 3619, + "uncompressedBytes": 3750, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 3219, + "uncompressedBytes": 3350 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 400, + "uncompressedBytes": 400 + } + ] + } + ], + "byDexFile": [ + { + "name": "classes.dex", + "compressedBytes": 3011836, + "uncompressedBytes": 7645508, + "entries": 1, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 3011836, + "uncompressedBytes": 7645508 + } + ] + }, + { + "name": "classes3.dex", + "compressedBytes": 2990676, + "uncompressedBytes": 7934016, + "entries": 1, + "topEntries": [ + { + "path": "classes3.dex", + "compressedBytes": 2990676, + "uncompressedBytes": 7934016 + } + ] + }, + { + "name": "classes2.dex", + "compressedBytes": 2707665, + "uncompressedBytes": 7473576, + "entries": 1, + "topEntries": [ + { + "path": "classes2.dex", + "compressedBytes": 2707665, + "uncompressedBytes": 7473576 + } + ] + }, + { + "name": "classes4.dex", + "compressedBytes": 235287, + "uncompressedBytes": 761668, + "entries": 1, + "topEntries": [ + { + "path": "classes4.dex", + "compressedBytes": 235287, + "uncompressedBytes": 761668 + } + ] + } + ], + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986160, + "uncompressedBytes": 11986160 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "classes.dex", + "compressedBytes": 3011836, + "uncompressedBytes": 7645508 + }, + { + "path": "classes3.dex", + "compressedBytes": 2990676, + "uncompressedBytes": 7934016 + }, + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "classes2.dex", + "compressedBytes": 2707665, + "uncompressedBytes": 7473576 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "resources.arsc", + "compressedBytes": 695016, + "uncompressedBytes": 695016 + }, + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + }, + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284903, + "uncompressedBytes": 1188216 + }, + { + "path": "res/drawable-mdpi-v4/node_modules_edgeloginuirn_lib_assets_safeloader.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246016, + "uncompressedBytes": 840448 + }, + { + "path": "classes4.dex", + "compressedBytes": 235287, + "uncompressedBytes": 761668 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp3.png", + "compressedBytes": 202550, + "uncompressedBytes": 202550 + } + ], + "duplicateGroups": [], + "notes": [] +} diff --git a/docs/apkSizeAfterR8.json b/docs/apkSizeAfterR8.json new file mode 100644 index 00000000000..cbc30f32314 --- /dev/null +++ b/docs/apkSizeAfterR8.json @@ -0,0 +1,1791 @@ +{ + "generatedAt": "2026-08-06T04:34:51.220Z", + "apkPath": "/Users/paul/git/edge-react-gui/docs/app-release-r8.apk", + "apkFileBytes": 123121076, + "downloadSizeEstimateBytes": 97905442, + "packageName": "co.edgesecure.app", + "versionCode": "21000000", + "versionName": "99.99.99", + "categories": [ + { + "name": "lib/arm64-v8a", + "compressedBytes": 34221560, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144482, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "lib/armeabi-v7a", + "compressedBytes": 31292450, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116864, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + }, + { + "name": "dex", + "compressedBytes": 23815568, + "uncompressedBytes": 23815568, + "entries": 4, + "topEntries": [ + { + "path": "classes3.dex", + "compressedBytes": 7973972, + "uncompressedBytes": 7973972 + }, + { + "path": "classes.dex", + "compressedBytes": 7636664, + "uncompressedBytes": 7636664 + }, + { + "path": "classes2.dex", + "compressedBytes": 7443264, + "uncompressedBytes": 7443264 + }, + { + "path": "classes4.dex", + "compressedBytes": 761668, + "uncompressedBytes": 761668 + } + ] + }, + { + "name": "assets/(root)", + "compressedBytes": 11991566, + "uncompressedBytes": 12000156, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11988500, + "uncompressedBytes": 11988500 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 135, + "uncompressedBytes": 162 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + } + ] + }, + { + "name": "assets/edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "assets/edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "assets/fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "res", + "compressedBytes": 2520076, + "uncompressedBytes": 2841684, + "entries": 992, + "topEntries": [ + { + "path": "res/_G.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "res/UK.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "res/cQ.png", + "compressedBytes": 202550, + "uncompressedBytes": 202550 + }, + { + "path": "res/pX.png", + "compressedBytes": 185703, + "uncompressedBytes": 185703 + }, + { + "path": "res/p_.png", + "compressedBytes": 175172, + "uncompressedBytes": 175172 + }, + { + "path": "res/ng.png", + "compressedBytes": 151579, + "uncompressedBytes": 151579 + }, + { + "path": "res/az.png", + "compressedBytes": 148441, + "uncompressedBytes": 148441 + }, + { + "path": "res/vw.png", + "compressedBytes": 64116, + "uncompressedBytes": 64116 + }, + { + "path": "res/Qq.mp3", + "compressedBytes": 38902, + "uncompressedBytes": 38902 + }, + { + "path": "res/as.png", + "compressedBytes": 32198, + "uncompressedBytes": 32198 + }, + { + "path": "res/En.mp3", + "compressedBytes": 27621, + "uncompressedBytes": 27621 + }, + { + "path": "res/pR.png", + "compressedBytes": 25143, + "uncompressedBytes": 25143 + }, + { + "path": "res/Lf.png", + "compressedBytes": 20976, + "uncompressedBytes": 20976 + }, + { + "path": "res/uo.png", + "compressedBytes": 18215, + "uncompressedBytes": 18215 + }, + { + "path": "res/6_.png", + "compressedBytes": 17742, + "uncompressedBytes": 17742 + } + ] + }, + { + "name": "assets/co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "assets/mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "assets/edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "resources.arsc", + "compressedBytes": 639460, + "uncompressedBytes": 639460, + "entries": 1, + "topEntries": [ + { + "path": "resources.arsc", + "compressedBytes": 639460, + "uncompressedBytes": 639460 + } + ] + }, + { + "name": "assets/edge-currency-plugins", + "compressedBytes": 595047, + "uncompressedBytes": 1952921, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595047, + "uncompressedBytes": 1952921 + } + ] + }, + { + "name": "other", + "compressedBytes": 255716, + "uncompressedBytes": 639027, + "entries": 198, + "topEntries": [ + { + "path": "okhttp3/internal/publicsuffix/publicsuffixes.gz", + "compressedBytes": 41409, + "uncompressedBytes": 41394 + }, + { + "path": "google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "src/google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "AndroidManifest.xml", + "compressedBytes": 7516, + "uncompressedBytes": 38708 + }, + { + "path": "kotlin/kotlin.kotlin_builtins", + "compressedBytes": 5503, + "uncompressedBytes": 30920 + }, + { + "path": "org/apache/commons/codec/language/bm/gen_rules_any.txt", + "compressedBytes": 3899, + "uncompressedBytes": 13059 + }, + { + "path": "google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "src/google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "src/google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "src/google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "service.proto", + "compressedBytes": 2837, + "uncompressedBytes": 7843 + }, + { + "path": "org/apache/commons/codec/language/bm/ash_rules_any.txt", + "compressedBytes": 2832, + "uncompressedBytes": 9451 + }, + { + "path": "google/protobuf/any.proto", + "compressedBytes": 2621, + "uncompressedBytes": 6154 + } + ] + }, + { + "name": "assets/piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "assets/edge-core", + "compressedBytes": 72123, + "uncompressedBytes": 228791, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-core/plugin-bundle.js", + "compressedBytes": 72123, + "uncompressedBytes": 228791 + } + ] + }, + { + "name": "META-INF", + "compressedBytes": 13573, + "uncompressedBytes": 35342, + "entries": 28, + "topEntries": [ + { + "path": "META-INF/androidx/annotation/annotation/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/java_kotlin-lite-well_known_protos_kotlin_lite.kotlin_module", + "compressedBytes": 391, + "uncompressedBytes": 937 + }, + { + "path": "META-INF/lightwallet-client-lib_release.kotlin_module", + "compressedBytes": 384, + "uncompressedBytes": 820 + }, + { + "path": "META-INF/pirate-android-sdk-1.19.0-beta05_release.kotlin_module", + "compressedBytes": 334, + "uncompressedBytes": 653 + }, + { + "path": "META-INF/okhttp.kotlin_module", + "compressedBytes": 169, + "uncompressedBytes": 273 + }, + { + "path": "META-INF/sentry-android-replay_release.kotlin_module", + "compressedBytes": 169, + "uncompressedBytes": 266 + }, + { + "path": "META-INF/io/sentry/sentry-android-replay/verification.properties", + "compressedBytes": 129, + "uncompressedBytes": 140 + }, + { + "path": "META-INF/versions/9/OSGI-INF/MANIFEST.MF", + "compressedBytes": 129, + "uncompressedBytes": 145 + }, + { + "path": "META-INF/sdk-incubator-lib_release.kotlin_module", + "compressedBytes": 127, + "uncompressedBytes": 161 + }, + { + "path": "META-INF/services/io.grpc.LoadBalancerProvider", + "compressedBytes": 106, + "uncompressedBytes": 206 + }, + { + "path": "META-INF/backend-lib_release.kotlin_module", + "compressedBytes": 91, + "uncompressedBytes": 124 + }, + { + "path": "META-INF/com.google.firebase-firebase-common.kotlin_module", + "compressedBytes": 79, + "uncompressedBytes": 136 + }, + { + "path": "META-INF/java_kotlin-lite-lite_extensions.kotlin_module", + "compressedBytes": 77, + "uncompressedBytes": 85 + } + ] + }, + { + "name": "assets/dexopt", + "compressedBytes": 4129, + "uncompressedBytes": 4129, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 3729, + "uncompressedBytes": 3729 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 400, + "uncompressedBytes": 400 + } + ] + } + ], + "byAbi": [ + { + "name": "arm64-v8a", + "compressedBytes": 34221560, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144482, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "armeabi-v7a", + "compressedBytes": 31292450, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116864, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + } + ], + "byAssetPackage": [ + { + "name": "(root)", + "compressedBytes": 11991566, + "uncompressedBytes": 12000156, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11988500, + "uncompressedBytes": 11988500 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 135, + "uncompressedBytes": 162 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + } + ] + }, + { + "name": "edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "edge-currency-plugins", + "compressedBytes": 595047, + "uncompressedBytes": 1952921, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595047, + "uncompressedBytes": 1952921 + } + ] + }, + { + "name": "piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "edge-core", + "compressedBytes": 72123, + "uncompressedBytes": 228791, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-core/plugin-bundle.js", + "compressedBytes": 72123, + "uncompressedBytes": 228791 + } + ] + }, + { + "name": "dexopt", + "compressedBytes": 4129, + "uncompressedBytes": 4129, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 3729, + "uncompressedBytes": 3729 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 400, + "uncompressedBytes": 400 + } + ] + } + ], + "byDexFile": [ + { + "name": "classes3.dex", + "compressedBytes": 7973972, + "uncompressedBytes": 7973972, + "entries": 1, + "topEntries": [ + { + "path": "classes3.dex", + "compressedBytes": 7973972, + "uncompressedBytes": 7973972 + } + ] + }, + { + "name": "classes.dex", + "compressedBytes": 7636664, + "uncompressedBytes": 7636664, + "entries": 1, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 7636664, + "uncompressedBytes": 7636664 + } + ] + }, + { + "name": "classes2.dex", + "compressedBytes": 7443264, + "uncompressedBytes": 7443264, + "entries": 1, + "topEntries": [ + { + "path": "classes2.dex", + "compressedBytes": 7443264, + "uncompressedBytes": 7443264 + } + ] + }, + { + "name": "classes4.dex", + "compressedBytes": 761668, + "uncompressedBytes": 761668, + "entries": 1, + "topEntries": [ + { + "path": "classes4.dex", + "compressedBytes": 761668, + "uncompressedBytes": 761668 + } + ] + } + ], + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "assets/index.android.bundle", + "compressedBytes": 11988500, + "uncompressedBytes": 11988500 + }, + { + "path": "classes3.dex", + "compressedBytes": 7973972, + "uncompressedBytes": 7973972 + }, + { + "path": "classes.dex", + "compressedBytes": 7636664, + "uncompressedBytes": 7636664 + }, + { + "path": "classes2.dex", + "compressedBytes": 7443264, + "uncompressedBytes": 7443264 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "classes4.dex", + "compressedBytes": 761668, + "uncompressedBytes": 761668 + }, + { + "path": "resources.arsc", + "compressedBytes": 639460, + "uncompressedBytes": 639460 + }, + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595047, + "uncompressedBytes": 1952921 + }, + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "res/_G.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "res/UK.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ], + "duplicateGroups": [], + "notes": [] +} diff --git a/docs/apkSizeBaseline.json b/docs/apkSizeBaseline.json new file mode 100644 index 00000000000..b55a5d2f565 --- /dev/null +++ b/docs/apkSizeBaseline.json @@ -0,0 +1,1847 @@ +{ + "generatedAt": "2026-08-06T04:19:05.462Z", + "apkPath": "/Users/paul/git/edge-react-gui/android/app/build/outputs/apk/release/app-release.apk", + "apkFileBytes": 142667236, + "downloadSizeEstimateBytes": 104078592, + "packageName": "co.edgesecure.app", + "versionCode": "21000000", + "versionName": "99.99.99", + "categories": [ + { + "name": "dex", + "compressedBytes": 43871312, + "uncompressedBytes": 43871312, + "entries": 6, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 9523864, + "uncompressedBytes": 9523864 + }, + { + "path": "classes5.dex", + "compressedBytes": 9492164, + "uncompressedBytes": 9492164 + }, + { + "path": "classes6.dex", + "compressedBytes": 9005192, + "uncompressedBytes": 9005192 + }, + { + "path": "classes3.dex", + "compressedBytes": 8527640, + "uncompressedBytes": 8527640 + }, + { + "path": "classes4.dex", + "compressedBytes": 7320696, + "uncompressedBytes": 7320696 + }, + { + "path": "classes2.dex", + "compressedBytes": 1756, + "uncompressedBytes": 1756 + } + ] + }, + { + "name": "lib/arm64-v8a", + "compressedBytes": 33575447, + "uncompressedBytes": 89531288, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 13503121, + "uncompressedBytes": 37630832 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6550290, + "uncompressedBytes": 15995408 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144482, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "lib/armeabi-v7a", + "compressedBytes": 30793596, + "uncompressedBytes": 69414520, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 12519779, + "uncompressedBytes": 30124912 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5823324, + "uncompressedBytes": 13048808 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116864, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + }, + { + "name": "assets/(root)", + "compressedBytes": 11981312, + "uncompressedBytes": 11989871, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11978296, + "uncompressedBytes": 11978296 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2566, + "uncompressedBytes": 10939 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/app.config", + "compressedBytes": 118, + "uncompressedBytes": 159 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 92, + "uncompressedBytes": 101 + } + ] + }, + { + "name": "assets/edge-currency-accountbased", + "compressedBytes": 6497803, + "uncompressedBytes": 29615393, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6481181, + "uncompressedBytes": 29564532 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "assets/edge-core-js", + "compressedBytes": 4433440, + "uncompressedBytes": 13564766, + "entries": 11, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 150533, + "uncompressedBytes": 482178 + }, + { + "path": "assets/edge-core-js/306712d68e1e67e56895.js", + "compressedBytes": 20863, + "uncompressedBytes": 101918 + }, + { + "path": "assets/edge-core-js/2088bbb2041078df2819.js", + "compressedBytes": 13003, + "uncompressedBytes": 43684 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12996, + "uncompressedBytes": 43676 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "assets/fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "res", + "compressedBytes": 2619789, + "uncompressedBytes": 2974246, + "entries": 1075, + "topEntries": [ + { + "path": "res/_G.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "res/UK.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "res/cQ.png", + "compressedBytes": 202550, + "uncompressedBytes": 202550 + }, + { + "path": "res/pX.png", + "compressedBytes": 185703, + "uncompressedBytes": 185703 + }, + { + "path": "res/p_.png", + "compressedBytes": 175172, + "uncompressedBytes": 175172 + }, + { + "path": "res/ng.png", + "compressedBytes": 151579, + "uncompressedBytes": 151579 + }, + { + "path": "res/az.png", + "compressedBytes": 148441, + "uncompressedBytes": 148441 + }, + { + "path": "res/vw.png", + "compressedBytes": 64116, + "uncompressedBytes": 64116 + }, + { + "path": "res/Qq.mp3", + "compressedBytes": 38902, + "uncompressedBytes": 38902 + }, + { + "path": "res/as.png", + "compressedBytes": 32198, + "uncompressedBytes": 32198 + }, + { + "path": "res/En.mp3", + "compressedBytes": 27621, + "uncompressedBytes": 27621 + }, + { + "path": "res/pR.png", + "compressedBytes": 25143, + "uncompressedBytes": 25143 + }, + { + "path": "res/Lf.png", + "compressedBytes": 20976, + "uncompressedBytes": 20976 + }, + { + "path": "res/uo.png", + "compressedBytes": 18215, + "uncompressedBytes": 18215 + }, + { + "path": "res/6_.png", + "compressedBytes": 17742, + "uncompressedBytes": 17742 + } + ] + }, + { + "name": "resources.arsc", + "compressedBytes": 1303696, + "uncompressedBytes": 1303696, + "entries": 1, + "topEntries": [ + { + "path": "resources.arsc", + "compressedBytes": 1303696, + "uncompressedBytes": 1303696 + } + ] + }, + { + "name": "assets/co.electriccoin.zcash", + "compressedBytes": 1166646, + "uncompressedBytes": 2033500, + "entries": 1163, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2532500.json", + "compressedBytes": 1506, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3327500.json", + "compressedBytes": 1480, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3012500.json", + "compressedBytes": 1477, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3035000.json", + "compressedBytes": 1474, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3037500.json", + "compressedBytes": 1474, + "uncompressedBytes": 2565 + } + ] + }, + { + "name": "assets/mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "assets/edge-exchange-plugins", + "compressedBytes": 756653, + "uncompressedBytes": 2492175, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 487999, + "uncompressedBytes": 1630167 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "assets/edge-currency-plugins", + "compressedBytes": 595001, + "uncompressedBytes": 1952815, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595001, + "uncompressedBytes": 1952815 + } + ] + }, + { + "name": "other", + "compressedBytes": 255701, + "uncompressedBytes": 639027, + "entries": 198, + "topEntries": [ + { + "path": "okhttp3/internal/publicsuffix/publicsuffixes.gz", + "compressedBytes": 41394, + "uncompressedBytes": 41394 + }, + { + "path": "google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "src/google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "AndroidManifest.xml", + "compressedBytes": 7516, + "uncompressedBytes": 38708 + }, + { + "path": "kotlin/kotlin.kotlin_builtins", + "compressedBytes": 5503, + "uncompressedBytes": 30920 + }, + { + "path": "org/apache/commons/codec/language/bm/gen_rules_any.txt", + "compressedBytes": 3899, + "uncompressedBytes": 13059 + }, + { + "path": "google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "src/google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "src/google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "src/google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "service.proto", + "compressedBytes": 2837, + "uncompressedBytes": 7843 + }, + { + "path": "org/apache/commons/codec/language/bm/ash_rules_any.txt", + "compressedBytes": 2832, + "uncompressedBytes": 9451 + }, + { + "path": "google/protobuf/any.proto", + "compressedBytes": 2621, + "uncompressedBytes": 6154 + } + ] + }, + { + "name": "assets/piratesaplingtree", + "compressedBytes": 237453, + "uncompressedBytes": 403891, + "entries": 382, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/1320000.json", + "compressedBytes": 800, + "uncompressedBytes": 1360 + } + ] + }, + { + "name": "assets/edge-core", + "compressedBytes": 72123, + "uncompressedBytes": 228791, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-core/plugin-bundle.js", + "compressedBytes": 72123, + "uncompressedBytes": 228791 + } + ] + }, + { + "name": "META-INF", + "compressedBytes": 12343, + "uncompressedBytes": 32491, + "entries": 98, + "topEntries": [ + { + "path": "META-INF/androidx/annotation/annotation/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/io/sentry/sentry-android-replay/verification.properties", + "compressedBytes": 129, + "uncompressedBytes": 140 + }, + { + "path": "META-INF/versions/9/OSGI-INF/MANIFEST.MF", + "compressedBytes": 129, + "uncompressedBytes": 145 + }, + { + "path": "META-INF/services/io.grpc.LoadBalancerProvider", + "compressedBytes": 106, + "uncompressedBytes": 206 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition", + "compressedBytes": 99, + "uncompressedBytes": 235 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader", + "compressedBytes": 72, + "uncompressedBytes": 90 + }, + { + "path": "META-INF/services/coil3.util.FetcherServiceLoaderTarget", + "compressedBytes": 66, + "uncompressedBytes": 70 + }, + { + "path": "META-INF/androidx.arch.core_core-runtime.version", + "compressedBytes": 61, + "uncompressedBytes": 67 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.km.internal.extensions.MetadataExtensions", + "compressedBytes": 60, + "uncompressedBytes": 70 + }, + { + "path": "META-INF/com/android/build/gradle/app-metadata.properties", + "compressedBytes": 52, + "uncompressedBytes": 56 + }, + { + "path": "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler", + "compressedBytes": 50, + "uncompressedBytes": 54 + }, + { + "path": "META-INF/services/coil3.util.DecoderServiceLoaderTarget", + "compressedBytes": 49, + "uncompressedBytes": 49 + }, + { + "path": "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory", + "compressedBytes": 49, + "uncompressedBytes": 52 + } + ] + }, + { + "name": "assets/dexopt", + "compressedBytes": 4807, + "uncompressedBytes": 4807, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 4434, + "uncompressedBytes": 4434 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 373, + "uncompressedBytes": 373 + } + ] + } + ], + "byAbi": [ + { + "name": "arm64-v8a", + "compressedBytes": 33575447, + "uncompressedBytes": 89531288, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 13503121, + "uncompressedBytes": 37630832 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6550290, + "uncompressedBytes": 15995408 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144482, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "armeabi-v7a", + "compressedBytes": 30793596, + "uncompressedBytes": 69414520, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 12519779, + "uncompressedBytes": 30124912 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5823324, + "uncompressedBytes": 13048808 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116864, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100783, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + } + ], + "byAssetPackage": [ + { + "name": "(root)", + "compressedBytes": 11981312, + "uncompressedBytes": 11989871, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11978296, + "uncompressedBytes": 11978296 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2566, + "uncompressedBytes": 10939 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/app.config", + "compressedBytes": 118, + "uncompressedBytes": 159 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 92, + "uncompressedBytes": 101 + } + ] + }, + { + "name": "edge-currency-accountbased", + "compressedBytes": 6497803, + "uncompressedBytes": 29615393, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6481181, + "uncompressedBytes": 29564532 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "edge-core-js", + "compressedBytes": 4433440, + "uncompressedBytes": 13564766, + "entries": 11, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 150533, + "uncompressedBytes": 482178 + }, + { + "path": "assets/edge-core-js/306712d68e1e67e56895.js", + "compressedBytes": 20863, + "uncompressedBytes": 101918 + }, + { + "path": "assets/edge-core-js/2088bbb2041078df2819.js", + "compressedBytes": 13003, + "uncompressedBytes": 43684 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12996, + "uncompressedBytes": 43676 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "co.electriccoin.zcash", + "compressedBytes": 1166646, + "uncompressedBytes": 2033500, + "entries": 1163, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2532500.json", + "compressedBytes": 1506, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3327500.json", + "compressedBytes": 1480, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3012500.json", + "compressedBytes": 1477, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3035000.json", + "compressedBytes": 1474, + "uncompressedBytes": 2565 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3037500.json", + "compressedBytes": 1474, + "uncompressedBytes": 2565 + } + ] + }, + { + "name": "mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "edge-exchange-plugins", + "compressedBytes": 756653, + "uncompressedBytes": 2492175, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 487999, + "uncompressedBytes": 1630167 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "edge-currency-plugins", + "compressedBytes": 595001, + "uncompressedBytes": 1952815, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595001, + "uncompressedBytes": 1952815 + } + ] + }, + { + "name": "piratesaplingtree", + "compressedBytes": 237453, + "uncompressedBytes": 403891, + "entries": 382, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/1320000.json", + "compressedBytes": 800, + "uncompressedBytes": 1360 + } + ] + }, + { + "name": "edge-core", + "compressedBytes": 72123, + "uncompressedBytes": 228791, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-core/plugin-bundle.js", + "compressedBytes": 72123, + "uncompressedBytes": 228791 + } + ] + }, + { + "name": "dexopt", + "compressedBytes": 4807, + "uncompressedBytes": 4807, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 4434, + "uncompressedBytes": 4434 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 373, + "uncompressedBytes": 373 + } + ] + } + ], + "byDexFile": [ + { + "name": "classes.dex", + "compressedBytes": 9523864, + "uncompressedBytes": 9523864, + "entries": 1, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 9523864, + "uncompressedBytes": 9523864 + } + ] + }, + { + "name": "classes5.dex", + "compressedBytes": 9492164, + "uncompressedBytes": 9492164, + "entries": 1, + "topEntries": [ + { + "path": "classes5.dex", + "compressedBytes": 9492164, + "uncompressedBytes": 9492164 + } + ] + }, + { + "name": "classes6.dex", + "compressedBytes": 9005192, + "uncompressedBytes": 9005192, + "entries": 1, + "topEntries": [ + { + "path": "classes6.dex", + "compressedBytes": 9005192, + "uncompressedBytes": 9005192 + } + ] + }, + { + "name": "classes3.dex", + "compressedBytes": 8527640, + "uncompressedBytes": 8527640, + "entries": 1, + "topEntries": [ + { + "path": "classes3.dex", + "compressedBytes": 8527640, + "uncompressedBytes": 8527640 + } + ] + }, + { + "name": "classes4.dex", + "compressedBytes": 7320696, + "uncompressedBytes": 7320696, + "entries": 1, + "topEntries": [ + { + "path": "classes4.dex", + "compressedBytes": 7320696, + "uncompressedBytes": 7320696 + } + ] + }, + { + "name": "classes2.dex", + "compressedBytes": 1756, + "uncompressedBytes": 1756, + "entries": 1, + "topEntries": [ + { + "path": "classes2.dex", + "compressedBytes": 1756, + "uncompressedBytes": 1756 + } + ] + } + ], + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 13503121, + "uncompressedBytes": 37630832 + }, + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 12519779, + "uncompressedBytes": 30124912 + }, + { + "path": "assets/index.android.bundle", + "compressedBytes": 11978296, + "uncompressedBytes": 11978296 + }, + { + "path": "classes.dex", + "compressedBytes": 9523864, + "uncompressedBytes": 9523864 + }, + { + "path": "classes5.dex", + "compressedBytes": 9492164, + "uncompressedBytes": 9492164 + }, + { + "path": "classes6.dex", + "compressedBytes": 9005192, + "uncompressedBytes": 9005192 + }, + { + "path": "classes3.dex", + "compressedBytes": 8527640, + "uncompressedBytes": 8527640 + }, + { + "path": "classes4.dex", + "compressedBytes": 7320696, + "uncompressedBytes": 7320696 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6550290, + "uncompressedBytes": 15995408 + }, + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6481181, + "uncompressedBytes": 29564532 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5823324, + "uncompressedBytes": 13048808 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "resources.arsc", + "compressedBytes": 1303696, + "uncompressedBytes": 1303696 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595001, + "uncompressedBytes": 1952815 + }, + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 487999, + "uncompressedBytes": 1630167 + }, + { + "path": "res/_G.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "res/UK.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + } + ], + "duplicateGroups": [], + "notes": [] +} diff --git a/docs/apkSizeDevelopBaseline.json b/docs/apkSizeDevelopBaseline.json new file mode 100644 index 00000000000..bce6a721953 --- /dev/null +++ b/docs/apkSizeDevelopBaseline.json @@ -0,0 +1,1801 @@ +{ + "generatedAt": "2026-08-07T03:50:44.916Z", + "apkPath": "/Users/paul/git-worktrees/edge-react-gui-apkSizeOptimization/docs/app-release-develop-baseline.apk", + "apkFileBytes": 116268450, + "downloadSizeEstimateBytes": 105211712, + "packageName": "co.edgesecure.app", + "versionCode": "21000000", + "versionName": "99.99.99", + "categories": [ + { + "name": "lib/arm64-v8a", + "compressedBytes": 34221561, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144484, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "lib/armeabi-v7a", + "compressedBytes": 31292448, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116861, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100782, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + }, + { + "name": "dex", + "compressedBytes": 16143871, + "uncompressedBytes": 43913536, + "entries": 6, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 3593442, + "uncompressedBytes": 9487968 + }, + { + "path": "classes5.dex", + "compressedBytes": 3469016, + "uncompressedBytes": 9492164 + }, + { + "path": "classes3.dex", + "compressedBytes": 3187684, + "uncompressedBytes": 8605760 + }, + { + "path": "classes6.dex", + "compressedBytes": 3118265, + "uncompressedBytes": 9005192 + }, + { + "path": "classes4.dex", + "compressedBytes": 2774681, + "uncompressedBytes": 7320696 + }, + { + "path": "classes2.dex", + "compressedBytes": 783, + "uncompressedBytes": 1756 + } + ] + }, + { + "name": "assets/(root)", + "compressedBytes": 11989657, + "uncompressedBytes": 11998227, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986632, + "uncompressedBytes": 11986632 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 94, + "uncompressedBytes": 101 + } + ] + }, + { + "name": "assets/edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "assets/edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "assets/fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "res", + "compressedBytes": 2656644, + "uncompressedBytes": 3018560, + "entries": 1077, + "topEntries": [ + { + "path": "res/drawable-mdpi-v4/src_assets_images_tutorials_walletlist_sliding_dark.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "res/drawable-mdpi-v4/node_modules_edgeloginuirn_lib_assets_safeloader.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp3.png", + "compressedBytes": 202550, + "uncompressedBytes": 202550 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp1.png", + "compressedBytes": 185703, + "uncompressedBytes": 185703 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp0.png", + "compressedBytes": 175172, + "uncompressedBytes": 175172 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_duressmode_illustration.png", + "compressedBytes": 151579, + "uncompressedBytes": 151579 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_gettingstarted_usp2.png", + "compressedBytes": 148441, + "uncompressedBytes": 148441 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_backuphero.png", + "compressedBytes": 64116, + "uncompressedBytes": 64116 + }, + { + "path": "res/raw/audio_sent.mp3", + "compressedBytes": 38902, + "uncompressedBytes": 38902 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_paymenttypes_paymenttypelogocashapp.png", + "compressedBytes": 35910, + "uncompressedBytes": 35910 + }, + { + "path": "res/mipmap-xxxhdpi-v4/ic_launcher_foreground.png", + "compressedBytes": 32198, + "uncompressedBytes": 32198 + }, + { + "path": "res/raw/audio_received.mp3", + "compressedBytes": 27621, + "uncompressedBytes": 27621 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_guiplugins_visacardsayanythingillustration.png", + "compressedBytes": 25143, + "uncompressedBytes": 25143 + }, + { + "path": "res/mipmap-xxhdpi-v4/ic_launcher_foreground.png", + "compressedBytes": 20976, + "uncompressedBytes": 20976 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_guiplugins_visabrand.png", + "compressedBytes": 18215, + "uncompressedBytes": 18215 + } + ] + }, + { + "name": "resources.arsc", + "compressedBytes": 1337236, + "uncompressedBytes": 1337236, + "entries": 1, + "topEntries": [ + { + "path": "resources.arsc", + "compressedBytes": 1337236, + "uncompressedBytes": 1337236 + } + ] + }, + { + "name": "assets/co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "assets/mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "assets/edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "assets/edge-currency-plugins", + "compressedBytes": 595187, + "uncompressedBytes": 1953489, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + } + ] + }, + { + "name": "other", + "compressedBytes": 255802, + "uncompressedBytes": 639407, + "entries": 198, + "topEntries": [ + { + "path": "okhttp3/internal/publicsuffix/publicsuffixes.gz", + "compressedBytes": 41394, + "uncompressedBytes": 41394 + }, + { + "path": "google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "src/google/protobuf/descriptor.proto", + "compressedBytes": 16398, + "uncompressedBytes": 58435 + }, + { + "path": "AndroidManifest.xml", + "compressedBytes": 7617, + "uncompressedBytes": 39088 + }, + { + "path": "kotlin/kotlin.kotlin_builtins", + "compressedBytes": 5503, + "uncompressedBytes": 30920 + }, + { + "path": "org/apache/commons/codec/language/bm/gen_rules_any.txt", + "compressedBytes": 3899, + "uncompressedBytes": 13059 + }, + { + "path": "google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "src/google/protobuf/api.proto", + "compressedBytes": 3177, + "uncompressedBytes": 8845 + }, + { + "path": "google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "src/google/protobuf/field_mask.proto", + "compressedBytes": 3141, + "uncompressedBytes": 8041 + }, + { + "path": "google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "src/google/protobuf/timestamp.proto", + "compressedBytes": 2902, + "uncompressedBytes": 6595 + }, + { + "path": "service.proto", + "compressedBytes": 2837, + "uncompressedBytes": 7843 + }, + { + "path": "org/apache/commons/codec/language/bm/ash_rules_any.txt", + "compressedBytes": 2832, + "uncompressedBytes": 9451 + }, + { + "path": "google/protobuf/any.proto", + "compressedBytes": 2621, + "uncompressedBytes": 6154 + } + ] + }, + { + "name": "assets/piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "META-INF", + "compressedBytes": 12389, + "uncompressedBytes": 32537, + "entries": 99, + "topEntries": [ + { + "path": "META-INF/androidx/annotation/annotation/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt", + "compressedBytes": 3563, + "uncompressedBytes": 10175 + }, + { + "path": "META-INF/io/sentry/sentry-android-replay/verification.properties", + "compressedBytes": 129, + "uncompressedBytes": 140 + }, + { + "path": "META-INF/versions/9/OSGI-INF/MANIFEST.MF", + "compressedBytes": 129, + "uncompressedBytes": 145 + }, + { + "path": "META-INF/services/io.grpc.LoadBalancerProvider", + "compressedBytes": 106, + "uncompressedBytes": 206 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition", + "compressedBytes": 99, + "uncompressedBytes": 235 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader", + "compressedBytes": 72, + "uncompressedBytes": 90 + }, + { + "path": "META-INF/services/coil3.util.FetcherServiceLoaderTarget", + "compressedBytes": 66, + "uncompressedBytes": 70 + }, + { + "path": "META-INF/androidx.arch.core_core-runtime.version", + "compressedBytes": 61, + "uncompressedBytes": 67 + }, + { + "path": "META-INF/services/kotlin.reflect.jvm.internal.impl.km.internal.extensions.MetadataExtensions", + "compressedBytes": 60, + "uncompressedBytes": 70 + }, + { + "path": "META-INF/com/android/build/gradle/app-metadata.properties", + "compressedBytes": 52, + "uncompressedBytes": 56 + }, + { + "path": "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler", + "compressedBytes": 50, + "uncompressedBytes": 54 + }, + { + "path": "META-INF/services/coil3.util.DecoderServiceLoaderTarget", + "compressedBytes": 49, + "uncompressedBytes": 49 + }, + { + "path": "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory", + "compressedBytes": 49, + "uncompressedBytes": 52 + } + ] + }, + { + "name": "assets/dexopt", + "compressedBytes": 4536, + "uncompressedBytes": 4803, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 4163, + "uncompressedBytes": 4430 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 373, + "uncompressedBytes": 373 + } + ] + } + ], + "byAbi": [ + { + "name": "arm64-v8a", + "compressedBytes": 34221561, + "uncompressedBytes": 91234144, + "entries": 24, + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/arm64-v8a/libjsi.so", + "compressedBytes": 173015, + "uncompressedBytes": 417384 + }, + { + "path": "lib/arm64-v8a/libreanimated.so", + "compressedBytes": 144484, + "uncompressedBytes": 578336 + }, + { + "path": "lib/arm64-v8a/libworklets.so", + "compressedBytes": 127250, + "uncompressedBytes": 460216 + }, + { + "path": "lib/arm64-v8a/libgifimage.so", + "compressedBytes": 106613, + "uncompressedBytes": 318992 + } + ] + }, + { + "name": "armeabi-v7a", + "compressedBytes": 31292448, + "uncompressedBytes": 70430724, + "entries": 24, + "topEntries": [ + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + }, + { + "path": "lib/armeabi-v7a/libnative-imagetranscoder.so", + "compressedBytes": 165916, + "uncompressedBytes": 341072 + }, + { + "path": "lib/armeabi-v7a/libjsi.so", + "compressedBytes": 154809, + "uncompressedBytes": 296904 + }, + { + "path": "lib/armeabi-v7a/libreanimated.so", + "compressedBytes": 116861, + "uncompressedBytes": 394396 + }, + { + "path": "lib/armeabi-v7a/libworklets.so", + "compressedBytes": 100782, + "uncompressedBytes": 298376 + }, + { + "path": "lib/armeabi-v7a/libgifimage.so", + "compressedBytes": 82644, + "uncompressedBytes": 184380 + } + ] + } + ], + "byAssetPackage": [ + { + "name": "(root)", + "compressedBytes": 11989657, + "uncompressedBytes": 11998227, + "entries": 5, + "topEntries": [ + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986632, + "uncompressedBytes": 11986632 + }, + { + "path": "assets/sentry-external-modules.txt", + "compressedBytes": 2570, + "uncompressedBytes": 10959 + }, + { + "path": "assets/blank.html", + "compressedBytes": 240, + "uncompressedBytes": 376 + }, + { + "path": "assets/app.config", + "compressedBytes": 121, + "uncompressedBytes": 159 + }, + { + "path": "assets/sentry-debug-meta.properties", + "compressedBytes": 94, + "uncompressedBytes": 101 + } + ] + }, + { + "name": "edge-currency-accountbased", + "compressedBytes": 6501216, + "uncompressedBytes": 29627737, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "assets/edge-currency-accountbased/563.chunk.js", + "compressedBytes": 12212, + "uncompressedBytes": 38823 + }, + { + "path": "assets/edge-currency-accountbased/131.chunk.js", + "compressedBytes": 4410, + "uncompressedBytes": 12038 + } + ] + }, + { + "name": "edge-core-js", + "compressedBytes": 4401881, + "uncompressedBytes": 13416457, + "entries": 9, + "topEntries": [ + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "assets/edge-core-js/edge-core.js", + "compressedBytes": 152872, + "uncompressedBytes": 479673 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js", + "compressedBytes": 12970, + "uncompressedBytes": 43482 + }, + { + "path": "assets/edge-core-js/web-worker-0.js", + "compressedBytes": 12964, + "uncompressedBytes": 43474 + }, + { + "path": "assets/edge-core-js/index.html", + "compressedBytes": 119, + "uncompressedBytes": 190 + }, + { + "path": "assets/edge-core-js/fbcba1e9b05cb4dd9870.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/web-worker-0.js.LICENSE.txt", + "compressedBytes": 82, + "uncompressedBytes": 96 + }, + { + "path": "assets/edge-core-js/edge-core.js.LICENSE.txt", + "compressedBytes": 80, + "uncompressedBytes": 88 + } + ] + }, + { + "name": "fonts", + "compressedBytes": 3107087, + "uncompressedBytes": 6285567, + "entries": 39, + "topEntries": [ + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "assets/fonts/MaterialIcons.ttf", + "compressedBytes": 173019, + "uncompressedBytes": 356840 + }, + { + "path": "assets/fonts/Fontisto.ttf", + "compressedBytes": 169152, + "uncompressedBytes": 313528 + }, + { + "path": "assets/fonts/FontAwesome6_Solid.ttf", + "compressedBytes": 164713, + "uncompressedBytes": 394668 + }, + { + "path": "assets/fonts/SF-UI-Text-Regular.otf", + "compressedBytes": 128597, + "uncompressedBytes": 300560 + }, + { + "path": "assets/fonts/SourceSansPro-Black.ttf", + "compressedBytes": 127334, + "uncompressedBytes": 284316 + }, + { + "path": "assets/fonts/FontAwesome6_Brands.ttf", + "compressedBytes": 113450, + "uncompressedBytes": 189684 + }, + { + "path": "assets/fonts/FontAwesome5_Solid.ttf", + "compressedBytes": 102584, + "uncompressedBytes": 202744 + }, + { + "path": "assets/fonts/FontAwesome.ttf", + "compressedBytes": 98167, + "uncompressedBytes": 165548 + }, + { + "path": "assets/fonts/FontAwesome5_Brands.ttf", + "compressedBytes": 90583, + "uncompressedBytes": 134040 + }, + { + "path": "assets/fonts/SourceSansPro-Regular.ttf", + "compressedBytes": 69176, + "uncompressedBytes": 149972 + }, + { + "path": "assets/fonts/SourceSansPro-Light.ttf", + "compressedBytes": 68990, + "uncompressedBytes": 150244 + }, + { + "path": "assets/fonts/SourceSansPro-Semibold.ttf", + "compressedBytes": 68890, + "uncompressedBytes": 149636 + }, + { + "path": "assets/fonts/SourceSansPro-Bold.ttf", + "compressedBytes": 68465, + "uncompressedBytes": 148932 + } + ] + }, + { + "name": "co.electriccoin.zcash", + "compressedBytes": 1214806, + "uncompressedBytes": 2118255, + "entries": 1202, + "topEntries": [ + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3387500.json", + "compressedBytes": 1665, + "uncompressedBytes": 2885 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3390000.json", + "compressedBytes": 1584, + "uncompressedBytes": 2757 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json", + "compressedBytes": 1583, + "uncompressedBytes": 2747 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/testnet/4154750.json", + "compressedBytes": 1574, + "uncompressedBytes": 2783 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2997500.json", + "compressedBytes": 1554, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3365000.json", + "compressedBytes": 1553, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3310000.json", + "compressedBytes": 1550, + "uncompressedBytes": 2693 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3342500.json", + "compressedBytes": 1517, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2435000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3340000.json", + "compressedBytes": 1510, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2247500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3190000.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3277500.json", + "compressedBytes": 1509, + "uncompressedBytes": 2629 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/2472500.json", + "compressedBytes": 1508, + "uncompressedBytes": 2619 + }, + { + "path": "assets/co.electriccoin.zcash/checkpoint/mainnet/3385000.json", + "compressedBytes": 1508, + "uncompressedBytes": 2629 + } + ] + }, + { + "name": "mlkit_barcode_models", + "compressedBytes": 880888, + "uncompressedBytes": 880888, + "entries": 3, + "topEntries": [ + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/mlkit_barcode_models/oned_auto_regressor_mobile.tflite", + "compressedBytes": 213880, + "uncompressedBytes": 213880 + } + ] + }, + { + "name": "edge-exchange-plugins", + "compressedBytes": 850307, + "uncompressedBytes": 2788676, + "entries": 3, + "topEntries": [ + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/edge-exchange-plugins/195.chunk.js", + "compressedBytes": 2550, + "uncompressedBytes": 6167 + } + ] + }, + { + "name": "edge-currency-plugins", + "compressedBytes": 595187, + "uncompressedBytes": 1953489, + "entries": 1, + "topEntries": [ + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + } + ] + }, + { + "name": "piratesaplingtree", + "compressedBytes": 240545, + "uncompressedBytes": 409187, + "entries": 386, + "topEntries": [ + { + "path": "assets/piratesaplingtree/mainnet/2590000.json", + "compressedBytes": 875, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/3150000.json", + "compressedBytes": 872, + "uncompressedBytes": 1500 + }, + { + "path": "assets/piratesaplingtree/mainnet/2930000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3640000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3770000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3780000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3960000.json", + "compressedBytes": 839, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3910000.json", + "compressedBytes": 837, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3210000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3430000.json", + "compressedBytes": 836, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/2620000.json", + "compressedBytes": 835, + "uncompressedBytes": 1436 + }, + { + "path": "assets/piratesaplingtree/mainnet/3190000.json", + "compressedBytes": 804, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/2890000.json", + "compressedBytes": 803, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/3720000.json", + "compressedBytes": 802, + "uncompressedBytes": 1372 + }, + { + "path": "assets/piratesaplingtree/mainnet/4020000.json", + "compressedBytes": 801, + "uncompressedBytes": 1372 + } + ] + }, + { + "name": "dexopt", + "compressedBytes": 4536, + "uncompressedBytes": 4803, + "entries": 2, + "topEntries": [ + { + "path": "assets/dexopt/baseline.prof", + "compressedBytes": 4163, + "uncompressedBytes": 4430 + }, + { + "path": "assets/dexopt/baseline.profm", + "compressedBytes": 373, + "uncompressedBytes": 373 + } + ] + } + ], + "byDexFile": [ + { + "name": "classes.dex", + "compressedBytes": 3593442, + "uncompressedBytes": 9487968, + "entries": 1, + "topEntries": [ + { + "path": "classes.dex", + "compressedBytes": 3593442, + "uncompressedBytes": 9487968 + } + ] + }, + { + "name": "classes5.dex", + "compressedBytes": 3469016, + "uncompressedBytes": 9492164, + "entries": 1, + "topEntries": [ + { + "path": "classes5.dex", + "compressedBytes": 3469016, + "uncompressedBytes": 9492164 + } + ] + }, + { + "name": "classes3.dex", + "compressedBytes": 3187684, + "uncompressedBytes": 8605760, + "entries": 1, + "topEntries": [ + { + "path": "classes3.dex", + "compressedBytes": 3187684, + "uncompressedBytes": 8605760 + } + ] + }, + { + "name": "classes6.dex", + "compressedBytes": 3118265, + "uncompressedBytes": 9005192, + "entries": 1, + "topEntries": [ + { + "path": "classes6.dex", + "compressedBytes": 3118265, + "uncompressedBytes": 9005192 + } + ] + }, + { + "name": "classes4.dex", + "compressedBytes": 2774681, + "uncompressedBytes": 7320696, + "entries": 1, + "topEntries": [ + { + "path": "classes4.dex", + "compressedBytes": 2774681, + "uncompressedBytes": 7320696 + } + ] + }, + { + "name": "classes2.dex", + "compressedBytes": 783, + "uncompressedBytes": 1756, + "entries": 1, + "topEntries": [ + { + "path": "classes2.dex", + "compressedBytes": 783, + "uncompressedBytes": 1756 + } + ] + } + ], + "topEntries": [ + { + "path": "lib/arm64-v8a/libzcashwalletsdk.so", + "compressedBytes": 14150009, + "uncompressedBytes": 39347496 + }, + { + "path": "lib/armeabi-v7a/libzcashwalletsdk.so", + "compressedBytes": 13016890, + "uncompressedBytes": 31150860 + }, + { + "path": "assets/index.android.bundle", + "compressedBytes": 11986632, + "uncompressedBytes": 11986632 + }, + { + "path": "lib/arm64-v8a/librnmonero.so", + "compressedBytes": 6549515, + "uncompressedBytes": 15981600 + }, + { + "path": "assets/edge-currency-accountbased/edge-currency-accountbased.js", + "compressedBytes": 6484594, + "uncompressedBytes": 29576876 + }, + { + "path": "lib/armeabi-v7a/librnmonero.so", + "compressedBytes": 5825067, + "uncompressedBytes": 13039064 + }, + { + "path": "lib/arm64-v8a/librnzano.so", + "compressedBytes": 4332884, + "uncompressedBytes": 10965112 + }, + { + "path": "lib/armeabi-v7a/librnzano.so", + "compressedBytes": 4125919, + "uncompressedBytes": 8192740 + }, + { + "path": "classes.dex", + "compressedBytes": 3593442, + "uncompressedBytes": 9487968 + }, + { + "path": "classes5.dex", + "compressedBytes": 3469016, + "uncompressedBytes": 9492164 + }, + { + "path": "classes3.dex", + "compressedBytes": 3187684, + "uncompressedBytes": 8605760 + }, + { + "path": "classes6.dex", + "compressedBytes": 3118265, + "uncompressedBytes": 9005192 + }, + { + "path": "assets/edge-core-js/go_conn.wasm", + "compressedBytes": 2800663, + "uncompressedBytes": 9316964 + }, + { + "path": "classes4.dex", + "compressedBytes": 2774681, + "uncompressedBytes": 7320696 + }, + { + "path": "lib/armeabi-v7a/libpiratewalletsdk.so", + "compressedBytes": 2385070, + "uncompressedBytes": 4334848 + }, + { + "path": "lib/arm64-v8a/libpiratewalletsdk.so", + "compressedBytes": 2275508, + "uncompressedBytes": 4832520 + }, + { + "path": "lib/arm64-v8a/libbarhopper_v3.so", + "compressedBytes": 2105673, + "uncompressedBytes": 4946720 + }, + { + "path": "lib/arm64-v8a/libreactnative.so", + "compressedBytes": 1925611, + "uncompressedBytes": 6563216 + }, + { + "path": "lib/armeabi-v7a/libbarhopper_v3.so", + "compressedBytes": 1787700, + "uncompressedBytes": 3244440 + }, + { + "path": "lib/armeabi-v7a/libreactnative.so", + "compressedBytes": 1716838, + "uncompressedBytes": 4777896 + }, + { + "path": "assets/edge-core-js/mix_fetch_wasm_bg.wasm", + "compressedBytes": 1422049, + "uncompressedBytes": 3532394 + }, + { + "path": "resources.arsc", + "compressedBytes": 1337236, + "uncompressedBytes": 1337236 + }, + { + "path": "lib/arm64-v8a/libhermes.so", + "compressedBytes": 905434, + "uncompressedBytes": 2259008 + }, + { + "path": "lib/armeabi-v7a/libhermes.so", + "compressedBytes": 809750, + "uncompressedBytes": 1507148 + }, + { + "path": "assets/edge-currency-plugins/edge-currency-plugins.js", + "compressedBytes": 595187, + "uncompressedBytes": 1953489 + }, + { + "path": "assets/edge-exchange-plugins/edge-exchange-plugins.js", + "compressedBytes": 581653, + "uncompressedBytes": 1926668 + }, + { + "path": "assets/fonts/MaterialCommunityIcons.ttf", + "compressedBytes": 523319, + "uncompressedBytes": 1147844 + }, + { + "path": "res/drawable-mdpi-v4/src_assets_images_tutorials_walletlist_sliding_dark.gif", + "compressedBytes": 443353, + "uncompressedBytes": 443353 + }, + { + "path": "lib/arm64-v8a/libc++_shared.so", + "compressedBytes": 406557, + "uncompressedBytes": 1292904 + }, + { + "path": "assets/mlkit_barcode_models/barcode_ssd_mobilenet_v1_dmp25_quant.tflite", + "compressedBytes": 390456, + "uncompressedBytes": 390456 + }, + { + "path": "lib/armeabi-v7a/libc++_shared.so", + "compressedBytes": 349040, + "uncompressedBytes": 872872 + }, + { + "path": "lib/arm64-v8a/libexpo-modules-core.so", + "compressedBytes": 284904, + "uncompressedBytes": 1188216 + }, + { + "path": "res/drawable-mdpi-v4/node_modules_edgeloginuirn_lib_assets_safeloader.gif", + "compressedBytes": 283561, + "uncompressedBytes": 283561 + }, + { + "path": "assets/mlkit_barcode_models/oned_feature_extractor_mobile.tflite", + "compressedBytes": 276552, + "uncompressedBytes": 276552 + }, + { + "path": "assets/edge-exchange-plugins/898.chunk.js", + "compressedBytes": 266104, + "uncompressedBytes": 855841 + }, + { + "path": "assets/fonts/Ionicons.ttf", + "compressedBytes": 256499, + "uncompressedBytes": 442604 + }, + { + "path": "lib/arm64-v8a/libsentry.so", + "compressedBytes": 249160, + "uncompressedBytes": 723712 + }, + { + "path": "lib/armeabi-v7a/libexpo-modules-core.so", + "compressedBytes": 246015, + "uncompressedBytes": 840448 + }, + { + "path": "lib/arm64-v8a/libnative-imagetranscoder.so", + "compressedBytes": 224841, + "uncompressedBytes": 585376 + }, + { + "path": "lib/armeabi-v7a/libsentry.so", + "compressedBytes": 220480, + "uncompressedBytes": 470964 + } + ], + "duplicateGroups": [], + "notes": [] +} diff --git a/docs/apkSizeReport.md b/docs/apkSizeReport.md new file mode 100644 index 00000000000..37882042ad4 --- /dev/null +++ b/docs/apkSizeReport.md @@ -0,0 +1,383 @@ +# Android APK Size Optimization Report + +Generated: 2026-08-06 +Repo: `edge-react-gui` +Comparison artifact: universal / release APK produced by the same path as [`scripts/deploy.ts`](../scripts/deploy.ts) (`bundleRelease` → bundletool `--mode=universal`, or local `assembleRelease` for iteration). +32-bit ABI removal is **out of scope** here (tracked separately); overlap is noted explicitly below. + +Machine-readable companion files: + +- [`apkSizeBaseline.json`](./apkSizeBaseline.json) — full category / ABI / asset / top-entry attribution +- [`apkDexPackages.json`](./apkDexPackages.json) — DEX package rollup +- [`apkJsBundleAttribution.json`](./apkJsBundleAttribution.json) — Hermes sourcemap → npm package attribution +- [`apkUnusedImages.json`](./apkUnusedImages.json) — import-graph unused asset scan +- [`apkAccountbasedDupes.json`](./apkAccountbasedDupes.json) — multi-version deps in `edge-currency-accountbased` + +Harness: + +```bash +npm run analyze-apk-size -- ./android/app/build/outputs/apk/release/app-release.apk +npm run analyze-apk-size -- --compare docs/apkSizeBaseline.json docs/apkSizeAfter.json +npm run find-unused-images +``` + +Bundletool (Jenkins uses `bundletool-all-1.11.2.jar`) lives under `tools/` locally (gitignored). `apkanalyzer` comes from the Android SDK cmdline-tools. + +--- + +## Baseline (pre-change release APK) + +| Metric | Value | +|--------|------:| +| File size | **136.06 MB** (142,667,236 bytes) | +| Download estimate (`apkanalyzer`) | 99.26 MB | +| Package | `co.edgesecure.app` | + +### Compressed size by category + +| Category | Compressed | Uncompressed | +|----------|----------:|-------------:| +| DEX (`classes*.dex`) | 41.84 MB | 41.84 MB | +| `lib/arm64-v8a` | 32.02 MB | 85.38 MB | +| `lib/armeabi-v7a` | 29.37 MB | 66.20 MB | +| `assets/index.android.bundle` (in assets root) | 11.43 MB | 11.43 MB | +| `assets/edge-currency-accountbased` | 6.20 MB | 28.24 MB | +| `assets/edge-core-js` | 4.23 MB | 12.94 MB | +| `assets/fonts` | 2.96 MB | 5.99 MB | +| `res/` | 2.50 MB | 2.84 MB | +| `resources.arsc` | 1.24 MB | 1.24 MB | +| Zcash sapling assets | 1.11 MB | 1.94 MB | +| ML Kit barcode models | 860 KB | 860 KB | +| Other plugin assets | ~1.6 MB | ~4.5 MB | + +### Largest single entries (compressed) + +| Entry | Compressed | +|-------|----------:| +| `lib/arm64-v8a/libzcashwalletsdk.so` | 12.88 MB | +| `lib/armeabi-v7a/libzcashwalletsdk.so` | 11.94 MB | +| `assets/index.android.bundle` (Hermes bytecode) | 11.42 MB | +| DEX shards (6×) | 41.84 MB total | +| `librnmonero.so` (both ABIs) | ~11.8 MB | +| `assets/.../edge-currency-accountbased.js` | 6.18 MB | +| `librnzano.so` (both ABIs) | ~8.1 MB | +| `go_conn.wasm` + `mix_fetch_wasm_bg.wasm` | ~4.03 MB | +| `libbarhopper_v3.so` (both ABIs) | ~3.7 MB | +| `libpiratewalletsdk.so` (both ABIs) | ~4.4 MB | + +### DEX package rollup (defined bytecode) + +| Package | Size | +|---------|-----:| +| **TOTAL** | **30.18 MB** | +| `com.google.*` | 8.04 MB | +| `androidx.*` | 5.14 MB | +| `kotlin*` | ~2.95 MB | +| `com.facebook.*` | 2.25 MB | +| `com.google.crypto` / Guava (`com.google.common`) | ~3.1 MB | +| `io.sentry*` | 1.29 MB | +| `cash.z.*` (Zcash) | 1.19 MB | +| `io.ktor` / `io.reactivex` / `io.grpc` | ~2.9 MB | +| `pirate.*` | ~0.67 MB | +| `com.google.firebase` | 0.24 MB | + +R8 was previously **off** (`enableProguardInReleaseBuilds = false`), so this entire DEX surface shipped unshrunk. + +--- + +## Phase 1 — Lossless + +### 1.1 Enable R8 + resource shrinking — **IMPLEMENTED (needs smoke test)** + +**Owning repo:** `edge-react-gui` +**Changes:** [`android/app/build.gradle`](../android/app/build.gradle), [`android/app/proguard-rules.pro`](../android/app/proguard-rules.pro) + +- `minifyEnabled true`, `shrinkResources true` +- Keep rules for RN/Hermes JNI, Firebase, Sentry, Zcash/Pirate protobuf-gRPC, Expo, VisionCamera, Reanimated +- First R8 pass failed on missing `kotlinx.datetime.*` refs from Pirate SDK; fixed with `-dontwarn` rules from AGP `missing_rules.txt` + +| Item | Value | +|------|------:| +| Risk | **High** until full wallet smoke pass | +| Effort | Medium (rules iteration + QA) | +| **Measured** universal vs develop (authoritative) | **−8.30 MB** (−6.86 MB DEX Deflate) | +| Historical `assembleRelease` DEX-store savings | −18.64 MB (not the ship metric) | +| FontAwesome6 after clean rebuild | **−297 KB** confirmed | + +**Smoke-test checklist before shipping:** login, create wallets (UTXO + account-based + Zcash + Monero + Pirate + Zano), send/receive, swap, camera QR scan, push notifications, Sentry breadcrumb on a forced error. + +### 1.2 `resourceConfigurations` (locale trim) — **IMPLEMENTED** + +Keeps `en, de, es, fr, it, ja, ko, pt, ru, vi, zh` matching `src/locales/strings`. + +| Risk | Low | +| Effort | Low | +| Expected savings | **0.3–1.5 MB** compressed (AndroidX/Play translated resources) | + +### 1.3 Filter unused vector-icon fonts — **IMPLEMENTED** + +Dropped `FontAwesome6_{Solid,Brands,Regular}.ttf` (never imported from `src/`). + +| Font | Compressed in baseline APK | +|------|--------------------------:| +| FontAwesome6_Solid | 161 KB | +| FontAwesome6_Brands | 111 KB | +| FontAwesome6_Regular | 25 KB | +| **Total measured** | **~297 KB** | + +Further candidates (still imported by `VectorIcon.tsx` glyph map, but only `Feather` is passed at call sites): Fontisto (169 KB), Foundation (34 KB), Zocial (18 KB), Octicons (25 KB) ≈ **246 KB** more if `VectorIcon` is slimmed. + +### 1.4 Delete unreferenced images — **IMPLEMENTED** + +Import-graph scan (`npm run find-unused-images`) found **143 / 202** assets unused (~0.78 MB on disk). Removed: + +- Entire legacy trees: `sidenav/`, `tabbar/`, `transactions/`, `MenuButton/`, `manageTokens/`, `createWallet/`, `otp/`, `slider/` +- Orphans: `shapeShiftLogo.png`, both tutorial GIFs (~767 KB), 14 unused root SVGs +- Theme dead property `walletListSlideTutorialImage` removed from `Theme` + four theme barrels + +| Risk | Low (static import verification) | +| Effort | Low | +| APK savings | **~0.5–1.0 MB** inside Hermes bundle / drawable packing (GIFs dominated) | + +Exact duplicates inside APK assets/libs: **none** found by sha256 scan of entries ≥8 KB. + +### 1.5 Dead JS / unused npm deps — **PARTIAL** + +| Action | Status | Notes | +|--------|--------|-------| +| knip unused dependencies | Ran | Flagged `posthog-js`, `url`, `assert`, others (some are Metro shims — treat carefully) | +| Removed `posthog-js` | **Done** | Zero `src/` imports; app uses `posthog-react-native` | +| Sourcemap attribution | **Done** | See `apkJsBundleAttribution.json` | +| Top JS contributors | Measured | app src 5.2 MB, RN 2.3 MB, `@sentry/*` ~2.4 MB, **date-fns 0.93 MB**, reanimated 0.76 MB, **moment 0.17 MB** (transitive) | + +| Risk | Low for `posthog-js`; medium for broader knip cuts | +| Expected Hermes savings from dep hygiene | **0.2–1.5 MB** depending how aggressively date-fns / moment / Sentry replay are trimmed | + +--- + +## Phase 2 — Near-lossless + +### 2.1 Strip native symbols — **MEASURED: already stripped** + +| Library (arm64) | Uncompressed | `strip -S` savings | `nm` | +|-----------------|-------------:|-------------------:|------| +| `libzcashwalletsdk.so` | 35.9 MB | **0** | no symbols | +| `librnmonero.so` | 15.3 MB | **0** | — | +| `librnzano.so` | 10.5 MB | **0** | — | +| `libpiratewalletsdk.so` | 4.6 MB | **0** | — | + +**Verdict:** No win from post-processing strip. Remaining size is code + embedded proving params / tables inside the Rust SDKs. Further cuts require upstream build flags (`--release` LTO, feature gates) in `react-native-zcash` / monero / zano / piratechain. + +### 2.2 `useLegacyPackaging true` — **EVALUATED, leave on for now** + +Added historically for 16 KiB page-size alignment before AGP 8.5.1. Project is on **AGP 8.8.2**. + +| Mode | Effect on universal APK file size | Install / page-align | +|------|-----------------------------------|----------------------| +| `useLegacyPackaging true` (current) | `.so` files stored compressed → **smaller APK**, larger on-disk extract | Legacy extract | +| `false` (modern default) | `.so` stored uncompressed / page-aligned → **larger APK**, better install | Preferred long-term | + +**Verdict:** Turning it off would **increase** the universal APK we compare against. Keep `true` for the deploy.ts universal metric; revisit when Play Feature Delivery / uncompressed-lib installs are the primary concern. + +### 2.3 Hermes bytecode — **VERIFIED** + +`assets/index.android.bundle` magic: `Hermes JavaScript bytecode, version 96`. Not plain JS. No extra compression win here beyond dead-code / dependency cuts. + +### 2.4 `wasm-opt -Oz` on Nym WASM — **MEASURED: negligible / blocked** + +| File | Before | After `-Oz` | Notes | +|------|-------:|------------:|-------| +| `mix_fetch_wasm_bg.wasm` | 3,532,394 | 3,529,866 | **−2.5 KB (0.1%)** | +| `go_conn.wasm` | 9,316,964 | n/a | wasm-opt failed validation without `--enable-bulk-memory` | + +**Verdict:** Not worth a Phase 2 pipeline. Prefer Phase 3 lazy download. + +### 2.5 Image / GIF optimization — **MEASURED** + +| Item | Finding | +|------|---------| +| PNG zlib recompress estimate | ~6% / **~86 KB** on remaining PNGs | +| Tutorial GIFs | Removed in Phase 1 (~767 KB disk) | +| WebP for gettingStarted USPs | Optional ~30–50% of ~719 KB set → **~0.2–0.4 MB** | + +### 2.6 Compress `edge-currency-accountbased.js` at rest — **MEASURED** + +| Form | Size | +|------|-----:| +| Raw JS in assets | 29.56 MB | +| gzip -9 | 6.42 MB | +| brotli q11 | 4.21 MB | +| Already in APK (Deflate) | 6.18 MB | + +APK Deflate already captures most of the gzip win. Storing pre-compressed + inflating in the WebView would mainly help **install size / extract time**, not the universal APK zip size, unless the entry is stored uncompressed today (it is Deflate). **Low APK-file ROI**; still useful if moving the plugin off packaged assets onto CDN. + +--- + +## Phase 3 — Aggressive + +### 3.1 Lazy-load Nym WASM — **PROTOTYPED** + +See [`scripts/nymWasmLazyLoadPrototype.ts`](../scripts/nymWasmLazyLoadPrototype.ts). Gate already exists: `privacy === 'nym'` in `edge-core-js` worker. + +| Metric | Value | +|--------|------:| +| Compressed APK savings | **~4.03 MB** | +| Uncompressed | **12.85 MB** | +| Risk | Medium (offline / first-use download) | +| Owning repo | `edge-core-js` (webpack `CopyPlugin` + `nym.ts`) | + +### 3.2 Deduplicate `edge-currency-accountbased` — **ANALYZED** + +`package-lock.json` has **153** multi-version packages. Crypto-relevant duplicates: + +| Package | Versions present | +|---------|------------------| +| `@noble/hashes` | 1.3.1, 1.3.2, 1.6.0, 1.6.1, 1.7.1, 1.8.0 | +| `@noble/curves` | 1.1.0, 1.7.0, 1.8.1, 1.9.7 | +| `axios` | 0.18.1, 0.21.4, 0.26.1, 1.13.5 | +| `bn.js` / `elliptic` / `secp256k1` | 2–3 each | +| `protobufjs` | 6.11.4, 7.2.6 | + +Webpack already minifies with esbuild; bundle is **29.5 MB raw / 6.18 MB in APK**. A 20% raw reduction via overrides + per-chain splitting ≈ **~1.2 MB compressed** APK (more if chunks stay out of the base package). + +| Risk | Medium–High (chain SDK semver) | +| Owning repo | `edge-currency-accountbased` | +| Expected compressed savings | **1–3 MB** with overrides; **3–6 MB** if unused chains become deferred chunks | + +### 3.3 On-demand ML Kit (VisionCamera) — **ANALYZED** + +`VisionCamera_enableCodeScanner=true` embeds: + +| Entry | Compressed (both ABIs where applicable) | +|-------|----------------------------------------:| +| `libbarhopper_v3.so` | ~3.71 MB | +| `assets/mlkit_barcode_models` | 860 KB | +| DEX `mlkit_vision_barcode*` | ~0.5 MB | + +| Risk | Medium (Play services delivery / API changes) | +| Expected savings | **~4–5 MB** compressed | +| Owning repo | `edge-react-gui` (`gradle.properties` + VisionCamera config) | + +### 3.4 Cross-repo npm dedupe — **ANALYZED** + +| Issue | Notes | +|-------|-------| +| `date-fns` + `dateformat` | Both used; date-fns alone is **0.93 MB** of sourcemap content | +| `url` + `url-parse` | Both present; knip marks `url` unused at app level | +| `moment` | 0.17 MB transitive in Hermes map — chase and replace | +| Guava 29 + `androidx.work` | Visible in DEX (~1.5 MB Guava); R8 should trim if not reflected | + +### 3.5 Chain-native packaging / Play Feature Delivery — **PRODUCT DECISION** + +arm64 alone: + +| `.so` | Uncompressed | +|-------|-------------:| +| Zcash | 35.9 MB | +| Monero | 15.3 MB | +| Zano | 10.5 MB | +| Pirate | 4.6 MB | +| **Sum** | **66.3 MB** (~25 MB compressed both ABIs for these four) | + +Deferred install modules could move most of that out of the base universal APK. Overlaps with 32-bit removal only on the armeabi-v7a copies. + +--- + +## Overlap with 32-bit (`armeabi-v7a`) removal + +| Category | armeabi-v7a compressed | Notes | +|----------|----------------------:|-------| +| All `lib/armeabi-v7a` | **29.37 MB** | Owned by the other agent | +| Of which Zcash+Monero+Zano+Pirate+barhopper | ~25 MB | Do **not** double-count with Phase 3 chain delivery | + +This report’s Phase 1–3 totals below **exclude** the 29.37 MB ABI cut. + +--- + +## Running total vs 20–30 MB target + +**Headline metric** is the deploy.ts-style universal APK (`bundleRelease` → bundletool `--mode=universal`), compared **origin/develop vs Phase 1** on the same tip (2026-08-06). Exclude 32-bit removal. + +| Phase | Candidate | Status | Universal APK savings | +|-------|-----------|--------|----------------------:| +| 1 | R8 + shrinkResources + locales | **Measured** | **−8.30 MB** total (see table below) | +| 1 | of which DEX (Deflate in universal) | Measured | **−6.86 MB** | +| 1 | of which `resources.arsc` + `res/` | Measured | **−1.13 MB** | +| 1 | Drop FontAwesome6 fonts | **Measured** (36 fonts, was 39) | **−297 KB** | +| 1 | Delete dead images / GIFs / theme | Implemented | ~0 in Hermes bytecode (assets were not in bundle) | +| 1 | Remove `posthog-js` | Done | negligible vs develop (already tiny) | +| 2 | Strip `.so` | No-op (already stripped) | **0** | +| 2 | wasm-opt | Negligible | **~0** | +| 2 | PNG / WebP | Optional | 0.1–0.4 MB | +| 3 | Lazy Nym WASM | Prototyped | **~4.0 MB** (still available) | +| 3 | accountbased dedupe / split | Analyzed | 1–6 MB | +| 3 | On-demand ML Kit | Analyzed | 4–5 MB | +| 3 | date-fns / moment trim | Analyzed | 0.5–1.0 MB | +| | **Phase 1 alone (universal, measured)** | | **−8.30 MB** | +| | **Phase 1 + Nym + ML Kit (stretch)** | | **~16–17 MB** | +| | **+ accountbased / JS / 32-bit** | | reaches 20–30+ MB | + +**Verdict:** On the **production universal APK** path, Phase 1 saves **−8.30 MB** (110.88 → 102.59 MB), not the earlier −18.6 MB from `assembleRelease`. In universal APKs DEX is already Deflate-compressed (~15.4 MB vs ~42 MB store), so R8’s ~19 MB uncompressed DEX cut only yields ~6.9 MB on the zip. Hitting the 20–30 MB target still needs Phase 3 (Nym, ML Kit, accountbased) and/or the separate 32-bit ABI cut (−29 MB armeabi-v7a). + +Recommended sequencing: + +1. Land Phase 1 after fuller wallet smoke (launch + account creation already green). +2. Implement Nym WASM lazy-load in `edge-core-js` (+~4 MB). +3. Switch VisionCamera ML Kit to Play-delivered / on-demand (+4–5 MB). +4. Start `edge-currency-accountbased` version overrides + per-chain chunks. +5. Coordinate with the 32-bit removal agent so armeabi-v7a cuts are not double-counted. + +### Follow-ups carried from the deprecated plan + +- iOS `UIAppFonts` in [`ios/edge/Info.plist`](../ios/edge/Info.plist) still lists SourceSansPro / SF-UI-Text; FontAwesome6 was already absent from iOS. Android font filter does not need an iOS FontAwesome6 change. +- Orphaned `kaa.json` is already gone from this tree. + +--- + +## Develop vs Phase 1 (measured 2026-08-06) — **authoritative** + +Both artifacts: `./gradlew clean bundleRelease` + bundletool `--mode=universal`, signed with `airbitz.keystore`, tip `33a697ad3` (current `origin/develop`) ± Phase 1 WIP. + +| Metric | develop baseline | Phase 1 | Delta | +|--------|-----------------:|--------:|------:| +| Universal APK file size | **110.88 MB** | **102.59 MB** | **−8.30 MB** | +| DEX (compressed in APK) | 15.40 MB | 8.53 MB | **−6.86 MB** | +| `resources.arsc` | 1.28 MB | 679 KB | **−627 KB** | +| `res/` | 2.53 MB | 2.01 MB | **−531 KB** | +| `assets/fonts` | 2.96 MB (39 files) | 2.67 MB (36 files) | **−297 KB** | + +Machine-readable: + +- [`apkSizeDevelopBaseline.json`](./apkSizeDevelopBaseline.json) +- [`apkSizeAfterPhase1.json`](./apkSizeAfterPhase1.json) +- APKs (gitignored): `docs/app-release-develop-baseline.apk`, `docs/app-release-phase1.apk` + +```bash +npm run analyze-apk-size -- --compare docs/apkSizeDevelopBaseline.json docs/apkSizeAfterPhase1.json +``` + +### Smoke test (Pixel 10 `56131FDCR003LJ`) + +| Check | Result | +|-------|--------| +| Install Phase 1 universal APK | Pass | +| Launch → welcome (no Oops!) | Pass (2×) | +| Create account through password + PIN + TOS | Pass | +| Wallet picker → enable Monero/Zcash/Zano → Assets | Pass (no Oops!; Pirate tap blocked by keyboard) | +| C000044 create-all-wallet-types | Fail (flaky 30s welcome timeout in nested `launch-cleared`; not an R8 crash) | +| Full automated wallet matrix / send-receive / QR / Sentry | **Not completed** — still recommended before shipping R8 | + +Kotlin metadata R8 warnings still appear at build time (Kotlin newer than AGP 8.8.2’s R8). Local `bundleRelease` fails the task graph on `:uploadSentryProguardMappingsRelease` with placeholder `SENTRY_MAP_UPLOAD_URL`; the AAB is produced before that task — exclude the upload task or set real Sentry credentials. + +--- + +## Historical: After R8 `assembleRelease` (measured 2026-08-05) + +Earlier iteration used `assembleRelease` (DEX stored uncompressed). That overstated universal-APK savings: + +| Metric | Aug 3 assembleRelease | After R8 assembleRelease | Delta | +|--------|----------------------:|-------------------------:|------:| +| APK file size | 136.06 MB | 117.42 MB | **−18.64 MB** | +| DEX (store / uncompressed) | 41.84 MB | 22.71 MB | **−19.13 MB** | + +Machine-readable: [`apkSizeAfterR8.json`](./apkSizeAfterR8.json) vs [`apkSizeBaseline.json`](./apkSizeBaseline.json). Prefer the develop-vs-Phase1 universal table above for ship decisions. diff --git a/docs/apkUnusedImages.json b/docs/apkUnusedImages.json new file mode 100644 index 00000000000..d20b7e6932f --- /dev/null +++ b/docs/apkUnusedImages.json @@ -0,0 +1,581 @@ +{ + "generatedAt": "2026-08-06T04:21:09.434Z", + "totalImages": 202, + "referencedImports": 44, + "unusedCount": 143, + "unusedBytes": 821401, + "unused": [ + { + "path": "src/assets/images/tutorials/walletList_sliding_light.gif", + "size": 342526 + }, + { + "path": "src/assets/images/shapeShiftLogo.png", + "size": 126856 + }, + { + "path": "src/assets/images/paymentTypes/paymentTypeLogoRevolut-light.png", + "size": 18513 + }, + { + "path": "src/assets/images/fio/fio_sent_request@3x.png", + "size": 13332 + }, + { + "path": "src/assets/images/sidenav/walletconnect-logo@3x.png", + "size": 11899 + }, + { + "path": "src/assets/images/fio/SendModule_FioAddress@2x.png", + "size": 11136 + }, + { + "path": "src/assets/images/sidenav/walletconnect-logo@2x.png", + "size": 8850 + }, + { + "path": "src/assets/images/transactions/transaction-details-exchanged@3x.png", + "size": 7865 + }, + { + "path": "src/assets/images/transactions/transaction-details-sent@3x.png", + "size": 7835 + }, + { + "path": "src/assets/images/transactions/transaction-details-received@3x.png", + "size": 7703 + }, + { + "path": "src/assets/images/transactions/transaction-type-exchanged@3x.png", + "size": 6651 + }, + { + "path": "src/assets/images/sidenav/fioaddress@3x.png", + "size": 6498 + }, + { + "path": "src/assets/images/sidenav/buysell@3x.png", + "size": 6373 + }, + { + "path": "src/assets/images/transactions/transaction-type-sent@3x.png", + "size": 6119 + }, + { + "path": "src/assets/images/transactions/transaction-type-received@3x.png", + "size": 6112 + }, + { + "path": "src/assets/images/list_fioAddress@2x.png", + "size": 5889 + }, + { + "path": "src/assets/images/sidenav/sweep@3x.png", + "size": 5050 + }, + { + "path": "src/assets/images/sidenav/accounts@3x.png", + "size": 4656 + }, + { + "path": "src/assets/images/transactions/transaction-details-received@2x.png", + "size": 4566 + }, + { + "path": "src/assets/images/transactions/transaction-details-exchanged@2x.png", + "size": 4565 + }, + { + "path": "src/assets/images/fio/SendModule_FioAddress.png", + "size": 4558 + }, + { + "path": "src/assets/images/transactions/transaction-details-sent@2x.png", + "size": 4550 + }, + { + "path": "src/assets/images/sidenav/sell@3x.png", + "size": 4473 + }, + { + "path": "src/assets/images/sidenav/walletconnect-logo.png", + "size": 4448 + }, + { + "path": "src/assets/images/createWallet/check_icon_lg@3x.png", + "size": 4393 + }, + { + "path": "src/assets/images/otp/OTP-badge_sm@3x.png", + "size": 4349 + }, + { + "path": "src/assets/images/sidenav/exchange@3x.png", + "size": 4316 + }, + { + "path": "src/assets/images/sidenav/buysell@2x.png", + "size": 4176 + }, + { + "path": "src/assets/images/fio/fio_sent_request@2x.png", + "size": 3938 + }, + { + "path": "src/assets/images/bitcoin-icon.svg", + "size": 3704 + }, + { + "path": "src/assets/images/transactions/transaction-type-exchanged@2x.png", + "size": 3672 + }, + { + "path": "src/assets/images/sidenav/wallets@3x.png", + "size": 3563 + }, + { + "path": "src/assets/images/sidenav/sell@2x.png", + "size": 3530 + }, + { + "path": "src/assets/images/sidenav/share@3x.png", + "size": 3480 + }, + { + "path": "src/assets/images/transactions/transaction-type-received@2x.png", + "size": 3324 + }, + { + "path": "src/assets/images/sidenav/receive@3x.png", + "size": 3319 + }, + { + "path": "src/assets/images/transactions/transaction-type-sent@2x.png", + "size": 3268 + }, + { + "path": "src/assets/images/sidenav/fiorequests@3x.png", + "size": 3246 + }, + { + "path": "src/assets/images/sidenav/sweep@2x.png", + "size": 3156 + }, + { + "path": "src/assets/images/sidenav/accounts@2x.png", + "size": 3051 + }, + { + "path": "src/assets/images/sidenav/terms@3x.png", + "size": 3016 + }, + { + "path": "src/assets/images/sidenav/scan@3x.png", + "size": 2991 + }, + { + "path": "src/assets/images/createWallet/check_icon_lg@2x.png", + "size": 2909 + }, + { + "path": "src/assets/images/otp/OTP-badge_sm@2x.png", + "size": 2776 + }, + { + "path": "src/assets/images/list_fioAddress.png", + "size": 2647 + }, + { + "path": "src/assets/images/sidenav/fioaddress@2x.png", + "size": 2612 + }, + { + "path": "src/assets/images/sidenav/sell.png", + "size": 2545 + }, + { + "path": "src/assets/images/sidenav/exchange@2x.png", + "size": 2510 + }, + { + "path": "src/assets/images/edgeLogo/Edge_logo_Icon_L-light.png", + "size": 2438 + }, + { + "path": "src/assets/images/tabbar/more_selected@3x.png", + "size": 2261 + }, + { + "path": "src/assets/images/settings-icon.svg", + "size": 2170 + }, + { + "path": "src/assets/images/tabbar/more@3x.png", + "size": 2167 + }, + { + "path": "src/assets/images/fio_logo.png", + "size": 2118 + }, + { + "path": "src/assets/images/sidenav/receive@2x.png", + "size": 2028 + }, + { + "path": "src/assets/images/sidenav/wallets@2x.png", + "size": 2018 + }, + { + "path": "src/assets/images/tabbar/buy@2x.png", + "size": 1939 + }, + { + "path": "src/assets/images/tabbar/sell@3x.png", + "size": 1918 + }, + { + "path": "src/assets/images/fio/fio_sent_request.png", + "size": 1891 + }, + { + "path": "src/assets/images/sidenav/terms@2x.png", + "size": 1866 + }, + { + "path": "src/assets/images/sidenav/settings@3x.png", + "size": 1826 + }, + { + "path": "src/assets/images/sidenav/scan@2x.png", + "size": 1825 + }, + { + "path": "src/assets/images/buy-sell-icon.svg", + "size": 1815 + }, + { + "path": "src/assets/images/tabbar/buy_selected@3x.png", + "size": 1789 + }, + { + "path": "src/assets/images/tabbar/sell_selected@3x.png", + "size": 1784 + }, + { + "path": "src/assets/images/sidenav/fio-address@3x.png", + "size": 1775 + }, + { + "path": "src/assets/images/transactions/transaction-details-exchanged.png", + "size": 1775 + }, + { + "path": "src/assets/images/sidenav/buysell.png", + "size": 1766 + }, + { + "path": "src/assets/images/transactions/transaction-details-received.png", + "size": 1667 + }, + { + "path": "src/assets/images/transactions/transaction-details-sent.png", + "size": 1666 + }, + { + "path": "src/assets/images/plugins-icon.svg", + "size": 1638 + }, + { + "path": "src/assets/images/manageTokens/check_mark@3x.png", + "size": 1539 + }, + { + "path": "src/assets/images/transactions/transaction-type-exchanged.png", + "size": 1493 + }, + { + "path": "src/assets/images/delete-icon.svg", + "size": 1481 + }, + { + "path": "src/assets/images/tabbar/more_selected@2x.png", + "size": 1431 + }, + { + "path": "src/assets/images/account-icon.svg", + "size": 1417 + }, + { + "path": "src/assets/images/sidenav/accounts.png", + "size": 1394 + }, + { + "path": "src/assets/images/transactions/transaction-type-received.png", + "size": 1390 + }, + { + "path": "src/assets/images/sidenav/sweep.png", + "size": 1382 + }, + { + "path": "src/assets/images/tabbar/more@2x.png", + "size": 1371 + }, + { + "path": "src/assets/images/transactions/transaction-type-sent.png", + "size": 1367 + }, + { + "path": "src/assets/images/createWallet/check_icon_lg.png", + "size": 1342 + }, + { + "path": "src/assets/images/tabbar/wallets_selected@3x.png", + "size": 1341 + }, + { + "path": "src/assets/images/currency-toggle-icon.svg", + "size": 1279 + }, + { + "path": "src/assets/images/transactions-icon.svg", + "size": 1279 + }, + { + "path": "src/assets/images/tabbar/wallets@3x.png", + "size": 1278 + }, + { + "path": "src/assets/images/otp/OTP-badge_sm.png", + "size": 1255 + }, + { + "path": "src/assets/images/tabbar/sell@2x.png", + "size": 1211 + }, + { + "path": "src/assets/images/sidenav/exchange.png", + "size": 1191 + }, + { + "path": "src/assets/images/tabbar/buy@3x.png", + "size": 1179 + }, + { + "path": "src/assets/images/wallet-icon.svg", + "size": 1168 + }, + { + "path": "src/assets/images/sidenav/fioaddress.png", + "size": 1164 + }, + { + "path": "src/assets/images/tabbar/sell_selected@2x.png", + "size": 1136 + }, + { + "path": "src/assets/images/sidenav/fiorequests@2x.png", + "size": 1122 + }, + { + "path": "src/assets/images/tabbar/buy_selected@2x.png", + "size": 1117 + }, + { + "path": "src/assets/images/tabbar/exchange_selected@3x.png", + "size": 1106 + }, + { + "path": "src/assets/images/sidenav/fio-address@2x.png", + "size": 1105 + }, + { + "path": "src/assets/images/sidenav/settings@2x.png", + "size": 1096 + }, + { + "path": "src/assets/images/transactions/transactions-request@3x.png", + "size": 1090 + }, + { + "path": "src/assets/images/export-icon.svg", + "size": 1088 + }, + { + "path": "src/assets/images/transactions/transactions-send@3x.png", + "size": 1086 + }, + { + "path": "src/assets/images/tabbar/exchange@3x.png", + "size": 1083 + }, + { + "path": "src/assets/images/sidenav/wallets.png", + "size": 1077 + }, + { + "path": "src/assets/images/sidenav/logout@3x.png", + "size": 1073 + }, + { + "path": "src/assets/images/sidenav/share@2x.png", + "size": 1067 + }, + { + "path": "src/assets/images/request-icon.svg", + "size": 1057 + }, + { + "path": "src/assets/images/sidenav/scan.png", + "size": 1047 + }, + { + "path": "src/assets/images/logout-icon.svg", + "size": 1031 + }, + { + "path": "src/assets/images/sidenav/receive.png", + "size": 1006 + }, + { + "path": "src/assets/images/rename-icon.svg", + "size": 989 + }, + { + "path": "src/assets/images/sidenav/terms.png", + "size": 970 + }, + { + "path": "src/assets/images/slider/keyboard-arrow-left@2x.png", + "size": 949 + }, + { + "path": "src/assets/images/tabbar/wallets_selected@2x.png", + "size": 933 + }, + { + "path": "src/assets/images/manageTokens/check_mark@2x.png", + "size": 928 + }, + { + "path": "src/assets/images/tabbar/wallets@2x.png", + "size": 873 + }, + { + "path": "src/assets/images/tabbar/exchange_selected@2x.png", + "size": 795 + }, + { + "path": "src/assets/images/tabbar/exchange@2x.png", + "size": 763 + }, + { + "path": "src/assets/images/transactions/transactions-send@2x.png", + "size": 748 + }, + { + "path": "src/assets/images/transactions/transactions-request@2x.png", + "size": 722 + }, + { + "path": "src/assets/images/sidenav/logout@2x.png", + "size": 721 + }, + { + "path": "src/assets/images/slider/keyboard-arrow-left.png", + "size": 663 + }, + { + "path": "src/assets/images/tabbar/buy.png", + "size": 639 + }, + { + "path": "src/assets/images/tabbar/sell.png", + "size": 639 + }, + { + "path": "src/assets/images/create-wallet.svg", + "size": 635 + }, + { + "path": "src/assets/images/tabbar/buy_selected.png", + "size": 599 + }, + { + "path": "src/assets/images/tabbar/more_selected.png", + "size": 597 + }, + { + "path": "src/assets/images/tabbar/sell_selected.png", + "size": 585 + }, + { + "path": "src/assets/images/tabbar/more.png", + "size": 574 + }, + { + "path": "src/assets/images/sidenav/settings.png", + "size": 573 + }, + { + "path": "src/assets/images/sidenav/fiorequests.png", + "size": 562 + }, + { + "path": "src/assets/images/sidenav/share.png", + "size": 562 + }, + { + "path": "src/assets/images/sidenav/fio-address.png", + "size": 538 + }, + { + "path": "src/assets/images/MenuButton/menu@3x.png", + "size": 516 + }, + { + "path": "src/assets/images/tabbar/exchange_selected.png", + "size": 482 + }, + { + "path": "src/assets/images/tabbar/exchange.png", + "size": 471 + }, + { + "path": "src/assets/images/tabbar/wallets_selected.png", + "size": 453 + }, + { + "path": "src/assets/images/manageTokens/check_mark.png", + "size": 441 + }, + { + "path": "src/assets/images/tabbar/wallets.png", + "size": 422 + }, + { + "path": "src/assets/images/sidenav/logout.png", + "size": 417 + }, + { + "path": "src/assets/images/transaction_details_icon.png", + "size": 414 + }, + { + "path": "src/assets/images/transactions/transactions-request.png", + "size": 401 + }, + { + "path": "src/assets/images/transactions/transactions-send.png", + "size": 397 + }, + { + "path": "src/assets/images/MenuButton/menu@2x.png", + "size": 273 + }, + { + "path": "src/assets/images/MenuButton/menu.png", + "size": 164 + } + ] +} diff --git a/package-lock.json b/package-lock.json index 07c9a1e6b9f..c179f431242 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,6 @@ "jsrsasign": "^11.1.0", "marked": "^15.0.9", "p-debounce": "^4.0.0", - "posthog-js": "^1.88.1", "posthog-react-native": "^2.8.1", "prompts": "^2.4.2", "qrcode-generator": "^1.4.4", @@ -17457,10 +17456,6 @@ "node": "^12.20 || >= 14.13" } }, - "node_modules/fflate": { - "version": "0.4.8", - "license": "MIT" - }, "node_modules/figures": { "version": "3.2.0", "dev": true, @@ -23237,13 +23232,6 @@ "version": "4.2.0", "license": "MIT" }, - "node_modules/posthog-js": { - "version": "1.88.1", - "license": "MIT", - "dependencies": { - "fflate": "^0.4.1" - } - }, "node_modules/posthog-react-native": { "version": "2.8.1", "peerDependencies": { diff --git a/package.json b/package.json index c85cf62f45e..cdbb33ca68c 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,8 @@ "androidKeysCreate": "node -r sucrase/register scripts/createAndroidKeys.ts", "configure": "node -r sucrase/register scripts/configure.ts", "deploy": "node -r sucrase/register scripts/deploy.ts", + "analyze-apk-size": "node -r sucrase/register scripts/analyzeApkSize.ts", + "find-unused-images": "node -r sucrase/register scripts/findUnusedImages.ts", "fix-kotlin": "cd android; ./gradlew :app:ktlintFormat", "fix-java": "cd android; ./format-java.sh", "fix-swift": "swift-format format -i ios/*.swift ios/edge/*.swift", @@ -117,7 +119,6 @@ "jsrsasign": "^11.1.0", "marked": "^15.0.9", "p-debounce": "^4.0.0", - "posthog-js": "^1.88.1", "posthog-react-native": "^2.8.1", "prompts": "^2.4.2", "qrcode-generator": "^1.4.4", diff --git a/scripts/analyzeApkSize.ts b/scripts/analyzeApkSize.ts new file mode 100644 index 00000000000..96abedd6b28 --- /dev/null +++ b/scripts/analyzeApkSize.ts @@ -0,0 +1,485 @@ +/** + * Analyze an Android APK (or AAB-derived universal APK) for size attribution. + * + * Usage: + * node -r sucrase/register ./scripts/analyzeApkSize.ts + * node -r sucrase/register ./scripts/analyzeApkSize.ts --compare + * node -r sucrase/register ./scripts/analyzeApkSize.ts --out + * + * Relies on: + * - apkanalyzer (Android SDK cmdline-tools) + * - unzip / zipinfo for entry sizes + * - optional bundletool for AAB get-size (if --aab given) + */ +import childProcess from 'child_process' +import crypto from 'crypto' +import fs from 'fs' +import os from 'os' +import path, { join } from 'path' + +interface EntrySize { + path: string + compressedBytes: number + uncompressedBytes: number +} + +interface CategoryRollup { + name: string + compressedBytes: number + uncompressedBytes: number + entries: number + topEntries: Array<{ + path: string + compressedBytes: number + uncompressedBytes: number + }> +} + +interface ApkSizeReport { + generatedAt: string + apkPath: string + apkFileBytes: number + downloadSizeEstimateBytes: number | null + packageName: string | null + versionCode: string | null + versionName: string | null + categories: CategoryRollup[] + byAbi: CategoryRollup[] + byAssetPackage: CategoryRollup[] + byDexFile: CategoryRollup[] + topEntries: EntrySize[] + duplicateGroups: Array<{ + sha256: string + uncompressedBytes: number + paths: string[] + wastedCompressedBytes: number + }> + notes: string[] +} + +const ROOT = join(__dirname, '..') +const DEFAULT_OUT = join(ROOT, 'docs', 'apkSizeBaseline.json') +const APKANALYZER_CANDIDATES = [ + join( + os.homedir(), + 'Library/Android/sdk/cmdline-tools/latest/bin/apkanalyzer' + ), + join(os.homedir(), 'Library/Android/sdk/tools/bin/apkanalyzer'), + 'apkanalyzer' +] + +function findApkanalyzer(): string | null { + for (const candidate of APKANALYZER_CANDIDATES) { + if (candidate === 'apkanalyzer') { + try { + childProcess.execSync('which apkanalyzer', { stdio: 'ignore' }) + return 'apkanalyzer' + } catch { + continue + } + } + if (fs.existsSync(candidate)) return candidate + } + return null +} + +function run(cmd: string, opts: { cwd?: string } = {}): string { + return childProcess.execSync(cmd, { + encoding: 'utf8', + maxBuffer: 200 * 1024 * 1024, + cwd: opts.cwd + }) +} + +function parseZipEntries(apkPath: string): EntrySize[] { + // zipinfo -l columns: permissions, version, size, type, compressed, method, date, time, name + // Prefer `unzip -l` + `unzip -v` for compressed sizes. + const verbose = run(`unzip -v -l ${shellQuote(apkPath)}`) + const entries: EntrySize[] = [] + for (const line of verbose.split('\n')) { + // Typical: " 1234 Defl:N 567 54% 01-01-1980 00:00 ........ path" + // Or Stored: " 1234 Stored 1234 0% ..." + const m = + /^\s*(\d+)\s+(?:Defl:\S+|Stored|Defl:N)\s+(\d+)\s+\d+%\s+\S+\s+\S+\s+\S+\s+(.+)$/.exec( + line + ) + if (m == null) continue + const uncompressedBytes = Number(m[1]) + const compressedBytes = Number(m[2]) + const entryPath = m[3].trim() + if (entryPath === 'Name' || entryPath.endsWith('/')) continue + entries.push({ path: entryPath, compressedBytes, uncompressedBytes }) + } + return entries +} + +function shellQuote(s: string): string { + return `'${s.replace(/'/g, `'\\''`)}'` +} + +function categorize(entryPath: string): string { + if (entryPath.startsWith('lib/')) { + const parts = entryPath.split('/') + return `lib/${parts[1] ?? 'unknown'}` + } + if (entryPath.startsWith('assets/')) { + const rest = entryPath.slice('assets/'.length) + const slash = rest.indexOf('/') + if (slash === -1) return 'assets/(root)' + return `assets/${rest.slice(0, slash)}` + } + if (entryPath.startsWith('res/')) return 'res' + if (entryPath.endsWith('.dex')) return 'dex' + if (entryPath === 'resources.arsc') return 'resources.arsc' + if (entryPath.startsWith('META-INF/')) return 'META-INF' + return 'other' +} + +function rollup( + name: string, + entries: EntrySize[], + topN: number = 15 +): CategoryRollup { + const sorted = [...entries].sort( + (a, b) => b.compressedBytes - a.compressedBytes + ) + return { + name, + compressedBytes: entries.reduce((s, e) => s + e.compressedBytes, 0), + uncompressedBytes: entries.reduce((s, e) => s + e.uncompressedBytes, 0), + entries: entries.length, + topEntries: sorted.slice(0, topN).map(e => ({ + path: e.path, + compressedBytes: e.compressedBytes, + uncompressedBytes: e.uncompressedBytes + })) + } +} + +function groupBy( + entries: EntrySize[], + keyFn: (e: EntrySize) => string +): Map { + const map = new Map() + for (const e of entries) { + const k = keyFn(e) + const list = map.get(k) + if (list == null) map.set(k, [e]) + else list.push(e) + } + return map +} + +function findDuplicates( + apkPath: string, + entries: EntrySize[] +): ApkSizeReport['duplicateGroups'] { + // Hash large-enough assets only to keep runtime reasonable. + const candidates = entries.filter( + e => + e.uncompressedBytes >= 8 * 1024 && + (e.path.startsWith('assets/') || e.path.startsWith('lib/')) + ) + const tmp = fs.mkdtempSync(join(os.tmpdir(), 'apk-dup-')) + const byHash = new Map< + string, + { uncompressedBytes: number; paths: string[]; compressedBytes: number[] } + >() + + try { + // Extract only candidate paths + const listFile = join(tmp, 'list.txt') + fs.writeFileSync(listFile, candidates.map(c => c.path).join('\n')) + try { + run( + `unzip -q -o ${shellQuote(apkPath)} -d ${shellQuote(tmp)} ${candidates + .map(c => shellQuote(c.path)) + .join(' ')}` + ) + } catch { + // unzip returns non-zero if some paths missing; continue with what we got + } + + for (const e of candidates) { + const filePath = join(tmp, e.path) + if (!fs.existsSync(filePath)) continue + const buf = fs.readFileSync(filePath) + const sha256 = crypto.createHash('sha256').update(buf).digest('hex') + const existing = byHash.get(sha256) + if (existing == null) { + byHash.set(sha256, { + uncompressedBytes: e.uncompressedBytes, + paths: [e.path], + compressedBytes: [e.compressedBytes] + }) + } else { + existing.paths.push(e.path) + existing.compressedBytes.push(e.compressedBytes) + } + } + } finally { + fs.rmSync(tmp, { recursive: true, force: true }) + } + + const groups: ApkSizeReport['duplicateGroups'] = [] + for (const [sha256, g] of byHash) { + if (g.paths.length < 2) continue + // Waste = all but one copy's compressed size + const sorted = [...g.compressedBytes].sort((a, b) => b - a) + const wastedCompressedBytes = sorted.slice(1).reduce((s, n) => s + n, 0) + groups.push({ + sha256, + uncompressedBytes: g.uncompressedBytes, + paths: g.paths, + wastedCompressedBytes + }) + } + groups.sort((a, b) => b.wastedCompressedBytes - a.wastedCompressedBytes) + return groups +} + +function analyzeApk(apkPath: string): ApkSizeReport { + const abs = path.resolve(apkPath) + if (!fs.existsSync(abs)) { + throw new Error(`APK not found: ${abs}`) + } + + const notes: string[] = [] + const apkFileBytes = fs.statSync(abs).size + const entries = parseZipEntries(abs) + if (entries.length === 0) { + throw new Error('Failed to parse zip entries from APK') + } + + const apkanalyzer = findApkanalyzer() + let packageName: string | null = null + let versionCode: string | null = null + let versionName: string | null = null + let downloadSizeEstimateBytes: number | null = null + + if (apkanalyzer != null) { + try { + const summary = run( + `${shellQuote(apkanalyzer)} apk summary ${shellQuote(abs)}` + ).trim() + const parts = summary.split('\t') + packageName = parts[0] ?? null + versionCode = parts[1] ?? null + versionName = parts[2] ?? null + } catch (e) { + notes.push(`apkanalyzer summary failed: ${String(e)}`) + } + try { + downloadSizeEstimateBytes = Number( + run( + `${shellQuote(apkanalyzer)} apk download-size ${shellQuote(abs)}` + ).trim() + ) + } catch (e) { + notes.push(`apkanalyzer download-size failed: ${String(e)}`) + } + } else { + notes.push('apkanalyzer not found; summary/download-size skipped') + } + + const byCategory = groupBy(entries, e => categorize(e.path)) + const categories = [...byCategory.entries()] + .map(([name, list]) => rollup(name, list)) + .sort((a, b) => b.compressedBytes - a.compressedBytes) + + const libEntries = entries.filter(e => e.path.startsWith('lib/')) + const byAbi = [...groupBy(libEntries, e => e.path.split('/')[1] ?? 'unknown')] + .map(([name, list]) => rollup(name, list)) + .sort((a, b) => b.compressedBytes - a.compressedBytes) + + const assetEntries = entries.filter(e => e.path.startsWith('assets/')) + const byAssetPackage = [ + ...groupBy(assetEntries, e => { + const rest = e.path.slice('assets/'.length) + const slash = rest.indexOf('/') + return slash === -1 ? '(root)' : rest.slice(0, slash) + }) + ] + .map(([name, list]) => rollup(name, list)) + .sort((a, b) => b.compressedBytes - a.compressedBytes) + + const dexEntries = entries.filter(e => e.path.endsWith('.dex')) + const byDexFile = dexEntries + .map(e => rollup(e.path, [e])) + .sort((a, b) => b.compressedBytes - a.compressedBytes) + + const topEntries = [...entries] + .sort((a, b) => b.compressedBytes - a.compressedBytes) + .slice(0, 40) + + console.log('Scanning for duplicate asset/lib content (sha256)...') + const duplicateGroups = findDuplicates(abs, entries) + + return { + generatedAt: new Date().toISOString(), + apkPath: abs, + apkFileBytes, + downloadSizeEstimateBytes, + packageName, + versionCode, + versionName, + categories, + byAbi, + byAssetPackage, + byDexFile, + topEntries, + duplicateGroups, + notes + } +} + +function formatBytes(n: number): string { + const sign = n < 0 ? '-' : '' + const abs = Math.abs(n) + if (abs < 1024) return `${sign}${abs} B` + if (abs < 1024 * 1024) return `${sign}${(abs / 1024).toFixed(1)} KB` + return `${sign}${(abs / (1024 * 1024)).toFixed(2)} MB` +} + +function printReport(report: ApkSizeReport): void { + console.log('\n=== APK Size Report ===') + console.log(`APK: ${report.apkPath}`) + console.log( + `File size: ${formatBytes(report.apkFileBytes)} (${ + report.apkFileBytes + } bytes)` + ) + if (report.downloadSizeEstimateBytes != null) { + console.log( + `Download estimate: ${formatBytes(report.downloadSizeEstimateBytes)}` + ) + } + if (report.packageName != null) { + console.log( + `Package: ${report.packageName} ${report.versionName} (${report.versionCode})` + ) + } + + console.log('\n--- Categories (compressed) ---') + for (const c of report.categories) { + console.log( + ` ${c.name.padEnd(28)} ${formatBytes(c.compressedBytes).padStart( + 10 + )} uncomp ${formatBytes(c.uncompressedBytes).padStart(10)} (${ + c.entries + } files)` + ) + } + + console.log('\n--- Native libs by ABI ---') + for (const c of report.byAbi) { + console.log( + ` ${c.name.padEnd(16)} ${formatBytes(c.compressedBytes).padStart( + 10 + )} uncomp ${formatBytes(c.uncompressedBytes).padStart(10)}` + ) + } + + console.log('\n--- Assets by package ---') + for (const c of report.byAssetPackage.slice(0, 20)) { + console.log( + ` ${c.name.padEnd(36)} ${formatBytes(c.compressedBytes).padStart( + 10 + )} uncomp ${formatBytes(c.uncompressedBytes).padStart(10)}` + ) + } + + console.log('\n--- Top entries ---') + for (const e of report.topEntries.slice(0, 25)) { + console.log(` ${formatBytes(e.compressedBytes).padStart(10)} ${e.path}`) + } + + if (report.duplicateGroups.length > 0) { + console.log('\n--- Exact duplicate groups (wasted compressed) ---') + for (const g of report.duplicateGroups.slice(0, 15)) { + console.log( + ` waste ${formatBytes(g.wastedCompressedBytes)} copies=${ + g.paths.length + } size=${formatBytes(g.uncompressedBytes)}` + ) + for (const p of g.paths) console.log(` - ${p}`) + } + } + + for (const n of report.notes) console.log(`NOTE: ${n}`) +} + +function compareReports(before: ApkSizeReport, after: ApkSizeReport): void { + const delta = after.apkFileBytes - before.apkFileBytes + console.log('\n=== APK Compare ===') + console.log( + `Before: ${formatBytes(before.apkFileBytes)} (${before.apkPath})` + ) + console.log(`After: ${formatBytes(after.apkFileBytes)} (${after.apkPath})`) + console.log(`Delta: ${formatBytes(delta)} (${delta} bytes)`) + + const beforeMap = new Map(before.categories.map(c => [c.name, c])) + const afterMap = new Map(after.categories.map(c => [c.name, c])) + const keys = new Set([...beforeMap.keys(), ...afterMap.keys()]) + console.log('\n--- Category deltas (compressed) ---') + const rows: Array<{ name: string; delta: number }> = [] + for (const k of keys) { + const b = beforeMap.get(k)?.compressedBytes ?? 0 + const a = afterMap.get(k)?.compressedBytes ?? 0 + rows.push({ name: k, delta: a - b }) + } + rows.sort((a, b) => Math.abs(b.delta) - Math.abs(a.delta)) + for (const r of rows) { + if (r.delta === 0) continue + const prefix = r.delta > 0 ? '+' : '' + console.log(` ${r.name.padEnd(28)} ${prefix}${formatBytes(r.delta)}`) + } +} + +function main(): void { + const argv = process.argv.slice(2) + if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') { + console.log( + 'Usage:\n' + + ' node -r sucrase/register ./scripts/analyzeApkSize.ts [--out path.json] \n' + + ' node -r sucrase/register ./scripts/analyzeApkSize.ts --compare ' + ) + process.exit(argv.length === 0 ? 1 : 0) + } + + if (argv[0] === '--compare') { + const beforePath = argv[1] + const afterPath = argv[2] + if (beforePath == null || afterPath == null) { + throw new Error('--compare requires ') + } + const before = JSON.parse( + fs.readFileSync(beforePath, 'utf8') + ) as ApkSizeReport + const after = JSON.parse( + fs.readFileSync(afterPath, 'utf8') + ) as ApkSizeReport + compareReports(before, after) + return + } + + let outPath = DEFAULT_OUT + let apkPath: string | undefined + for (let i = 0; i < argv.length; i++) { + if (argv[i] === '--out') { + outPath = argv[++i] + } else if (!argv[i].startsWith('-')) { + apkPath = argv[i] + } + } + if (apkPath == null) throw new Error('Missing argument') + + const report = analyzeApk(apkPath) + printReport(report) + + fs.mkdirSync(path.dirname(outPath), { recursive: true }) + fs.writeFileSync(outPath, JSON.stringify(report, null, 2) + '\n') + console.log(`\nWrote ${outPath}`) +} + +main() diff --git a/scripts/findUnusedImages.ts b/scripts/findUnusedImages.ts new file mode 100644 index 00000000000..0cff3139d0a --- /dev/null +++ b/scripts/findUnusedImages.ts @@ -0,0 +1,95 @@ +/** + * Find image/SVG assets under src/assets that are not imported from any src file. + * + * Usage: node -r sucrase/register ./scripts/findUnusedImages.ts + */ +import fs from 'fs' +import path, { join } from 'path' + +const ROOT = join(__dirname, '..') +const ASSET_ROOT = join(ROOT, 'src/assets') +const SRC_ROOT = join(ROOT, 'src') +const OUT = join(ROOT, 'docs/apkUnusedImages.json') + +const IMAGE_EXTS = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg'] +const SRC_EXTS = ['.ts', '.tsx', '.js', '.jsx'] + +function walk(dir: string, exts: string[], out: string[] = []): string[] { + if (!fs.existsSync(dir)) return out + for (const ent of fs.readdirSync(dir, { withFileTypes: true })) { + const p = join(dir, ent.name) + if (ent.isDirectory()) { + if (ent.name === '__tests__' || ent.name === 'node_modules') continue + walk(p, exts, out) + } else if (exts.some(e => ent.name.toLowerCase().endsWith(e))) { + if (ent.name.includes('.test.') || ent.name.includes('.spec.')) continue + out.push(p) + } + } + return out +} + +function stripDensity(p: string): string { + return p.replace(/@[23]x(-light)?(?=\.[^.]+$)/, '') +} + +function main(): void { + const images = walk(ASSET_ROOT, IMAGE_EXTS) + const srcFiles = walk(SRC_ROOT, SRC_EXTS) + + const importRe = + /(?:from|require\()\s*['"`]([^'"`]+?\.(?:png|jpg|jpeg|gif|webp|svg))['"`]/g + const referenced = new Set() + + for (const f of srcFiles) { + const text = fs.readFileSync(f, 'utf8') + let m: RegExpExecArray | null + importRe.lastIndex = 0 + while ((m = importRe.exec(text)) != null) { + const rel = m[1] + if (rel.startsWith('.')) { + referenced.add(path.normalize(join(path.dirname(f), rel))) + } + } + } + + const referencedBases = new Set([...referenced].map(stripDensity)) + + const unused: Array<{ path: string; size: number }> = [] + let unusedBytes = 0 + for (const img of images) { + const norm = path.normalize(img) + const base = stripDensity(norm) + const used = referenced.has(norm) || referencedBases.has(base) + if (!used) { + const size = fs.statSync(img).size + unused.push({ path: path.relative(ROOT, img), size }) + unusedBytes += size + } + } + unused.sort((a, b) => b.size - a.size) + + const report = { + generatedAt: new Date().toISOString(), + totalImages: images.length, + referencedImports: referenced.size, + unusedCount: unused.length, + unusedBytes, + unused + } + fs.mkdirSync(path.dirname(OUT), { recursive: true }) + fs.writeFileSync(OUT, JSON.stringify(report, null, 2) + '\n') + console.log( + `Unused images: ${unused.length} / ${images.length} (${( + unusedBytes / + 1024 / + 1024 + ).toFixed(2)} MB on disk)` + ) + for (const u of unused.slice(0, 25)) { + console.log(` ${(u.size / 1024).toFixed(1).padStart(8)} KB ${u.path}`) + } + console.log(`Wrote ${OUT}`) +} + +main() diff --git a/src/assets/images/MenuButton/menu.png b/src/assets/images/MenuButton/menu.png deleted file mode 100755 index a43e7e44c2c..00000000000 Binary files a/src/assets/images/MenuButton/menu.png and /dev/null differ diff --git a/src/assets/images/MenuButton/menu@2x.png b/src/assets/images/MenuButton/menu@2x.png deleted file mode 100755 index 8b7f88862c9..00000000000 Binary files a/src/assets/images/MenuButton/menu@2x.png and /dev/null differ diff --git a/src/assets/images/MenuButton/menu@3x.png b/src/assets/images/MenuButton/menu@3x.png deleted file mode 100755 index 0766498a248..00000000000 Binary files a/src/assets/images/MenuButton/menu@3x.png and /dev/null differ diff --git a/src/assets/images/account-icon.svg b/src/assets/images/account-icon.svg deleted file mode 100755 index df10618a63b..00000000000 --- a/src/assets/images/account-icon.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/bitcoin-icon.svg b/src/assets/images/bitcoin-icon.svg deleted file mode 100755 index ede89b07be7..00000000000 --- a/src/assets/images/bitcoin-icon.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/buy-sell-icon.svg b/src/assets/images/buy-sell-icon.svg deleted file mode 100755 index e0ebb6ba84c..00000000000 --- a/src/assets/images/buy-sell-icon.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/create-wallet.svg b/src/assets/images/create-wallet.svg deleted file mode 100644 index 750f8d4f81e..00000000000 --- a/src/assets/images/create-wallet.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/images/createWallet/check_icon_lg.png b/src/assets/images/createWallet/check_icon_lg.png deleted file mode 100644 index 3d5a04052d0..00000000000 Binary files a/src/assets/images/createWallet/check_icon_lg.png and /dev/null differ diff --git a/src/assets/images/createWallet/check_icon_lg@2x.png b/src/assets/images/createWallet/check_icon_lg@2x.png deleted file mode 100644 index c6aee40742d..00000000000 Binary files a/src/assets/images/createWallet/check_icon_lg@2x.png and /dev/null differ diff --git a/src/assets/images/createWallet/check_icon_lg@3x.png b/src/assets/images/createWallet/check_icon_lg@3x.png deleted file mode 100644 index 900b8e329ce..00000000000 Binary files a/src/assets/images/createWallet/check_icon_lg@3x.png and /dev/null differ diff --git a/src/assets/images/currency-toggle-icon.svg b/src/assets/images/currency-toggle-icon.svg deleted file mode 100755 index 5167ce04f2f..00000000000 --- a/src/assets/images/currency-toggle-icon.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/delete-icon.svg b/src/assets/images/delete-icon.svg deleted file mode 100755 index bc42c3a7d66..00000000000 --- a/src/assets/images/delete-icon.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/export-icon.svg b/src/assets/images/export-icon.svg deleted file mode 100755 index d6145d63b40..00000000000 --- a/src/assets/images/export-icon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/logout-icon.svg b/src/assets/images/logout-icon.svg deleted file mode 100755 index 86f68bc4135..00000000000 --- a/src/assets/images/logout-icon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/manageTokens/check_mark.png b/src/assets/images/manageTokens/check_mark.png deleted file mode 100644 index 3f7da38defe..00000000000 Binary files a/src/assets/images/manageTokens/check_mark.png and /dev/null differ diff --git a/src/assets/images/manageTokens/check_mark@2x.png b/src/assets/images/manageTokens/check_mark@2x.png deleted file mode 100644 index 724e0b1837a..00000000000 Binary files a/src/assets/images/manageTokens/check_mark@2x.png and /dev/null differ diff --git a/src/assets/images/manageTokens/check_mark@3x.png b/src/assets/images/manageTokens/check_mark@3x.png deleted file mode 100644 index ebff6b52a9c..00000000000 Binary files a/src/assets/images/manageTokens/check_mark@3x.png and /dev/null differ diff --git a/src/assets/images/otp/OTP-badge_sm.png b/src/assets/images/otp/OTP-badge_sm.png deleted file mode 100755 index 7bc249d70cc..00000000000 Binary files a/src/assets/images/otp/OTP-badge_sm.png and /dev/null differ diff --git a/src/assets/images/otp/OTP-badge_sm@2x.png b/src/assets/images/otp/OTP-badge_sm@2x.png deleted file mode 100755 index 2da972a486e..00000000000 Binary files a/src/assets/images/otp/OTP-badge_sm@2x.png and /dev/null differ diff --git a/src/assets/images/otp/OTP-badge_sm@3x.png b/src/assets/images/otp/OTP-badge_sm@3x.png deleted file mode 100755 index 44d4d349888..00000000000 Binary files a/src/assets/images/otp/OTP-badge_sm@3x.png and /dev/null differ diff --git a/src/assets/images/plugins-icon.svg b/src/assets/images/plugins-icon.svg deleted file mode 100755 index b733a2eeed1..00000000000 --- a/src/assets/images/plugins-icon.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/rename-icon.svg b/src/assets/images/rename-icon.svg deleted file mode 100755 index 9e880dae733..00000000000 --- a/src/assets/images/rename-icon.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/request-icon.svg b/src/assets/images/request-icon.svg deleted file mode 100755 index 40b3c158dac..00000000000 --- a/src/assets/images/request-icon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/settings-icon.svg b/src/assets/images/settings-icon.svg deleted file mode 100755 index 785210376e4..00000000000 --- a/src/assets/images/settings-icon.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/shapeShiftLogo.png b/src/assets/images/shapeShiftLogo.png deleted file mode 100644 index 24ee2dc29e5..00000000000 Binary files a/src/assets/images/shapeShiftLogo.png and /dev/null differ diff --git a/src/assets/images/sidenav/accounts.png b/src/assets/images/sidenav/accounts.png deleted file mode 100644 index c9d269e1661..00000000000 Binary files a/src/assets/images/sidenav/accounts.png and /dev/null differ diff --git a/src/assets/images/sidenav/accounts@2x.png b/src/assets/images/sidenav/accounts@2x.png deleted file mode 100644 index 04500b5c03d..00000000000 Binary files a/src/assets/images/sidenav/accounts@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/accounts@3x.png b/src/assets/images/sidenav/accounts@3x.png deleted file mode 100644 index 54c8531d094..00000000000 Binary files a/src/assets/images/sidenav/accounts@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/buysell.png b/src/assets/images/sidenav/buysell.png deleted file mode 100644 index e272787c17e..00000000000 Binary files a/src/assets/images/sidenav/buysell.png and /dev/null differ diff --git a/src/assets/images/sidenav/buysell@2x.png b/src/assets/images/sidenav/buysell@2x.png deleted file mode 100644 index 9c1587eb1a5..00000000000 Binary files a/src/assets/images/sidenav/buysell@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/buysell@3x.png b/src/assets/images/sidenav/buysell@3x.png deleted file mode 100644 index 3e3757b8e20..00000000000 Binary files a/src/assets/images/sidenav/buysell@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/exchange.png b/src/assets/images/sidenav/exchange.png deleted file mode 100644 index a457dc19790..00000000000 Binary files a/src/assets/images/sidenav/exchange.png and /dev/null differ diff --git a/src/assets/images/sidenav/exchange@2x.png b/src/assets/images/sidenav/exchange@2x.png deleted file mode 100644 index 57b0c6cb89d..00000000000 Binary files a/src/assets/images/sidenav/exchange@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/exchange@3x.png b/src/assets/images/sidenav/exchange@3x.png deleted file mode 100644 index d36775a37d1..00000000000 Binary files a/src/assets/images/sidenav/exchange@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fio-address.png b/src/assets/images/sidenav/fio-address.png deleted file mode 100755 index bb091612a19..00000000000 Binary files a/src/assets/images/sidenav/fio-address.png and /dev/null differ diff --git a/src/assets/images/sidenav/fio-address@2x.png b/src/assets/images/sidenav/fio-address@2x.png deleted file mode 100755 index b2d2da39933..00000000000 Binary files a/src/assets/images/sidenav/fio-address@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fio-address@3x.png b/src/assets/images/sidenav/fio-address@3x.png deleted file mode 100755 index 0999ed57d87..00000000000 Binary files a/src/assets/images/sidenav/fio-address@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fioaddress.png b/src/assets/images/sidenav/fioaddress.png deleted file mode 100644 index 16132b24d38..00000000000 Binary files a/src/assets/images/sidenav/fioaddress.png and /dev/null differ diff --git a/src/assets/images/sidenav/fioaddress@2x.png b/src/assets/images/sidenav/fioaddress@2x.png deleted file mode 100644 index 166adafc5c7..00000000000 Binary files a/src/assets/images/sidenav/fioaddress@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fioaddress@3x.png b/src/assets/images/sidenav/fioaddress@3x.png deleted file mode 100644 index 1a44e2db02c..00000000000 Binary files a/src/assets/images/sidenav/fioaddress@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fiorequests.png b/src/assets/images/sidenav/fiorequests.png deleted file mode 100644 index 6a1b4304c47..00000000000 Binary files a/src/assets/images/sidenav/fiorequests.png and /dev/null differ diff --git a/src/assets/images/sidenav/fiorequests@2x.png b/src/assets/images/sidenav/fiorequests@2x.png deleted file mode 100644 index be65b517d3c..00000000000 Binary files a/src/assets/images/sidenav/fiorequests@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/fiorequests@3x.png b/src/assets/images/sidenav/fiorequests@3x.png deleted file mode 100644 index 5dd455dfca8..00000000000 Binary files a/src/assets/images/sidenav/fiorequests@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/logout.png b/src/assets/images/sidenav/logout.png deleted file mode 100755 index 257b8ee7523..00000000000 Binary files a/src/assets/images/sidenav/logout.png and /dev/null differ diff --git a/src/assets/images/sidenav/logout@2x.png b/src/assets/images/sidenav/logout@2x.png deleted file mode 100755 index 2025f9b63f4..00000000000 Binary files a/src/assets/images/sidenav/logout@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/logout@3x.png b/src/assets/images/sidenav/logout@3x.png deleted file mode 100755 index 87a026ac2a4..00000000000 Binary files a/src/assets/images/sidenav/logout@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/receive.png b/src/assets/images/sidenav/receive.png deleted file mode 100644 index 2496a13df1d..00000000000 Binary files a/src/assets/images/sidenav/receive.png and /dev/null differ diff --git a/src/assets/images/sidenav/receive@2x.png b/src/assets/images/sidenav/receive@2x.png deleted file mode 100644 index c1432aa1cf6..00000000000 Binary files a/src/assets/images/sidenav/receive@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/receive@3x.png b/src/assets/images/sidenav/receive@3x.png deleted file mode 100644 index 7521a262c04..00000000000 Binary files a/src/assets/images/sidenav/receive@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/scan.png b/src/assets/images/sidenav/scan.png deleted file mode 100644 index e5f4525a667..00000000000 Binary files a/src/assets/images/sidenav/scan.png and /dev/null differ diff --git a/src/assets/images/sidenav/scan@2x.png b/src/assets/images/sidenav/scan@2x.png deleted file mode 100644 index a223116beb5..00000000000 Binary files a/src/assets/images/sidenav/scan@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/scan@3x.png b/src/assets/images/sidenav/scan@3x.png deleted file mode 100644 index 858a0a39780..00000000000 Binary files a/src/assets/images/sidenav/scan@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/sell.png b/src/assets/images/sidenav/sell.png deleted file mode 100644 index 6237de1c918..00000000000 Binary files a/src/assets/images/sidenav/sell.png and /dev/null differ diff --git a/src/assets/images/sidenav/sell@2x.png b/src/assets/images/sidenav/sell@2x.png deleted file mode 100644 index c02ad923b4a..00000000000 Binary files a/src/assets/images/sidenav/sell@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/sell@3x.png b/src/assets/images/sidenav/sell@3x.png deleted file mode 100644 index e7f8f3909f2..00000000000 Binary files a/src/assets/images/sidenav/sell@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/settings.png b/src/assets/images/sidenav/settings.png deleted file mode 100755 index 6f46648a3a5..00000000000 Binary files a/src/assets/images/sidenav/settings.png and /dev/null differ diff --git a/src/assets/images/sidenav/settings@2x.png b/src/assets/images/sidenav/settings@2x.png deleted file mode 100755 index c1d3587564c..00000000000 Binary files a/src/assets/images/sidenav/settings@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/settings@3x.png b/src/assets/images/sidenav/settings@3x.png deleted file mode 100755 index ecf0a278917..00000000000 Binary files a/src/assets/images/sidenav/settings@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/share.png b/src/assets/images/sidenav/share.png deleted file mode 100644 index e8253c8080a..00000000000 Binary files a/src/assets/images/sidenav/share.png and /dev/null differ diff --git a/src/assets/images/sidenav/share@2x.png b/src/assets/images/sidenav/share@2x.png deleted file mode 100644 index b41c6d79f1d..00000000000 Binary files a/src/assets/images/sidenav/share@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/share@3x.png b/src/assets/images/sidenav/share@3x.png deleted file mode 100644 index 8f273091a89..00000000000 Binary files a/src/assets/images/sidenav/share@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/sweep.png b/src/assets/images/sidenav/sweep.png deleted file mode 100644 index 5bf5bab8817..00000000000 Binary files a/src/assets/images/sidenav/sweep.png and /dev/null differ diff --git a/src/assets/images/sidenav/sweep@2x.png b/src/assets/images/sidenav/sweep@2x.png deleted file mode 100644 index 28c9a2724e9..00000000000 Binary files a/src/assets/images/sidenav/sweep@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/sweep@3x.png b/src/assets/images/sidenav/sweep@3x.png deleted file mode 100644 index 50c51e9ae53..00000000000 Binary files a/src/assets/images/sidenav/sweep@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/terms.png b/src/assets/images/sidenav/terms.png deleted file mode 100644 index bce2d32a26b..00000000000 Binary files a/src/assets/images/sidenav/terms.png and /dev/null differ diff --git a/src/assets/images/sidenav/terms@2x.png b/src/assets/images/sidenav/terms@2x.png deleted file mode 100644 index 96d9133ff17..00000000000 Binary files a/src/assets/images/sidenav/terms@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/terms@3x.png b/src/assets/images/sidenav/terms@3x.png deleted file mode 100644 index fd4f6e353e3..00000000000 Binary files a/src/assets/images/sidenav/terms@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/walletconnect-logo.png b/src/assets/images/sidenav/walletconnect-logo.png deleted file mode 100644 index 32a9c3232f7..00000000000 Binary files a/src/assets/images/sidenav/walletconnect-logo.png and /dev/null differ diff --git a/src/assets/images/sidenav/walletconnect-logo@2x.png b/src/assets/images/sidenav/walletconnect-logo@2x.png deleted file mode 100644 index 25eefd4e3e5..00000000000 Binary files a/src/assets/images/sidenav/walletconnect-logo@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/walletconnect-logo@3x.png b/src/assets/images/sidenav/walletconnect-logo@3x.png deleted file mode 100644 index 3156765bf7e..00000000000 Binary files a/src/assets/images/sidenav/walletconnect-logo@3x.png and /dev/null differ diff --git a/src/assets/images/sidenav/wallets.png b/src/assets/images/sidenav/wallets.png deleted file mode 100644 index ae4c9205d56..00000000000 Binary files a/src/assets/images/sidenav/wallets.png and /dev/null differ diff --git a/src/assets/images/sidenav/wallets@2x.png b/src/assets/images/sidenav/wallets@2x.png deleted file mode 100644 index 22dda56a60c..00000000000 Binary files a/src/assets/images/sidenav/wallets@2x.png and /dev/null differ diff --git a/src/assets/images/sidenav/wallets@3x.png b/src/assets/images/sidenav/wallets@3x.png deleted file mode 100644 index f1d8d580a9c..00000000000 Binary files a/src/assets/images/sidenav/wallets@3x.png and /dev/null differ diff --git a/src/assets/images/slider/keyboard-arrow-left.png b/src/assets/images/slider/keyboard-arrow-left.png deleted file mode 100644 index 403b1bb979e..00000000000 Binary files a/src/assets/images/slider/keyboard-arrow-left.png and /dev/null differ diff --git a/src/assets/images/slider/keyboard-arrow-left@2x.png b/src/assets/images/slider/keyboard-arrow-left@2x.png deleted file mode 100644 index 99830e6d047..00000000000 Binary files a/src/assets/images/slider/keyboard-arrow-left@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy.png b/src/assets/images/tabbar/buy.png deleted file mode 100644 index 64ae0ab5979..00000000000 Binary files a/src/assets/images/tabbar/buy.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy@2x.png b/src/assets/images/tabbar/buy@2x.png deleted file mode 100644 index b8c76d97000..00000000000 Binary files a/src/assets/images/tabbar/buy@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy@3x.png b/src/assets/images/tabbar/buy@3x.png deleted file mode 100644 index 762c0f0fb0a..00000000000 Binary files a/src/assets/images/tabbar/buy@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy_selected.png b/src/assets/images/tabbar/buy_selected.png deleted file mode 100644 index 14513a949af..00000000000 Binary files a/src/assets/images/tabbar/buy_selected.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy_selected@2x.png b/src/assets/images/tabbar/buy_selected@2x.png deleted file mode 100644 index 33967dd1fd3..00000000000 Binary files a/src/assets/images/tabbar/buy_selected@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/buy_selected@3x.png b/src/assets/images/tabbar/buy_selected@3x.png deleted file mode 100644 index a1d66b2e68e..00000000000 Binary files a/src/assets/images/tabbar/buy_selected@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange.png b/src/assets/images/tabbar/exchange.png deleted file mode 100755 index 2fcede25f72..00000000000 Binary files a/src/assets/images/tabbar/exchange.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange@2x.png b/src/assets/images/tabbar/exchange@2x.png deleted file mode 100755 index d06cf1f797b..00000000000 Binary files a/src/assets/images/tabbar/exchange@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange@3x.png b/src/assets/images/tabbar/exchange@3x.png deleted file mode 100755 index f20070e5041..00000000000 Binary files a/src/assets/images/tabbar/exchange@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange_selected.png b/src/assets/images/tabbar/exchange_selected.png deleted file mode 100755 index 0c9e083a455..00000000000 Binary files a/src/assets/images/tabbar/exchange_selected.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange_selected@2x.png b/src/assets/images/tabbar/exchange_selected@2x.png deleted file mode 100755 index 2670ad78724..00000000000 Binary files a/src/assets/images/tabbar/exchange_selected@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/exchange_selected@3x.png b/src/assets/images/tabbar/exchange_selected@3x.png deleted file mode 100755 index 3c48c2448da..00000000000 Binary files a/src/assets/images/tabbar/exchange_selected@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/more.png b/src/assets/images/tabbar/more.png deleted file mode 100755 index 6c3485cb887..00000000000 Binary files a/src/assets/images/tabbar/more.png and /dev/null differ diff --git a/src/assets/images/tabbar/more@2x.png b/src/assets/images/tabbar/more@2x.png deleted file mode 100755 index 2530196a533..00000000000 Binary files a/src/assets/images/tabbar/more@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/more@3x.png b/src/assets/images/tabbar/more@3x.png deleted file mode 100755 index 64e93b44af5..00000000000 Binary files a/src/assets/images/tabbar/more@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/more_selected.png b/src/assets/images/tabbar/more_selected.png deleted file mode 100755 index 9de22399376..00000000000 Binary files a/src/assets/images/tabbar/more_selected.png and /dev/null differ diff --git a/src/assets/images/tabbar/more_selected@2x.png b/src/assets/images/tabbar/more_selected@2x.png deleted file mode 100755 index 548b0f06155..00000000000 Binary files a/src/assets/images/tabbar/more_selected@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/more_selected@3x.png b/src/assets/images/tabbar/more_selected@3x.png deleted file mode 100755 index b5c4fa57678..00000000000 Binary files a/src/assets/images/tabbar/more_selected@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell.png b/src/assets/images/tabbar/sell.png deleted file mode 100644 index b4ed6b97ec7..00000000000 Binary files a/src/assets/images/tabbar/sell.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell@2x.png b/src/assets/images/tabbar/sell@2x.png deleted file mode 100644 index 9d83e97b539..00000000000 Binary files a/src/assets/images/tabbar/sell@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell@3x.png b/src/assets/images/tabbar/sell@3x.png deleted file mode 100644 index 72311443f6f..00000000000 Binary files a/src/assets/images/tabbar/sell@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell_selected.png b/src/assets/images/tabbar/sell_selected.png deleted file mode 100644 index 282953fac8e..00000000000 Binary files a/src/assets/images/tabbar/sell_selected.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell_selected@2x.png b/src/assets/images/tabbar/sell_selected@2x.png deleted file mode 100644 index 8b5c9a17e77..00000000000 Binary files a/src/assets/images/tabbar/sell_selected@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/sell_selected@3x.png b/src/assets/images/tabbar/sell_selected@3x.png deleted file mode 100644 index e4513b452b8..00000000000 Binary files a/src/assets/images/tabbar/sell_selected@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets.png b/src/assets/images/tabbar/wallets.png deleted file mode 100755 index 265a819b3b8..00000000000 Binary files a/src/assets/images/tabbar/wallets.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets@2x.png b/src/assets/images/tabbar/wallets@2x.png deleted file mode 100755 index 09c51253477..00000000000 Binary files a/src/assets/images/tabbar/wallets@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets@3x.png b/src/assets/images/tabbar/wallets@3x.png deleted file mode 100755 index 7b57034afec..00000000000 Binary files a/src/assets/images/tabbar/wallets@3x.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets_selected.png b/src/assets/images/tabbar/wallets_selected.png deleted file mode 100755 index 390c2087141..00000000000 Binary files a/src/assets/images/tabbar/wallets_selected.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets_selected@2x.png b/src/assets/images/tabbar/wallets_selected@2x.png deleted file mode 100755 index 30fb82a9a1a..00000000000 Binary files a/src/assets/images/tabbar/wallets_selected@2x.png and /dev/null differ diff --git a/src/assets/images/tabbar/wallets_selected@3x.png b/src/assets/images/tabbar/wallets_selected@3x.png deleted file mode 100755 index 01ee345180c..00000000000 Binary files a/src/assets/images/tabbar/wallets_selected@3x.png and /dev/null differ diff --git a/src/assets/images/transactions-icon.svg b/src/assets/images/transactions-icon.svg deleted file mode 100755 index 5167ce04f2f..00000000000 --- a/src/assets/images/transactions-icon.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/images/transactions/transaction-details-exchanged.png b/src/assets/images/transactions/transaction-details-exchanged.png deleted file mode 100755 index 50b1446749e..00000000000 Binary files a/src/assets/images/transactions/transaction-details-exchanged.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-exchanged@2x.png b/src/assets/images/transactions/transaction-details-exchanged@2x.png deleted file mode 100755 index 6ad29e078c1..00000000000 Binary files a/src/assets/images/transactions/transaction-details-exchanged@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-exchanged@3x.png b/src/assets/images/transactions/transaction-details-exchanged@3x.png deleted file mode 100755 index 06cbef1b5a1..00000000000 Binary files a/src/assets/images/transactions/transaction-details-exchanged@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-received.png b/src/assets/images/transactions/transaction-details-received.png deleted file mode 100755 index 1ad73bb87f1..00000000000 Binary files a/src/assets/images/transactions/transaction-details-received.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-received@2x.png b/src/assets/images/transactions/transaction-details-received@2x.png deleted file mode 100755 index 3004dbf3db0..00000000000 Binary files a/src/assets/images/transactions/transaction-details-received@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-received@3x.png b/src/assets/images/transactions/transaction-details-received@3x.png deleted file mode 100755 index d5a1bc1ea0b..00000000000 Binary files a/src/assets/images/transactions/transaction-details-received@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-sent.png b/src/assets/images/transactions/transaction-details-sent.png deleted file mode 100755 index 047a0200328..00000000000 Binary files a/src/assets/images/transactions/transaction-details-sent.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-sent@2x.png b/src/assets/images/transactions/transaction-details-sent@2x.png deleted file mode 100755 index 8699610b5da..00000000000 Binary files a/src/assets/images/transactions/transaction-details-sent@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-details-sent@3x.png b/src/assets/images/transactions/transaction-details-sent@3x.png deleted file mode 100755 index 1d93b9dbc2d..00000000000 Binary files a/src/assets/images/transactions/transaction-details-sent@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-exchanged.png b/src/assets/images/transactions/transaction-type-exchanged.png deleted file mode 100755 index 8a5617e7722..00000000000 Binary files a/src/assets/images/transactions/transaction-type-exchanged.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-exchanged@2x.png b/src/assets/images/transactions/transaction-type-exchanged@2x.png deleted file mode 100755 index 4f68efd6d92..00000000000 Binary files a/src/assets/images/transactions/transaction-type-exchanged@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-exchanged@3x.png b/src/assets/images/transactions/transaction-type-exchanged@3x.png deleted file mode 100755 index 99cd8cffd8a..00000000000 Binary files a/src/assets/images/transactions/transaction-type-exchanged@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-received.png b/src/assets/images/transactions/transaction-type-received.png deleted file mode 100755 index 3405dc0c31f..00000000000 Binary files a/src/assets/images/transactions/transaction-type-received.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-received@2x.png b/src/assets/images/transactions/transaction-type-received@2x.png deleted file mode 100755 index b31290f0292..00000000000 Binary files a/src/assets/images/transactions/transaction-type-received@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-received@3x.png b/src/assets/images/transactions/transaction-type-received@3x.png deleted file mode 100755 index 6ebed6bd3e5..00000000000 Binary files a/src/assets/images/transactions/transaction-type-received@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-sent.png b/src/assets/images/transactions/transaction-type-sent.png deleted file mode 100755 index 86e4aaf214c..00000000000 Binary files a/src/assets/images/transactions/transaction-type-sent.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-sent@2x.png b/src/assets/images/transactions/transaction-type-sent@2x.png deleted file mode 100755 index cd6966eba4d..00000000000 Binary files a/src/assets/images/transactions/transaction-type-sent@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transaction-type-sent@3x.png b/src/assets/images/transactions/transaction-type-sent@3x.png deleted file mode 100755 index 3cfac8b1f2c..00000000000 Binary files a/src/assets/images/transactions/transaction-type-sent@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-request.png b/src/assets/images/transactions/transactions-request.png deleted file mode 100755 index 3e90b2e0f04..00000000000 Binary files a/src/assets/images/transactions/transactions-request.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-request@2x.png b/src/assets/images/transactions/transactions-request@2x.png deleted file mode 100755 index 55ff01ec674..00000000000 Binary files a/src/assets/images/transactions/transactions-request@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-request@3x.png b/src/assets/images/transactions/transactions-request@3x.png deleted file mode 100755 index 5dc7b2bf9dd..00000000000 Binary files a/src/assets/images/transactions/transactions-request@3x.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-send.png b/src/assets/images/transactions/transactions-send.png deleted file mode 100755 index d125068cd9c..00000000000 Binary files a/src/assets/images/transactions/transactions-send.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-send@2x.png b/src/assets/images/transactions/transactions-send@2x.png deleted file mode 100755 index 8e46f8308c8..00000000000 Binary files a/src/assets/images/transactions/transactions-send@2x.png and /dev/null differ diff --git a/src/assets/images/transactions/transactions-send@3x.png b/src/assets/images/transactions/transactions-send@3x.png deleted file mode 100755 index 37d8a8669ab..00000000000 Binary files a/src/assets/images/transactions/transactions-send@3x.png and /dev/null differ diff --git a/src/assets/images/tutorials/walletList_sliding_dark.gif b/src/assets/images/tutorials/walletList_sliding_dark.gif deleted file mode 100644 index 33cf229e241..00000000000 Binary files a/src/assets/images/tutorials/walletList_sliding_dark.gif and /dev/null differ diff --git a/src/assets/images/tutorials/walletList_sliding_light.gif b/src/assets/images/tutorials/walletList_sliding_light.gif deleted file mode 100644 index 2a3cf6f0bf8..00000000000 Binary files a/src/assets/images/tutorials/walletList_sliding_light.gif and /dev/null differ diff --git a/src/assets/images/wallet-icon.svg b/src/assets/images/wallet-icon.svg deleted file mode 100755 index 1a9084625f3..00000000000 --- a/src/assets/images/wallet-icon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/theme/variables/edgeDark.ts b/src/theme/variables/edgeDark.ts index 5cfcdd2f636..14d1301cb41 100644 --- a/src/theme/variables/edgeDark.ts +++ b/src/theme/variables/edgeDark.ts @@ -27,7 +27,6 @@ import paymentTypeLogoSofort from '../../assets/images/paymentTypes/paymentTypeL import paymentTypeLogoUpi from '../../assets/images/paymentTypes/paymentTypeLogoUpi.png' import paymentTypeLogoVenmo from '../../assets/images/paymentTypes/paymentTypeLogoVenmo.png' import paymentTypeVisa from '../../assets/images/paymentTypes/paymentTypeVisa.png' -import walletListSlidingTutorial from '../../assets/images/tutorials/walletList_sliding_dark.gif' import { EDGE_CONTENT_SERVER_URI } from '../../constants/CdnConstants' import { textNoShadow, type Theme, themeNoShadow } from '../../types/Theme' import { scale } from '../../util/scaling' @@ -494,7 +493,6 @@ export const edgeDark: Theme = { primaryLogo: edgeLogo, fioAddressLogo, - walletListSlideTutorialImage: walletListSlidingTutorial, guiPluginLogoMoonpay, diff --git a/src/theme/variables/edgeLight.ts b/src/theme/variables/edgeLight.ts index e3c385b0b46..9c48c7507b5 100644 --- a/src/theme/variables/edgeLight.ts +++ b/src/theme/variables/edgeLight.ts @@ -27,7 +27,6 @@ import paymentTypeLogoSofort from '../../assets/images/paymentTypes/paymentTypeL import paymentTypeLogoUpi from '../../assets/images/paymentTypes/paymentTypeLogoUpi.png' import paymentTypeLogoVenmo from '../../assets/images/paymentTypes/paymentTypeLogoVenmo.png' import paymentTypeVisa from '../../assets/images/paymentTypes/paymentTypeVisa.png' -import walletListSlidingTutorial from '../../assets/images/tutorials/walletList_sliding_dark.gif' import { EDGE_CONTENT_SERVER_URI } from '../../constants/CdnConstants' import { textNoShadow, type Theme, themeNoShadow } from '../../types/Theme' import { scale } from '../../util/scaling' @@ -497,7 +496,6 @@ export const edgeLight: Theme = { primaryLogo: edgeLogo, fioAddressLogo, - walletListSlideTutorialImage: walletListSlidingTutorial, guiPluginLogoMoonpay, diff --git a/src/theme/variables/testDark.ts b/src/theme/variables/testDark.ts index d655634bf83..d8bc790c61d 100644 --- a/src/theme/variables/testDark.ts +++ b/src/theme/variables/testDark.ts @@ -27,7 +27,6 @@ import paymentTypeLogoSofort from '../../assets/images/paymentTypes/paymentTypeL import paymentTypeLogoUpi from '../../assets/images/paymentTypes/paymentTypeLogoUpi.png' import paymentTypeLogoVenmo from '../../assets/images/paymentTypes/paymentTypeLogoVenmo.png' import paymentTypeVisa from '../../assets/images/paymentTypes/paymentTypeVisa.png' -import walletListSlidingTutorial from '../../assets/images/tutorials/walletList_sliding_dark.gif' import { EDGE_CONTENT_SERVER_URI } from '../../constants/CdnConstants' import { textNoShadow, type Theme, themeNoShadow } from '../../types/Theme' import { scale } from '../../util/scaling' @@ -494,7 +493,6 @@ export const testDark: Theme = { primaryLogo: edgeLogo, fioAddressLogo, - walletListSlideTutorialImage: walletListSlidingTutorial, guiPluginLogoMoonpay, diff --git a/src/theme/variables/testLight.ts b/src/theme/variables/testLight.ts index d2d8a058d36..d04e57b93ed 100644 --- a/src/theme/variables/testLight.ts +++ b/src/theme/variables/testLight.ts @@ -27,7 +27,6 @@ import paymentTypeLogoSofort from '../../assets/images/paymentTypes/paymentTypeL import paymentTypeLogoUpi from '../../assets/images/paymentTypes/paymentTypeLogoUpi.png' import paymentTypeLogoVenmo from '../../assets/images/paymentTypes/paymentTypeLogoVenmo.png' import paymentTypeVisa from '../../assets/images/paymentTypes/paymentTypeVisa.png' -import walletListSlidingTutorial from '../../assets/images/tutorials/walletList_sliding_dark.gif' import { EDGE_CONTENT_SERVER_URI } from '../../constants/CdnConstants' import { textNoShadow, type Theme, themeNoShadow } from '../../types/Theme' import { scale } from '../../util/scaling' @@ -497,7 +496,6 @@ export const testLight: Theme = { primaryLogo: edgeLogo, fioAddressLogo, - walletListSlideTutorialImage: walletListSlidingTutorial, guiPluginLogoMoonpay, diff --git a/src/types/Theme.ts b/src/types/Theme.ts index 0629d0ef019..f6fb3dab5f5 100644 --- a/src/types/Theme.ts +++ b/src/types/Theme.ts @@ -448,7 +448,6 @@ export interface Theme { primaryLogo: ImageProp fioAddressLogo: ImageProp - walletListSlideTutorialImage: ImageProp guiPluginLogoMoonpay: ImageProp