Commit Graph

44 Commits

Author SHA1 Message Date
Lukas Korba 09db171ed3 Add HW Wallet flow
- Deployment target bumped up to iOS 16
- Account switch navigation bar implemented
- Accounts sheet implemented
- Add Keystone HW wallet flow implemented
2024-11-28 09:41:57 +01: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 006b57fff7 shared-state
- 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

shared-state

- removed unused file

shared-state

- code cleanup

shared-state

- code cleanup

shared-state

- build fixed
2024-09-09 11:35:31 +02:00
Lukas Korba 8a760bdc99 server-checks
- 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

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

tca-deprecation-update

- cleanup

tca-navigation-update

- cleanup of : Reducer

tca-navigation-update

- code cleanup
2024-09-09 10:22:11 +02:00
Lukas Korba 7139a8ef09 [1304] Upgrade HomeReducer to the latest TCA
- HomeReducer has been refactored to @Reducer Home
2024-06-20 10:26:16 +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 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 6e054f5b52 [#1087] Total and available balances component
- The total and available balances have been extracted into separate and fully autonomous component used in 3 independent places (Account, Send and Balances)
- Code massively cleaned up
- Available balance underline logic + redirect to Balances

[#1087] Total and available balances component

- Unit tests fixes

[#1087] Total and available balances component

- tests fixed

[#1087] Total and available balances component

- small fixes and tweaks
2024-04-05 11:52:44 +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 c525105f59 [#1136] Fix flaky tests
- All false positive tests have been resolved. Flakiness of the tests has been fixed by providing unimplemented dependencies to the right Stores.
2024-03-14 12:52:58 +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 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 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 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 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 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 fc4f6ad7f9
[#849] Receive screen (#850)
- Profile screen removed completely, no longer in the designs
- AddressScreen is now directly connected to the receive ZEC button
- redesigned according to new Zashi UI
- localized texts
2023-10-10 13:51:06 +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
Lukas Korba dbc6316766
[#749] Batch of Dependency Packages Vol III (#751)
Finished modules for:

RecoveryPhraseRandomizer
RecoveryPhraseValidationFlow
ReviewRequest
SDKSynchronizer
SecItem
SupportDataGenerator
ZcashSDKEnvironment
UserDefaults
2023-05-31 08:29:32 +02:00
Lukas Korba b142609af9
[#720] User can proceed to send flow without funds (#723)
- the send button is enabled only when some funds are available
- the verified balance used for sufficiency of funds instead of total
- changed the pending transaction logic and split into sending/receiving instead
- code cleanup of unused CancelId
- UI cleanup, detail of receiving transaction rendered "to" prefix with no address

[#720] User can proceed to send flow without funds (#723)

- totalBalance -> totalSpendableBalance
- improved code syntax for the conditions in TransactionState deciding the status
2023-05-17 11:31:08 -03:00
Lukas Korba 041a630412
[#707] Adopt latest SDK (#708)
- TransactionState simplified and adopted to the latest ZcashTransaction
- WalletEvent simplified
- sendTransaction updated to the async/await
- unit tests fixed
2023-05-09 07:20:33 -03:00
Lukas Korba fe1e7b758c
[#705] Transaction detail lacks memo and addresses (#706)
- synchronizer's protocol cleaned up
- latest SDK adopted
- memos back toincleared transactions
- recipient back in cleared transactions
- unit tets fixed
- pending transaction memos are back
- recieved recipients no longer available, removed from the UI
2023-04-27 19:27:58 +02:00
Lukas Korba a727f49817
[#265] Integrate App Rating Alert (#703)
- async adaptations of the latest sdk
- review request TCA dependency added
- set of rules for the triggering the app rating dialog
- unit tests fixed
- unit tests for the review request client
- app review request logic disconnected from the production for now (added the TODO for the triggering)
2023-04-06 08:06:49 +02:00
Lukas Korba 702b71103b
[#682] Adopt removal of the Notification center on the SDK side (#687)
- secant is buildable again, notifications replaced by publishers
- tests WIP
- all unit tests fixed
- syntax of dependencies consolidated
- syntax of .send and .receive states consolidated
2023-03-21 11:03:42 +01:00
Michal Fousek 5ce87b18a9
[#654] Convert SDKSynchronizerDependency to regular TCA dependency (#672)
Closes #654

- `SDKSynchronizerClient` is now regular TCA dependency like any other
  dependency that we have in the app.
2023-03-15 09:53:16 +01:00
Michal Fousek 6c77e0901b
[#595] Visbility of fiat conversion on homeage depends on feature flag (#625)
Closes #595
2023-03-07 18:03:37 +01:00
Lukas Korba 49d858d22a
[#557] Nav Changes (#602)
- previous profile screen connected to the receive ZEC button
- receive ZEC is now simplified to show only QR code + UA with small "i" icon leading to address details
- profile's UA address copy to pasteboard added
- home's settings button connected to settings screen
- settings screen updated, test crash report and rescan blockchain moved to debug menu
- root reducer's debug code move to a separate file
- unit tests updated + debug tests provided
2023-03-02 15:24:32 +01:00
Lukas Korba 1988d30540
[#559] Remove the circular progress bar from home screen (#572)
- draft of the removal, home screen updated

[#559] Remove the circular progress bar from home screen

- circular area removed
- snapshot tests of the circular area removed
- home screen simplified
2023-02-23 13:42:48 -03:00
Lukas Korba 93b1b8c01f
[#564] Add transaction history as standalone screen (#569)
- the transaction history is now separated
- unit tests fixed
- snapshot test updated
2023-02-22 14:50:59 +01:00
Lukas Korba f946de15bb
[#444] Ensure that sensitive information can't be logged intentionally or by accident (#536)
- SensitiveData file holding utilities to hide all strings and data that holds information we don't want to leak or log
- wallet storage fields redacted
- import wallet fields redacted
- create wallet chips redacted
- import wallet reducer changed: BindableStates replaced by bindings to bridge redacted data
- redacted wallet balance
- redacted birthday value (BlockHeight helper)
- Redacted protocol conforming to Undescribable for release/production and testflight builds
- new target for the unredacted debug development
- unit tests fixed
- sensitive data helpers commented
- unit test for conformation to the Undescribable
- memo is redacted
- immutability of redactable structs
- log test capped to look for 6mins at most
2023-02-13 20:32:50 +01:00
Lukas Korba fdd6ff19c0
[#516] Adopt unreleased changes that will go live with SDK 0.18.0-beta release (#532)
- all issues refactored
- previous transactions replaced by new data type from the SDK
- unit tests fixed
2023-02-06 09:38:34 +01:00
Lukas Korba c8b97a8266
[#490] Consolidation of TCA dependencies - 2nd batch (#491)
- all dependencies are now consolidated
- cleanup of dependencies
- getting rid of all .live instances in the tests
- all dependencies use mocked or noOp instances
2022-11-17 12:25:55 +01:00
Lukas Korba 7839d56977
[#477] Consolidation of TCA dependencies (#489)
- DiskSpaceChecker dependency consolidated
- DatabaseFiles dependency consolidated
- DeeplinkHandler dependency consolidated
- AudioServices dependency consolidated
- CaptureDevuice dependency consolidated
- DerivationTool dependency consolidated
- AppVersionHandler dependency consolidated
- LocalAuthentication dependency consolidated
- all unit and snapshot tests work again
2022-11-14 19:36:51 +01:00
Lukas Korba 50f5faea06
[#470] Migrate Home to ReducerProtocol (#487)
- Home migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-09 10:30:40 +01:00
Michal Fousek ad575b8173
[#427] Add not enough disk space screen (#429)
Closes #427

- This is scaffold work for #427. Logic is done and some basic UI.
- Logic that works with free disk space is in `DiskSpaceChecker`. Use
  `WrappedDiskSpaceChecker` to get live or mocked instances of `DiskSpaceChecker`.
- You can either use `mockEmptyDisk` which mocks situation when there
  is enough space on disk.
- Or you can use `mockFullDisk` to mock situation when there isn't enough space on disk.
2022-09-30 15:49:07 +02:00
Lukas Korba 368f95e7a7
[#224] [Scaffold] Balance Breakdown (#412)
- full screen cover for the balance breakdown
- clearing out the background so we can do semi transparency
- bindings for the full screen cover

[224] [Scaffold] Balance Breakdown

- draft of UI

[224] [Scaffold] Balance Breakdown

- latest block business logic
- mocked auto shielding threshold
- unit tests
- snapshot tests

[224] [Scaffold] Balance Breakdown (412)

- comments resolved
- bigger refactor of the synchronizer, taking advantage of SynchronizerState being reported every time .synced pass
- unit tests fixed and refactored

[224] [Scaffold] Balance Breakdown (412)

- ClearBackgroundView documented, reference to the proposed solution added
2022-08-17 10:22:35 -03:00
Francisco Gindre 63554b7408
[#394] adopt ZcashLightClientKit 0.16.x-beta (#397)
Closes #394

This removes Zatoshi and Balance from the wallet codebase and relies on
the types present on the SDK.

point to master
2022-07-19 15:56:46 -03:00
Lukas Korba 5b158b9e72
[#102] [Functional] Full Wallet History
- initial frame connected to available data (progress)
- zboto balance
- $ balance
- inner / outer progress logic
- isDownloading and isUpToDate controls added
- outer circle parametrical solution implemented
- unit tests fixed
- SyncStatusSnapshot implemented
- snapshot tests

[102] [Functional] Full Wallet History

- latest design updates
- solved issue with the List and accessory views

[102] [Functional] Full Wallet History

- fixes for the 'all' button
- reduced actions for the detail binding

[102] [Functional] Full Wallet History

- padding fixes (all events are visible)
- home screen drawer's height set to show 3 events on screen

[102] [Functional] Full Wallet History

- final UI for all states of transaction for rows
- Lottie package added
- Lottie animation for the pending transaction added

[102] [Functional] Full Wallet History

- snapshot tests cleaned up and refactored
- snapshotting all 4 types of transaction wallet events rows (sent, pending, received, failed)

[102] [Functional] Full Wallet History (393)

- Rubik fonts

[102] [Functional] Full Wallet History (393)

- leading padding fixed
- UITableView appearance moved to onAppear()

[153] [Scaffold] Progress Status Circular Bar (#389)

- rebased
2022-07-08 15:27:18 -03:00
Lukas Korba 282fdbcdf0
[153] [Scaffold] Progress Status Circular Bar (#389)
- initial frame connected to available data (progress)
- zboto balance
- $ balance
- inner / outer progress logic
- isDownloading and isUpToDate controls added
- outer circle parametrical solution implemented
- unit tests fixed
- SyncStatusSnapshot implemented
- snapshot tests
2022-07-08 16:49:31 +02:00
Lukas Korba 3d615a32d8
[#362] [scaffold] Pending Transaction Details (#381)
- transaction detail has been cut into pieces that can be composed to various versions of the detail
- handling all 4 cases (sent, received, pending, failed)

[362] [scaffold] Pending Transaction Details

- confirmations counting
- pending transaction status fixed

[362] [scaffold] Pending Transaction Details

- tests fixed

[362] [scaffold] Pending Transaction Details

- failed transactions

[362] [scaffold] Pending Transaction Details (381)

- snapshot tests

[362] [scaffold] Pending Transaction Details (381)

- comments resolved
2022-06-30 08:59:03 -03:00
Lukas Korba df2c721d32
[96] [Scaffold] Received Transaction Details (#378)
- the view holding all requested (mocked) data is prepared
- copy to pasteboard implemented
- deeplink 'reply-to' memo implemented
- view online implemented and button visible only when the URL is valid
- asset colors for the texts
- unit tests
- snapshot tests
2022-06-28 09:38:08 +02:00
Lukas Korba e321114214
[98] [Scaffold] Full Wallet History (#376)
- concept of activities instead of transactions
- the drawer is now fully universal and data driven, rendering some View, going to some detail View
- unit tests work again
- refactor of Activity -> WalletEvent
- WalletEvent view builders simplified
- transactions & wallet events timestamps instead of Date type
- review comments resolved
- missing 'Transactions' terms updated to 'WalletEvents'
2022-06-23 11:05:34 +02:00
Lukas Korba 270a21668a
[346] Take Synced home screen snapshot (#356)
- home snapshot with mocked data
- also in the full history view
2022-06-14 12:01:51 +02:00