Commit Graph

295 Commits

Author SHA1 Message Date
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
Francisco Gindre b42cc56906 Issue #61 - Zcash Logo and welcome screen
Text shadows

font adjustments

Naïvely integrate to navigation

bump build

fix lint warning

PR Suggestions
2022-02-18 11:06:17 -03:00
Francisco Gindre b75def9cc1 Issue #44: Recovery Phrase Validation flow + tests
Rename struct to RecoveryPhraseValidationState. Add docs

WordGrid + tests

Make Word Groups Droppable and Blue word chips draggable

cleanup

Rename Stores and adopt aliases and default pattern for reducers

Fix drop not working

FIX: apply background to header. Spacing

Fix compilation errors. Add validation demo to AppView

Fix: the empty chips are rendered once, because they are not uniquely identifiable

Add the Validation screen to the App Home

make mutating functions static

fix project warnings

Fix Tests

Fixed .complete test

refactoring the Enum. first step

Move given() to RecoveryPhraseValidationState and fix tests

Add canary test for computed property of State

Move RecoveryPhraseValidationStep to a nested type of RecoveryPhraseValidationState

rename RecoveryPhraseValidationState.RecoveryPhraseValidationStep to RecoveryPhraseValidationState.Step

Move static functions from RecoveryPhraseValidationStep to RecoveryPhraseValidationState

Move creational factory methods together to the same extension

Remove unused functions

remove associated values from Step enum

Fix: Avoid Drop being disable between chips

0.0.1-10

add navigation bar to phrase validation demo

Reduce spacing between groups. Code cleanup

Remove RecoveryPhraseValidationStep.swift
Move remaining code to proper places

PR Fixes. Move .initial factory method to test target. Rename given() to apply(chip:group:) and make it a member function

Cleanup. Remove .validate, .invalid and .valid states. Figure word chips out of the state.

Fix randomIndices()

Tie view's title to state

Connect Header to State

BlueChip is now ColoredChip.

Success Screen

fix project

Connect Success Screen to successful validation

Add Red color to backgrounds

Validation Failed Screen

Connect SuccessValidation Screen to home

hide back button on Success view

Connect Phrase Display to validation

0.0.1-11

Fix word grid background colors

View Modifier to add scrollview when the content is being scaled up by DynamicType

Adjust UI spacing and padding to designs

Add Placeholder states for SwiftUI Previews

Flatten EnumeratedChip Hierarchy

Flatten EnumeratedChip view hierarchy

Fix: LazyVGrid can't take GeometryReader on its items' bodies

Fix: Colored Chip does not adjust

Fix: Vertical separation between wordgroups is too tall.

Fix: Accesibility fixes for Validation Failed screen

Rename ValidationFailedView

Accessibility Pass on Validation success screen

 FIX: Colored chips too big when scaled up

Fix: ValidationFailedScreen does not scroll well when scaled up

Fix Empty chip shadow color for dark color scheme

Fix: chip grid background does not bleed out to bottom of the screen

build 12

Fix: pre success/failure screen step shrinks the screen because word grid is missing

Resolved PR comments

Fixes to resolve PR conversations

Fixes to resolve PR conversations

Fix PhraseChip preview

Make ScrollableWhenScaledUp modifier fileprivate

Remove comments and clean up code

Fix Swiftlint issues

Renamed RecoveryPhraseStepFulfillment to ValidationWord

Rename pickWordsFromMissingIndices

PR fixes

PR suggestions

PR suggestions

Move words(fromMissingIndices:size) to RecoveryPhrase

Make ScrollableWhenScaled struct fileprivate

PR Suggestions Part two

PR Suggestion changes

remove unused

PR suggestions

suggested rename

PR suggestions

remove apply(chip:into) move that to Reducer

Formatting changes

more formatting changes

Fix: iPhone 13 Pro Max displays 4 columns instead of three

Fix: Recovery Phrase puzzle shows incorrect number of columns and margin alignment on bigger devices

Add test to catch state not changing as intended

Phrase validation reducer refactor + tests

make step computed property a bool

make isComplete a single line

PR Suggestions

Rename ValidationSuccededView.swift

Fix Bug: valid phrase should contemplate that the phrase is complete first

PR Suggestion

refactor and add Unit Tests for resultingPhrase, isComplete, isValid
2022-02-18 10:26:11 -03:00
Francisco Gindre 249f4306bb 0.0.1-9 2021-12-14 17:18:20 -03:00
Daniel Haight 8425dd94b1 Delete router style placeholders 2021-12-14 02:50:55 +00:00
Daniel Haight 9f7c5c158a Add App placeholder feature
This feature represents the "entrypoint" of the app.

As it stands now it combines the home, and onboarding features.

Notice how we have created `AppReducer.routeReducer` to (temporarily)
use use the `OnboardingAction.createWallet` action, to navigate directly
to `Home` while we are still implementing it.
2021-12-14 02:50:55 +00:00
Daniel Haight c0dd6f8015 Add Profile placeholder feature
This feature is a very basic example of combining two existing features
that can be navigated to. Aside from this it currently has no other functionality, and is
intended to exist as yet another feature that can be navigated to.
2021-12-14 02:50:53 +00:00
Daniel Haight 4166439ffa Add Request placeholder feature
This is boiler plate to flesh out a feature to navigate to
2021-12-14 02:50:14 +00:00
Daniel Haight 9720e8c59b Add Scan placeholder feature
This is boiler plate to flesh out a feature to navigate to
2021-12-14 02:38:22 +00:00
Daniel Haight 20cc378ee9 Add Settings placeholder feature
This is boiler plate to flesh out a feature to navigate to
2021-12-14 02:34:31 +00:00
Daniel Haight 202808097c Add WalletInfo placeholder feature
This is boiler plate to flesh out a feature to navigate to
2021-12-14 02:34:31 +00:00
Francisco Gindre 5646afbdd5 First Stab at The Composable Architecture
Initial Light Mode Recovery Phrase Backup Screen

Dark mode color adjustments

Quotes "Navigation Bar Title"

Fix Recovery Phrase chips throw a UI Thread warning

Integrate Copy to buffer button

create test build 4 for UX validation

FIX: Archiving compilation errors

fix warnings. add TODOs for demo code that is needed to build on release mode

PR Fixes: remove dump calles add TODOs

remove unneeded padding

remove prints

PR fixes: remove min height from standard button style.

change extension from View to Text

change comment format

PR Fixes. code style

Add ticket number to TODOs

Rename "Backup Flow" to BackupFlow

PR lint fixes

Add tests

Fix lint issue. cleanup

rename "UI Components" to "UIComponents"

Renamed folder with spaces to CamelCase names:
"App Errors" to "AppErrors"
"Mocked Dependencies" to "MockedDependencies"

Renamed "Font Styles" to "FontStyles"

hook up to home screen

Adding: [Suggestion(adding pasteboard to environment)]

Implement [Suggestion(use specific RecoveryPhraseError) | non-blocking]

Remove double carriage return and replace by VStack of Text()

add App Uses Non-Exempt Encryption -> NO value to Info.plist

bump build #

0.0.1-7

make view modifiers private

move modifiers into extension

Testable Pasteboard

Fix: Word groups don't have noticeable spacing that allows the user to tell them apert

FIX: don't truncate enumerated chips
2021-12-13 15:58:13 -03:00
Francisco Gindre 3422c8dbd0 Integrate onboarding to fake home
show OnboadingScreen instead of  OnboardingView

remove Struct Type
2021-12-08 19:47:35 -03:00
Francisco Gindre c702319bb5
Merge pull request #122 from adamstener/onboarding-screen
Onboarding Screen
2021-12-08 14:32:39 -03:00
adam cc32e881ba Onboarding Screen 2021-12-07 06:18:35 -06:00
Daniel Haight 780dd0fafa [Experiment] Move `Send` routing into a parent `SendView`
This is to demonstrate having something like a 'Coordinator' that
handles the routing logic of the feature.

It is done as a seperate commit to compare against the original
implementation that has the routing logic encoded explicitely in
each view.
2021-11-21 14:51:32 +00:00
Daniel Haight 85395bb9f0 Add `Send` "Placeholder" Feature
This adds screens to represent a basic "Send" Feature. The main
purpose of this is two-fold.

1. To act as a placeholder for the actual journet
2. To demonstrate a slightly different navigation paradigm, i.e,
   a `NavigationView` with >1 depth.
2021-11-21 14:47:51 +00:00
Daniel Haight c6a98f06c2 Add `WithStateBinding`
This is a way to add back some of the "free" animations that we lose when
creating custom bindings instead of using `@State` variables, which is
extremely common in TCA / unidirectional architecture.

For an example check out the live preview in the `WithStateBinding` file.
The first is with a standard State binding, click to get the detail and then
drag from the leading edge slowly. You will notice the selection highlight _gradually_
gets less the more you drag (or stronger if you go back).

For the second one with a custom binding, drag back and you will notice it is either
entirely selected, or deselected.

The third uses `WithStateBinding` to give _back_ the nice animations to custom bindings.
2021-11-15 23:36:16 +00:00
Daniel Haight e458a491c4 Add `Home` TCA feature
- Add the `State/Action/Reducer` combination to represent a basic TCA feature
- There is a `route` property on the state which represents our navigation state
    (we will use this to drive more navigation state in the next commit)
- The state has a property which is a `TransactionHistoryState`
    we create our new reducer by leaning mostly on the existing one.
- Temporarily we set up a text representation of our state
- Temporarily Use `HomeView` as the app's entry point, to be replaced with an `AppView`
2021-11-15 23:36:16 +00:00
Daniel Haight 9724d22235 Add `NavigationLinks` and `Bindings`
This gives us a more readable approach to set up navigation links
that mirrors other `SwiftUI` navigation paradigms such as `.sheet`.

We use the modifier to simplify navigation link setup for `TransactionHistoryView`

We also include some `Binding` extensions to help creating them.
2021-11-15 23:36:14 +00:00
Daniel Haight 0ce7d14c81 Add `History` TCA feature
This adds a "TCA" feature of a (very) basic transaction history and detail.

It demonstrates a purely state driven navigation stack.
Specifically, a `route: Route?` value is tracked in the state.
This value is driven by the selection of a transaction in the list,
setting it to to `.selectedTransaction(transaction)`,
which then pushes the detail view for that `transaction` onto the `NavigationView`.
Popping the detail view sets the property to `nil`.

Take a look at the previews in `TransactionHistoryView` try them "live" as well.

**N.B** The models are _not_ correct in any way, though are meant to be somewhat representative
and give something to display.
2021-11-15 23:32:54 +00:00
adam 66e35c2913 Circular Frame 2021-10-29 08:22:16 -05:00
Francisco Gindre 2e49e0968d Empty Chip + design guide tweaks
Integrate design guide secret screen

doc formatting

latest tweaks

remove commented code
2021-10-26 18:49:47 -03:00
Francisco Gindre bafdd6df37 PR suggestions 2021-10-21 12:40:35 -03:00
Francisco Gindre dedea73ffc Numbered Text View + tests
Recovery Phrase word chip, fonts and colors

Adjust font and layout

move background code to EnumeratedChip

enhance preview

Fix chip size not being uniform and trimming

code cleanup

remove Font License

code cleanup
2021-10-20 21:01:28 -03:00
Francisco Gindre 6d299c6a98 Add Rubik fonts
Use Variable fonts
2021-10-19 19:56:16 -03:00
Francisco Gindre fbe81e7320 specify background component naming 2021-10-18 16:45:57 -03:00
Francisco Gindre ec76786bf2 Rename Background View to VLinearGradient. Create ViewModifier 2021-10-18 15:13:04 -03:00
Francisco Gindre 8847064f45 Background Linear Gradient component + Design Guide 2021-10-18 13:04:15 -03:00
adam 37035170f2 Button Styles 2021-10-18 09:13:51 -05:00
adam e1439ba363 Onboarding Progress Indicator 2021-10-15 17:30:20 -05:00
adam c8d3ccf7a3 TCA Updates 2021-10-15 06:15:12 -05:00
adam 0169164472 Onboarding TCA intro 2021-10-13 07:25:17 -05:00
adam 2f66bb5cd7 SwiftGen Assets 2021-10-05 13:41:26 -05:00
Francisco Gindre bcd2a5aff6 Loading Screen + Tests
wire router

slow mock loading

Enable gathering coverage information

Fix Lint issues

Lint fixes

Cleanup
2021-09-17 15:02:53 -03:00
Adam Stener 789333f234 Enable SwiftLint 2021-09-16 05:34:54 -05:00
Francisco Gindre 00324a5afe Enable Test Coverage 2021-09-10 11:34:57 -03:00
Francisco Gindre 1e592fc7bf bump build number 2021-08-31 16:47:36 -03:00
Francisco Gindre 55a93540c2 fix location that was being excluded from index 2021-08-24 19:27:45 -03:00
Francisco Gindre 80326b46ca fix project files being missing when they were not 2021-08-24 19:12:30 -03:00
Francisco Gindre a7b4f2744f fix test host 2021-08-24 19:03:22 -03:00
Francisco Gindre 3053438d69 bump version and send to app store 2021-08-24 14:21:10 -03:00
Francisco Gindre 536687b745 add plain zcash logo 2021-08-24 13:58:55 -03:00
Francisco Gindre 49a01c1014 testnet build config + navigation scaffold 2021-08-24 11:45:03 -03:00
Francisco Gindre 15ef90cb40 SwiftUI Router Setup 2021-08-06 20:38:47 -03:00
Francisco Gindre 52d3b8610a Initial Project 2021-07-29 19:38:35 -03:00