GRIN++ wallet error?

I have received some grins in my grin++ wallet. After some time, the wallet lost almost all of them, the transaction list shows them all, but spendable amount is not correct. I found all receiving transactions with grin explorer in the blockchain, they are all unspent. Newest version of grin++ wallet shows wrong balance too. Other wallets that I know are not compatible with grin++ wallet, so I can’t restore my account with another wallet. Knows anybody what should I try next?
thanks in advance
FFM

@david is there a sort of “rescan” command that might help?

Yes. I tried it, no effect. I uninstalled the wallet, installed and restored again, did not help. Then installed and restored in another computer. Always the same.

@FFM Do you happen to know which version you were running when the outputs were created? Are they in the outputs list if you click “Show Canceled” and “Show Spent”?

Other wallets are actually compatible with Grin++ seed words.There was a bug in the way they were calculated early on, which caused grin-wallet 1.0.0 - 1.1.0 to show them, but failed when trying to spend those outputs. The old outputs may not appear at all in grin-wallet 2.0.0 though, I haven’t tested much. Any tx created since Grin++ 0.5.0 should be fully restorable in any wallet, and any txs from before that should still be restoreable in Grin++.

Are you able to submit a bug report in the top right? If so, link to this forum post in the description, and then let me know once it’s submitted.

I can send you a pdf with all saved information. Where should I upload/send/? it?


The wallet in the pictures is not synced. I restored the account with the latest version 0.6.1 and it shows the same spendable amount. Look please for example at the transaction of 12.855437374 grin, the wallet says SPENT, the blockchain explorer says UNSPENT.
Thx in advance
FFM

Looks spent to me https://grinscan.net/output/0991718026d8db2cb0481b511ecbdf6ce0e85be38b7547ed2ff9d6192526233c98

Did you always download Grin++ from the official site (https://grinplusplus.github.io OR https://github.com/GrinPlusPlus/GrinPlusPlus/releases) ?

  1. Hm, interesting. What does this mean:
    https://grin.blockscan.com/commit/0991718026d8db2cb0481b511ecbdf6ce0e85be38b7547ed2ff9d6192526233c98
    ?
  2. Yes, of course, always from github.

That’s odd. It apparently means blockscan’s logic for determining if an output is spent doesn’t work. It shows it’s in the inputs of block 247127. https://grin.blockscan.com/block/247127#input

So it sounds like Grin++ is correctly detecting your balance.

In other words, somebody spent my grins… :slight_smile:

I restored my wallet also on another computer. I also have two instances of wallet. When I send some grins from one computer I DO NOT SEE THE SEND TRANSACTION ON ANOTHER COMPUTER. That means, when somebody knows my “words” and makes the same, I do not see even, that the grins are sent…

Another observation: I sent 8 grins to another wallet via file. The receiver wallet made receive and the response has been processed by the sender and finalized it. Then, the receiver cancelled the transaction. It has been marked as cancelled, nevertheless it has been confirmed and the receiver has the 8 grins as spendable. The receiving transaction itself, stays marked as cancelled. However, transaction info dialog shows status spendable.

Thanks for reporting these scenarios. The logic to determine transaction and output statuses is non-trivial, and I find myself frequently tweaking it to handle new scenarios. Does your available balance still update, even if it doesn’t create a send transaction on your other computer?

fwiw, it really isn’t recommended to use the same seed on different devices for the reasons you’ve mentioned. It should work on Grin++, since it tries to identify its own outputs as it receives new blocks, but it’s not perfect. You also should never do that with other wallets, since they don’t try to identify outputs in new blocks, and in very rare cases, it could result in the same commitment being derived, and the possibility of a replay attack that could steal some of your funds. Grin++ isn’t nearly as susceptible to this, but it’s still something to keep in mind.

Meanwhile I’m deeper in the problematic and I can imagine, that it is problematic to detect transactions that were not made from the local computer. And yes, the other computer detects changed total spendable balance, it only does not show the send transactions.
Thank you for your recommendations.

Well, I’ll try to track down the bug that is resulting in a new send txn not being created, but there’s not really a “transaction” to detect in Grin. It’s possible to detect outputs received or inputs spent (hence how spendable balance is updated), but the metadata that goes along with those that make up a “transaction” are lost once the original transactions are included in a block. So any transaction that would be created is just a made-up txn intended to help understand how your wallet’s outputs were sent/received.

Your unspent outputs list should be used as your source of truth.