Commit Graph

219 Commits

Author SHA1 Message Date
Lukas Korba 0819cb6f92
Merge pull request #1114 from LukasKorba/1097-Zashi-iOS-audit-Issue-E
[#1097] Zashi-iOS audit Issue E
2024-03-13 11:35:15 +01:00
Lukas Korba 746b6859a7 [#1097] Zashi-iOS audit Issue E
- copy with expiry time set draft

[#1097] Zashi-iOS audit Issue E

- copy to pasteboard has been removed from recovery phrase seed completely
- copy seed to pasteboard added to the debug menu, please note, the debug menu will not be in production build, issue #1113
2024-03-08 13:31:55 +01:00
Lukas Korba b5a71c7bed [#1106] Zashi-iOS audit Issue G
- storedWallet is no longer held in memory
- unit tests fixed
2024-03-06 16:12:23 +01:00
Lukas Korba 557cae3552 [#1086] Resolve interaction with the keychain for both fore and background app states
- draft

[#1086] Resolve interaction with the keychain for both fore and background app states

- revert

[#1086] Resolve interaction with the keychain for both fore and background app states

- initialization pipeline updated to handle state when BGTask runs with fresh app start, in such case Zashi wait and doesn't try to initialize SDK -> no keychain error is triggered

[#1086] Resolve interaction with the keychain for both fore and background app states

- code cleaned up
- finished the state handling
- closing the BGTask asap for state that is supposed to just wait

[#1086] Resolve interaction with the keychain for both fore and background app states

- unit tests fixed

[#1086] Resolve interaction with the keychain for both fore and background app states (#1091)

- Comments addressed

[#1086] Resolve interaction with the keychain for both fore and background app states (#1091)

- Unit tests fixed
- Block time of didFinishLaunching increased to 0.5s (from 0.02)
2024-03-03 10:09:16 +01:00
Lukas Korba 99e1b12e7d [#931] Statuses of the sync process dependency
- Statuses updated according to the product/design requirements.
2024-02-27 12:56:06 +01:00
Lukas Korba ecc8ec9c1d
Merge pull request #1078 from LukasKorba/1051-Crashlytics-acknowledge
[#1051] Crashlytics acknowledge
2024-02-27 12:52:38 +01:00
Lukas Korba a0a17c6d49 [#1080] Send fields enhancements
- All bullet points from the parent ticket have been resolved
- The keyboard is not decimal one so users don't need to switch to numbers + it reduces cases when users fill in some alphabetical letters + it improved the UX with floating point comma vs. point
- Error handling fixed
- Max amount fix and rely on spendable balance
- Unit tests fixed
2024-02-22 13:47:15 +01:00
Lukas Korba ff5cc09941 [#1051] Crashlytics acknowledge
- Layout changes for the Security warning consent
- The screen has also been refactored to the latest TCA
- Unit tests fixed
2024-02-22 10:04:57 +01:00
Lukas Korba 5a96727b01 [#988] Scan UI
- new layout for the scan screen

[#988] Scan UI

- new layout and design for scan
- camera not authorized case + UI
- scan store refactored to the latest TCA
- unit test fixed

[#988] Scan UI (#1069)

- changelog update
2024-02-22 09:03:42 +01:00
Lukas Korba ef64496739 [#1037] Consolidate back button on the phrase display screen
- ZashiBackModifier updated with a new hidden param. This way it can be controlled by views for dynamic scenarios.
- Reducer updated to latest TCA.
- Unit tests refactored and fixed.

[#1037] Consolidate back button on the phrase display screen

- updated test
2024-02-20 15:25:03 +01:00
Lukas Korba 21cb72dfc9
Merge pull request #1065 from LukasKorba/1056-Redactable-AccountBalance
[#1056] Redactable AccountBalance
2024-02-20 12:10:51 +01:00
Lukas Korba 5afe5fb1dd [#1070] No email account in iPhone error handling
- Alert view message updated
- Copy support email button added to the alert view
- Unit test for the new functionality added

[#1070] No email account in iPhone error handling (#1074)

- empty row comment addressed
2024-02-20 12:02:38 +01:00
Lukas Korba 21412a356b [#1056] Redactable AccountBalance
- AccountBalance has been wrapped into RedactableAccountBalance
- SynchronizerState has been wrapped into RedactableSynchronizerState
- Code updated to use these new redactable structs instead of direct use of unredacted ones
- tests fixed
2024-02-15 12:42:11 +01: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 0faa37c243 [#981] Send button disable check must include the fee
- the fee is now checked and it's coming from the SDK
- unit test checking validity of the form when not enough Zatoshi for the fee has been implemented
- brand new concept of handling the SDK constants inside the TCA has been implemented, will greatly simplify cleanup of all reducers (see #1058)
2024-02-14 12:44:42 +01:00
Lukas Korba 783ed20c20 [#975] Localize the balances
- The Zatoshi decimals have been localized with respect to floating point style
- unit tests fixed + new set of comma tests implemented

[#975] Localize the balances (#1048)

- pre-rebase

[#975] Localize the balances (#1048)

- "<" localized

[#975] Localize the balances (#1048)

- rebased
2024-02-14 11:30:47 +01:00
Lukas Korba 8498cff744 [#1032] Advanced settings
- all buttons moved to appropriate positions and screens
- business logic rewired
- all new texts localized
- changelog updated

[#1032] Advanced settings

- unit tests fixed

[#1032] Advanced settings (#1047)

- separate reducer for advanced settings
2024-02-14 11:12:51 +01:00
Lukas Korba ec6e082938 [#1028] Runtime switch of lightwalletd servers
- prototype of the solution implemented

[#1028] Runtime switch of lightwalletd servers

- error handling done
- localized all new texts
- custom server resolved with all possible parsing states
- persistency of selected server done

[#1028] Runtime switch of lightwalletd servers (#1044)

- changelog update

[#1028] Runtime switch of lightwalletd servers (#1044)

- Unfortunately the compiler has a bug so Circular reference error is not possible to solve, Apple fixed reported issue from October 2023 last week so we should expect fix in Xcode 15.3, beta is released but still no fix. Until that moment I moved placeholders to the view and will move it back to the stores once the issue is resolved

[#1028] Runtime switch of lightwalletd servers (#1044)

- adoption of SDK 2.0.10

[#1028] Runtime switch of lightwalletd servers (#1044)

- comments addressed
2024-02-14 11:10:31 +01:00
Lukas Korba 1f39ce2423 [#1022] Restore UI not activated when app is deleted and reinstalled
- Restore mode in the UI was missing when Zashi was deleted from an iPhone and reinstalled again.
- Syncing bar in the restore mode bottom padding.
2024-02-05 17:02:26 +01:00
Lukas Korba 05364dc3c3 [#1019] Extract sort logic into a function
- reduced duplication of the code by extracting the logic into the transaction itself
2024-02-02 14:57:51 +01:00
Lukas Korba f546c9d8f5 [#932] Pending balances
- adopted new SDK with the AccountBalance values
- unit tests refactored
- use of SynchronizerState refactored
- failed transactions sort changed to put failed around the timestamp it failed (expiredHeight used)

[#932] Pending balances

- SDK version bump

[#932] Pending balances

- changelog updated

[#932] Pending balances

- addressed comments for the sort

[#932] Pending balances (#1018)

- unit tests fixed
- sort updated
2024-02-01 17:50:54 -08:00
Lukas Korba 8ebd310798
[#999] Update support mail metadata (#1001)
- Subject in the mail composer/generator fixed
- unit tests checking the subject + mailto implemented
2024-01-28 19:29:07 -08:00
Lukas Korba 79ab841f75
[#997] Keys missing handling (#1000)
- changelog update
- the keys missing error state has been tweaked to try 3 retry attempts because of unresponsiveness keychain API
- in case of true missing keys, the user is no longer locked on a splash screen but rather let land to the Account tab so the rest of the Zashi can be used
- unit tests fixed + implemented new ones for the 3-attempt retry logic
2024-01-28 19:28:18 -08:00
Lukas Korba b6248fdd3c
[#971] Share QR code (#996)
- UI modified to offer both copy & share in the Balance tab
- share of the QR implemented
- unit tests added
- code cleanup
- changelog update
2024-01-23 20:13:46 +01:00
Lukas Korba a4fc0743c6
[#933] Shielding hint box (#994)
- The hint box implemented
- Snapshot tests extended to cover the hint box case
- Unit tests for show/hide of the hint box implemented
- Code cleanup of the previous design for the hint box
- typeface fix
2024-01-14 17:35:47 +01:00
Lukas Korba 777aab54d5
[#991] Send failed alert not localized (#993)
- The alert metadata fixed
- changelog updated
- new test case for send failure implemented
2024-01-10 13:28:32 +01:00
Lukas Korba b801ac72d7
[#974] Restore of the wallet UI (#989)
The broadcasting technology done, the views can subscribe to the restoring wallet state dependency
The restoring wallet badge implemented + handling of different backgrounds underneath it
Progress of the sync implemented on the Account screen
SyncProgress feature implemented, this new component is used 2 times already in Zashi so it's been separated into its own module (used in balances screen and at home screen when restoring the wallet)
Unit tests fixed + implemented new ones for the restore wallet flag
2024-01-09 19:36:42 +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 79205018a5
[#979] Export private data UX tweaks (#980)
- is acknowledge flag is reseted with every private data screen access
- the export buttons are disabled throughout the whole export + share phase
- the spinner is attached to the button that's exporting
- unit tests for all this new functionality added
- sdk 2.0.5 adopted
- changelog updated
2023-12-15 09:28:05 +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 88715ded04
[#968] Share logs in private data sector (#973)
export of logs from the sdk implemented
the logs have been split into 2 files - verbose and sync specific logs + metrics
changelog updated
SDK dependency adopted
unit tests fixed + added new ones
2023-12-13 11:17:13 +01:00
Lukas Korba 5c1898f5a7
[#963] Sending gets stuck (#964)
- Fixed alert appearance in the view
- Fixed missing memo UI in the confirmation screen
- Created a few more tests to cover new cases
2023-12-04 16:24:47 +01:00
Lukas Korba ad4ac13e86
[#950] Sapling address when testnet build (#959)
- the sapling address and its QR code are present only for the testnet builds
- unit tests resolved and tweaked a bit - TCA actions have been merged into 1 copyToPasteboard
- snapshot tests for both mainnet and testnet version to prove sapling is missing on mainnet
2023-12-04 16:20:51 +01:00
Lukas Korba 8b53ebfc34
[#936] Send confirmation screen UI (#957)
- confirmation screen implemented
- navigation flow implemented instead of just 1 pushed view
- unit tests fixed + added new ones that handles new actions and states
- zashi button modifier extended to offer new options for new states
- changelog update
- snapshot tests
2023-11-30 15:11:58 +01:00
Lukas Korba 26de9e250b
[#930] Newly created transaction (#944)
- the UX of the newly created transaction is improved by inserting the returned transaction immediately to the array of transactions, that way when the account page is accessed, the sending transaction is presented
- unit tests fixed + added new ones
- sending title for the button implemented alongside with the spinner
- changelog updated
2023-11-27 10:26:03 +01:00
Lukas Korba 4f3a5f7270
[#928] Balances screen UI (#942)
- the new layout implemented
- some of the functionality is not done yet because it's not supported in the SDK or some design is still WIP - TODOs added at related places
- result of shielding (the transaction) is automatically added to the list of transactions so the UX is seamless
- localized texts refactored
- unit tests done
2023-11-27 10:04:51 +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 1d8ceb138b
[#918] Omit sapling address (#926)
- the sapling address is no longer on the receive screen
- code cleaned up
- changelog updated
2023-11-22 10:03:00 +01:00
Lukas Korba c76322c0fb
[#922] Batch of ux feedback tweaks (#924)
message (memo) text regular weight, black color
change the color or received message bubble background
no message included... title regular + black
transaction ID (expanded one) regular font + black
expanded address regular font + black
2023-11-21 09:58:00 +01:00
Lukas Korba 4ab2ca0e7c
[#879] BalanceFormatter dependency (#921)
- BalanceFormatter dependency implemented
- ZatoshiRepresantationView implemented, all balances and zatoshi amounts supposed to be rendered should be done via this view
- zatoshi string representation struct implemented, holds all possible states
- unit tests + celanup
2023-11-20 15:07:24 +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 aa726aa9e3
[#898] Feature timestamp is broken in unread logic (#899)
- fixed unread timestamp logic, old transactions are marked as read
- the BUG itself was in the unit test, that's why it got through the testing unnoticed

[#898] Feature timestamp is broken in unread logic (#899)

- reverted the names of the assets
2023-11-13 14:40:09 -07:00
Lukas Korba 50c603278a
[#888] Read and Unread state persistency for transactions (#896)
- implemented CoreData dependency as this is the best choice for the persistency in the end
- update the list only if there's anything new
- fixes + code cleanup
- unit tests & fixes
2023-11-13 11:34:46 +01:00
Lukas Korba e9d8e0fbbb
[#892] Add floating points to the balances (#895)
- the utility that splits the balance into 2 parts: main + rest so it can be rendered separately with different font sizes
- unit tests implemented
- code refactored
- Available balance view helper implemented
- spaces unified for the Home & Send
2023-11-13 11:31:34 +01:00
Lukas Korba 34f0077604
[#887] UI tweaks for transactions on Home (#890)
- Concept of WalletEvents removed and replaced with TransactionState and TransactionList
- UI updated to enable list of transactions and expansion with the details
- Color naming cleanups and refactors
- Conditional font modifier implemented
- Conditional strikethrough modifier implemented
- Title + tests of the title for the transaction implemented
- Color + tests for the title of the transaction implemented
- All texts localized
- tests fot the TCA TransactionList implemented
2023-11-13 11:28:43 +01:00
Lukas Korba 3fa10e5147
[#881] UI tweaks for the latest Zashi (#883)
- Balances tab name (from Details)
- Restore flow - birthday header + optional
- Swipe across tabs to change it
- Splash screen with bigger steps
- Restore flow seed screen, scrollable + nav bar fixes + scroll to see the seed field
- Restore seed box to have a placeholder
- Fix the suggestions for the restore seed editor
- Rectangle around recovery phrase editor is now a shape instead of a full background with padding 1
2023-11-02 10:43:08 +01:00
Lukas Korba 74a2936b26
[#875] Send Screen UI (#882)
- message box (memo) reworked to properly handle text with system suggestions
- cleaned up the focused state
- cleaned up the screen background
- finalized the work on Zashi UI for Send
- unit tests fixed + added new ones that cover updated logic
- fixed next next return logic when transparent address is used and message (memo) box disabled
- scrollable content in the message (memo) box instead of dynamically expanding box
2023-11-02 10:37:38 +01:00
Lukas Korba c15b9558b8
[#885] Export of private data (#886)
- PrivateDataConsent screen implemented where is possible to share the dataDb
- tests fixed + added
2023-11-01 19:38:41 +01:00
Lukas Korba c0d34224c4
[#864] Restore from seed UI (#872)
- fixes for the birthday screen
- layout updated to be scrollable for the seed screen
- code cleanup
- SDK 2.0.3 adopted
- optional placeholder for the birthday
- fixes for the restore flow after a wipe
- clean up of TCA warnings, EffectTask refactored to Effect
2023-10-24 10:38:19 +02:00