prepare release: staking config, proguard fixes, icons and build cleanup

- Add subquery endpoints for staking-rewards, history, staking APIs
- Add identityChain, stakingWiki, pushSupport to chain config
- Remove versionNameSuffix/applicationIdSuffix from releaseMarket build
- Fix privacy/terms URLs to use .html extension
- Strengthen proguard rules for Retrofit, SR25519, Substrate SDK,
  WalletConnect, Google Drive, Navigation and crypto classes
- Update launcher icons for debug and release variants
This commit is contained in:
2026-02-13 06:45:30 +03:00
parent ec250adb07
commit 921e6de224
46 changed files with 186 additions and 57 deletions
-3
View File
@@ -70,9 +70,6 @@ android {
matchingFallbacks = ['release'] matchingFallbacks = ['release']
signingConfig signingConfigs.market signingConfig signingConfigs.market
versionNameSuffix "-${releaseApplicationSuffix}"
applicationIdSuffix ".${releaseApplicationSuffix}"
buildConfigField "String", "BuildType", "\"releaseMarket\"" buildConfigField "String", "BuildType", "\"releaseMarket\""
} }
releaseGithub { releaseGithub {
+100 -4
View File
@@ -24,16 +24,35 @@
-dontwarn kotlinx.coroutines.** -dontwarn kotlinx.coroutines.**
# ============================================================ # ============================================================
# Retrofit & OkHttp # Retrofit & OkHttp (Strict rules for generic type preservation)
# ============================================================ # ============================================================
-dontwarn okhttp3.** -dontwarn okhttp3.**
-dontwarn okio.** -dontwarn okio.**
-dontwarn javax.annotation.** -dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
# Keep Retrofit library
-keep class retrofit2.** { *; } -keep class retrofit2.** { *; }
-keepclassmembers class retrofit2.** { *; }
# Essential attributes for reflection
-keepattributes Signature -keepattributes Signature
-keepattributes Exceptions -keepattributes Exceptions
-keepclasseswithmembers class * { -keepattributes InnerClasses
-keepattributes EnclosingMethod
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations
-keepattributes AnnotationDefault
# Keep ALL interfaces with Retrofit annotations - NO allowshrinking/allowobfuscation
-keep interface * {
@retrofit2.http.* <methods>;
}
# Keep the method signatures including generic types
-keepclasseswithmembers interface * {
@retrofit2.http.* <methods>; @retrofit2.http.* <methods>;
} }
@@ -61,7 +80,8 @@
# ============================================================ # ============================================================
# Native JNI Bindings (Rust) # Native JNI Bindings (Rust)
# ============================================================ # ============================================================
# SR25519 signing # SR25519 signing - keep the native methods and the class
-keep class io.novafoundation.nova.sr25519.BizinikiwSr25519 { *; }
-keep class io.novafoundation.nova.** { native <methods>; } -keep class io.novafoundation.nova.** { native <methods>; }
-keepclasseswithmembernames class * { -keepclasseswithmembernames class * {
native <methods>; native <methods>;
@@ -70,12 +90,41 @@
# Keep all JNI related classes # Keep all JNI related classes
-keep class io.parity.** { *; } -keep class io.parity.** { *; }
# Runtime signers
-keep class io.novafoundation.nova.runtime.extrinsic.signer.** { *; }
# ============================================================ # ============================================================
# Substrate SDK # Substrate SDK
# ============================================================ # ============================================================
-keep class jp.co.soramitsu.** { *; } -keep class jp.co.soramitsu.** { *; }
-dontwarn jp.co.soramitsu.** -dontwarn jp.co.soramitsu.**
# Nova Substrate SDK (io.novasama)
-keep class io.novasama.substrate_sdk_android.** { *; }
-keepclassmembers class io.novasama.substrate_sdk_android.** { *; }
-dontwarn io.novasama.substrate_sdk_android.**
# XXHash library (used by Substrate SDK hashing)
-keep class net.jpountz.** { *; }
-keepclassmembers class net.jpountz.** { *; }
-dontwarn net.jpountz.**
# Keep Schema objects and their delegated properties
-keep class * extends io.novasama.substrate_sdk_android.scale.Schema { *; }
-keepclassmembers class * extends io.novasama.substrate_sdk_android.scale.Schema {
<fields>;
<methods>;
}
# ============================================================
# Secrets & Crypto Classes
# ============================================================
-keep class io.novafoundation.nova.common.data.secrets.** { *; }
-keepclassmembers class io.novafoundation.nova.common.data.secrets.** { *; }
-keep class io.novafoundation.nova.feature_account_impl.data.secrets.** { *; }
-keep class io.novafoundation.nova.feature_account_impl.data.repository.datasource.** { *; }
-keep class io.novafoundation.nova.feature_account_impl.data.repository.addAccount.** { *; }
# ============================================================ # ============================================================
# Firebase # Firebase
# ============================================================ # ============================================================
@@ -116,6 +165,8 @@
-keep class io.novafoundation.nova.**.response.** { *; } -keep class io.novafoundation.nova.**.response.** { *; }
-keep class io.novafoundation.nova.**.request.** { *; } -keep class io.novafoundation.nova.**.request.** { *; }
-keep class io.novafoundation.nova.**.dto.** { *; } -keep class io.novafoundation.nova.**.dto.** { *; }
-keep class io.novafoundation.nova.**.*Remote { *; }
-keep class io.novafoundation.nova.**.*Remote$* { *; }
# ============================================================ # ============================================================
# Parcelable # Parcelable
@@ -153,18 +204,63 @@
# WalletConnect # WalletConnect
# ============================================================ # ============================================================
-keep class com.walletconnect.** { *; } -keep class com.walletconnect.** { *; }
-keepclassmembers class com.walletconnect.** { *; }
-dontwarn com.walletconnect.** -dontwarn com.walletconnect.**
# ============================================================
# Google API Client (Google Drive)
# ============================================================
-keep class com.google.api.** { *; }
-keepclassmembers class com.google.api.** { *; }
-keep class com.google.api.client.** { *; }
-keepclassmembers class com.google.api.client.** { *; }
-keep class com.google.api.services.** { *; }
-keepclassmembers class com.google.api.services.** { *; }
-dontwarn com.google.api.**
# ============================================================
# Navigation Component
# ============================================================
-keep class * extends androidx.navigation.Navigator { *; }
-keep @androidx.navigation.Navigator.Name class * { *; }
-keepnames class * extends androidx.navigation.Navigator
-keepattributes *Annotation*
-keep class androidx.navigation.** { *; }
-keep class * implements androidx.navigation.NavArgs { *; }
-keep class androidx.navigation.fragment.** { *; }
-keep class io.novafoundation.nova.**.navigation.** { *; }
-keep class * extends androidx.navigation.NavDestination { *; }
# Keep all Nova foundation classes (prevent aggressive obfuscation)
-keep class io.novafoundation.nova.** { *; }
-keepnames class io.novafoundation.nova.**
# ============================================================ # ============================================================
# Optimization settings # Optimization settings
# ============================================================ # ============================================================
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*,!method/inlining/*
-optimizationpasses 5 -optimizationpasses 5
-allowaccessmodification -allowaccessmodification
# Don't optimize or obfuscate Retrofit interfaces - critical for type reflection
-keepnames,includedescriptorclasses interface * {
@retrofit2.http.* <methods>;
}
# ============================================================ # ============================================================
# Don't warn about missing classes that we don't use # Don't warn about missing classes that we don't use
# ============================================================ # ============================================================
-dontwarn org.conscrypt.** -dontwarn org.conscrypt.**
-dontwarn org.slf4j.** -dontwarn org.slf4j.**
-dontwarn javax.naming.** -dontwarn javax.naming.**
-dontwarn org.w3c.dom.traversal.**
-dontwarn org.apache.xerces.**
-dontwarn org.apache.xml.**
-dontwarn org.apache.xalan.**
-dontwarn org.ietf.jgss.**
-dontwarn org.apache.http.**
# ByteBuddy (test dependency)
-dontwarn net.bytebuddy.**
-dontwarn com.sun.jna.**
-dontwarn edu.umd.cs.findbugs.annotations.**
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1012 B

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 36 KiB

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/> <background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/> <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon> </adaptive-icon>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+2 -2
View File
@@ -5,8 +5,8 @@ android {
defaultConfig { defaultConfig {
buildConfigField "String", "WEBSITE_URL", "\"https://pezkuwichain.io\"" buildConfigField "String", "WEBSITE_URL", "\"https://pezkuwichain.io\""
buildConfigField "String", "PRIVACY_URL", "\"https://pezkuwichain.io/privacy\"" buildConfigField "String", "PRIVACY_URL", "\"https://pezkuwichain.io/privacy.html\""
buildConfigField "String", "TERMS_URL", "\"https://pezkuwichain.io/terms\"" buildConfigField "String", "TERMS_URL", "\"https://pezkuwichain.io/terms.html\""
buildConfigField "String", "GITHUB_URL", "\"https://github.com/pezkuwichain\"" buildConfigField "String", "GITHUB_URL", "\"https://github.com/pezkuwichain\""
buildConfigField "String", "TELEGRAM_URL", "\"https://t.me/pezkuwichain\"" buildConfigField "String", "TELEGRAM_URL", "\"https://t.me/pezkuwichain\""
buildConfigField "String", "TWITTER_URL", "\"https://twitter.com/pezkuwichain\"" buildConfigField "String", "TWITTER_URL", "\"https://twitter.com/pezkuwichain\""
Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 179 KiB

+83 -47
View File
@@ -2,7 +2,7 @@
{ {
"chainId": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75", "chainId": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75",
"name": "Pezkuwi", "name": "Pezkuwi",
"icon": "HEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/HEZ.svg",
"addressPrefix": 42, "addressPrefix": 42,
"options": [ "options": [
"crowdloans", "crowdloans",
@@ -32,8 +32,24 @@
} }
], ],
"externalApi": { "externalApi": {
"history": [], "staking": [
"staking": [] {
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
],
"staking-rewards": [
{
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
],
"history": [
{
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
]
}, },
"assets": [ "assets": [
{ {
@@ -44,7 +60,7 @@
"priceId": "hezkurd", "priceId": "hezkurd",
"staking": null, "staking": null,
"type": "native", "type": "native",
"icon": "HEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/HEZ.svg",
"buyProviders": {}, "buyProviders": {},
"sellProviders": {}, "sellProviders": {},
"typeExtras": null "typeExtras": null
@@ -55,55 +71,24 @@
"defaultBlockTimeMillis": 6000, "defaultBlockTimeMillis": 6000,
"feeViaRuntimeCall": true, "feeViaRuntimeCall": true,
"disabledCheckMetadataHash": true, "disabledCheckMetadataHash": true,
"stakingMaxElectingVoters": 22500 "stakingMaxElectingVoters": 22500,
} "identityChain": "58269e9c184f721e0309332d90cafc410df1519a5dc27a5fd9b3bf5fd2d129f8",
}, "stakingWiki": "https://wiki.pezkuwichain.io/staking"
{
"chainId": "96eb58af1bb7288115b5e4ff1590422533e749293f231974536dc6672417d06f",
"name": "Zagros Testnet",
"icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/chains/Pezkuwi.png",
"addressPrefix": 42,
"options": [
"testnet"
],
"nodes": [
{
"url": "wss://zagros-rpc.pezkuwichain.io",
"name": "Zagros Node"
}
],
"assets": [
{
"assetId": 0,
"symbol": "HEZ",
"precision": 12,
"name": "HEZkurd",
"priceId": "hezkurd",
"staking": [
"relaychain"
],
"type": "native",
"icon": "HEZ.png"
}
],
"additional": {
"themeColor": "#009639",
"feeViaRuntimeCall": true,
"disabledCheckMetadataHash": true
} }
}, },
{ {
"chainId": "00d0e1d0581c3cd5c5768652d52f4520184018b44f56a2ae1e0dc9d65c00c948", "chainId": "00d0e1d0581c3cd5c5768652d52f4520184018b44f56a2ae1e0dc9d65c00c948",
"parentId": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75", "parentId": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75",
"name": "Pezkuwi Asset Hub", "name": "Pezkuwi Asset Hub",
"icon": "PEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/PEZ.svg",
"addressPrefix": 42, "addressPrefix": 42,
"options": [ "options": [
"swap-hub", "swap-hub",
"assethub-fees", "assethub-fees",
"proxy", "proxy",
"multisig", "multisig",
"fullSyncByDefault" "fullSyncByDefault",
"pushSupport"
], ],
"nodeSelectionStrategy": "roundRobin", "nodeSelectionStrategy": "roundRobin",
"nodes": [ "nodes": [
@@ -120,7 +105,26 @@
"event": "https://explorer.pezkuwichain.io/asset-hub/event/{value}" "event": "https://explorer.pezkuwichain.io/asset-hub/event/{value}"
} }
], ],
"externalApi": {}, "externalApi": {
"staking-rewards": [
{
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
],
"staking": [
{
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
],
"history": [
{
"type": "subquery",
"url": "https://subquery.pezkuwichain.io"
}
]
},
"assets": [ "assets": [
{ {
"assetId": 0, "assetId": 0,
@@ -133,7 +137,7 @@
"nomination-pools" "nomination-pools"
], ],
"type": "native", "type": "native",
"icon": "HEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/HEZ.svg",
"buyProviders": {}, "buyProviders": {},
"sellProviders": {}, "sellProviders": {},
"typeExtras": null "typeExtras": null
@@ -146,7 +150,7 @@
"priceId": "pezkuwi", "priceId": "pezkuwi",
"staking": null, "staking": null,
"type": "statemine", "type": "statemine",
"icon": "PEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/PEZ.svg",
"buyProviders": {}, "buyProviders": {},
"sellProviders": {}, "sellProviders": {},
"typeExtras": { "typeExtras": {
@@ -161,7 +165,7 @@
"priceId": "tether", "priceId": "tether",
"staking": null, "staking": null,
"type": "statemine", "type": "statemine",
"icon": "wUSDT.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/wUSDT.svg",
"buyProviders": {}, "buyProviders": {},
"sellProviders": {}, "sellProviders": {},
"typeExtras": { "typeExtras": {
@@ -221,7 +225,10 @@
"disabledCheckMetadataHash": true, "disabledCheckMetadataHash": true,
"relaychainAsNative": true, "relaychainAsNative": true,
"stakingMaxElectingVoters": 22500, "stakingMaxElectingVoters": 22500,
"timelineChain": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75" "identityChain": "58269e9c184f721e0309332d90cafc410df1519a5dc27a5fd9b3bf5fd2d129f8",
"timelineChain": "bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75",
"defaultBlockTime": 6000,
"stakingWiki": "https://wiki.pezkuwichain.io/staking"
} }
}, },
{ {
@@ -260,7 +267,7 @@
"priceId": "hezkurd", "priceId": "hezkurd",
"staking": null, "staking": null,
"type": "native", "type": "native",
"icon": "HEZ.png", "icon": "https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/main/icons/tokens/colored/HEZ.svg",
"buyProviders": {}, "buyProviders": {},
"sellProviders": {}, "sellProviders": {},
"typeExtras": null "typeExtras": null
@@ -9271,5 +9278,34 @@
"noSubstrateRuntime", "noSubstrateRuntime",
"testnet" "testnet"
] ]
},
{
"chainId": "4b5f95eefedf0d0fb514339edc24d2d411310520f687b4146145bcedb99885b9",
"parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
"name": "Acurast",
"assets": [
{
"assetId": 0,
"symbol": "ACU",
"precision": 12,
"priceId": "acurast",
"icon": "cACU.svg"
}
],
"nodes": [
{
"url": "wss://public-archive.mainnet.acurast.com",
"name": "Acurast node"
}
],
"explorers": [
{
"name": "Acurast Monitoring Bot",
"extrinsic": "https://acurastbot.com/explorer/extrinsics/{hash}",
"account": "https://acurastbot.com/explorer/address/{address}"
}
],
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Acurast.svg",
"addressPrefix": 42
} }
] ]