- zip316 compliance extension (first 20 chars of an address)
- Receive tab fully redesigned
- Toast implemented and used for the copy to the clipboard
[#1352] update Receive screen UI and build additional components
- Added a flow for the Address details with options to share or copy an address
- tap gestures for the address label to expand, collapse and long press for the copy to the clipboard
- the QR code is loaded asynchronously so the UI is as smooth as possible
[#1352] update Receive screen UI and build additional components
- bcg padding fixed
[#1352] update Receive screen UI and build additional components
- Request zec flow WIP
- Custom input keyboard screen, done in a modular way
- Custom stack view navigation so request zec flow can be made with independent reducers
[#1352] update Receive screen UI and build additional components
- QRCode overlay renderer, used to show the ZEC logo inside the QR code
[#1352] update Receive screen UI and build additional components
- ZecKeyboard fully localized, the currencies respect system's settings
- Group separators used in a renderer to help users read the values
- Btn designs updated
[#1352] update Receive screen UI and build additional components
- QR code color inversion on tap implemented
- Request zec flow extended to have a screen where a memo (a reason for request) can be filled in
[#1352] update Receive screen UI and build additional components
- ZecKeyboard redesigned
[#1352] update Receive screen UI and build additional components
- Archivo font resolution
- Initial screens for the feature done
[#1341] add address book feature
- partially redesigned to final designs
- edit updated to work without swipe over the contact
[#1341] add address book feature
- Package.resolved updated
[#1341] add address book feature
- Package.resolved update
[#1341] add address book feature
- ZashiButton component done
- Latest design for some screens
- Send screen facelift
[#1341] add address book feature
- Scan view redesigned
- Tweaks of layouts, error handlings for the fields, etc.
[#1341] add address book feature
- Another batch of tweaks and finalizations for Address Book
[#1341] add address book feature
- AddressBook finished, testing starts
- New Zashi internal target added to distribute the app
[#1341] add address book feature
- package update
[#1341] add address book feature
- Testing & Debugging
- fix: card for add new address is always visible
- fix: done button associated with the keyboard is now fully custom solution
- fix: memo field broken input
[#1341] add address book feature
- modifier for the fonts and styles
[#1341] add address book feature
- Modifier for the screen horizontal padding
[#1341] add address book feature
- All Address book texts localized
[#1341] add address book feature
- Archivo removed from the project and all instances replaced with Inter
[#1341] add address book feature
- All images refactored to use DesignSystem's modifiers
[#1341] add address book feature
- fixes + design system refactors
- transaction history revamp
[#1341] add address book feature
- Package.resolve update
[#1341] add address book feature
- Scan screen redesigned
[#1341] add address book feature
- QR code scan navigation fixed
[#1341] add address book feature
- ZashiButton tap area fix
- Auto-focuses in Add New Contact implemented
[#1341] add address book feature
- ScanView design tweaks
- Address is not in address book redesigned to hint that dismisses automatically after 3s
[#1341] add address book feature
- zImage
[#1341] add address book feature
- build fixes
- 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
- Navigation in restore flow fixed
- Another fix is for the scenario when somebody during restore deleted Zashi and then started a new wallet, the restoring state and badge have been reseted for such case
- 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
- 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
- WalletBalances now can handle currency conversion with respect to the system's locale settings
[#1238] display USD value in addition to ZEC value in the app UI
- WIP
- the input fields have been completely reworked
[#1238] display USD value in addition to ZEC value in the app UI
- QR scan button is back in the address field
[#1238] display USD value in addition to ZEC value in the app UI
- Prefix views for the inputs implemented
- Titles for the inputs implemented
- Error messages for the inputs implemented
- Hide balances support
- Send Confirmation enhancements
[#1238] display USD value in addition to ZEC value in the app UI
- Confirmation screen shows the currency value defined in the Send screen
[#1238] display USD value in addition to ZEC value in the app UI
- Exchange rate design implemented
- Custom tooltip implemented and used for cases when the rate is not available or stale
[#1238] display USD value in addition to ZEC value in the app UI
- cleanup and last fixes
- In-app browser view implemented
- Concept of PartnerKeys implemented and ignored from git
- Coinbase Onramp URL generated and presented in the new in-app broser
[#1283] Coinbase On-Ramp Integration
- Code cleaned up
- Changelog updated
- Project updated to generate PartnerKeys.plist if missing
[#1283] Coinbase On-Ramp Integration
- Final copy for the buy zec button
[#1283] Coinbase On-Ramp Integration
- Official Coinbase logo used in the button
- Project bumped up to version's build 5
- Initial draft done
[#1302] Upgrade RootReducer to the latest TCA
- RootReducer has been refactored to the @Reducer Root
- All unit tests have been refactored as well
[#1302] Upgrade RootReducer to the latest TCA
- 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
- Changelog updated
- Screen with the syncing tips has been implemented
- The sync starts immediately after we know seed + BD (optional) and the view is just presented to inform users
- Deduplication of memos implemented
- On-demand load of memos implemented
- Starting pipeline optimized to use HI screen for a short of time and initiate load of transactions during it
[#1286] Speed up transations list load
- SDK version bumped up to 2.1.8
[#1286] Speed up transations list load
- cleanup
- New dependency broadcasting value of hide balances flag implemented
- Every Zatoshi representation decides whether is rendered as number value or hidden, respects the font size and colour
- Flag value is persisted for next app start
hide-balances
- localization added
hide-balances
- changes according to the final design
- 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
- The detection of pressed button needed to be extended to cover the case with SecurityWarning screen. I got it button is pressed in one of two possible scenarios and only one was handled.
- 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
- 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
- validation flow done for the 2 out of 3 flows
- 1. when the restore path is selected and the seed doesn't match the DB
- 2. when create new wallet is selected
- (missing) 3. seed is validated (waiting on API)
[#1024] KeysMissing when restored to a new iPhone
- preparations for SDK 2.1.0
[#1024] KeysMissing when restored to a new iPhone
- Seed validation API used and integrated
- There's an error in rust that must be resolved first
[#1024] KeysMissing when restored to a new iPhone
- rebased
[#1024] KeysMissing when restored to a new iPhone
- updated to use latest SDK's isSeedRelevantToAnyDerivedAccount
[#1024] KeysMissing when restored to a new iPhone
- unstable SDK branch test
[#1024] KeysMissing when restored to a new iPhone
- version bump
[#1024] KeysMissing when restored to a new iPhone
- bugfix
- packae redirected to ECCs repo
[#1024] KeysMissing when restored to a new iPhone
- tests fixed
- The no transactions list has been disabled to not scroll
- The sync bar % was canceled on Balanced before it could gather data, the problem is about cancelation IDs not being unique, I updated all effect handles to be UUIDs
- Balances tab was rendering spendable balance instead of total balance
- I moved the configuration of Firebase to the didFinishLaunching, this way the FB is configured only once at the start of the app, not causing crashes or issues of type 'FB is already configured'
- tests fixed
- draft
[#1086] Resolve interaction with the keychain for both fore and background app states
- revert
[#1086] Resolve interaction with the keychain for both fore and background app states
- initialization pipeline updated to handle state when BGTask runs with fresh app start, in such case Zashi wait and doesn't try to initialize SDK -> no keychain error is triggered
[#1086] Resolve interaction with the keychain for both fore and background app states
- code cleaned up
- finished the state handling
- closing the BGTask asap for state that is supposed to just wait
[#1086] Resolve interaction with the keychain for both fore and background app states
- unit tests fixed
[#1086] Resolve interaction with the keychain for both fore and background app states (#1091)
- Comments addressed
[#1086] Resolve interaction with the keychain for both fore and background app states (#1091)
- Unit tests fixed
- Block time of didFinishLaunching increased to 0.5s (from 0.02)
- AccountBalance has been wrapped into RedactableAccountBalance
- SynchronizerState has been wrapped into RedactableSynchronizerState
- Code updated to use these new redactable structs instead of direct use of unredacted ones
- tests fixed
- 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.
- the fee is now checked and it's coming from the SDK
- unit test checking validity of the form when not enough Zatoshi for the fee has been implemented
- brand new concept of handling the SDK constants inside the TCA has been implemented, will greatly simplify cleanup of all reducers (see #1058)
- changelog update
- the keys missing error state has been tweaked to try 3 retry attempts because of unresponsiveness keychain API
- in case of true missing keys, the user is no longer locked on a splash screen but rather let land to the Account tab so the rest of the Zashi can be used
- unit tests fixed + implemented new ones for the 3-attempt retry logic
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
- check for the confirmed phrase backup implemented, when not confirmed, the phrase is displayed and awaiting user's confirmation
- unit tests added + modified
- 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
- fixes for the birthday screen
- layout updated to be scrollable for the seed screen
- code cleanup
- SDK 2.0.3 adopted
- optional placeholder for the birthday
- fixes for the restore flow after a wipe
- clean up of TCA warnings, EffectTask refactored to Effect
- error dialogs removed
- cleanup of the code
[#861] Remove lightwalletd related error dialogs
- sdk 2.0.2 adopted, version bumped
- error dialogs removed
- a few bugfixes:
- phrase display can handle longer words and still render it fully with no truncation
- tabs tap area increased
- receive screen with addresses now uses the wallet's UA
- 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
- custom toggle
- security screen UI and logic finished
- splash screen extended to report completion, this way I can assure it never shows again
- dynamic Zashi version + build implemented into the warning message
- all features of the button done
- cleanup of everything that is not part of the design anymore, needed for the colors for the buttons
- zcashStyle used for the buttons
- CrashReporter is now an independent module
- all crash reporter TODOs removed
- the crash reporter code commented out is now back in action
- package.resolved file updated
- adopted latest SDK
- test crash reporter added back to debug menu
- typo in comments fixed
- fixed alerts in debug menu
- fixed confirmation dialog in for rescan action
- fixed dark mode colors
- updated texts
- simplified texteditor UI so it's more consistent with the other components
- reduced debug menu items
- tests fixed
- actions from alerts are now properly propagated
- dismissal of an alert is not clearing out the state
- qrcode icon is now a system one
- swiftgen paths updated