Initial commit: Pezkuwi Wallet Android

Complete rebrand of Nova Wallet for Pezkuwichain ecosystem.

## Features
- Full Pezkuwichain support (HEZ & PEZ tokens)
- Polkadot ecosystem compatibility
- Staking, Governance, DeFi, NFTs
- XCM cross-chain transfers
- Hardware wallet support (Ledger, Polkadot Vault)
- WalletConnect v2
- Push notifications

## Languages
- English, Turkish, Kurmanci (Kurdish), Spanish, French, German, Russian, Japanese, Chinese, Korean, Portuguese, Vietnamese

Based on Nova Wallet by Novasama Technologies GmbH
© Dijital Kurdistan Tech Institute 2026
This commit is contained in:
2026-01-23 01:31:12 +03:00
commit 31c8c5995f
7621 changed files with 425838 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
/build
+41
View File
@@ -0,0 +1,41 @@
apply plugin: 'kotlin-parcelize'
apply from: '../tests.gradle'
apply from: '../scripts/secrets.gradle'
android {
defaultConfig {
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
namespace 'io.novafoundation.nova.feature_versions_api'
}
dependencies {
implementation project(':common')
implementation kotlinDep
implementation androidDep
implementation materialDep
implementation constraintDep
implementation coroutinesDep
implementation coroutinesAndroidDep
implementation viewModelKtxDep
implementation liveDataKtxDep
implementation lifeCycleKtxDep
implementation daggerDep
ksp daggerCompiler
implementation lifecycleDep
ksp lifecycleCompiler
}
+21
View File
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest />
@@ -0,0 +1,8 @@
package io.novafoundation.nova.feature_versions_api.di
import io.novafoundation.nova.feature_versions_api.domain.UpdateNotificationsInteractor
interface VersionsFeatureApi {
fun interactor(): UpdateNotificationsInteractor
}
@@ -0,0 +1,42 @@
package io.novafoundation.nova.feature_versions_api.domain
import java.util.Date
class UpdateNotification(
val version: Version,
val changelog: String?,
val severity: Severity,
val time: Date
)
class Version(
val major: Long,
val minor: Long,
val patch: Long
) : Comparable<Version> {
companion object {
fun getComparator(): Comparator<Version> {
return compareBy<Version> { it.major }
.thenBy { it.minor }
.thenBy { it.patch }
}
}
override operator fun compareTo(other: Version): Int {
return getComparator()
.compare(this, other)
}
override fun toString(): String {
return "$major.$minor.$patch"
}
}
enum class Severity {
NORMAL, MAJOR, CRITICAL
}
fun Version.toUnderscoreString(): String {
return "${major}_${minor}_$patch"
}
@@ -0,0 +1,16 @@
package io.novafoundation.nova.feature_versions_api.domain
interface UpdateNotificationsInteractor {
suspend fun waitPermissionToUpdate()
fun allowInAppUpdateCheck()
suspend fun hasImportantUpdates(): Boolean
suspend fun getUpdateNotifications(): List<UpdateNotification>
suspend fun skipNewUpdates()
suspend fun loadVersions()
}
@@ -0,0 +1,8 @@
package io.novafoundation.nova.feature_versions_api.presentation
interface VersionsRouter {
fun openAppUpdater()
fun closeUpdateNotifications()
}