- 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
- RecoveryPhraseDisplay migrated to new TCA's ReducerProtocol
- fixed unit tests
- TODO Ensure that sensitive information can't be logged intentionally or by accident #444
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.
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.
- 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
- 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
Following dependencies refactored to await/async
- RecoveryPhraseValidationFlowReducer
- RecoveryPhraseDisplayStore
- AppStore
- UserPreferencesStorage
- WrappedUserDefaults
which allowed to reduce imports of Combine/TCA
- 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
- 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
- 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
- recovery phrase randomizer & wrapper
- did finish launching -> initialized wallet test
- cleanup of static dependencies
- did finish launching -> keys missing integration test
- did finish launching -> uninitialized integration test
- database files were missing, mocked to behave like it's available
- key missing test fix, the database files were missing too => mocked to act like being present
- added words counter X/24
- added input for the birthday
- all kinds of validity check implemented
- unit tests for the whole import wallet business logic implemented
[301] Import Wallet does not have a Birthday input field (328)
- support for the birthday to be optional input
[301] Import Wallet does not have a Birthday input field (328)
- Int -> BlockHeight refactor
- scan UI view
- UI representable
- scaffold of scan view
- rect of interest support
- simple URI parser and validator
- tests
[106] [Scaffold] Scan QR Screen
- scan status added
- scan status tests
[106] [Scaffold] Scan QR Screen
- custom back button added
[106] [Scaffold] Scan QR Screen
- fixed typo
[106] [Scaffold] Scan QR Screen (321)
- valid vs. invalid code part of the enum
[106] [Scaffold] Scan QR Screen (321)
- refactor
[106] [Scaffold] Scan QR Screen (321)
- cleanup
[106] [Scaffold] Scan QR Screen (321)
- review comments solved
- some improvements added
- firing the valid qr code after 1s
[106] [Scaffold] Scan QR Screen (321)
- tests fixed
- onAppear test added
- print() cleanup
[106] [Scaffold] Scan QR Screen (321)
- wrapped audio services
- vibrate when QR found
- alphabetical order of environmental parameters
- AVCaptureSession stopRunning explicit call, probably handled by AVCaptureSession itself but I didn't find proof
- QRCodeScanView simplified and cleaned up
[106] [Scaffold] Scan QR Screen (321)
- URIParser added to the project