Initial commit: Pezkuwi Wallet Android

Security hardened release:
- Code obfuscation enabled (minifyEnabled=true, shrinkResources=true)
- Sensitive files excluded (google-services.json, keystores)
- Branch.io key moved to BuildConfig placeholder
- Updated dependencies: OkHttp 4.12.0, Gson 2.10.1, BouncyCastle 1.77
- Comprehensive ProGuard rules for crypto wallet
- Navigation 2.7.7, Lifecycle 2.7.0, ConstraintLayout 2.1.4
This commit is contained in:
2026-02-12 05:19:41 +03:00
commit a294aa1a6b
7687 changed files with 441811 additions and 0 deletions
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>
@@ -0,0 +1,5 @@
package io.novafoundation.nova.feature_gift_api.di
import io.novafoundation.nova.feature_deep_linking.presentation.handling.DeepLinkHandler
class GiftDeepLinks(val deepLinkHandlers: List<DeepLinkHandler>)
@@ -0,0 +1,13 @@
package io.novafoundation.nova.feature_gift_api.di
import io.novafoundation.nova.feature_gift_api.domain.GiftsAccountSupportedUseCase
import io.novafoundation.nova.feature_gift_api.domain.AvailableGiftAssetsUseCase
interface GiftFeatureApi {
val giftDeepLinks: GiftDeepLinks
val availableGiftAssetsUseCase: AvailableGiftAssetsUseCase
val giftsAccountSupportedUseCase: GiftsAccountSupportedUseCase
}
@@ -0,0 +1,12 @@
package io.novafoundation.nova.feature_gift_api.domain
import io.novafoundation.nova.runtime.multiNetwork.chain.model.Chain
import io.novafoundation.nova.runtime.multiNetwork.chain.model.FullChainAssetId
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
interface AvailableGiftAssetsUseCase {
suspend fun isGiftsAvailable(chainAsset: Chain.Asset): Boolean
fun getAvailableGiftAssets(coroutineScope: CoroutineScope): Flow<Set<FullChainAssetId>>
}
@@ -0,0 +1,14 @@
package io.novafoundation.nova.feature_gift_api.domain
import kotlinx.coroutines.flow.Flow
enum class GiftsSupportedState {
SUPPORTED,
UNSUPPORTED_MULTISIG_ACCOUNTS
}
interface GiftsAccountSupportedUseCase {
suspend fun supportedState(): GiftsSupportedState
fun areGiftsSupportedFlow(): Flow<GiftsSupportedState>
}