Commit Graph

50 Commits

Author SHA1 Message Date
Lukas Korba fbe119040a Code cleaned up
- This is massive cleanup of all commented code from iOS 16 navigation changes
- A few fixes along the way
2025-04-19 09:47:02 +02:00
Lukas Korba 3b3eae9c83 Wallet backup flow 2025-04-18 16:31:39 +02:00
Lukas Korba ab3226aced Restore Wallet Coord Flow
- Restore wallet flow redesign made as rewired navigation to a whole new flow
2025-04-17 08:29:41 +02:00
Lukas Korba 5ce9b0f5f0 Root subflows Batch 5
- All Keystone send/pay/confirm/shield flows implemented
2025-04-17 08:29:10 +02:00
Lukas Korba 994ca3329a Another batch of updates, settings mostly done, KS flows WIP 2025-04-17 08:21:49 +02:00
Lukas Korba 63e28def20 PoC and first batch of overall re-write 2025-04-17 08:21:07 +02:00
Lukas Korba 2b12b1a2fe More sheet implemented
- a shortcut for the integrations right from the home screen has been implemented and connected to the appropriate functions
2025-04-17 08:20:28 +02:00
Lukas Korba d123edf24b Draft of the new navigation system 2025-04-17 08:20:28 +02:00
Lukas Korba f2ab4c85c9 Final metadata encryption keys code & fixes 2025-03-03 10:57:35 +01:00
Lukas Korba 4918bd610c UserMetadata functionality done
- The UM data load/store logic done
- The UM data reset logic done
- Simple remote backup system and restore from backup implemented
2025-02-24 15:10:44 +01:00
Lukas Korba 1f92b35737 UserMetadata entry point
- UM load the data logic prepared
- Integration's seek icons have an outline now
2025-02-17 12:50:03 +01:00
Lukas Korba bd456cec80 Shared states for transactions and memos
- The logic around transactions have been fully refactored. The data are held by shared state only as a one source of truth
- The same idea has been done for on demand loaded memos
- The TransactionState is no longer required to be updated or copied because it doesn't carry any data and it's only an enriched version of ZcashTransaction.Overview for Zashi purposes
2025-02-17 12:50:03 +01:00
Lukas Korba 25430c323f Delete Zashi logic improved
- the SDK wipe is first with max 3 attempts to retry
- the App wipe is next
- the Keychain data delete is next with max 3 attempts to retry
- new alert view states added for delete stage errors
2025-02-06 13:42:17 +01:00
Lukas Korba c7537a8bd4 Deepling Warning screen dismissal fixed
- The warning screen got replaced by tabs for cold start deepling processing - fixed
2025-02-06 10:22:47 +01:00
Lukas Korba 456d138797 TCA 1.17.1 migration 2025-01-10 12:45:53 +01:00
Lukas Korba cd9c5bfc75 Code cleanup and preparation for the PR 2024-12-16 14:04:07 +01:00
Lukas Korba 7ad3073c65 FFI adoption
- AccountUUID fully adopted
- importAccount by ufvk implemented
- texts localized
2024-12-10 09:12:29 +01:00
Lukas Korba 69368cf088 Zip32AccountIndex adoption 2024-11-26 08:35:44 +01:00
Lukas Korba ce7059a6cc SDK Account adoption
- accountIndex is not used anymore, refactored to SDK's Account
- shared state used so there is only 1 source of truth for the account
- The key for the chacged ABKeys is an Int, this could be a problem in the future
- Zip32Account addopted
2024-11-26 08:35:44 +01:00
Lukas Korba eccaf2a99a [#1419] Status page for keychain read failure
- OSStatusError screen implemented, UI is WIP
- Navigation + detection done
- Mocked failure for now

[#1419] Status page for keychain read failure

- finished UI layout, waiting on ES translation
- added contact support button
2024-11-20 19:18:56 +01:00
Lukas Korba 32a49809cd [#1284] Flexa
- Flexa tested and fixes implemented on our side
- SDK numerator/denominator fixes WIP

[#1284] Flexa

- Total vs. Available balance handling
- Fixed freeze of Zashi by wrapping Flexa code into Task
- Prints cleanup

[#1284] Flexa

- SDK reverted to 2.2.3

[#1284] Flexa

- rebased

[#1284] Flexa

- Initialization moved to the Integrations screen

[#1284] Flexa

- simple feature flaggins system implemented
- flexa is behind the feature flags, hidden in the production & testnet builds, available for internal builds

[#1284] Flexa

- flexa seek logo added to the integrations screen

[#1284] Flexa

- fixes

[#1284] Flexa

- versions bumped up

[#1284] Flexa

- versions cleanup

[#1284] Flexa

- live vs. test Flexa keys support

[#1284] Flexa

- Versions

[#1284] Flexa

- WIP

[#1284] Flexa

- disconnect a user after reset zashi

[#1284] Flexa

- ZEC logo in Flexa
- shielded balance instead of total balance

[#1284] Flexa

- code cleanup
2024-11-12 10:44:18 +01:00
Lukas Korba 5b8b5f0d62
Merge pull request #1402 from LukasKorba/1401-Rescan-in-Zashi-broken-button
[#1401] Rescan in Zashi broken button
2024-11-12 10:41:26 +01:00
Lukas Korba 70feb346af [#1401] Rescan in Zashi broken button
- The navigation to the scanner is no longer blocked
- Changelog updated
2024-11-08 15:04:12 +01:00
Lukas Korba 070f9949d3 [#1390] Send flow with success and error screens
- random illustrations for failed screens
- close failure screen returns a user back to the confirmation screen
- report button sharing failure data + device info
- auto expand the latest transaction when view transaction button is tapped

[#1390] Send flow with success and error screens

- build fixed
2024-11-08 13:21:05 +01:00
Lukas Korba 17542b2877 [#1390] Send flow with success and error screens
- Send flow enhanced to go through sending screen followed by some of the result screens

[#1390] Send flow with success and error screens

- Ilustrations are now randomly picked
- refactor of nuke wallet -> reset zashi
- Flexa account is closed when reset zashi is used
- Resubmission error handling
2024-11-04 21:44:54 +01:00
Lukas Korba b1e790c49e warnings-cleanup
- The Zashi project finally cleaned up and addressed all warnings, as a result, build of the project has a 0 warnings
2024-10-23 19:40:53 +02:00
Lukas Korba 60ec66ee91 [#1375] App launch protected by device authentication method
- authentication added to the app start pipeline
- it's triggered for all fresh app launches
- it's required after 15minutes after cold starts
- recognizes available auth method and reflects it in the UI

[#1375] App launch protected by device authentication method

- final UI for the re-authenticate

[#1375] App launch protected by device authentication method

- Changelog updated
- Texts localized
2024-10-17 20:44:32 +02:00
Lukas Korba 0a603b0dad [#1284] Flexa
- Flexa tested and fixes implemented on our side
- SDK numerator/denominator fixes WIP

[#1284] Flexa

- Total vs. Available balance handling
- Fixed freeze of Zashi by wrapping Flexa code into Task
- Prints cleanup

[#1284] Flexa

- SDK reverted to 2.2.3

[#1284] Flexa

- rebased

[#1284] Flexa

- Initialization moved to the Integrations screen

[#1284] Flexa

- simple feature flaggins system implemented
- flexa is behind the feature flags, hidden in the production & testnet builds, available for internal builds

[#1284] Flexa

- flexa seek logo added to the integrations screen

[#1284] Flexa

- fixes
2024-10-15 20:28:30 +02:00
Lukas Korba e5a1bab10d [#1366] Grid pattern and buttons design update
- Design cleanup, all obsolete buttons have been updated to the new design
- Backgrounds with grid pattern have been removed
- Paddings and borders haven been updated as well so it matches new design

[#1366] Grid pattern and buttons design update

- Added branded colours
- Created base for the branded gradient background
2024-10-05 10:37:55 +02:00
Lukas Korba 510b4c054d [#1358] build Request ZEC flow
- zip321 payment uri is generated in a form or a QR code, can be shared or terminated

[#1358] build Request ZEC flow

- code clean up

[#1358] build Request ZEC flow

- ZecKeyboard fixes or reported issues
- REQUEST title for the whole screen fix
- Padding wixes in the request zec flow

[#1358] build Request ZEC flow

- Consumer part of the request zec implemented
- The code is scanned and dedicated confirmation screen is shown
- When system camera is used, the blocking view is shown
- zcash: scheme activated for Zashi

[#1358] build Request ZEC flow

- The code is finished for the request zec (both generate & scan) except localized texts (it'll be done in a separate PR)

[#1358] build Request ZEC flow

- final UI touches
2024-10-03 17:55:51 +02:00
Lukas Korba 3e704537ad [#1341] add address book feature
- Initial screens for the feature done

[#1341] add address book feature

- partially redesigned to final designs
- edit updated to work without swipe over the contact

[#1341] add address book feature

- Package.resolved updated

[#1341] add address book feature

- Package.resolved update

[#1341] add address book feature

- ZashiButton component done
- Latest design for some screens
- Send screen facelift

[#1341] add address book feature

- Scan view redesigned
- Tweaks of layouts, error handlings for the fields, etc.

[#1341] add address book feature

- Another batch of tweaks and finalizations for Address Book

[#1341] add address book feature

- AddressBook finished, testing starts
- New Zashi internal target added to distribute the app

[#1341] add address book feature

- package update

[#1341] add address book feature

- Testing & Debugging
- fix: card for add new address is always visible
- fix: done button associated with the keyboard is now fully custom solution
- fix: memo field broken input

[#1341] add address book feature

- modifier for the fonts and styles

[#1341] add address book feature

- Modifier for the screen horizontal padding

[#1341] add address book feature

- All Address book texts localized

[#1341] add address book feature

- Archivo removed from the project and all instances replaced with Inter

[#1341] add address book feature

- All images refactored to use DesignSystem's modifiers

[#1341] add address book feature

- fixes + design system refactors
- transaction history revamp

[#1341] add address book feature

- Package.resolve update

[#1341] add address book feature

- Scan screen redesigned

[#1341] add address book feature

- QR code scan navigation fixed

[#1341] add address book feature

- ZashiButton tap area fix
- Auto-focuses in Add New Contact implemented

[#1341] add address book feature

- ScanView design tweaks
- Address is not in address book redesigned to hint that dismisses automatically after 3s

[#1341] add address book feature

- zImage

[#1341] add address book feature

- build fixes
2024-09-27 08:18:48 +02:00
Lukas Korba 37c976499f [#1284] Flexa integration
- implemented POC for server check in Zashi, adopted SDK with the feature

[#1237] Choose the best server by testing responses from multiple server hosts

- Logic has been updated to deliver all requirements
- UI has been upgraded to reflect latest and new design

[#1237] Choose the best server by testing responses from multiple server hosts

- inverted tint if needed implemented for the progress view

[#1237] Choose the best server by testing responses from multiple server hosts

- Rebased

[#937] Shielded transaction UI

- The TransactionState has been extended to handle shielding
- The UI for the transaction row has been extended to handle right states for all types of transactions, newly for shielding, shielded and shielding failed

[#937] Shielded transaction UI

- Rebased and updated to the latest API

[#937] Shielded transaction UI

- WIP

[#937] Shielded transaction UI

- Shileding UI updated to show amount the same way as sent/received
- Shielding UI updated to show ID

[#1337] update UI of the Settings and Advanced Settings screens

- settings WIP

[#1337] update UI of the Settings and Advanced Settings screens

- Changelog updated
- Design is finalized for both Settings and Advanced Settings

design-system

- POC done
- All Colors added/implemented
- first set of variables implemented

design-system

- Color names made unique
- CurrencyConversion screen refactored to use new design system colors
- Currency conversion colors removed from the catalogue

design-system

- Variables made for the Utilities (all of them are missing aliases in Figma so it's just prepared except a few I updated myself)
- ServerSwitch refactored to use design system
- error and primary tint updated to use design system

design-system

- Utility variables finished
- Server switch refactored to the latest design system variables

tca-deprecation-resolution

- All reducers have been updated to use @Reducer macro
- All scopes have been updated to use \. case path
- All destinations have been updated to use new Bindings

tca-deprecation-resolution

- @DependencyClient macro used for all dependencies
- Unit tests fixed

shared-state

- POC

shared-state

- Exchange rate is now handled by TCA's shared state

shared-state

- Hide balances feature has been refactored using TCA's shared state
- It's no longer treated as "hide balances" but rather "hide sensitive data" because we will add a few more things to it besides balances in the near future
- Previous approach with Combine's subject and TCA's dependency have been removed from Zashi

[#1284] Flexa integration

- WIP

[#1284] Flexa integration

- Some progress, I'm able to create an account and pass the verification
- WIP: Dealing with no assets issue

[#1284] Flexa integration

- AccountId used for the start of Flexa

[#1284] Flexa integration

- onTransactionrequest connected to the TCA

[#1284] Flexa integration

- Version bumped to 1.0.1

[#1284] Flexa integration

- Rebased and updated for the latest design

[#1284] Flexa integration

- Settings remade to have a new navigational path for all Integrations, Flexa is among them

[#1284] Flexa integration

- SettingsRow supports a description if needed

[#1284] Flexa integration

- WalletStatus updated to be handled by TCA's Shared state so it can be used to determine when Flexa is available and when it's not

[#1284] Flexa integration

- Handling of restoring status in the integrations

[#1284] Flexa integration

- Payment flow finalized, testing the functionality, cleanup needed

[#1284] Flexa integration

- code cleanup after rebase

[#1284] Flexa integration

- Code cleanup

[#1284] Flexa integration

- Flexa key handled by PartnerKeys

[#1284] Flexa integration

- Accountid generated only once until Zashi is deleted

[#1284] Flexa integration

- Package.resolved

[#1284] Flexa integration

- Version bumped up to 1.0.2
- Total balance ditched and replaced with available balance
- Start of the Flexa uses the latest known balance
2024-09-26 14:10:02 +02:00
Lukas Korba 9fe249ee1b [#1360] Shared state is broken on older ios versions
- Fixes for iOS 16 and older
2024-09-26 12:08:17 +02:00
Lukas Korba 11746dfbfe [#1238] display USD value in addition to ZEC value in the app UI
- WalletBalances now can handle currency conversion with respect to the system's locale settings

[#1238] display USD value in addition to ZEC value in the app UI

- WIP
- the input fields have been completely reworked

[#1238] display USD value in addition to ZEC value in the app UI

- QR scan button is back in the address field

[#1238] display USD value in addition to ZEC value in the app UI

- Prefix views for the inputs implemented
- Titles for the inputs implemented
- Error messages for the inputs implemented

- Hide balances support
- Send Confirmation enhancements

[#1238] display USD value in addition to ZEC value in the app UI

- Confirmation screen shows the currency value defined in the Send screen

[#1238] display USD value in addition to ZEC value in the app UI

- Exchange rate design implemented
- Custom tooltip implemented and used for cases when the rate is not available or stale

[#1238] display USD value in addition to ZEC value in the app UI

- cleanup and last fixes
2024-08-07 09:56:07 +02:00
Lukas Korba 6e07c064d3 [#1302] Upgrade RootReducer to the latest TCA
- Initial draft done

[#1302] Upgrade RootReducer to the latest TCA

- RootReducer has been refactored to the @Reducer Root
- All unit tests have been refactored as well

[#1302] Upgrade RootReducer to the latest TCA

- Code cleanup
2024-06-20 08:17:08 +02:00
Lukas Korba d444b0511b [#1272] Fix all broken unit tests
- Massive refactor and update of all unit tests that addresses work in past few months
2024-06-14 15:56:46 +02:00
Lukas Korba 2f655c2633 [#1021] Do not let iPhone sleep while restoring
- Autolock handler dependency that watches state of the battery and determine plugged or unplugged state of the device
- When app is restoring and pluggedn it, it will no longer sleep

[#1021] Do not let iPhone sleep while restoring

- Final design for the screen
- Logic that prevents iPhone from sleeping while plugged-in and restoring
- Unit tests fixed
- Changelog updated
2024-06-11 13:21:50 +02:00
Lukas Korba 2366a62f43 [#1288] Detect unavailable service and show a dialog
- draft

[#1288] Detect unavailable service and show a dialog

- cleanup

[#1288] Detect unavailable service and show a dialog

- changelog updated

[#1288] Detect unavailable service and show a dialog

- localizations added to the strings file

[#1288] Detect unavailable service and show a dialog

- Restoring badge has been completely redesigned to be a universal wallet status panel
- 3 possible states at the moment: none, restoring and disconnected
- Disconnected state is now tight to the wallet status disconnected, rendered over restoring if needed

[#1288] Detect unavailable service and show a dialog

- changelog updated

[#1288] Detect unavailable service and show a dialog

- code cleanup
- package resolved updated

[#1288] Detect unavailable service and show a dialog (#1289)

- show the dialog only with the transition from any state to disconnected one

[#1288] Detect unavailable service and show a dialog (#1289)

- cleanup

[#1288] Detect unavailable service and show a dialog (#1289)

- latest copy

[#1288] Detect unavailable service and show a dialog (#1289)

- Fixed the case when Zashi's server is down while attempting to recover wallet from a seed
2024-06-05 21:10:19 +02:00
Lukas Korba 88f91380eb [#1029] Not enough free space UI
- The UI has been updated to the latest design
- The values of disc space are provided
- The business logic has changed to react to check every app start or app foreground
- Test has been fixed

[#1029] Not enough free space UI

- Final copy

[#1029] Not enough free space UI (#1170)

- changelog updated
2024-04-04 07:54:57 +02:00
Lukas Korba 9b683651cf [#1058] Cleanup dependency injection in reducers
- All work here is just cleanup of obsolete dependency injection. #981 introduced a brand new approach of DI for token name and SDK constants. That allowed me to deliver expected values directly in the TCA fashion so all reducers no longer needed those values to be passed via initializers.
2024-02-14 14:42:01 +01:00
Lukas Korba 1d60dd3275
[#982] Background syncing (#985)
Background processing task implemented
Doc for the Background Synchronization added
changelog update
custom wifi check
2024-01-08 14:14:48 +01:00
Lukas Korba 9ed49c9a29
[#852] Persistency in onboarding flows (#977)
- check for the confirmed phrase backup implemented, when not confirmed, the phrase is displayed and awaiting user's confirmation
- unit tests added + modified
2023-12-15 09:26:04 +01:00
Lukas Korba 4f06f83274
[#919] Update TODO to link ECC repo instead of secant (#927)
- the links haven been updated to point to the ECC repo
2023-11-22 10:07:48 +01:00
Lukas Korba a8a68852d3
[#902] Adopt TCA version 1 (#920)
- Reducers refactored
- EffectTasks refactored
- WithViewStores refactored
- all side effects refactored to the newest API
- tests refactored to MainActor async ones
- hosting application bypassed so the tests are passing and not flaky
- code cleanup
- snapshot tests with ViewStore bindings work again
- Confirmation dialog refactored, used brand new navigation TCA pattern
- unit tests fixed
2023-11-16 16:10:24 +01:00
Lukas Korba 14c5057eff
[#900] Reset states after wipe of the wallet (#901)
- concept of placeholder states removed finally, replaced with initial states that are production ready
- this change allowed the TCA roto state to simply clear out to initial after nuke/wipe
- code + tests refactored and fixed
- unit tests implemented
2023-11-14 15:33:07 +01:00
Lukas Korba c1190c782e
[#851] Tab bar layout for the home screen (#855)
- concept of tabs implemented, it's the main navigation hub
- home reducer simplified because it no longer plays a role of a navigation hub
- navigation bar titles implemented
- hamburger menu for the settings screen
- balances screen tweaked
- wallet events on home screen instead of a separate screen
- tests fixed
- feature flags removed from the debug menu, no longer used
- semitransparent nav bar implemented
2023-10-13 07:47:04 +02:00
Lukas Korba 4fb80ed89f
[#841] Warning screen (#843)
- custom toggle
- security screen UI and logic finished
- splash screen extended to report completion, this way I can assure it never shows again
- dynamic Zashi version + build implemented into the warning message
2023-10-05 11:30:04 +02:00
Lukas Korba e33ee405ee
[#830] Zashi design buttons (#837)
- all features of the button done
- cleanup of everything that is not part of the design anymore, needed for the colors for the buttons
- zcashStyle used for the buttons
2023-10-04 11:04:22 +02:00
Lukas Korba d972a7834b
[#776] Alerts do not work as expected (#777)
- actions from alerts are now properly propagated
- dismissal of an alert is not clearing out the state
- qrcode icon is now a system one
- swiftgen paths updated
2023-06-22 08:12:33 +02:00
Lukas Korba f1de69f10e
[#767] Modularize batch of features Vol IV (#770)
Following features have been modularized:
- Home
- Root
2023-06-09 10:29:01 +02:00