Commit Graph
82 Commits
Author SHA1 Message Date
Kurdistan Tech Ministry 64d727dd21 fix: 16KB page alignment for all native libraries
- Rebuild renderscript-toolkit.aar from source with NDK 27 and 16KB alignment
- Rebuild libsr25519java.so from substrate-sdk source with 16KB alignment
- Realign libsqlcipher.so ELF segments to 16KB (preserves JNI API compatibility)
- Add jniLibs overrides for sr25519java and sqlcipher to replace AAR versions
- All native .so files now have 0x4000 (16KB) LOAD segment alignment
2026-03-14 18:35:15 +03:00
Kurdistan Tech Ministry 55df31b29b feat: prepare v1.0.3 production release with 16KB page alignment
- Add 16KB page size alignment for native Rust libraries (Google Play requirement)
- Make Play Store workflow parametric (track/status as inputs)
- Update release notes for all languages (en, tr, ku)
- Add .gitignore entries for node_modules and version.properties
2026-03-14 16:49:39 +03:00
Kurdistan Tech Ministry b4932c8b6e chore: bump version to 1.0.2 for Play Store release
Complete Turkish and Kurdish translations for all UI strings.
2026-03-11 06:27:11 +03:00
Kurdistan Tech Ministry 2fe578048b Fix unescaped apostrophes and remaining positional format specifiers in translations 2026-03-11 02:09:20 +03:00
Kurdistan Tech Ministry a91b1cb22b Fix positional format specifiers in English strings.xml 2026-03-11 01:56:24 +03:00
Kurdistan Tech Ministry ed0ffe0a3c Fix positional format specifiers in Kurdish strings.xml 2026-03-11 01:27:45 +03:00
Kurdistan Tech Ministry cc44f22163 fix: use positional format specifiers in Turkish translations
Convert multiple %s to %1$s, %2$s etc. in strings with multiple
substitutions to comply with Android resource format requirements.
2026-03-11 01:19:45 +03:00
Kurdistan Tech Ministry 8bbeddf2ba feat: complete Turkish and Kurdish translations for all UI strings
Turkish: expanded from 55 strings to full 2018 translatable strings
Kurdish: added 2 missing strings for complete coverage
2026-03-11 01:09:50 +03:00
Kurdistan Tech Ministry c965746f8f fix: use commit-count based versionCode to prevent downgrade on Firebase
CI_BUILD_ID was using github.run_number which is per-workflow, causing
different workflows to produce different versionCodes (144 vs 9).
Now computed from git commit count + offset, consistent across all workflows.
Also added bundle task to local auto-increment.
2026-03-10 02:18:55 +03:00
Kurdistan Tech Ministry 8d150266fb fix: detect on-chain dispatch errors for citizenship and staking extrinsics
Switch from submitExtrinsic (fire-and-forget) to submitExtrinsicAndAwaitExecution
which waits for block inclusion and checks ExtrinsicFailed events. Previously the
app showed success even when pallet-level errors occurred (e.g. ReferrerNotCitizen,
AlreadyExists). Now dispatch errors are properly surfaced to the user.
2026-03-09 02:46:49 +03:00
Kurdistan Tech Ministry 44fd64496b feat: add complete Pezkuwi/citizenship translations to all 14 languages
Added (KYC) suffix to Apply&Actions button label in all languages.
Added ~29 missing citizenship and dashboard string keys to 12 languages
that were missing them (ru, es, pt, fr, it, ko, ja, zh-rCN, in, vi, hu, pl).
Added 3 missing dashboard keys to TR and KU.
2026-03-08 23:57:41 +03:00
Kurdistan Tech Ministry 84d0f39f8a fix: replace setFragmentResult with interface callback for citizenship dismiss
setFragmentResult API not available in this project. Use CitizenshipDismissListener
interface instead for parent-child fragment communication.
2026-03-08 19:06:21 +03:00
Kurdistan Tech Ministry 138c0199c9 fix: auto-refresh Pezkuwi dashboard card after actions
Add dashboardRefreshSignal to trigger re-fetch on swipe-to-refresh,
onResume, citizenship bottom sheet dismiss, and score tracking.
Rename button label to "Apply & Actions (KYC)" for clarity.
2026-03-08 17:32:40 +03:00
Kurdistan Tech Ministry cbce1070b4 Bump version to 1.0.1 and add release notes 2026-03-05 16:46:23 +03:00
Kurdistan Tech Ministry ba057617d3 fix: ktlint multiline-if-else braces in PezkuwiDashboardAdapter 2026-03-05 02:40:08 +03:00
Kurdistan Tech Ministry 91f2b5d254 feat: add Start Tracking button for StakingScore on dashboard
Query StakingScore::StakingStartBlock from People Chain to check
tracking status. Show "Start Tracking" button for approved citizens
who haven't opted in yet. Submits start_score_tracking() extrinsic
with loading state and error handling to prevent duplicate calls.
2026-03-05 02:33:31 +03:00
Kurdistan Tech Ministry 6939dfd4c3 Fix auto-pr to not fail when branches are already in sync 2026-03-02 15:08:24 +03:00
Kurdistan Tech Ministry 2177683838 Replace force-push sync with PR-based auto-merge workflow 2026-03-02 14:22:29 +03:00
Kurdistan Tech Ministry 81b0491691 fix: use safe call for nullable String in ifBlank 2026-03-01 22:22:41 +03:00
Kurdistan Tech Ministry 5705d0d578 fix: resolve citizenship bottom sheet not opening on button tap
Event(null) was swallowed by EventObserver's ?.let pattern, preventing
the CitizenshipBottomSheet from opening when tapping dashboard buttons.
Changed to Event("") with ifBlank conversion to preserve null referrer
semantics while ensuring the observer callback fires.
2026-03-01 22:08:19 +03:00
Kurdistan Tech Ministry d33a0a6289 fix: use https telegram link in dashboard share referral button 2026-02-28 04:22:16 +03:00
Kurdistan Tech Ministry 5771fbc10b fix: use https telegram link instead of custom scheme for sharing
Custom scheme pezkuwiwallet:// is not clickable in WhatsApp and
other messaging apps. Use https://t.me/pezkuwichainBot?start=ADDRESS
which is universally clickable and auto-fills the referrer field.
2026-02-28 02:40:06 +03:00
Kurdistan Tech Ministry 66be33c43e fix: disable referrer input when pre-filled from deep link
Prevent user from editing or clearing the referrer address when it
comes from a referral deep link to ensure correct on-chain submission.
2026-02-28 02:00:08 +03:00
Kurdistan Tech Ministry 33c6559a41 fix: connect referral link to blockchain via deep link handler
When Alice shares a referral link, it now generates a deep link URL
(pezkuwiwallet://pezkuwi/open/citizenship?referrer=address) that
auto-opens the citizenship form with Alice's address pre-filled as
the referrer, fixing the bug where referrer defaulted to founder.
2026-02-27 22:11:34 +03:00
Kurdistan Tech Ministry 894e5dac22 fix: prevent staking dashboard hang when exposure flag not cached
isPagedExposuresUsed() called storageCache.getEntry() which suspends
forever if the entry doesn't exist. The flag is only written by
ValidatorExposureUpdater (staking detail flow), so the dashboard
would hang indefinitely waiting for it.

Check cache first with isFullKeyInCache() and default to paged
exposures when the flag is absent. Also remove debug log statements.
2026-02-27 13:41:26 +03:00
Kurdistan Tech Ministry 2d0d46688e fix: save exposure flag for uncertain state to prevent setup screen hang
When neither paged nor legacy exposures exist for the current era,
ValidatorExposureUpdater returned early without saving the
PagedExposuresUsed flag. This caused storageCache.getEntry() to
suspend indefinitely, blocking the staking setup screen.

Save the flag as false for UNCERTAIN state so downstream code
can proceed with empty exposure data instead of hanging.
2026-02-27 04:30:53 +03:00
Kurdistan Tech Ministry 40f1b9bcaa fix: correct Google OAuth client ID and add auth diagnostics
- Updated RELEASE_GOOGLE_OAUTH_ID GitHub secret to use web client ID
  (client_type 3) instead of Android client ID (client_type 1).
  requestIdToken() requires the web/server client ID.
- Added diagnostic logging to Google Sign-In flow to capture exact
  error codes (ApiException statusCode) and OAuth client ID in use.
2026-02-27 00:44:36 +03:00
Kurdistan Tech Ministry ef1c71a320 style: fix ktlint formatting in staking dashboard logs 2026-02-26 23:50:34 +03:00
Kurdistan Tech Ministry 415085b0d5 fix: prevent staking dashboard crash from missing assets
- Replace assets.getValue() with safe access in addPricesToDashboard
  to prevent NoSuchElementException crash that kills the entire
  dashboard flow when any chain asset is missing from the DB
- Log exception details in chain updater catch blocks (was only
  logging chain name, swallowing the actual error)
- Add diagnostic logging to track dashboard item counts and missing
  assets for debugging
2026-02-26 22:38:18 +03:00
Kurdistan Tech Ministry 2374dac2ad fix: prevent staking dashboard infinite loading
- Add maxAttempts parameter to retryUntilDone (default unlimited for
  backward compat), use 5 retries for staking stats fetch
- Catch fetchStakingStats failure in dashboard update system and
  fallback to empty stats instead of hanging forever
- Restore stale scope detection in ComputationalCache so cancelled
  aggregate scopes are recreated instead of returning stale entries
2026-02-26 20:49:12 +03:00
Kurdistan Tech Ministry 853bbf567e fix: auto-detect sdkmanager path for self-hosted runners 2026-02-26 13:38:30 +03:00
Kurdistan Tech Ministry 2462c2b306 fix: resolve CI workflow failures across multiple jobs
- balances_test: update macos-13 → macos-14 (13 no longer supported)
- balances_test: fix null branch ref on schedule triggers
- balances_test: fix typo anroid-results → android-results
- install: fix broken NDK path reference (steps.setup-ndk not defined)
- install: use cmdline-tools/latest instead of hardcoded 16.0
- Created pezkuwichain/balances_test_result repo with gh-pages
- Added ACTIONS_DEPLOY_KEY secret for report deployment
2026-02-26 13:29:43 +03:00
Kurdistan Tech MinistryandClaude Opus 4.6 e43bb7a595 fix: enable full debug symbols in Rust native bindings
Add debug = 2 to release profile in all three Rust binding crates
so AGP can generate native-debug-symbols.zip for Play Store.
Also updated RELEASE_GOOGLE_OAUTH_ID secret to correct Android
client ID (was incorrectly set to Web client type).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 23:24:26 +03:00
Kurdistan Tech Ministry 49bbb8cf51 fix: enable native debug symbols for Play Store
Set strip = false in all Rust binding Cargo.toml files so AGP can
extract debug symbols before stripping for the final APK.
Previously strip = "debuginfo" removed symbols during Rust compilation,
leaving nothing for AGP's debugSymbolLevel = FULL to extract.
2026-02-24 23:06:31 +03:00
Kurdistan Tech Ministry 8da8dd0088 fix: preserve symbol tables in Rust bindings for Play Store debug symbols
Rust Cargo.toml had strip=true which removes ALL symbols including the
symbol table needed by AGP to generate native-debug-symbols.zip for
Play Store. Changed to strip="debuginfo" which keeps symbol tables
(needed for crash symbolication) but removes debug info (keeps .so small).

Also made debugSymbols conditional in distribute workflow so missing
symbols don't fail the upload.
2026-02-24 20:51:08 +03:00
Kurdistan Tech Ministry abc624b57a fix: remove debugSymbols from Play Store upload
Build doesn't generate native debug symbols artifact, causing the
Market publication step to fail with ENOENT. Remove the parameter
to unblock the upload. Debug symbols can be added back when NDK
symbols are actually generated.
2026-02-24 20:45:26 +03:00
Kurdistan Tech Ministry d8810676a6 ci: upload native debug symbols to Play Store
Add native debug symbols artifact to build workflow and download/attach
them in the distribute workflow to resolve Play Console warning.
2026-02-24 20:09:31 +03:00
Kurdistan Tech Ministry e6a087f907 ci: change Play Store track from production to alpha for closed testing 2026-02-24 19:04:01 +03:00
Kurdistan Tech Ministry c30cdf2411 build: add native debug symbols for releaseMarket 2026-02-24 18:20:18 +03:00
Kurdistan Tech Ministry f746697d57 ci: remove unused setvars step from Play Store workflow
The tw3lveparsecs/github-actions-setvars action was loading env vars
from variables/android.env that are never referenced in this workflow.
It caused a build failure when GitHub services were unavailable.
2026-02-24 10:03:33 +03:00
Kurdistan Tech Ministry 94a567c672 fix: prevent crash when DApp address fails SS58/Ethereum decode
Wrap accountId() in runCatching with fallback for addresses that
cannot be decoded as either SS58 or Ethereum format. Prevents
InvalidChecksumException crash when DApp sends an address with
an unrecognized format to the external signing flow.
2026-02-24 09:33:36 +03:00
Kurdistan Tech Ministry e13cb18576 ci: fix Play Store workflow for AAB submission
- Switch from assembleReleaseMarket (APK) to bundleReleaseMarket (AAB)
  Google Play requires AAB for new app submissions since August 2021
- Add bundle and mapping artifact uploads to reusable build workflow
- Fix mapping file path: release → releaseMarket
- Remove debugSymbols (not included in build artifact)
- Remove userFraction (incompatible with draft status)
- Remove whatsnew-ku (Play Store does not support Kurdish locale)
- Add if-no-files-found: ignore to APK upload for bundle-only builds
2026-02-24 08:11:05 +03:00
Kurdistan Tech Ministry 7a1e7d8270 fix: Era type encoding, CheckMortality cleanup, and release log guard
- Add Era AliasTo in PezkuwiPathTypeMapping for correct SCALE encoding
- Remove redundant isPezkuwi CheckMortality logic from ExtrinsicBuilderFactory
  and PolkadotExternalSignInteractor (standard path now works for all chains)
- Remove payload/signature hex logs from PezkuwiKeyPairSigner (security)
- Wrap debug logs with BuildConfig.DEBUG in PezkuwiKeyPairSigner,
  MetadataShortenerService, and WalletConnectSessionsEvent
2026-02-24 04:25:37 +03:00
Kurdistan Tech Ministry 8ed1909dc1 fix: use PezkuwiCheckMortality for WalletConnect sign requests
PolkadotExternalSignInteractor and ExtrinsicSplitter were using standard
CheckMortality which fails with pezsp_runtime DictEnum Era type.
Added isPezkuwiChain detection and routing to custom extensions.
2026-02-23 08:29:51 +03:00
Kurdistan Tech Ministry a1ce3137a1 i18n: add Turkish and Kurdish release notes for Play Store 2026-02-23 02:44:43 +03:00
Kurdistan Tech Ministry 611a55599c ci: switch push workflow from debug to releaseMarket build 2026-02-22 18:11:43 +03:00
Kurdistan Tech Ministry ff19f88323 ci: run CodeQL on self-hosted runner (push only, not PRs) 2026-02-22 16:42:11 +03:00
Kurdistan Tech Ministry 652913da35 ci: mark CodeQL as non-blocking due to runner memory limits 2026-02-22 16:08:01 +03:00
Kurdistan Tech Ministry 8760a0b9da ci: add google-services.json setup to security workflow for CodeQL build 2026-02-22 05:44:03 +03:00
Kurdistan Tech Ministry 61451ca178 ci: fix security workflow - add secrets, install action, remove continue-on-error 2026-02-22 05:36:04 +03:00
Kurdistan Tech Ministry 31e0dcadb7 ci: use shared install action for code-quality workflow (NDK required) 2026-02-22 05:27:31 +03:00
Kurdistan Tech Ministry c794cbe5c4 ci: pass secrets to code-quality workflow and enforce ktlint 2026-02-22 05:25:24 +03:00
Kurdistan Tech Ministry b9fadbe6da fix: remove unused imports to pass ktlint 2026-02-22 05:15:10 +03:00
Kurdistan Tech Ministry 771c9c8877 feat: in-app citizenship application with referral system
- Add CitizenshipBottomSheet with form (name, father, grandfather, mother, tribe, region)
- Submit apply_for_citizenship extrinsic with referrer parameter to People Chain
- Query KYC status from IdentityKyc pallet and show appropriate UI state
- Referrer approval: query Referral + Applications entries, approve pending referrals
- Sign (confirm_citizenship) for applicants after referrer approval
- Share referral link for citizens to invite others
- Dashboard buttons adapt to citizenship status (hide Apply/Sign when approved)
- Balance check (1.1 HEZ) only before new applications, not for sign/approve
- i18n strings for en, tr, ku
2026-02-22 05:04:43 +03:00
Kurdistan Tech Ministry f6dc35b80e i18n: add missing Turkish translations, fix Kurdish action strings
Turkish: add Send, Receive, Buy, Sell, Swap, Bridge and related strings
Kurdish: translate Buy, Sell, Swap, Buy/Sell from English to Kurdish
2026-02-21 23:40:01 +03:00
Kurdistan Tech Ministry 11fd0a5d10 ci: copy PROD google-services.json to all release build types
releaseMarket and releaseGithub build types need their own copy
of the production google-services.json. Without this, the
google-services plugin falls back to the dev config in app/,
causing Google Sign-In to fail on release builds.
2026-02-21 23:07:15 +03:00
Kurdistan Tech Ministry 233d06da12 ci: use release Firebase credential for releaseMarket builds 2026-02-21 21:09:55 +03:00
Kurdistan Tech Ministry 11159e4ba9 ci: add release build support to Firebase distribution workflow
Support both develop and releaseMarket variants via build_variant
input. Release builds are signed with market_key and distributed
to testers for validation before Play Store upload.
2026-02-21 20:14:00 +03:00
Kurdistan Tech Ministry 7dbfc3b85e ci: use CREDENTIAL_FILE_CONTENT for Play Store upload 2026-02-21 19:42:01 +03:00
Kurdistan Tech Ministry 37829e30f0 style: fix ktlint no-multi-spaces violations in BridgeViewModel 2026-02-21 18:46:37 +03:00
Kurdistan Tech Ministry e06c5379dd config: remove staking endpoints from relay chain
Staking lives on Asset Hub, not relay chain. Remove staking and
staking-rewards SubQuery endpoints from relay chain config.
2026-02-21 18:17:02 +03:00
Kurdistan Tech Ministry 7f00c98359 fix: governance voting and default chain selection for Pezkuwi
Add pezpallet_* type paths to SiVoteTypeMapping so ConvictionVoting
vote encoding works on Pezkuwi chains. Set Pezkuwi relay as preferred
default chain for governance and crowdloan screens.
2026-02-20 05:16:04 +03:00
Kurdistan Tech Ministry eb2c6cda55 feat: add copy button to seed phrase backup screen
Allow users to copy their mnemonic phrase to clipboard from the manual
backup screen for easier migration to Welati Telegram mini app.
2026-02-20 05:15:47 +03:00
Kurdistan Tech Ministry 03075104b4 fix: reduce false positives in hardcoded secrets scan 2026-02-19 06:30:18 +03:00
Kurdistan Tech Ministry 3061555485 ci: add Code Quality and Security workflows (ktlint, CodeQL, secret scan) 2026-02-19 05:56:11 +03:00
Kurdistan Tech Ministry 6a16d0a04e config: update chains.json with governance-delegations endpoint 2026-02-19 01:43:27 +03:00
Kurdistan Tech Ministry 359cfb1eb3 fix: correct Welati counter URL to telegram.pezkiwi.app 2026-02-18 07:01:20 +03:00
Kurdistan Tech Ministry 326aa869ed fix: update Welati counter URL to telegram.pezkuwi.app/kurds 2026-02-18 06:58:09 +03:00
Kurdistan Tech Ministry 533aa9e831 feat: replace dashboard image with Welati counter (Hejmara Kurd Le Cihane)
Remove telegram_welcome image from dashboard card, add live Welati
citizen count fetched from kurds-counter API endpoint. Shows formatted
count with "Hejmara Kurd Le Cihane" label in green.
2026-02-18 06:52:01 +03:00
Kurdistan Tech Ministry d7f515aab2 config: update AH SubQuery URL to dedicated endpoint
Asset Hub staking/history/rewards queries now use
subquery.pezkuwichain.io/assethub for correct schema routing
2026-02-18 04:10:13 +03:00
Kurdistan Tech Ministry 14519d7818 Fix Polkadot staking, add USDT bridge, update dashboard card
- Restore staking module to Nova upstream (fix Polkadot ACTIVE/shimmer)
- Add USDT(DOT) <-> USDT(HEZ) bridge option to Buy/Sell screen
- Dashboard card: add telegram_welcome image, info text, Non-Citizen role
- Add non-citizen info text to all 12 locale files
- Simplify ComputationalCache (remove stale scope recreation)
2026-02-18 02:43:53 +03:00
Kurdistan Tech Ministry 9c7bb7c6e9 Prepare for Play Store release: simplify dashboard, clean debug logs
- Simplify dashboard card: remove referral/staking/perwerde fields (not yet on-chain), keep roles + trust score + action button
- Remove all debug Log.d/e/w calls added during development (PEZ_STAKE, RuntimeFactory, ExtrinsicBuilder, etc.)
- Change Play Store track from beta to production
- Add release notes (whatsnew-en-US)
2026-02-17 06:13:59 +03:00
Kurdistan Tech Ministry 93e94cbf15 feat: add Pezkuwi Dashboard card with live People Chain data
- Dashboard card on Assets page showing roles, trust score, referral,
  staking, and perwerde points from People Chain pallets
- Repository queries: Tiki, Trust, Referral, StakingScore, Perwerde
- CachedStakingDetails double map query (RelayChain + AssetHub sources)
- Full i18n support across all 15 locales including new Turkish locale
- "Apply & Actions" button opens Telegram bot
- Staking improvements for split ecosystem multi-endpoint stats
2026-02-17 00:10:23 +03:00
Kurdistan Tech Ministry 9899bb5c40 feat: multi-endpoint staking stats for split ecosystems 2026-02-16 06:16:26 +03:00
Kurdistan Tech Ministry 0a95d04e45 update Pezkuwi genesis hashes for mainnet relaunch
Update all hardcoded chain IDs across XCM, runtime, and wallet modules
to match the new mainnet genesis hashes.
2026-02-15 22:26:12 +03:00
Kurdistan Tech Ministry fa17968108 fix: resolve parentId for Asset Hub staking to relay chain
ValidatorProvider, DirectStakingProperties, and DirectStakingRecommendation
were querying Asset Hub chainId for staking data (validators, exposures,
minStake, maxNominations) but these live on the relay chain. Added
chain.parentId resolution so parachain staking correctly routes to relay.

Also:
- Add VoterBagsList pallet support (Pezkuwi naming)
- Wrap BagListRepository queries in runCatching for binding compat
- Remove debug logging
2026-02-15 22:25:48 +03:00
Kurdistan Tech Ministry ffae9159fe fix: wrap long log line to satisfy ktlint max-line-length 2026-02-14 18:32:09 +03:00
Kurdistan Tech Ministry f253686d10 fix: nomination pool exposure queries route to relay chain, graceful pending_rewards fallback
- StakeSummary and Alerts interactors now query elected exposures from
  relay chain (parentId) instead of parachain for correct staking status
- Pending rewards flow catches missing NominationPoolsApi and emits zero
- Update Telegram link to @pezkuwichainBot
2026-02-14 11:38:44 +03:00
Kurdistan Tech Ministry c461e61895 fix: resolve staking reward calculation for parachain (Asset Hub)
- Use remote RPC instead of local storage for era/exposure queries
- Resolve relay chain via parentId for exposure, totalIssuance, and parachains
- Remove StorageCache dependency, detect paged exposures via runtime metadata
- Add StakingRepository to NominationPoolRewardCalculatorFactory for direct queries
- Use storageOrNull for null-safety on chains without Paras pallet
2026-02-14 05:38:47 +03:00
Kurdistan Tech Ministry 921e6de224 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
2026-02-13 06:45:30 +03:00
Kurdistan Tech Ministry ec250adb07 fix: revert incompatible dependency updates, keep security improvements
- Reverted Navigation to 2.3.1 (2.7.7 has breaking API changes)
- Reverted Lifecycle to 2.2.0 (2.7.0 has breaking API changes)
- Reverted BouncyCastle to 1.70/jdk15on (1.77/jdk18on causes conflicts)
- Kept: OkHttp 4.12.0, Gson 2.10.1, ConstraintLayout 2.1.4
- Kept: minifyEnabled=true, ProGuard rules, Branch.io security
2026-02-12 05:30:22 +03:00
Kurdistan Tech Ministry a294aa1a6b 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
2026-02-12 05:19:41 +03:00