GithubHelp home page GithubHelp logo

zecwalletco / zecwallet-mobile Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 11.0 50.07 MB

Zecwallet Android and iOS apps

JavaScript 0.44% TypeScript 72.25% Starlark 0.29% Java 1.60% Ruby 0.45% Objective-C 7.08% Rust 8.94% Shell 1.81% Dockerfile 1.07% C 0.80% Kotlin 5.04% PowerShell 0.23%

zecwallet-mobile's People

Contributors

adityapk00 avatar denverbdr avatar dependabot[bot] avatar juanky201271 avatar rex4539 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

zecwallet-mobile's Issues

Add option to reset wallet

Currently, the only way is to delete the app and reinstall.

Add an option to reset wallet. User is informed that they will lose all data. If they accept, all data is deleted and app shows the first screen to create new wallet or restore from seed.

Require authentication to send funds

Depends on: #30

Require the user to authenticate themselves with their previously chosen authentication mechanism before signing a transaction.

Signing and sending the transaction should not be possible unless the authentication is successful because the private keys are encrypted.

Unable to Parse

Running Android 7.1.1
I am able to sideload apps.
I get this screen when i try and open the apk file.

Screenshot_20200527-183830

Privacy Issue: Unable to toggle between Memo Download settings

Unable to toggle between Memo Download settings. 'Wallet' is selected by default and I am unable to choose 'None' or 'All'.

IMO 'None' should be the default as 'Wallet' leaks tx information about the user/wallet to the lightwallet server.

ZecWallet Lite 1.7.8
Android 12

Text is cut-off on screen

Looks nice, I have a bug with text though. It cuts off the last letter of many words. Also the logo alignment in the center is covering part of the lettering for USD.

Screenshot_20200604-145451

Phone: OnePlus 7pro, Android 10.
|screen size|6.67 inches (16.94 cm)|
|refresh rate|90 Hz|
|screen resolution|1440 x 3120 pixels|

Require choosing authentication method upon wallet creation

When the wallet is generated or imported, require the user to choose one out of these authentication options:

  • Password (specific to this app)
  • PIN (specific to this app)
  • fingerprint
  • Default device screen lock protection (PIN, password, pattern, fingerprint, face lock - whichever is enabled)

Once implemented, for users that upgrade from an older version, require them to make this choice when first opening the wallet.

There's a "send all" button in the app

If you click this button, it will set the send amount, to your whole balance!

I don't know why the button exists at all. It seems to me that it's only useful for facilitating unintentional behavior. I think it should be removed!

Factor React Native Rust bindings into external library

Hi, it would be great to have the React Native Rust bindings in its own React Native module, allowing for third party wallets to be built with React Native using the light wallet bindings, and to make it easier to implement platforms such as react-native-macos and react-native-windows.

Syncing on iOS is very slow

Syncing from 625000 took 1,5 hour, with the app always in the foreground.

I’m currently on a slowish connection (10 down/1 up) so it could be related.

Mobile inter-app "deep links" Not working using ZIP321 uri

I'm currently quite excited about deep links as a way to improve ZECpages mobile usability. I changed ZECpages's ZIP321 uri's to <a> links, but my phone doesn't like them.

Platform: iPhone 8
Apps: Brave and Safari
Both flash an error: "Cannot open page due to invalid address."
I have an up-to-date install of ZecWallet

I would love for clicking these links to open ZecWallet automatically.

My implementation (live now on zecpages) is:
<a href="zcash:uristring">zcash:uristring</a>
for every zip321 uri in ZP (for likes and posting)

Require authentication to open wallet

Depends on: #30

When opening the app, display a lock screen and require the user to authenticate themselves with the wallet protection mechanism they chose. Display the standard wallet interface only after successful authentication.

Only non-secret data should be decrypted at this stage, so private keys and the seed should remain encrypted.

Add option to hide balance

Most mobile wallets for other blockchains have a feature that you can enable in preferences, where you can hide the wallet balance.

Tap & hold on the balance reveals the balance, releasing the finger from the screen hides it again. Nice and simple.

This feature is important in real life situation in a shop. You don't want the merchant (or any other random onlooker for that matter) to know your balance.

Start syncing during splash screen

To get a head start, start syncing as soon as the splash screen appears.

If it helps, keep it up for a couple more seconds so hopefully the app is synced by the time the main window appears, if it was just a day or two since the app was last launched.

Wallet starts rescanning over and over

Reproducing Steps:

  • Tap drawer menu button.
  • tap rescan wallet

expected: wallet rescans from 0% to completion and lets the user operate.
result: wallets rescans from 0% to 99.9% and starts over rescanning

Version: v1.7.9
lightwalletd version ECC Lightwalletd 0.4.12

Remove or isolate transparent addresses (privacy leak)

The client queries the lightwalletd server simultaneously for transactions to its transparent and to its shielded address. The client also reveals to the server if a block has a fully shielded transaction in which the client is involved.

Since fully shielded transactions are so rare that on average currently only every 4th block contains one, the server can tie transparent addresses to fully shielded transactions. If it's lite wallets sending fully shielded transactions to each other, from the server's perspective, this no more private than using transparent addresses, the difference being is that amounts are hidden.

For this reason, I suggest doing one of the following:

  • Remove transparent addresses completely. Potentially split the wallet into two apps, one exclusively handling t-addresses, the other exclusively z-addresses.
  • Disable transparent addresses by default. Put up a warning message and require opt-in from the user before first displaying transparent addresses and querying the server for their balance. Following that, require the user to pass a softer conformation screen every time the transparent tab is opened. Query t-addr balances only when the transparent tab is open. If there are confirmed transparent funds when leaving the transparent tab, suggest making a transaction that transfers them to a z-addr of the wallet. (This should be made as smooth and easy as tapping "Yes" on the screen, with amount management, address choice, signing, etc. all happening in the background.)

What do you think?

[iOS] Transaction falsely shown being created and submitted

I'm using v1.7.8

Locale: Spanish

Server Info:
image

Reproducing steps:

  • send a transaction with a memo to an address.
  • observe that is being created and submitted.
  • the toast message pops on the bottom of the screen

expected:
the transaction is confirmed and shown on the transaction history
result:

the transaction never shows up. Balance is unaltered. funds were never spent and tx never sent.

bonus finding

I sent many transactions testing this out.
One did appears to be sent, since I synced the same wallet on another app and the outgoing tx does not have a memo at all.

Add Pin

Can you add a PIN verification screen for security purpose similar to Green Wallet or even Litecoin's Litewallet?
Screenshot_20200529-164828~2

Encrypt as much of the application's data as possible

Depends on: #28

After the wallet protection mechanism is chosen, encrypt as much of the application's data as possible with the involved secret (including public keys, transaction history, birth block, etc.). Use AES-256 and sufficient rounds of Argon2. Ideally, a user who can't authenticate themselves should learn nothing more than the fact that the application is installed on the device and should get no further than an authentication screen.

Won't send transaction

When trying to send a transaction is hangs on the page saying to wait a minute for the transaction to go through. After I back out to go back yo main page I look at the block sync status and it isn't syncing anymore.

Require authentication to display seed

Depends on: #30

Require the user to authenticate themselves with their previously chosen authentication mechanism before displaying the wallet seed.

It should be impossible to access the seed without successful authentication because the seed is encrypted.

ZecWallet Lite 1.4.2 Create New Wallet Crashes

Screenshot_20210310-090826
See screenshot for phone model/number (hope it contains everything you need, otherwise LMK)
When I hit “Create New Wallet” the application crashes almost immediately.
Any help is greatly appreciated!

Enable generating/using multiple addresses

The current version uses only a single address for each address type.

If performance is an issue, limit how many addresses can be generated that don't yet have a UTXO, or limit overall number of addresses that can be generated.

feature: integrate Tor

As ostensibly IP addresses are visible to the lightwalletd server, integrate a Tor option for privacy, as Mycelium and Samourai do.

On Android, routing the application through Orbot is an extra step that most users would never jump through, and doing so also means disabling one's VPN so that Orbot can be used instead. This is a no-go, and not even an option on iOS.

bug: iOS app crashes if syncing from seed and device locks

v0.1.4 (4) / iOS / iPod

  • Open ZecwalletLite for first run. Choose 'restore from seed'.
  • Input seed and wallet birthday. (Despite specifying a height of 730000, wallet sync always starts at 690000.)
  • Wallet begins syncing as expected.
  • Allow device to go to sleep / lock as expected.
  • Unexpectedly, upon unlocking the device, receive iOS dialogue box that app has crashed. (Sent report.)
  • This happens whether or not the device locks from a timeout or if it's manually locked with the power button.
  • Unexpectedly, upon launching ZecwalletLite again, app begins resyncing from 690000, losing prior sync progress.

"Invalid Amount!" and unable to calculate USD price due to incorrect parsing

Steps:

  1. Go to https://zecpages.com/z/all
  2. In one of the polls, select "Yes" or "No" and then click on "Vote".
  3. Using ZecWallet mobile, tap on "SEND" and then on the QR code scanner.
  4. Scan the QR code.

What happened:
You get "Invalid Amount!" error and the USD price is zero (not calculated).

IMG_8223

In order to force the app to accept the amount, you need to delete all the characters and retype the amount manually. And even then the USD amount is sometimes calculated and sometimes not. So there is obviously a parsing bug.

Expected result:
Amount is parsed correctly and USD price is always updated when amount is shown or typed.

Frozen on Computing Transaction Page

Android 7.1.1
Version 1.0.14 from Play Store

Whenever I make a transaction it get stuck on the computing transaction page. I can back out of it, but it takes me back to the form page with all the previous info still typed in. The transaction does not go through.
Screenshot_20200908-122924

Also, there is not a way for me to get these funds off of my phone onto another Zecwallet. In the Android app I am only given a seed, but opening up Zecwallet full node or Lite (both on desktop) I can only put in private keys. No place for seed phrases. Actually I would be in the same position if I only had the seed phrase for both desktop options because there isn't a place to put the word phrases.

Improvement: automatically trim whitespace in pasted addresses

Copying addresses from various sources often results in whitespace within the clipboard contents.

An improvement would be to automatically trim pasted content to the address field of the Send pane.

Otherwise, 'Invalid address' is displayed, which requires the user scrolling and deleting spaces.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.