PezkuwiChain requires AuthorizeCall as the first signed extension in
the TxExtension tuple. This commit adds:
- AuthorizeCall.kt: FixedValueTransactionExtension with empty payload
(PhantomData equivalent)
- CustomTransactionExtensions: Detects PezkuwiChain via metadata and
adds AuthorizeCall extension
- ExtrinsicBuilderFactory/ExtrinsicSplitter: Uses CustomTransactionExtensions
Without this fix, transactions fail with "bad signature" errors and
fee calculation (payment_queryInfo) fails with WASM trap errors.
- Added fullSyncByDefault option to all Pezkuwi chains (mainnet, Asset Hub,
People, Zagros) to enable automatic balance sync
- Fixed chain sorting to include Polkadot and Kusama relay chains
- Pezkuwi ecosystem now correctly appears first in network lists
Updated chainId from old testnet genesis to correct mainnet genesis:
- Pezkuwi: bb4a61ab0c4b8c12f5eab71d0c86c482e03a275ecdafee678dea712474d33d75
- Asset Hub parentId: updated to match mainnet
- People Chain parentId: updated to match mainnet
This fixes the issue where wallet was showing 0 balance for accounts
because it was looking for the wrong chain genesis hash.
- Update Pezkuwi launcher icon design for all density buckets
- Resize icons to correct Android dimensions (mdpi to xxxhdpi)
- Add error handling to BalanceDetailViewModel flows to prevent crashes
- Handle RPC failures gracefully with logging instead of crashing
- StatemineAssetBalance: Handle connection errors in queryAccountBalance,
existentialDeposit, subscribeAccountBalanceUpdatePoint, and startSyncingBalance
- NativeAssetBalance: Handle connection errors in all balance query and sync methods
- Return safe defaults (zero balance, empty flows) instead of crashing
- Log errors for debugging without interrupting user experience
- Changed build type from develop (.dev) to debug (.debug)
- Updated Firebase App ID secret reference
- Updated APK paths for debug build
- This aligns with pezkuwi-wallet-debug Firebase project setup
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new debug keystore with unique SHA-1 fingerprint
- Update google-services.json with proper OAuth clients
- Configure debug build to use new keystore
- Both Android OAuth client (type 1) and Web client (type 3) now present
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Delete 19 unused ic_nova_*.png files from drawable folders
- Delete 4 Nova reference files from docs folder
- These files were not referenced anywhere in code
- Update ic_pezkuwi_logo with correct logo from docs
- Update ic_pezkuwi_card_logo with correct card logo
- Update app launcher icons (ic_launcher, ic_launcher_round, ic_launcher_foreground)
- ChainExt.kt and TokenSorting.kt changes for Pezkuwi chain priority
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove 0x prefix from Pezkuwi chainIds to match ChainGeneses constants
- Update chain icons to use pezkuwi-wallet-utils URLs
- Pezkuwi, Asset Hub, People now sorted correctly (0, 1, 2)
- Replace ic_create_wallet_background with Pezkuwi design
- Replace ic_nova_logo with Pezkuwi logo
- Replace drawable_nova_logo with Pezkuwi branding
- Replace ic_nova_card_logo with Pezkuwi card logo
- Update YouTube URL to @SatoshiQazi
- Make crowdloan secrets optional (Acala, Moonbeam) - not needed for own blockchain
- Make fiat on-ramp secrets optional (MoonPay, Mercuryo) - future update
- Keep EVM secrets required (Infura, Etherscan) - for cross-chain support
- Keep WalletConnect required - for dApp connections
- Keep Google OAuth required - for cloud backup
- Use main branch instead of develop
Reverted gradle namespace changes (io.pezkuwichain.wallet -> io.novafoundation.nova)
because they break R class references in Kotlin code.
Internal namespaces are NOT user-visible, so this is acceptable for minimum rebrand.
User-visible elements are all properly branded as Pezkuwi.
Added google-services.json for release variant.