Go to file
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
.github Fix typos in the pull request template 2021-09-15 14:36:45 -04: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 Issue #44: Recovery Phrase Validation flow + tests 2022-02-18 10:26:11 -03:00
secant.xcodeproj Issue #44: Recovery Phrase Validation flow + tests 2022-02-18 10:26:11 -03:00
secantTests Issue #44: Recovery Phrase Validation flow + tests 2022-02-18 10:26:11 -03:00
secantUITests Enable SwiftLint 2021-09-16 05:34:54 -05:00
xctemplates/Router Templates Enable SwiftLint 2021-09-16 05:34:54 -05:00
.gitignore Add Git ignore 2021-07-19 15:45:06 -03:00
.swiftlint.yml Enable SwiftLint 2021-09-16 05:34:54 -05:00
CHANGELOG.md SwiftGen Assets 2021-10-05 13:41:26 -05:00
CODE_REVIEW_GUIDELINES.md Fix typos 2021-11-05 10:07:21 +02:00
CONDUCT.md Add Code of Conduct 2021-07-19 15:45:34 -03:00
CONTRIBUTING.md Add Contributing guidelines 2021-07-19 15:45:53 -03:00
LICENSE Add License 2021-07-19 15:46:24 -03:00
README.md SwiftGen Assets 2021-10-05 13:41:26 -05: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 Numbered Text View + tests 2021-10-20 21:01:28 -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.

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