nighthawk-apps / nighthawk-wallet-android

Old version of Nighthawk Android Wallet. No longer maintained.
https://nighthawkwallet.com
Apache License 2.0
33 stars 14 forks source link

Several block confirmations currently required for funds to become available #79

Open bobanm opened 3 years ago

bobanm commented 3 years ago

Is your feature request related to a problem? Please describe.

This is definitely my main issue with Nighthawk wallet. After a block with incoming transaction has been mined, it takes several [8 or more?] block confirmations in order for the wallet to "unlock" those funds, show them as available and allow me to use them in an outgoing transaction.

To make things even worse, after making an outgoing transaction, due to the nature of UTXO-based systems, all the funds that were input in my outgoing transaction are excluded from the available balance, until 8 blocks are mined. For example, if I have 1 UTXO of 10 ZEC and send 1 ZEC in my next transaction, the whole 10 ZEC will be used as transaction input and my wallet will show a balance of 0 ZEC until my outgoing transaction had 8 confirmations 😬

This could be very scary UX for people who are new to crypto, thinking that all the funds from their wallet disappeared [hacked, stolen?] after they made 1 small outgoing transaction.

It is unlikely that this block confirmation thing is a requirement from ECC, as I haven't seen it in Zecwallet Lite, nor in any other mobile crypto wallet. I understand security and how SPV nodes work, but I don't think that such security measure is required on the client side, while protocol allows users to immediately spend UTXOs after they are mined in the first block.

Describe the solution you'd like

  1. Show balance updates as soon as a transaction is in the mempool, both for incoming and outgoing transactions.
  2. Show different values for total and spendable [available] funds only in send view, while balance view should always show the total of available + pending funds.
  3. Allow users to spend those new coins as soon as the incoming transaction is mined in the block.

Describe alternatives you've considered

To use Zecwallet Lite instead, as it lets me send funds as soon as the block is mined 😉

nighthawk24 commented 3 years ago

The recommended confirmations is 15, but we have set it to 10 per ECC SDK standard. Here is the open issue https://github.com/zcash/zcash/issues/1614

nighthawk24 commented 2 years ago

Opened https://github.com/zcash/zcash-android-wallet-sdk/issues/416

We're working to get down the minimum conformations before spending requirement down to 1 conf.