cryptonomex / graphene-ui

Cryptonomex Graphene front end (wallet and decentralized exchange)
https://bitshares.openledger.info
MIT License
156 stars 100 forks source link

Stealth: Sent funds are GONE! #807

Closed jcalfee closed 8 years ago

jcalfee commented 8 years ago

https://bitsharestalk.org/index.php/topic,21715.msg288209.html#msg288209

"The receipt still does not show when sending funds to a private account. It's only visible in the console.

I cannot retrieve the receipt afterwards in any case - in case I missed it in the console, my sent funds are GONE!

And when I try to import that receipt that I got from the console, I still get Error: Missing required field: Label is required unless a private key is provided(…)

This is the same situation as over a month ago!

I hope this doesn't get released on the mainnet like this, This is seriously broken, just like a month ago."

jcalfee commented 8 years ago

So far, from what I see no receipts were gone .. What was needed was refreshing better receipt reporting. Also I should note this is TEST funds.

I did find we needed to keep an additional receipt even in the case where the transaction ended up on the blockchain. This improves the UI as it knows better how to show you the sender and recipient (links).

Refresh upon wallet locking and unlocking has improved. This should clear up a lot of confusion.

Still a known issue: change receipt is shown in receipt history when sending blind to blind (you see some of your balance being sent from ~self to ~self in receipt history). That needs to be suppressed. Could be other cases where this change recept leaks through (I could benefit from a break here though).

I have updated http://stealth.cnx.rocks

mindphlux1 commented 8 years ago

I did additional testing and am happy to see that I can retrieve the receipt after sending a transaction.

I see that when I'm sending to a private contact that is not mine, I see the receipt, that is very good.

Please add some text like 'Please give this to the receiver of the transaction in order to complete the transaction', that would make usability better.

I was able to import the balance with the receipt, however nothing happened when I clicked "Receive" in the 'Receive funds' modal - the actual import of the balance did work. I recall there was some confirmation, so this seems to be a bug.

Good work, I'm happy to see that we're slowly ironing out those usability issues.

svk31 commented 8 years ago

Sending to another persons public key still does not work properly, the receive part is bugged.

First of all, if you try to receive without first unlocking the wallet, it just fails silently with no indication anything went wrong. In the console however you'll see a message that the wallet is locked.

Second, I still get this error:

-- receiveBlindTransfer error --> Error: Missing required field: Label is required unless a private key is provided

jcalfee commented 8 years ago

@svk31 I recreated the error.

When importing a receipt their are two things that have to be true:

1) There is a private key that can decrypt the receipt 2) That private key has a label (stealth keys have labels, the rest do not)

Both need to be true to import the receipt. In case 1, I used the wallet key import to import the private key. But, their was no way in the UI for me to add a label. One idea is that the New Private Account could allow the user to provide this WIF key, however, that leaves the case where the key was imported but does not have a label (no way to label an existing key).

So, if the key exists the import receipt dialog could update and prompt the user to label to the key.. If it does not it could prompt for the WIF and label. So that import will have to be smart enough to handle both of these cases.

jcalfee commented 8 years ago

I was pleased to find that the receipt import already had a PrivateKey element in it. I just needed to fix it up... So, the Add Private Account can accept a WIF now or it just lets you create a random key. Also, I trap and report it if the wallet does not have a private key for the receipt. So this should smoothen out receipt importing.

When importing receipts, I know of only 1 edge case: If you have a WIF imported without a label (in the wallet import), you can import the receipt now but it appears in the history with the account name of ~ .. The key belonging to the receipt is not known until you get into the cwallet, so this is not so easy to detect. I wonder if this is going to come up in the field, it is more likely the result of our trying to work-around the Add Private Contact not accepting a WIF..

I have updated the stealth site...

mindphlux1 commented 8 years ago

Last weekend, I wanted to demonstrate Stealth to a friend, however I was not able demonstrate it. Sending to a blinding account did not work. Seems to work now, but I'm not sure.

jcalfee commented 8 years ago

Another round of testing is needed on the send side.. Their maybe another issue with sending and 'Recent History'. I'll probably find some time before early next week.

jcalfee commented 8 years ago

fixed