- 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
- The version1 has been completely refactored and redesigned
- The custom server and term now supports localisation
- The list of servers is now network dependent, different for testnet vs. mainnet
- The selected server is now represented as Hashable and Codable struct ServerConfig that holds the host, port and isCustom flag
- Migration of version1 implemented that ensures to persist previous choice of a user and fills it in a custom field
- The UI dynamically ensured the host & port are at one line, not split to multiline label
- The persistency of a choice is now handled by UserPreferencesStorage, a dependency designed for user settings
- Tests fixed
[#1223] Fallback missing server to custom field (#1226)
- Servers are newly represented as enums allowing customization of naming and localization
- 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
- 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
- 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
- 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
- BalanceTitle view created for the bigger balance + zcash icon
- balance formatter with 3 floating points created and used everywhere in the views
- tests for this formatted added to check bank rounding
* [#541] Adopt Latest main commit of SDK
This adopts commit `cf60f44aa83938432c81361917406483ff42c719` from `main`
branch of ZcashLightClientKit.
It includes changes to remove a fake "defaultBirthday" and use the real
`BlockHeight.ofLatestCheckpoint()` function that allows the wallets
to fetch the latest checkpoint available from bundle and define it as the
birthday. Also "defaultBirthday" birthday was incorrectly being used as a
replacement for Sapling Activation height which is the minimum birthday
supported by the wallet in terms of shielded pools.
Wallets with lower heights that have only transparent funds could in theory
work, but they won't be able to see sprout funds. Also the the SDK won't provide a birthday prior to sapling activation.
removes references to `LightWalletService` since this class has been made
internal to the SDK only.
adopts FsBlockDb and adds a FsBlockDbRoot directory dependency for the
Databases dependencies. Which should be renamed in a later commit
Closes#541
* Fix SwiftLint issues
* [#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
Fix _URLRouting error on project
Fix: Wallet account identifiers must be sequential on initialization
Adopt async API of SDK
Fixes after rebase
Fix tests
- all dependencies are now consolidated
- cleanup of dependencies
- getting rid of all .live instances in the tests
- all dependencies use mocked or noOp instances
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.
Following dependencies refactored to await/async
- RecoveryPhraseValidationFlowReducer
- RecoveryPhraseDisplayStore
- AppStore
- UserPreferencesStorage
- WrappedUserDefaults
which allowed to reduce imports of Combine/TCA
- Int64+Zcash.swift and Double+Zcash.swift removed
- Balances and amounts updated to use Zatoshi
- Remove TODOs
- Tests updated
- FIXED: Send amount being in Zatoshi is clamping $ value to 21M max -> send amount input is no longer Zatoshi typed
[329] Update wallet to use Zatoshi type (333)
- alphabetical order(s)
[329] Update wallet to use Zatoshi type (333)
- static .zero for the Zatoshi
- conformance to Equatable moved to extension
[329] Update wallet to use Zatoshi type (333)
- small improvement by reducing code duplicity
- 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