Redesign: brand-book alignment + forbidden-color purge (v1.1.0) (#3)
* redesign(colors): purge forbidden magenta/purple from palette Brand book permits only the Kurdistan palette (kesk/sor/zer/fire) + navy. Replace the four Nova-legacy violations in common colors.xml (names preserved, so no references break): - crowdloan_banner_gradient_start #BD387F -> #009639 (kesk) - networks_banner_gradient_end #661D78 -> #017A2F (kesk-700) - chip_on_card_background #443679 -> #3D999EC7 (frosted periwinkle) - button_wallet_connect_background #353D67 -> #1F2A4D (neutral navy) Repo-wide grep confirmed no other hardcoded magenta/purple literals or purple/pink-named resources remain. * redesign(type): adopt brand fonts (Space Grotesk / Plus Jakarta Sans / JetBrains Mono) Brand book typography. Add OFL static fonts under common/res/font and repoint the theme font attrs (consumed app-wide via ?attr/font* in styles.xml): - fontRegular -> Plus Jakarta Sans Regular (body/UI) - fontSemiBold -> Plus Jakarta Sans SemiBold - fontBold/ExtraBold -> Space Grotesk Bold (display: balances, titles) - fontExtraLight -> Plus Jakarta Sans Light - Monospace text appearance (addresses/hashes) -> JetBrains Mono Static TTFs chosen (minSdk 24 < variable-font API 26). All five verified to cover Turkish + Kurdish Kurmancî glyphs (ş ğ ı İ ê î û ç …). * redesign(splash): replace map+wordmark logo with Newroz flame brand mark The first-launch splash logo (ic_loading_screen_logo) showed a Kurdistan map with a baked-in wordmark. Per the brand book the mark is the Newroz flame. Rasterized assets/nevroz-fire-flame.svg into the existing 6 density slots (same pixel dimensions = drop-in, no bg_splash.xml change, transparent WebP so it composites cleanly over the splash background). * redesign(onboarding): welcome hero -> Global United States of Pezkuwi Replace the legacy onboarding hero (ic_create_wallet_background, whose six density PNGs had inconsistent broken dimensions) with the brand 'Global United States of Pezkuwi' infographic. Consolidate to a single high-res WebP in drawable-nodpi (1408x768, 204K vs 1.75MB PNG) and switch the welcome ImageView scaleType centerCrop -> fitCenter so it shows full and uncropped above the CTA buttons, per the brand book. * redesign(assets): purge magenta/purple from raster illustrations colors.xml only covers named colors; these raster drawables still carried forbidden magenta/purple/pink pixels. Selectively rotate the 255-350 deg hue band (purple-magenta-pink) toward kesk green/teal across all densities, preserving gradients, shapes and the on-brand blues: - ic_pink_siri, ic_networks_banner_image, ic_no_added_networks, ic_import_option_hardware, tinder_gov (6 densities each). Third-party ic_powered_by_oak (OAK Network trademark) left untouched. crowdloan_banner_image is being handled separately. * redesign(assets): de-pink crowdloan banner across all densities The crowdloan banner's magenta sphere was recolored to brand sor red (xxxhdpi). Propagate that fix to the other five densities by downscaling the corrected xxxhdpi master (LANCZOS), so every device shows the same brand-clean banner. Pink-pixel scan now 0% on all six variants. * chore: remove pre-production debug code (release-blocker) CHANGELOG_PEZKUWI listed debug code to strip before production; two items were still live: - FeeLoaderV2Provider: the fee-retry dialog showed a raw "DEBUG: <err> | Runtime: <diagnostics>" string to users -> reverted to the localized resource string and dropped the diagnostics lookup. - RuntimeFactory: removed the companion lastDiagnostics field and its assignment (plus the now-dangling diagnostic vars), and the matching log line in the PezkuwiLiveTransferTest androidTest. Items #3-#6 were already clean. Repo now has no 'DEBUG:' literals or lastDiagnostics references. CHANGELOG marked cleaned. * docs: add BRAND.md — enforceable wallet brand rules Kurdistan-only palette (no pink/magenta/purple), brand fonts, Newroz flame mark, a PR brand checklist with a raster pink-scan snippet, the third-party-logo exception, and the Apache-2.0 attribution rule (keep LICENSE/NOTICE). Points to the canonical brand book at wiki.pezkuwichain.io/brand. * release: bump versionName to 1.1.0 (brand-book UI redesign) Live Play version is 1.0.4; minor bump for the UI redesign. versionCode stays CI-managed (CI_BUILD_ID). Add the v1.1.0 entry to CHANGELOG_PEZKUWI.
@@ -0,0 +1,89 @@
|
||||
# Pezkuwi Wallet — Brand Rules
|
||||
|
||||
This wallet must stay aligned with the **Pezkuwi brand book**. The canonical,
|
||||
ecosystem-wide source of truth lives on the wiki:
|
||||
**https://wiki.pezkuwichain.io/brand/**. This file is the wallet-specific,
|
||||
enforceable summary — read it before changing any colors, fonts, or imagery.
|
||||
|
||||
## The one hard rule
|
||||
|
||||
> **Only the Kurdistan palette (kesk green, sor red, zer gold, fire orange) plus
|
||||
> navy/neutral are allowed. Pink, magenta and purple are FORBIDDEN — anywhere.**
|
||||
|
||||
This applies to XML colors, Compose `Color(0x…)` literals, vector drawables,
|
||||
gradients, **and raster images** (PNG/WebP banners and illustrations).
|
||||
|
||||
## Palette (source of truth)
|
||||
|
||||
| Token | Hex | | Token | Hex |
|
||||
|-------|-----|-|-------|-----|
|
||||
| kesk (primary) | `#009639` | | base bg | `#05081C` |
|
||||
| kesk-700 | `#017A2F` | | screen bg | `#08090E` |
|
||||
| positive | `#2FC864` | | elevated | `#181920` |
|
||||
| sor (red) | `#E2231A` | | nav | `#0F111A` |
|
||||
| negative | `#E53450` | | text primary | `#E0FFFFFF` |
|
||||
| zer (gold) | `#FDB813` | | text secondary | `#7AFFFFFF` |
|
||||
| warning | `#EBC50A` | | text tertiary | `#52FFFFFF` |
|
||||
| fire (orange) | `#FF7A00` | | periwinkle tint | `#999EC7` @ 10/16/24% |
|
||||
| info | `#2AB0F2` | | | |
|
||||
|
||||
## Typography
|
||||
|
||||
- **Space Grotesk** — display: balances, screen titles, large numbers
|
||||
- **Plus Jakarta Sans** — body / UI text
|
||||
- **JetBrains Mono** — addresses, hashes, block numbers
|
||||
|
||||
All three are OFL-licensed and cover Latin-ext / Turkish / Kurdish Kurmancî
|
||||
glyphs. Fonts live in `common/src/main/res/font/`; the theme maps them via
|
||||
`fontRegular/SemiBold/Bold/ExtraBold/ExtraLight` in `common/.../values/themes.xml`.
|
||||
|
||||
## Brand mark & imagery
|
||||
|
||||
- The brand mark is the **Newroz flame** (`nevroz-fire-*`). Do **not** use the
|
||||
retired Roj-rosette mark or a Kurdistan-map logo anywhere.
|
||||
- First-launch splash uses the Newroz flame (`ic_loading_screen_logo`).
|
||||
- Onboarding hero uses the **Global United States of Pezkuwi** infographic.
|
||||
- Pull chain/token/dapp icons from `pezkuwichain/pezkuwi-wallet-utils`, don't
|
||||
invent art. Keep one outline icon set (2px stroke, round caps).
|
||||
|
||||
## Where colors are defined
|
||||
|
||||
- Named colors: `common/src/main/res/values/colors.xml`
|
||||
- Theme/type: `common/src/main/res/values/themes.xml`, `styles.xml`
|
||||
|
||||
## PR checklist (brand)
|
||||
|
||||
- [ ] No magenta/purple/pink in `colors.xml` (`#BD387F`, `#661D78`, `#443679`, `#FF48A5`, …).
|
||||
- [ ] No `purple`/`magenta`/`pink`-named drawables or Compose color literals.
|
||||
- [ ] Raster assets scanned for pink/magenta pixels (see snippet below); none above noise.
|
||||
- [ ] New text uses the brand font roles; addresses use JetBrains Mono.
|
||||
- [ ] Any new mark is the Newroz flame, not a map/rosette.
|
||||
|
||||
Raster pink scan (run from repo root):
|
||||
|
||||
```python
|
||||
# python3 with Pillow
|
||||
from PIL import Image; import glob
|
||||
def pink(r,g,b): return r>150 and g<110 and b>120 and (r-g)>70
|
||||
for f in glob.glob('**/res/drawable*/*.png',recursive=True)+glob.glob('**/res/drawable*/*.webp',recursive=True):
|
||||
if '/build/' in f: continue
|
||||
im=Image.open(f).convert('RGBA'); im.thumbnail((96,96)); px=im.load(); w,h=im.size; c=t=0
|
||||
for y in range(h):
|
||||
for x in range(w):
|
||||
r,g,b,a=px[x,y]
|
||||
if a<30: continue
|
||||
t+=1; c+=pink(r,g,b)
|
||||
if t and c/t>0.02: print(round(c/t*100,1),'%',f)
|
||||
```
|
||||
|
||||
> Exception: third-party trademark logos (e.g. `ic_powered_by_oak`, OAK Network)
|
||||
> must **not** be recolored — leave them as the owner ships them.
|
||||
|
||||
## Licensing note (important)
|
||||
|
||||
This app is a fork of **Nova Wallet**, licensed under **Apache-2.0**. Apache-2.0
|
||||
lets us fork, rebrand and ship — **but you must KEEP `LICENSE` and `NOTICE`** and
|
||||
their attributions, and state changes. Do **not** delete the attribution (that
|
||||
would breach the license). Removing Nova's *trademark* (name/logo) from the UI is
|
||||
required; preserving the *copyright notice* is also required. The package name
|
||||
`io.novafoundation.nova.app` stays (Play Store identity; not a trademark issue).
|
||||
@@ -5,7 +5,30 @@ Context sıfırlanması durumunda referans olarak kullanılmalıdır.
|
||||
|
||||
---
|
||||
|
||||
## DEBUG KODLARI (Production öncesi KALDIRILMALI)
|
||||
## v1.1.0 — Brand-book UI redesign (2026-06-15)
|
||||
|
||||
Görsel kimlik Pezkuwi marka kitabına hizalandı; iş mantığına dokunulmadı.
|
||||
|
||||
- **Renkler:** colors.xml'deki yasak magenta/mor değerleri marka renkleriyle değiştirildi
|
||||
(isimler korundu). Raster illustration'lardaki pembe/mor pikseller (siri, networks
|
||||
banner, no-added-networks, hardware import, tinder-gov, crowdloan) kesk/teal'e retint
|
||||
edildi. Üçüncü-taraf OAK logosuna dokunulmadı.
|
||||
- **Tipografi:** Public Sans → Space Grotesk (display) + Plus Jakarta Sans (gövde) +
|
||||
JetBrains Mono (adres/hash). TR + Kurmancî glifleri doğrulandı.
|
||||
- **Splash:** Kurdistan-haritalı logo → Newroz alevi marka işareti.
|
||||
- **Onboarding:** welcome hero → "Global United States of Pezkuwi" infografiği (tam/kırpılmadan).
|
||||
- **Hijyen:** production-öncesi debug kodları kaldırıldı (FeeLoader user-facing DEBUG mesajı,
|
||||
RuntimeFactory diagnostics). Brand kuralları için `BRAND.md` eklendi.
|
||||
|
||||
---
|
||||
|
||||
## DEBUG KODLARI — ✅ TEMİZLENDİ (2026-06-15, v1.1.0 öncesi)
|
||||
|
||||
> Aşağıdaki tüm debug kodları production'a çıkmadan kaldırıldı:
|
||||
> #1 FeeLoaderV2Provider (kullanıcıya görünen DEBUG hata mesajı) ve #2 RuntimeFactory
|
||||
> (`lastDiagnostics` + test referansı) bu sürümde temizlendi; #3–#6 zaten kaldırılmıştı.
|
||||
> Doğrulama: repoda `"DEBUG:` literali / `lastDiagnostics` referansı kalmadı.
|
||||
> (Aşağıdaki kayıtlar tarihsel referans içindir.)
|
||||
|
||||
### 1. FeeLoaderV2Provider.kt - Hata mesajı gösterimi
|
||||
**Dosya:** `feature-wallet-api/src/main/java/io/novafoundation/nova/feature_wallet_api/presentation/mixin/fee/v2/FeeLoaderV2Provider.kt`
|
||||
|
||||
@@ -229,9 +229,6 @@ class PezkuwiLiveTransferTest : BaseIntegrationTest() {
|
||||
// Just log the extension names - type access might be restricted
|
||||
Log.d("LiveTransferTest", "Signed extensions count: ${extrinsicMeta.signedExtensions.size}")
|
||||
|
||||
// Log the extrinsic address type if available
|
||||
Log.d("LiveTransferTest", "RuntimeFactory diagnostics: ${io.novafoundation.nova.runtime.multiNetwork.runtime.RuntimeFactory.lastDiagnostics}")
|
||||
|
||||
println("Type resolution results:\n${results.joinToString("\n")}")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
buildscript {
|
||||
ext {
|
||||
// App version
|
||||
versionName = '1.0.4'
|
||||
versionName = '1.1.0'
|
||||
versionCode = 1
|
||||
|
||||
applicationId = "io.pezkuwichain.wallet"
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 343 KiB After Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 208 KiB After Width: | Height: | Size: 200 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 55 KiB |
@@ -1,4 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Pezkuwi Wallet — common/src/main/res/values/colors.xml
|
||||
REDESIGN per Pezkuwi Wallet Design System (brand book).
|
||||
|
||||
This is a DROP-IN replacement for the current file: every color NAME is
|
||||
preserved (so no Kotlin/XML references break), only VALUES change.
|
||||
|
||||
What changed vs. the shipped file — and why:
|
||||
• Purged forbidden Nova-legacy PINK / MAGENTA / PURPLE. The brand permits ONLY
|
||||
the Kurdistan palette (kesk green / sor red / zer gold / fire) + navy/neutral.
|
||||
- crowdloan_banner_gradient_start #BD387F (magenta) -> #009639 (kesk)
|
||||
- networks_banner_gradient_end #661D78 (purple) -> #017A2F (kesk-700)
|
||||
- chip_on_card_background #443679 (purple) -> #3D999EC7 (frosted)
|
||||
• Everything else is unchanged from the already-Kurdistan-themed file.
|
||||
|
||||
Search the file for "REDESIGN:" to see each changed line.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Colors not included in the design system -->
|
||||
<color name="address_icon_background">#eeeeee</color>
|
||||
@@ -44,11 +61,13 @@
|
||||
<color name="staking_type_banner_text_inactive">#52FFFFFF</color>
|
||||
<color name="tinder_gov_banner_secondary_text">#A3FFFFFF</color>
|
||||
|
||||
<color name="crowdloan_banner_gradient_start">#BD387F</color>
|
||||
<!-- REDESIGN: crowdloan banner is now the Newroz-flame gradient (kesk -> fire), not magenta -> orange -->
|
||||
<color name="crowdloan_banner_gradient_start">#009639</color>
|
||||
<color name="crowdloan_banner_gradient_end">#FF7A00</color>
|
||||
|
||||
<!-- REDESIGN: networks banner is now navy -> kesk green, not navy -> purple -->
|
||||
<color name="networks_banner_gradient_start">#00072E</color>
|
||||
<color name="networks_banner_gradient_end">#661D78</color>
|
||||
<color name="networks_banner_gradient_end">#017A2F</color>
|
||||
|
||||
<!-- Icon Colors -->
|
||||
<color name="icon_primary">#E0FFFFFF</color>
|
||||
@@ -70,12 +89,12 @@
|
||||
<color name="bottom_sheet_background">#181920</color>
|
||||
<color name="block_background">#1A999EC7</color>
|
||||
<color name="hided_networks_block_background">#3D999EC7</color>
|
||||
<!-- TODO update name once in design system-->
|
||||
<color name="block_background_dark">#5205081C</color>
|
||||
<color name="cell_background_pressed">#291F78FF</color>
|
||||
<color name="input_background">#1A999EC7</color>
|
||||
<color name="chips_background">#29999EC7</color>
|
||||
<color name="chip_on_card_background">#443679</color>
|
||||
<!-- REDESIGN: was #443679 (purple). Now frosted periwinkle, on-brand. -->
|
||||
<color name="chip_on_card_background">#3D999EC7</color>
|
||||
<color name="container_background">#1A999EC7</color>
|
||||
<color name="token_container_background">#3D08090E</color>
|
||||
<color name="segmented_background">#5208090E</color>
|
||||
@@ -109,7 +128,8 @@
|
||||
<color name="button_background_inactive_on_gradient">#1A999EC7</color>
|
||||
<color name="button_background_inactive">#181920</color>
|
||||
|
||||
<color name="button_wallet_connect_background">#353D67</color>
|
||||
<!-- REDESIGN: WalletConnect button retinted off the indigo #353D67 to a neutral navy. -->
|
||||
<color name="button_wallet_connect_background">#1F2A4D</color>
|
||||
<color name="wallet_connections_background">#101636</color>
|
||||
|
||||
<!-- Border Colors - Kurdistan Green -->
|
||||
@@ -162,4 +182,4 @@
|
||||
<color name="neutral_price_chart_line">#454968</color>
|
||||
<color name="positive_price_chart_line">#2FC864</color>
|
||||
<color name="negative_price_chart_line">#E53450</color>
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
|
||||
<style name="TextAppearance.NovaFoundation.Regular.Monospace">
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:fontFamily">monospace</item>
|
||||
<item name="android:fontFamily">@font/jetbrains_mono_regular</item>
|
||||
</style>
|
||||
|
||||
<!-- Buttons -->
|
||||
|
||||
@@ -30,12 +30,12 @@
|
||||
<item name="textSizeSubHeadline">@dimen/text_size_subheadline</item>
|
||||
<!--text sizes-->
|
||||
|
||||
<!--fonts-->
|
||||
<item name="fontSemiBold">@font/public_sans_semi_bold</item>
|
||||
<item name="fontBold">@font/public_sans_bold</item>
|
||||
<item name="fontExtraBold">@font/public_sans_extra_bold</item>
|
||||
<item name="fontRegular">@font/public_sans_regular</item>
|
||||
<item name="fontExtraLight">@font/public_sans_extra_light</item>
|
||||
<!--fonts: brand book — Plus Jakarta Sans (body) + Space Grotesk (display/bold)-->
|
||||
<item name="fontSemiBold">@font/plus_jakarta_sans_semi_bold</item>
|
||||
<item name="fontBold">@font/space_grotesk_bold</item>
|
||||
<item name="fontExtraBold">@font/space_grotesk_bold</item>
|
||||
<item name="fontRegular">@font/plus_jakarta_sans_regular</item>
|
||||
<item name="fontExtraLight">@font/plus_jakarta_sans_light</item>
|
||||
<!--fonts-->
|
||||
|
||||
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
android:id="@+id/logoImg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_create_wallet_background"
|
||||
app:layout_constraintBottom_toTopOf="@+id/welcomeCreateWalletButton"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
@@ -160,15 +160,11 @@ internal class FeeLoaderV2Provider<F, D>(
|
||||
|
||||
fee.emit(FeeStatus.Error)
|
||||
|
||||
// Show detailed error in retry dialog with runtime diagnostics
|
||||
val diagnostics = try {
|
||||
io.novafoundation.nova.runtime.multiNetwork.runtime.RuntimeFactory.lastDiagnostics
|
||||
} catch (e: Exception) { "N/A" }
|
||||
retryEvent.postValue(
|
||||
Event(
|
||||
RetryPayload(
|
||||
title = resourceManager.getString(R.string.choose_amount_network_error),
|
||||
message = "DEBUG: $errorMsg | Runtime: $diagnostics",
|
||||
message = resourceManager.getString(R.string.choose_amount_error_fee),
|
||||
onRetry = { loadFee(feeConstructor) },
|
||||
onCancel = { }
|
||||
)
|
||||
|
||||
@@ -47,10 +47,6 @@ class RuntimeFactory(
|
||||
private val gson: Gson,
|
||||
private val concurrencyLimit: Int = 1
|
||||
) {
|
||||
companion object {
|
||||
@Volatile
|
||||
var lastDiagnostics: String = "not yet initialized"
|
||||
}
|
||||
|
||||
private val dispatcher = newLimitedThreadPoolExecutor(concurrencyLimit).asCoroutineDispatcher()
|
||||
private val semaphore = Semaphore(concurrencyLimit)
|
||||
@@ -110,11 +106,6 @@ class RuntimeFactory(
|
||||
|
||||
val typeRegistry = TypeRegistry(finalTypes, DynamicTypeResolver(DynamicTypeResolver.DEFAULT_COMPOUND_EXTENSIONS + GenericsExtension))
|
||||
|
||||
// Store diagnostic info for error messages
|
||||
val hasExtrinsicSignature = typeRegistry["ExtrinsicSignature"] != null
|
||||
val hasAddress = typeRegistry["Address"] != null
|
||||
lastDiagnostics = "typesUsage=$typesUsage, ExtrinsicSig=$hasExtrinsicSignature, Address=$hasAddress, typeCount=${finalTypes.size}"
|
||||
|
||||
val runtimeMetadata = VersionedRuntimeBuilder.buildMetadata(metadataReader, typeRegistry)
|
||||
|
||||
ConstructedRuntime(
|
||||
|
||||