Go to file
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
.github Fix typos 2022-02-18 23:39:04 +02:00
Templates Circular Frame 2021-10-29 08:22:16 -05:00
docs Fix typos 2021-11-05 10:07:21 +02:00
images rename screens folder to images 2021-09-10 15:36:03 -03:00
secant Add crash reporter to secant (#531) 2023-02-15 18:18:18 -03:00
secant.xcodeproj Add crash reporter to secant (#531) 2023-02-15 18:18:18 -03:00
secantTests Add crash reporter to secant (#531) 2023-02-15 18:18:18 -03:00
secantUITests Enable SwiftLint 2021-09-16 05:34:54 -05:00
xctemplates/TCA.xctemplate [313] Project Structure & TCA Code Consistency Document (#314) 2022-05-12 16:52:27 -03:00
.gitignore Add crash reporter to secant (#531) 2023-02-15 18:18:18 -03:00
.swiftlint.yml [#521] Update format for the Swiftlint TODO rule (#522) 2023-01-20 14:55:08 +01:00
CHANGELOG.md bump to build 37 2023-01-05 12:52:32 -03:00
CODE_REVIEW_GUIDELINES.md Fix typos 2021-11-05 10:07:21 +02:00
CODE_STRUCTURE.md Fix typos (#507) 2023-01-02 12:18:58 -03:00
CONDUCT.md Add Code of Conduct 2021-07-19 15:45:34 -03:00
CONTRIBUTING.md Fix typos (#507) 2023-01-02 12:18:58 -03:00
LICENSE Add License 2021-07-19 15:46:24 -03:00
README.md Swiftlint 0.45.0 -> 0.47.0 (#290) 2022-04-22 12:24:10 -03:00
SWIFTLINT.md Fix typos 2021-11-05 10:07:21 +02:00
responsible_disclosure.md add responsible_disclosure.md 2021-07-29 19:28:49 -03:00
swiftgen.yml [#180] Project Structure and Source code consistency (#317) 2022-05-13 13:29:57 -03:00
symlink-templates.sh SwiftUI Router Setup 2021-08-06 20:38:47 -03:00

README.md

secant-ios-wallet

This wallet is a Dogfooding effort towards Zcash Halo Arc / NU5 efforts.

Motivation

Dogfooding - transitive verb - is the practice of an organization using its own product. This app was created to help us learn.

Please take note: the wallet is not an official product by ECC, but rather a tool for learning about our libraries that it is built on. This means that we do not have robust infrastructure or user support for this application. We open sourced it as a resource to make wallet development easier for the Zcash ecosystem.

Disclaimers

There are some known areas for improvement:

  • This app is mainly intended for learning and improving the related libraries that it uses. There may be bugs.
  • Traffic analysis, like in other cryptocurrency wallets, can leak some privacy of the user.
  • The wallet requires a trust in the server to display accurate transaction information.

See the Wallet App Threat Model for more information about the security and privacy limitations of the wallet.

If you'd like to sign up to help us test, reach out on discord and let us know! We're always happy to get feedback!

Description

iOS wallet using the Zcash iOS SDK that is maintained by core developers.

This a reference wallet for the following set of features:

  • z2z transactions w/ encrypted memos
  • reply-to formatted memos
  • z2t transactions
  • transparent receive-only
  • autoshielding on threshold from receive only t-address

note: z means sapling shielded addresses.

Installation of Swiftgen & Swiftlint on Apple Silicon chip

Swiftgen

Install it using homebrew

$ brew install swiftgen

and create a symbolic link

ln -s /opt/homebrew/bin/swiftgen /usr/local/bin

Swiftlint

The project is setup to work with 0.47.0 version. We recommend to install it directly using the official 0.47.0 package. If you follow this step there is no symbolic link needed.

In case you already have swiftlint 0.47.0 ready on your machine and installed via homebrew, create a symbolic link

ln -s /opt/homebrew/bin/swiftlint /usr/local/bin

Contributing

Contributions are very much welcomed! Please read our Contributing Guidelines and Code of Conduct. Our backlog has many Issues tagged with the good first issue label. Please fork the repo and make a pull request for us to review.

Secant Wallet uses SwiftLint and SwiftGen to conform to our coding guidelines for source code and generate accessors for assets. Please install these locally when contributing to the project, they are run automatically when you build.

Reporting an issue

If you wish to report a security issue, please follow our Responsible Disclosure guidelines.

For other kind of inquiries, feel welcome to open an Issue if you encounter a bug or would like to request a feature.

License

MIT