hivewallet / hive-mac

Hive Bitcoin wallet for the Mac (UNMAINTAINED)
https://mac.hivewallet.com
GNU General Public License v2.0
286 stars 55 forks source link

Transaction stuck on "Pending" when sending to BitPay invoice #412

Closed punkrampant closed 10 years ago

punkrampant commented 10 years ago

So I tried to make a purchase on Gyft.com with bitcoin, and I clicked on the "Pay with Bitcoin" button on the BitPay invoice. This brought up Hive Mac, in which I entered my password and sent the funds. Hive showed the little green message saying the invoice should be marked as paid. I went back to the BitPay invoice and it wasn't paid yet, and the whole 15 minutes passed before it expired. Back in the Hive wallet, the transaction still says "Pending" and it hasn't showed up on blockchain.info either, 30 minutes later. Please help.

punkrampant commented 10 years ago

Hey it's all good! I had to shut down the wallet and restart it to make the transaction broadcast on the network. The BitPay invoice updated to mark as paid, even though it had already expired! Phew.

mackuba commented 10 years ago

Hm, that's strange... if that green message showed up, it means the server has responded that it accepted the transaction, so at this point the invoice should update the status on the site. Maybe you had some network connection problems. Can you send me your logs to kuba@hivewallet.com? (~/Library/Logs/Hive/*.log)

mikehearn commented 10 years ago

I saw the same thing yesterday. It seems like BitPay might have a fault on their end where they aren't broadcasting the transaction. This used to work OK.

mackuba commented 10 years ago

Even if BitPay didn't broadcast it, it should have been broadcasted on the client end, since we're calling wallet.commitTx in onSuccess after sendPayment succeeds...

mikehearn commented 10 years ago

commitTx updates the wallet. It doesn't broadcast it until a new peer is connected. One of the points of the payment protocol is that the client doesn't have to broadcast, the remote side takes care of that (e.g. what if the tx is unwanted in some way?). But if you want to broadcast too, you can use peerGroup.broadcastTransaction. It will call commitTx for you once the tx is seen propagating.

mikehearn commented 10 years ago

BTW I emailed BitPay and they said they'd get it fixed.

mackuba commented 10 years ago

Ok, I'm closing this ticket then.

mikehearn commented 10 years ago

The fix is now in production, I just tested and it works again. They had some bug server side.