Commit Graph

40 Commits

Author SHA1 Message Date
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 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 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
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 445e443a37
[#481] Update TCA to 0.45.0 (#482)
- updated, all works fine
2022-11-07 11:54:09 +01: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 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
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
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
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
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 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
Lukas Korba b17475be46
[358] Xcode project broken (#360)
- fixed
2022-06-14 13:10:27 +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
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 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 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 4b114efa8b
Changelog for 0.0.1-21 + committing .resolved file for SPM (#286) 2022-04-21 13:42:50 -03:00
Lukas Korba 5ce68fa5a5
Static welcome screen (#274)
* icon for the welcome screen

* static launch screen
2022-04-20 18:46:04 +02: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 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 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
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
Francisco Gindre 52d3b8610a Initial Project 2021-07-29 19:38:35 -03:00