- 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
- 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
- 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
- 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
- The reducer has been refactored
- The Bindings have been refactored to not use deprecated API
- View has been refactored to not rely on ViewStore
- Dependency version have been bumped up in order to use latest TCA
- 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
- 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
- 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.
- 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
- 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
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
- 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
- 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
- redesigned according to new Zashi UI
- modified grouping or phrase words, halves instead of quarters
- snapshot tests updated
- code cleanup - recovery phrase screen loads the stored wallet instead of being injected into it
Following features have been modularized:
- BalanceBreakdown
- WalletEventsFlow
- Scan
- ExportLogs
- Settings
- AlertState generic type cleanup
- crashReported TODO added
- files stored temporarily and then zipped
- the dependency API changed so it handles the temporary files and folders and returns the final logs.zip URL
- test fixed
- 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
- 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
- flow is hidden by default
- when turned on, only new users (nuke wallet and start over) continues to the flow
- unit tests fixed and updated
- new unit tests
- phrase display screen simplified
[#556] Hide post-seed backup flow and rework screenshot tests (#591)
- never show the phrase for users who had it disabled at the time of wallet creation
Closes#575
- Added `SupportDataGenerator` object which generates data sent with
support email. Format of the data is based on what Android has.
- Support button is moved to settings from profile.
- Support button opens mail composer.
Closes#554
- WalletConfigProvider and WalletConfig are used in the Secant app.
- First feature flag (`onboarding`) is in use.
Co-authored-by: Lukas Korba <lukas.korba@seznam.cz>
* [#525] Adds functions to configure, testCrash and check if it can start.
This adds a build phase where a dummy file is added to the project to
make the build and Plist copy happy. When building in the CI there
will be a script to replace this Plist file with the real one that
then will be copied to the bundle
Crashlytics will be "off" by default and then be turned on when
starting up to be an Opt-Out thing.
This is the only way it can be turned off later.
reference: https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=ios#enable_opt-in_reporting
The app will start with crash reporting turned off and will set it up
on by default on the application's code. Then if the user wants to
opt-out of crash reporting, it can. Otherwise, it won't be possible.
Adds opting out of crash reporting as a stored user preference.
This adds a value inside UserPreferencesStorage and its live and
mock counterparts.
also creates a builer for `CrashReporterClient` that has a Dependency
to `@Dependency(\.userStoredPreferences)` and sets the references
for the client to set the appropriate values into the user storage
`UserPreferencesStorage` as been adapted to be a TCA Dependency.
`SettingsStore` now as a `Toogle()` to turn off and on crash
reporting. But it doesn't work yet because I haven't found out
how to make a TCA Binding that can rely on an initial value that
is not hardcoded but injected from somewhere else.
See https://www.pointfree.co/episodes/ep158-safer-conciser-forms-part-1https://www.pointfree.co/episodes/ep158-safer-conciser-forms-part-2
Adds Test Crash button and enable crash reporting
Adds upload-symbols run script phase
Closes#525
Add a custom build environment variable "UPLOAD_CRASHLYTICS_SYMBOLS"
that will let Xcode skip the upload_symbols script for debug builds
Fix Initialization tests
* bump build
- 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
- OSLogger for the defined categories
- TCA logger for the TCA logs
- WalletLogger for the secant logs
- SDKLogger passed to the SDK
- unit tests for the loggers
- export category OS logs
- share txt files (sdk, tca, wallet logs) via native share dialog
- timestamp extension so we see even milliseconds
- txt files up to some X size
- simple button enable/disable logic and wrapping the export work in the Task
- TODO for empty catches
- OSLogger refactored to OSLogger_, just temporary change
- export and share divided into business logic and view logic parts
- unit tests for the TCA part
- async let syntax for the export logs
- simple activity indicator so testers know export is in progress
- static date formatters so we don't instantiate it over and over
- 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
- all dependencies are now consolidated
- cleanup of dependencies
- getting rid of all .live instances in the tests
- all dependencies use mocked or noOp instances
- RecoveryPhraseDisplay migrated to new TCA's ReducerProtocol
- fixed unit tests
- TODO Ensure that sensitive information can't be logged intentionally or by accident #444
- 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
- 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