Commit Graph

97 Commits

Author SHA1 Message Date
Dimitris Apostolou a16de79a45
Fix typos (#507) 2023-01-02 12:18:58 -03:00
Lukas Korba 5c306a54a6
[#505] AppTests refactor to RootTests (#506)
- refactor App->Root
- missing tests fixed and todos cleaned up
2022-12-21 08:37:08 +01:00
Lukas Korba d11a67cee1
[#494] Simplification of the AppReducer's body property (#501)
- destination related actions have been isolated
- app/wallet initialization related actions have been isolated
- AppViewStore helpers encapsulating nested actions for the destinations and deeplinking
- destination enum and state moved to separate file as well
2022-12-07 14:47:42 +01:00
Lukas Korba 5847088ce9
[#495] Rename AppStore to avoid conceptual confusions (#503)
- app->root refactor for all instances of prefixes (store, reducer, viewStore, files and folders)
2022-12-07 13:32:06 +01:00
Lukas Korba 8e3544b732
[#499] Refactor Route to Destination (#500)
- Route -> Destination refactor done
- test working
- cleanup of URLRouting usage
2022-12-01 15:31:30 +01:00
Michal Fousek a591ee93ce
[#442] Adopt SDK 0.17.0 (#496)
Fix _URLRouting error on project

Fix: Wallet account identifiers must be sequential on initialization

Adopt async API of SDK

Fixes after rebase

Fix tests
2022-11-22 11:32:48 +01:00
Lukas Korba 665c792808
[#492] Update TCA to 0.46.0 (#493)
- library updated
- overrides for the dependencies are now done in the trailing closures
- some tests were split to so they cover only 1 case (not 2 cases in one test)
- TCA debug trace back again
2022-11-18 11:34:33 +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 35407b804f
[#469] Migrate AppStore to ReducerProtocol (#488)
- AppStore migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-10 18:26:03 +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
Lukas Korba 1e6397b950
[#463] Migrate SendFlow to ReducerProtocol (#486)
- SendFlow migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-08 20:02:55 +01:00
Lukas Korba d758cf4928
[#461] Migrate OnboardingFlow to ReducerProtocol (#485)
- OnboardingFlow migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-08 09:36:42 +01:00
Lukas Korba 7f6c104d28
[#462] Migrate Profile to ReducerProtocol (#484)
- Profile migrated to ReducerProtocol
- unit and snapshot tests fixed
- sandbox feature still works with all the TCA pullback/scope navigation
2022-11-08 09:36:23 +01:00
Lukas Korba 046681efff
[#467] Migrate TransactionAmountTextField to ReducerProtocol (#483)
- TransactionAmountTextField migrated to ReducerProtocol
- unit tests fixed
2022-11-08 09:36:03 +01:00
Lukas Korba be558f00be
[#464] Migrate MultilineTextField to ReducerProtocol (#476)
- MultilineTextField migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-07 11:58:56 +01:00
Lukas Korba 8753c2d883
[#468] Migrate CurrencySelection to ReducerProtocol (#478)
- CurrencySelection migrated to ReducerProtocol
- unit tests fixed
2022-11-07 11:53:39 +01:00
Lukas Korba 02d094904a
[#466] Migrate TransactionAddressTextField to ReducerProtocol (#475)
- TransactionAddressTextField migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-07 11:53:20 +01:00
Lukas Korba 13061e7a1a
[#465] Migrate TCATextField to ReducerProtocol (#474)
- TCATextField migrated to ReducerProtocol
- unit tests fixed
2022-11-05 16:47:11 +01:00
Lukas Korba df61f72459
[#452] Migrate Settings to ReducerProtocol (#459)
- Settings migrated to ReducerProtocol
- unit and snapshot tests fixed
2022-11-05 08:16:10 +01:00
Lukas Korba 410de3bfa2
[#451] Migrate Welcome to ReducerProtocol (#458)
- Welcome migrated to ReducerProtocol
- snapshot test fixed
2022-11-05 08:10:06 +01:00
Lukas Korba 53011ff4c8
[#450] Migrate WalletEvents to ReducerProtocol (#457)
- WalletEvents migrated to ReducerProtocol
- unit and snapshot tests fixed
- some code cleanup, refactor and re-ordered
- WalletEvents refactored to WalletEventsReducer
2022-11-05 07:14:44 +01:00
Lukas Korba d6cb429372
[#449] Migrate Scan to ReducerProtocol (#456)
- Scan migrated to ReducerProtocol
- unit tests fixed
- Reducer postfix added to the reducers
2022-11-05 07:11:25 +01:00
Lukas Korba 1c85264083
[#447] Migrate BalanceBreakdown to ReducerProtocol (#453)
- BalanceBreakdown migrated
- unit and snapshot tests fixed
- some terminology cleanup beyond scope of this task, the dependencies are keys essentially so I refactored all of them to follow the same syntax
- SDKSynchronizer refactored to sdkSynchronizer
2022-11-03 20:26:30 +01:00
Lukas Korba 85bf0c4224
[#448] Migrate ImportWallet to ReducerProtocol (#454)
- ImportWallet migrated
- unit and snapshot tests fixed
- syntax cleanup
2022-11-03 14:40:40 -03:00
Lukas Korba d44eb5ef1b
[#445] Migrate RecoveryPhraseValidationFlowStore to ReducerProtocol (#446)
- RecoveryPhraseValidationFlow migrated to the ReducerProtocol
- unit tests fixed
2022-11-02 13:43:42 -03:00
Lukas Korba f7be225e01
[#441] Migrate RecoveryPhraseDisplayStore to ReducerProtocol (#443)
- RecoveryPhraseDisplay migrated to new TCA's ReducerProtocol
- fixed unit tests
- TODO Ensure that sensitive information can't be logged intentionally or by accident #444
2022-11-01 17:36:37 +01:00
Lukas Korba 46e3d9646b
[#436] Adopt new update of TCA (#438)
- the package version increased
- TestStore's signature has changed so test helper method needed update
- cleanup of warnings
2022-10-11 16:14:26 +02:00
Michal Fousek 91af5782c3
[#82] Add Sending in progress screen (#430)
Closes #82

- Add new `TransactionSendingView` which implements in progress state.
- Copied lottie animation from ECC reference wallet.
- Update routing in send flow to support new screen.
2022-10-03 10:39:40 -03: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
Michal Fousek d807f86d49
[#81] Update Send Confirmation screen (#426)
Closes #81

- Ported ZcashHoldToSendButton from ECC referecne wallet and make it work with TCA. And then use it on Send Confirmation screen.
- Added colors that are used by HoldToSendButton to asset catalogue.
- Update Send confirmation screen look according to designs.
- Ported ZcashCheckCircle from ECC reference wallet and use it on Send confirmation screen.
- Added colors used by CheckCircle to assets catalogue.
- Add test for the case when not including memo in transaction.
- Updated ZcashLightClientKit to 0.16.10-beta to fix transaction failure when memo is nil.
2022-09-27 19:14:52 +02:00
Michal Fousek 6bf65b1d4d
[#25] Add swiftlint rule to detect TODO without issue number (#425)
Closes #25

- Add `todos` swiftlint rule which detects `TODO:` or `FIXME:` without
  ticket number.
- Use `TODO [#<issue number>]:` to not trigger this rule.
- Updated TODOs and FIXMEs which had issue number in different format in
  the code.
2022-09-26 17:30:07 +02:00
Michal Fousek cc7b767a5a
[#379] Show alert before follow a Block explorer link (#423)
Closes #379

- `TransactionDetailView` is updated and instead of `ViewStore` it now has `Store`. `Store` is required to show alert. It's not possible with `ViewStore`.
- There are three more actions added to `WalletEventsFlowAction`. These are used to handle the new alert.
- Block explorer URL is changed to https://zcashblockexplorer.com. New URL scheme is derived from how URLs looks now when some transaction is opened.
2022-09-22 21:20:46 +02:00
Lukas Korba 2ec00beeef
[#409] Rewrite LocalAuthenticationHandler so it supports new concurrency (#410)
- refactored to async/await TCA
- reduced a few dependencies
- removed schedulers
- simplified the code
- cleaned up the tests

[409] Rewrite LocalAuthenticationHandler so it supports new concurrency (410)

- Sendable protocol

[409] Rewrite LocalAuthenticationHandler so it supports new concurrency (410)

- fixed typo
2022-08-17 10:23:31 -03: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
Lukas Korba 558675aced
[408] Reduce dependency on TCA in the dependencies (#413)
Following dependencies refactored to await/async
- RecoveryPhraseValidationFlowReducer
- RecoveryPhraseDisplayStore
- AppStore
- UserPreferencesStorage
- WrappedUserDefaults
which allowed to reduce imports of Combine/TCA
2022-08-17 09:12:15 +02:00
Lukas Korba 4f029e0ba4
[146] [UI Component] multiple line textfield (#400)
- MultiLineTextField Store & View implemented
- memo char limit is set from the zcash sdk environment
- fixed tests
- unit tests for the multiline textfield
- send flow form validity unit tests extended to cover memo char limit
2022-08-02 08:07:03 +02:00
Lukas Korba f064fa868d
[#75] [Scaffold] Settings Screen (#398)
- rescan blockchain feature
- backup phrase feature
- system (biometrics) authentication dependency implemented
- unit tests
- snapshot tests

[75] [Scaffold] Settings Screen

- rescan cleanup

[75] [Scaffold] Settings Screen

- quick and full rescan reset to home screen unit tests

[75] [Scaffold] Settings Screen (398)

- biometrics (touch ID, face ID) preferred, passcode is fallback, when no protection is set, we let users go to the sensitive content
2022-07-21 14:30:02 -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 59650d723d
[#73] [Scaffold] Profile Screen (#386)
- qr code generator
- qr, address and initial buttons in place

[73] [Scaffold] Profile Screen

- address details view placeholder
- navigation to address details view
- custom back
- app build + version from environment

[73] [Scaffold] Profile Screen

- unit tests

[73] [Scaffold] Profile Screen

- snapshot of the profile view

[73] [Scaffold] Profile Screen (386)

- comments resolved
- AppVersionHandler implemented
- sdkVersion also in the UI
- updated profile view design according to MVP requirements

[73] [Scaffold] Profile Screen (386)

- AppVersionHandler added to the repo
2022-07-06 13:54:30 -03:00
Lukas Korba bf6e9bfbb0
[#384] Update to ComposableArchitecture 0.38.2 (#385)
- TCA updated
- tests fixed
2022-07-05 08:16:42 -03: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 cb32ca42a9
[327] Navigation/Routing for the deeplinks (#371)
- The app responds to openURL scheme starting with zcash://
- The currently implemented routes:
home
send :no parameters provided
send: amount
send: amount, address
send: amount, address and memo
- making the DeeplinkManager fully independent from the AppAction
- the app processes the deeplink only when fully capable of (initialized and synced) for now
- unit tests
- support for the zcash:{address} format
2022-06-20 10:11:21 +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
Lukas Korba 05b2d716b1
[342] Take empty validation puzzle snapshot (#355)
- the backup is the whole flow so the implementation covers all screens:
- preamble
- validation with 4 steps to fill in the chips
- success/failure screens
2022-06-14 12:00:08 +02:00
Lukas Korba bd94d13095
[341] Take Phrase Display Snapshots (#354)
- phrase display with mocked data, .demo environment
2022-06-14 11:58:21 +02:00