GithubHelp home page GithubHelp logo

nighthawk-apps / zcash-ios-wallet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freesidevirtual/zcash-ios-wallet

2.0 2.0 4.0 5.46 MB

Old version of Nighthawk iOS Wallet. No longer maintained.

Home Page: https://nighthawkwallet.com

License: MIT License

Swift 99.91% Shell 0.09%
wallet zcash

zcash-ios-wallet's People

Contributors

amritkumarj avatar braddmiller avatar charlieok avatar defuse avatar dhruv245 avatar jellehelsen avatar nighthawk24 avatar pacu avatar t-mullen avatar tw0po1nt avatar yacare555 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

zcash-ios-wallet's Issues

Remove Cocoapods from NH wallet

@nighthawk24 asked me to remove the cocoapods from the nighthawk apps version they have at the moment in the App Store.

This requires:

  • removing cocoapods (deintegrate)
  • Add all the swift package dependencies locked to the version the app supported though pods.
  • Solve any compile errors.

Send UX

Love the wallet, but it seems to be missing a basic feature: send max

It is rather cumbersome for users to try to send exactly the right amount to drain a wallet, accounting for fees, etc.

Also, it is a little weird that you click a QR code icon to receive instead of sending. Most wallets allow you to click the QR icon to scan a QR code.

Stuck on "Your Wallet History"

Platform: iPhone 8

Newly created wallet. Navigated to my empty wallet history, the back button does a slide transition, revealing the same wallet history page.

A minute later, my first transaction confirmed and I saw it appear in my wallet history. The back button behavior didn't change, the wallet history keeps slide transitioning away, revealing a copy of itself.

Expected behavior - The back button should take me back to the send screen.

Additionally, the single transaction I have received flickers to black occasionally, making the history look blank for a second or so.

After killing and restarting the app, the back arrow works as expected, but the transaction still flickers in the list.

Skip biometrics on devices lacking them

iPod Touch / iOS v13.6.1 / Nighthawk 1.0 (47)

A device not equipped with biometrics still requires their use to authorise a send.

Instead, pressing 'send' after providing a receiving address and amount produces an error:

Authorization Failed! | Biometry is not available on this device. | Dismiss

This should be skipped if a device lacks biometry.

Memo copy says "Address Copied!"

It's not a biggie but at first I didn't see the "to" zaddy copy function below where it says memo (and copying that works fine) so it was confusing as to why it pasted the whole memo when it said it just grabbed the address.

ZIP321 URI's not supported

Platform: iPhone 8

I'm trying to post to ZECpages, but Nighthawk wallet doesn't like the QR codes, which are ZIP321 URIs which contain valid zcash addresses. Nighthawk gives me the following error:

"This QR code does not contain a Zcash valid address!"

I've talked with Aditya about this, I know this is on your radar, but I thought it wise to document it here. These URI's have really helped streamline ZECpages' interface, and it'd be great to have them supported in your wallet!

Tiny, comparatively unimportant aside - I think the error message is incorrect and also too alarming. I think a more precise message (in the current implementation) would be "Zcash address not recognized"

EDIT:
Here's a js example. It's surely bulky and under engineered but it works

function parseZaddrOrUri(str) {
  str = str.replace(/ /g, "") // strip whitespace just to be thorough
  let amount = 0;
  let zaddr = "";
  let memo = "";
  const zaddrRegex = /(zs\w{76})/;
  const uriRegex2 = /(zcash:zs\w{76})/;
  const isValid = zaddrRegex.test(str) || uriRegex.test(str)
  if (!isValid) return {error: "Address/URI not recognized."}

  const memoMatch = str.match(/(memo=([^&]*))/);
  const amountMatch = str.match(/(amount=([^&]*))/);
  const zaddrMatch = str.match(zaddrRegex);


  if (memoMatch) memo = memoMatch[2]
  if (amountMatch) amount = amountMatch[2]
  if (zaddrMatch) zaddr = zaddrMatch[0]

  return {memo, amount, zaddr}
}

Some manual tests - I think these are all the permutations you have to handle.

var str = "zcash:zs19dedmnrkhq2pth3jp3cnn6c5jqshnu9ss2fljllm9l0tlgqw0mtpvs9207ecywwtmx7wkrvksvn?amount=0.001&memo=memobase64"
var str2 = "zcash:zs19dedmnrkhq2pth3jp3cnn6c5jqshnu9ss2fljllm9l0tlgqw0mtpvs9207ecywwtmx7wkrvksvn?memo=memobase64"
var str3 = "zcash:zs19dedmnrkhq2pth3jp3cnn6c5jqshnu9ss2fljllm9l0tlgqw0mtpvs9207ecywwtmx7wkrvksvn?amount=0.001"
var str4 = "zcash:zs19dedmnrkhq2pth3jp3cnn6c5jqshnu9ss2fljllm9l0tlgqw0mtpvs9207ecywwtmx7wkrvksvn"
var str5 = "zs19dedmnrkhq2pth3jp3cnn6c5jqshnu9ss2fljllm9l0tlgqw0mtpvs9207ecywwtmx7wkrvksvn"


console.log(parseZaddrOrUri(str))
console.log(parseZaddrOrUri(str2))
console.log(parseZaddrOrUri(str3))
console.log(parseZaddrOrUri(str4))
console.log(parseZaddrOrUri(str5))

TransactionEncoderError 5 when shielding funds

Parameters are not being downloaded when shielding funds.

workaround: Send funds from your shielded wallet, could be 0 ZEC + fee only. Wait for the transaction to succeed. that will force the app to download the parameters.

Unable to send funds; error message "Authorization failed! No identities are enrolled."

I'm unable to transfer funds from an iPhone test wallet, due to an error "Authorization Failed! No identities are enrolled." I uninstalled Nighthawk, reinstalled, and restored the wallet from seed, but the error persists (screenshot below)

Let me know if you have any questions or recommendations. I'm a big fan of Nighthawk wallet and the z2z only UI :- )

IMG_4210

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.