Commit Graph

295 Commits

Author SHA1 Message Date
Michal Fousek 5ce87b18a9
[#654] Convert SDKSynchronizerDependency to regular TCA dependency (#672)
Closes #654

- `SDKSynchronizerClient` is now regular TCA dependency like any other
  dependency that we have in the app.
2023-03-15 09:53:16 +01:00
Francisco Gindre 69c1aa12a3
[#674] release 0.0.1-47 (#675)
closes #674
2023-03-14 16:01:19 -03:00
Michal Fousek f46eaf69c5
[#653] Adopt SDK initialisation changes (#671)
Closes #653
2023-03-14 09:14:52 -03:00
Francisco Gindre d5b92c32c5
[#666] Remove Graphics from "create new wallet" screen (#667)
Also removes padding from '.activeButtonStyle' and changes
padding throughout the app where it's needed
2023-03-14 09:54:04 +01:00
Francisco Gindre 72324f2a94
[#661] Send Button works even if it's apparently disabled (#664)
- This creates a view modifier that disables and dims the view in a
single line of code
- Also moves every button that can be disabled to use the ViewModifier
2023-03-14 09:50:31 +01:00
Lukas Korba c8037f714b
[#658] About Screen with version (#659)
- about screen implemented with version only for now but place for licences, etc.
2023-03-14 09:41:39 +01:00
Francisco Gindre 1c1eed592d
[#655] Release testflight 0.0.1-46 (#656)
closes #655
2023-03-13 11:53:25 -03:00
Lukas Korba f8191e33ac
[#626] Small UI-UX fixes for 0.0.1-45 (#649)
- all resolved except nav bar issue (separate ticket)
2023-03-13 08:53:21 +01:00
Francisco Gindre bae3ec974b
[#647] Adopt 0.19.1-beta (#648) 2023-03-12 10:14:37 -03:00
Lukas Korba 1d86157198
[#631] Make Send Form fields avoid being blocked by keyboard (#645)
- hiding the keyboard on tap
- adapting the layout on the keyboard appearance
2023-03-09 16:40:03 +01:00
Michal Fousek ddc6bb7d86
[#618] Require specific version of SwiftGen (#638)
- We need to require specific version of SwiftGen because each version
  may generate different file. Which causes then problems with git.
- Convert build phase shell scripts to zsh.
2023-03-08 12:40:21 +01:00
Francisco Gindre 454786e603
[#633] build and release from tag 0.0.1-45 (#634)
Closes #633
2023-03-07 18:48:53 -03:00
Michal Fousek c6b222ff46
[#617] Use L10n for all the texts in the app (#627)
Closes #617

- All the texts that weren't in the Localisable.strings file are now
  there.
- L10n is used for all the texts in the code.
- Fixed paths in SwiftGen build phase so L10n.swift is now correctly
  generated when Localisable.strings file change.
2023-03-07 18:18:17 -03:00
Michal Fousek 6c77e0901b
[#595] Visbility of fiat conversion on homeage depends on feature flag (#625)
Closes #595
2023-03-07 18:03:37 +01:00
Michal Fousek 082e058055
[#592] Add export logs to debug menu (#621)
Closes #592

- Export logs feature moved to separate reducer - `ExportLogsReducer`.
- New reducer is used in debug screen and in settings.
2023-03-07 14:01:22 +01:00
Michal Fousek d528f7ecf7
[#618] Use SwiftGen to generate L10n structure (#619)
Closes #618

- Generate L10n structure by using SwiftGen.
- Replace all strings from localisation file with L10n.
2023-03-07 08:59:17 +01:00
Lukas Korba 4db00ff4a9
[#609] Split birthday from the import seed phrase (#622)
- birthday set separated from the backup seed phrase
- snapshot for the birthday screen added
2023-03-07 07:16:34 +01:00
Francisco Gindre 078d214fd9
[#819] build and release from tag 0.0.1-44 (#620) 2023-03-06 13:17:19 -03:00
Lukas Korba 8e46737321
[#566] Change colors app-wide (#603) 2023-03-06 15:14:18 +01:00
Michal Fousek 8e445f8b09
[#613] Adopt ZcashLightClientKit version 0.19.0-beta (#616)
Closes #613

- Only change was in usage of rewind function. So it's changed.
- And when rewind is done then start of the sync process is called. So
  rewind now really works without app restart.
2023-03-03 14:58:53 -03:00
Francisco Gindre 13884a7a82
Test mainnet release (#593)
* Build 42

* mainnet build 42

* build 43
2023-03-02 13:14:05 -03:00
Lukas Korba 49d858d22a
[#557] Nav Changes (#602)
- 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
2023-03-02 15:24:32 +01:00
Michal Fousek 23a616baab
[#529] Replace OSLogger_ with OSLogger from the SDK (#590)
Closes #529
2023-03-01 15:34:28 -03:00
Lukas Korba b61fa213b6
[#556] Hide post-seed backup flow and rework screenshot tests (#591)
- 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
2023-03-01 15:33:58 -03:00
Michal Fousek 2a560dea8d
[#575] Add support for sending feedback (#588)
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.
2023-03-01 09:52:50 +01:00
Michal Fousek a4d35b759f
[#546] Update how swiftlint is used (#547)
Closes #546

- Have separate swiftlint config for code and for tests.
2023-02-28 15:32:36 -03:00
Lukas Korba 2ddce23427
[#586] secantTests.AppInitializationTests Tests fail on CI (#587)
- Publisher used instead of .task/.run
- fixed all tests

Convert WalletConfigProvider to Combine
2023-02-28 14:02:31 -03:00
Lukas Korba 75150da3a4
[#535] Use 0.18.0's wipe() instead of obsolete nuke approach (#549)
- added alert view asking if nuke is triggered or canceled
- wipe of the keychain
- wipe publisher properly used
- functional wipe accessible through debug menu
2023-02-27 22:43:38 +01:00
Michal Fousek 56e1364659
[#554] Use WalletConfigProvider and WalletConfig in the TCA (#582)
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>
2023-02-27 13:55:47 +01:00
Lukas Korba c686a74372
[#562] Clean up the Send screen (#580)
- send screen simplified + UI changes
- confirmation screen removed (hold to confirm)
- test and snapshot tests modified accordingly
2023-02-27 08:21:54 +01:00
Francisco Gindre db07850fad
[#806] Mainnet target is using testnet endpoint (#579)
also fixes schemes because mainnet was missing

Closes #806
2023-02-26 09:44:37 -03:00
Francisco Gindre f7a61feed4 0.0.1-41 2023-02-24 16:21:43 -03:00
Michal Fousek a1104163f3
[#554] Add WalletConfigProvider (#574)
- Added `WalletConfigProvider` object which handles loading and caching of
  feature flags.
- Added `WalletConfig` which represents one configuration
  of all feature flags.
2023-02-24 17:33:46 +01:00
Lukas Korba 1988d30540
[#559] Remove the circular progress bar from home screen (#572)
- draft of the removal, home screen updated

[#559] Remove the circular progress bar from home screen

- circular area removed
- snapshot tests of the circular area removed
- home screen simplified
2023-02-23 13:42:48 -03:00
Francisco Gindre 60f19a360d
[#560] Remove QR code scanning from the home screen (#571)
Closes #560
2023-02-22 18:37:36 +01:00
Francisco Gindre 7967fac627
[#207] create Secant Mainnet target (#550)
1. duplicates secant-testnet target and call it secant mainnet https://github.com/zcash/secant-ios-wallet/issues/273
2. renames Info copy plist file and Display name
3. Fixes TCA code bootstrapping so it has the mainnet environment

Fixed Info-Plist
4. (off code repo) create the mainnet app on the app store

4. create the mainnet app on the app store
5. create the mainnet variant on Crashlytics
6. create a GoogleServices-Plist file
7. change tag triggers to mainnet and testnet can be built independently from each other
8. add Icons for testnet

Creates TargetConstants enum for network target

Closes [#568] Change display name to sECCant

make Derivation tool be static by SECANT_{NETWORK} target

Closes [#570] Change AppIcon to ECC icon
Closes #207
2023-02-22 11:06:43 -03:00
Francisco Gindre 7d38035350
[#545] Fix CI issues with PR builds (#548)
This fixes the path of the dummy google services file injected at
startup of the build process.

Closes #545

Fix path for crash reporter

Add output file
2023-02-16 11:24:24 -03:00
Francisco Gindre 2d5c70aa94 0.0.1-40 2023-02-15 19:35:09 -03:00
Francisco Gindre adb48ba507
[#541] Adopt Latest main commit of SDK (#542)
* [#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
2023-02-15 19:27:52 -03:00
Francisco Gindre 26dd0ea988
Add crash reporter to secant (#531)
* [#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-1
https://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
2023-02-15 18:18:18 -03:00
Lukas Korba f946de15bb
[#444] Ensure that sensitive information can't be logged intentionally or by accident (#536)
- 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
2023-02-13 20:32:50 +01:00
Lukas Korba d87d16a031
[#538] Update and adapt 0.50.2 TCA (#539)
- TCA updated to the latest version
2023-02-13 14:13:42 -03:00
Lukas Korba fdd6ff19c0
[#516] Adopt unreleased changes that will go live with SDK 0.18.0-beta release (#532)
- all issues refactored
- previous transactions replaced by new data type from the SDK
- unit tests fixed
2023-02-06 09:38:34 +01:00
Lukas Korba 1aca887800
[#126] TCA component for user logs (#526)
- 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
2023-02-01 09:08:22 +01:00
Lukas Korba 0d2d898f4e
[#521] Update format for the Swiftlint TODO rule (#523)
- deployment target set to iOS 15
- no warnings or errors needed to be addressed
2023-01-20 14:55:20 +01:00
Lukas Korba 64d509aedb
[#514] Adopt Unified Addresses (#515)
- UAs integrated to the Profile and Address details screen
- Snapshot tests for the AddressDetailsView
- Unit tests for the AddressDetailsStore
2023-01-05 20:07:25 +01:00
Francisco Gindre 464d87bd25 bump to build 37 2023-01-05 12:52:32 -03:00
Francisco Gindre 80cac1ce95 Update CHANGELOG.md and bump build number 2023-01-05 12:01:31 -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
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 1bba7d0d16
[#471] Migrate CheckCircle to ReducerProtocol (#479)
- CheckCircle migrated to ReducerProtocol
- project files rearangement
2022-11-07 12:01:09 +01:00
Lukas Korba 445e443a37
[#481] Update TCA to 0.45.0 (#482)
- updated, all works fine
2022-11-07 11:54:09 +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 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 3737e47263
[#428] Update onboarding screens (#431)
Closes #428

- Update images on onboarding screens.
- Update view that shows images on onboarding screen. Previously images
  were square and wrapped into `CircularFrame`. Now each onboarding
  screen is little bit different and each images has different size a
  bit.
2022-10-03 15:55:15 -03: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 a38f594cfe
[#415] Update TCA library to version 0.40.2 (#419) 2022-09-22 16:48:13 +02:00
Francisco Gindre 4a0153851f
[#395] Build 0.0.1-35 (#414)
Closes #395
2022-08-17 20:14:01 -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 4c36aa39a2
[#404] Update to ComposableArchitecture 0.39.0 (#406)
- library updated
- all `Failed to produce diagnostics for expression` fixed
2022-08-09 09:51:40 -07: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
Francisco Gindre 0494af83eb [#399] Secant Design Review build 0.0.1-34
*0.0.1 build 34*
- [#75] [Scaffold] Settings Screen (#398)
- [#394] adopt ZcashLightClientKit 0.16.x-beta (#397)
2022-07-21 15:07:19 -03: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
Francisco Gindre 78dd14e711
[#382] Release build 0.0.1-33 (#396)
update xcode project build
2022-07-14 14:24:55 -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
Francisco Gindre 180a5a9bc2
- [#387] Build 0.0.1-32 for design review (#388)
Closes #387
2022-07-06 14:38:50 -03: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
Francisco Gindre d45f39efd0
[#373] Build Secant 0.0.1-31 (#383)
Update build number and CHANGELOG.md
2022-06-30 09:43:12 -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 675a067437
[375] Update ComposableArchitecure to 0.37.0 (#377)
- updated
- build works
- tests work
2022-06-23 09:46:30 +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
Francisco Gindre 2e1ec2b213
[#368] Bump Version for 0.0.1-29 and edit CHANGELOG (#369) 2022-06-15 18:37:14 -03:00
Lukas Korba b17475be46
[358] Xcode project broken (#360)
- fixed
2022-06-14 13:10:27 +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
Lukas Korba d32eeaccac
[345] Take wallet import snapshot (#353)
- snapshot of import wallet, demo environment
2022-06-14 11:56:08 +02:00
Lukas Korba edeb3f7fee
[340] Take Onboarding Snapshots (#352)
- the OnboardingFlow info steps snapshots

[340] Take Onboarding Snapshots (352)

- cleanup
2022-06-14 11:51:13 +02:00
Lukas Korba d7c651b522
[337] Set up Snapshot Testing (#350)
- snapshot package added
- welcome snapshot taken

[337] Set up Snapshot Testing

- iPhone 8 Plus welcome screen references

[337] Set up Snapshot Testing

- snapshot references removed
- snapshots only recorded, no comparison

[337] Set up Snapshot Testing

- isRecording removed

[337] Set up Snapshot Testing

- iPhone 8 Plus, iOS 15.4 screenshots

[337] Set up Snapshot Testing

- lowering the precision to 0.999

[337] Set up Snapshot Testing

- attempts to get it pass the test

[337] Set up Snapshot Testing

- frame set up

[337] Set up Snapshot Testing

- resized image

[337] Set up Snapshot Testing

- many different snapshot tests

[337] Set up Snapshot Testing

- low precision test

[337] Set up Snapshot Testing

- updated pngs

[337] Set up Snapshot Testing

- another set of pngs

[337] Set up Snapshot Testing

- precision 0.99

[337] Set up Snapshot Testing

- XCTAttachments

[337] Set up Snapshot Testing

- typo fixed

[337] Set up Snapshot Testing

- reference images

[337] Set up Snapshot Testing

- no precision set

[337] Set up Snapshot Testing

- screenshot names added
- precision so low it passes all the time

[337] Set up Snapshot Testing (350)

- cleanup

[337] Set up Snapshot Testing (350)

- removed snapshot library completely

[337] Set up Snapshot Testing (350)

- code simplification and cleanup

[337] Set up Snapshot Testing (350)

- adding attachments refactored to simplify the code even more

[337] Set up Snapshot Testing (350)

- last simplification to wrap both light and dark under the hood

[337] Set up Snapshot Testing (350)

- addAttachments method to follow the same XCTestCase terminology

[337] Set up Snapshot Testing (350)

- attachments name fix
2022-06-10 10:46:35 -03:00
Francisco Gindre 901ca6c2ab
[#318] Build 0.0.1-27 + changelog (#349) 2022-06-06 13:39:48 -03:00
Lukas Korba 6026aebc9b
[222] Tests for the initialisation check and process (#334)
- 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
2022-06-03 20:21:51 +02:00
Lukas Korba 9e2ac0c6aa
[312] WrappedNumberFormatter (#336)
- WrappedNumberFormatter implemented
- unit tests updated to inject en_US locale
- cleaned up all XCTSkipUnless
2022-06-03 14:28:48 +02:00
Lukas Korba 21806c737f
[323] Unit/Integration tests for Home (#335)
- integration test for the .onAppear action
- unit tests for the synchronizer status change
- unit tests for the drawer and tracsation history
2022-06-03 13:27:18 +02:00
Lukas Korba b2ae82ce1b
[#329] Update wallet to use Zatoshi type (#333)
- 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
2022-05-31 14:14:56 -03:00
Lukas Korba bab1dc6f82
[272] Decimals and Zatoshi type (#330)
[272] Decimals and Zatoshi type (330)
- Zatoshi type implemented
- conversions implemented
- 'from' convert methods refactored to better readable syntax
- fixed issue with rounding Decimal (in Zatoshi -> Decimal conversion)
- rounded -> roundedZec
- comments resolved
- zcashNumberFormatter by default
2022-05-27 17:19:21 +02:00
Francisco Gindre 9bed9d5927
Build/0.0.1 25 (#332)
* [#331] Update Secant ZcashLightClientKit 0.14.0-beta

* [#299] Changelog and version bump for 0.0.1-25
2022-05-26 19:11:21 -03:00
Lukas Korba c40b9660e3
[301] Import Wallet does not have a Birthday input field (#328)
- 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
2022-05-26 14:47:55 +02:00
Lukas Korba 4cc7737b21
[106] [Scaffold] Scan QR Screen (#321)
- 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
2022-05-24 08:30:12 +02:00
Lukas Korba 339965b9e9
[#319] Update TCA to 0.35.0 (#326)
- TCA updated to 0.35.0
- tests modified so no state change is reflected
2022-05-23 12:36:29 -03:00
Francisco Gindre b67d091a68
[#300] Use .live pasteboard on live views of the app. (#320)
Closes #300

also. Update the commit hash for the sdk
2022-05-17 15:29:51 -03:00
Lukas Korba af054b098c
[#180] Project Structure and Source code consistency (#317)
phrase 1:
- project restructured
- swifgen rewired
- files renamed

[180] Code inconsistency

phase 2:
- stores and views refactored

phase 3:
- models, dependencies, utils and UI components

[180] Code inconsistency

- tests fixed
2022-05-13 13:29:57 -03:00
Francisco Gindre 4ea6fcf939
CHANGELOG for 0.0.1 builds 23 and 24 + build bump (#316) 2022-05-11 20:03:28 -03:00
Lukas Korba 2bb5451047
[#294] amount + address fields done (#308)
cleanup

validation

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- zec amount refactored to be always Int64 - number formatter to zec string for the UI added
- cleaned up the invalid input conditions by providing computed properties
- isValidZcashAddress() added

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- prefix input view support implemented
- zcash or $ symbol used as a prefix for the amount input
- $ computations and max out implemented

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- insufficient funds logic (UI error + inability to send) added
- $ balance value visible at send screen
- cleanup

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- send routing simplified and cleaned up

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- unit tests

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- cleanup

[#294] [Scaffold] Send Screen - transaction + address inputs (#308)

- review comments solved
2022-05-11 12:26:39 -03:00
Francisco Gindre cec63d0564
[#306 #215] Swiftlint and other warnings + build errors (#307)
[#306] Release build is broken because placeholder is not compiled

[#215] Warning: Non-constant range: argument must be an integer literal

Fix comment spacing warning
2022-05-05 10:30:01 -03:00
Francisco Gindre 1a594c955a
[#287] CHANGELOG and build number bump for 0.0.1-23 (#305) 2022-05-04 17:29:29 -03:00
Lukas Korba 6a12e09ee9
[#302] Synchronizer status on Home Screen (#304)
* synchronizer status

* amount input field enhancements

Closes #302
2022-05-04 17:01:48 -03:00
Lukas Korba f6e6f6991f
[#212] Wrapped user defaults (#298)
tests enhanced

guard/fail

cleanup
2022-05-03 09:34:17 -03:00
Lukas Korba e54ea3aa18
[#80] Scaffold - Send functionality (#297)
* UI + stores/reducers updated

* simple send done

cleanup

flag for sending

deny any attempt to send when sending is still in flight

cleanup

unit tests
2022-05-02 19:35:03 -03:00
Lukas Korba 3e8169551b
[#293] first draft of history of transactions (#293)
pending + cleared + sorted transactions

cleanup

any scheduler + tests skeleton

transaction history tests

syncedBlockHeight from the synchronizer
2022-04-28 07:22:31 -03:00
Lukas Korba ccb9301fb2
WrappedSyncrhonizer (#292)
(un)subscribed logic added
cleanup
refactor
commented solved
final agreed naming
2022-04-26 13:28:39 +02:00
Francisco Gindre 4b114efa8b
Changelog for 0.0.1-21 + committing .resolved file for SPM (#286) 2022-04-21 13:42:50 -03:00
Francisco Gindre 96511e0e36
Issue #279 - update swiftlint (#280)
the project fails to lint because of the version pinned is too old
2022-04-21 08:22:25 +02:00
Lukas Korba 5ce68fa5a5
Static welcome screen (#274)
* icon for the welcome screen

* static launch screen
2022-04-20 18:46:04 +02:00
Lukas Korba bab53181aa
Issue #276 - [Scaffold] Drawer for the Home Screen (#275)
Drawer + transactions history

clean up

Profile button on home screen

QR, Send and Request buttons

cleanup

conflicts resolved + cleanup
2022-04-20 18:41:32 +02:00
Lukas Korba 1a16282899
Issue #276 - [Scaffold] Drawer for the Home Screen
Drawer + transactions history

clean up
2022-04-20 11:45:24 -03:00
Lukas Korba c6a90ff96c Initial functional code
cleanup + functional import wallet

app state check fix

synchronization wip

cleanup

cleanup + debug menus from the home

debug menus modifier added

fix for the failing tests

transparent -> shielded

comments resolved
2022-04-19 09:05:07 +02:00
Lukas Korba 330bc3256f old home->sandbox, new home for #255
hotfix
2022-04-14 11:29:52 +02:00
Lukas Korba a57cf312af wrapped derivation tool done
fixed build
2022-04-13 10:34:03 +02:00
Lukas Korba d0cca8121c Initialization refactored & covered by tests 2022-04-13 10:13:29 +02:00
Lukas Korba c22e18b07e Wrapped Security and Keychain handling 2022-04-12 14:32:58 +02:00
Francisco Gindre ab7f00e88f Build 0.0.1-19
This build was created to test CI deployment fixes.
2022-04-07 18:16:04 -03:00
Francisco Gindre 01808710a0 CHANGELOG and build number bump for 0.0.1-18 2022-04-07 14:56:21 -03:00
Francisco Gindre 56cdecfcd0 Issue #248 - remove "recovered references" 2022-04-07 14:31:06 -03:00
Francisco Gindre 6e0a9cf0c1 Issue #247 - Disable Bitcode
Linker fails because of bitcode being enabled.
Reference: https://stackoverflow.com/questions/69535735/ld-invalid-value-producer-llvm13-0-0-rust-1-57-0-nightly-reader-llvm-appl
2022-04-07 14:28:39 -03:00
Lukas Korba 8136ec3040
Issue #220 - Dependency for the SDK database files/file management (#240)
unit tests implemented

naming enhanced
2022-04-07 11:13:40 -03:00
Adam b665a18fe2
Issue #145 - Single Line Text Field
* Single Line Text Field

* add TODO comment to secant/Util/Strings.swift

Issue #245 comments the changes needed

Co-authored-by: Francisco Gindre <francisco.gindre@gmail.com>
2022-04-07 09:06:47 -03:00
Lukas Korba 71deb3c757 gestures added
debug menus are accessible starting on welcome screen following 2 steps:
1. long press (0.75s)
2. swipe up/down to access either home/startup

cleanup

Debug menus connected

Also fixed the App flow
2022-04-04 18:55:57 +02:00
Lukas Korba 549a5c0806 Cleanup and refactor
lightweight wallet wrapper

getting rig of initialiser, import Security

SDK integrated, wallet's environment prepared

PR comments fixes

PR comments resolved

wallet storage as a dependency

PR comments resolved

Update secant/Util/WalletStorageInteractor.swift

agreed

Update secant/Util/WalletStorageInteractor.swift

order of parameters fixed

build fixed

tab resolved

buildable again

unit tests TODO added

Co-Authored-By: Adam <adam@olemae.com>
2022-04-04 15:37:02 +02:00
Lukas Korba fd7109d1f0
App initialization and checks (#223)
* AppDelegate connected
* Initialisation of the app and checks in place
* cleanup
* switch-default purpose commented
* checkWalletInitialisation simplified
* initialisation -> initialization
2022-04-04 14:04:01 +02:00
Francisco Gindre 6ae2bc7684 CHANGELOG.md for build 0.0.1-17
Bump Version to 0.0.1-17
2022-03-25 14:42:49 -03:00
Lukas Korba 1635ee81ce draft of the storage
Initial user preferences storage

refactor of one comment

handling defaults

singleton removed

support for the defaults

alphabetical sort

standard user defaults set by default

unit tests added

for-each to cover all cases

project fix
2022-03-24 16:21:38 +01:00
Lukas Korba 366d30a00d KeyStoring protocol implemented
The RecoveryPhraseStorage is an implementation of KeyStoring protocol. The unit tests are testing the keychain functionality to ensure security and proper error handling.

Refactor

All comments from the PR have been incorporated

Another batch of comment updates

thx Adam!

alphabetical order

refactored to private extension

Update secant/Util/RecoveryPhraseStorage.swift

Update secant/Util/RecoveryPhraseStorage.swift

cleanup

refactor and cleanup

setData refactor

Updated to the latest requirements

The KeyStoring implementation now relies on JSON (encoded) storing version, seed phrase and birthday.

method separation

fixed typo

functions documented

typo and warnings fixed

Mock services removed

the file and the content is not used anywhere, once we will need some mocks, we will implement it

RecoveryPhraseStorage singleton removed

Language added to the storage

Co-Authored-By: Adam <adam@olemae.com>
2022-03-23 19:18:08 +01:00
Lukas Korba 4660b41b7b MnemonicSwift added to the project
MnemonicSwift SPM added + implementation of the MnemonicSeedPhraseHandling protocol

TCA syntax for the MnemonicSeedPhaseProvider

swiftlint disable not needed anymore

double space fixed
2022-03-18 14:25:35 +01:00
Francisco Gindre 675ef60647
Merge pull request #188 from LukasKorba/183_createButtonStyle_noLongerNeeded
CreateButton instances removed
2022-03-03 12:04:07 -03:00
Lukas Korba 4ac7d2027e CreateButton instances removed
Assets, files, code cleaned up
2022-03-03 11:45:12 +01:00
Lukas Korba d3e0f4f1e5 debugging the navigation
code cleanup

I reimplemented preamble screen so it's not "a feature" but it's a simple view with the set of bindings
2022-03-03 11:29:00 +01:00
Lukas Korba b3b6be8037 First draft of the screen
the circular frame needs to be updated so it fits iPhone SE, otherwise screen is ready
2022-03-01 15:30:32 +01:00
Lukas Korba df0006c2bd
Merge branch 'zcash:main' into 165_wallet_import_screen 2022-03-01 09:47:06 +01:00
Lukas Korba e52b28adc3 Import Wallet localised
localisation of the import wallet screen done

Height of the buttons

according to design guide, the buttons should be 64px height
2022-03-01 09:40:16 +01:00
Lukas Korba f6548ee4ff Import Wallet Screen added
Scaffold of the import wallet screen has been created and connected to the onboarding flow
2022-03-01 09:12:50 +01:00
Francisco Gindre 4d2dd6a2e8
Merge pull request #176 from LukasKorba/174_app_localization
Required strings localized
2022-02-28 09:32:16 -03:00
Lukas Korba b2bd0adaea Required strings localized
All screens' strings that are meaningful for the demo application have been moved to the strings file.
2022-02-25 13:27:50 +01:00
Francisco Gindre 33e855df13 Issue #173 - build 0.0.1-15 2022-02-24 20:31:46 -03:00
Lukas Korba 277c8b33fd First batch of UI updates
The focus was on neumorphic buttons that work for both light and dark as well as state of the button (pressed)

Device specific enhancements

Colors and texts updated. Device specific paddings, margins and sizes enhanced

Dark appearance

Tweaks for the dark version of the onboarding UI

Update of the comments

Button UI updates

Colors updated, pressed button simulated and present in the DesignGuide.swift

Optimised Button's Layout

Onboarding footer was using the same settings for 3 buttons.
2022-02-23 15:08:54 +01:00