Invalid transaction. loss of coins [coins not shown when cancelling transaction after broadcast]

A couple of days ago, I made a withdrawal from the Trade Ogre exchange


Sent Tx 7eea65f6-2e2b-4ca7-98bf-e696dcb6aefa 2024-10-21 15:53:19 None true 2024-10-21 16:04:18 13 1 5551.0780195 51878.33951765 0.029 -46327.26149815 None 09177eb77d95bc9092d6ce6371d7612ebd914c01535ae5b2cf99c79b0f77af5553 Yes

then I clicked cancel, although there was already information about the transaction in the blockchain

Then restart + resync wallet

Wallet balance alive without first transaction


The question is what should I do? I offered the exchange to compensate 50% of the amount. we have encountered an unknown error

2 Likes

Why you offered %50 of your coins? Tradeogre has it i think.
Did you DM to x account ?

1 Like

Yes, we are in touch on Twitter. the coins were sent, but it’s unclear where… I think it’s fair to split the losses equally

There are no losses. Either transaction happened or it did not, there is no magic limbo of lost coins with grin. If non of the wallets shows the coins, one of the wallet states is wrong, simple as that.

You can validate the transaction is or is not on chain by searching here (search by kernel):

2 Likes

thanks for the reply. what is the alternative to the grim wallet? the cli doesn’t start for me

@Alice You can use Grim, client or Grin++.
But first try searching for that transaction in the blockexplorer, see post above.

Also since it is Grim, you can create a new wallet from your wallet mnemonic. It would be a clean wallet, whatever it shows is purely based on the blockchain and is true. Meaning you are certain the wallet state is correct.

yes, I have already done everything and I am sure that the wallet is in working condition

Have you tried asking TradeOgre for a payment proof? It’s possible their payout system glitched, and despite saying successful they actually still have the coins.

Sure. I wonder what the real problem is. I’m even willing to sacrifice my balance so that this doesn’t happen again.

@Alice, where did you click ‘cancel’ to cancel the transaction?
The only situation I can think of where both TO and your wallet would show that there is no coins, is if you would have cancelled the transaction via TO, leading to a self spend and as such destruction of the output that was linked to your TO account. This could only happen if TO does not use a wallet account per user, but instead would links outputs to accounts directly. Note, also that in case of a self spend TO could show temporarily the funds not to be there since they are still locked/do not have enough confirmations after a safe cancel/self spend, they should appear after enough confirmations.
This is purely a hypothesis since I do not know how TO manages to link user accounts to grin funds but perhaps it could be useful in your discussion with TO.

I cancelled the transaction after the blockchain processed it. I do not know what to do, I have no way to fix the situation.

this transaction will not be credited to the wallet, as the following transfers were successful

That does not answer the question, where did you cancel, in Grim wallet?

A transfer that is successful will always be credited to the destination wallet, you/your-wallet signed for it remember. The payment proofs can give definitive proof to whether the transaction was finished or not. I searched your transaction for you, here it is :point_down: :

So yes, the transaction did happen and the funds are not lost.

Perhaps you discovered a bug in how the grin-wallet client deals with cancelled transactions, for example by blacklisting the key used in the cancelled transaction to avoid reuse which is dangerous. @Yeastplume Do you think that would be possible, I mean would it be possible that the wallet does not use the key from cancelled transactions when scanning the chain and such overlooks a failed cancel (cansel after transaction is broadcasted)?
When doing a full recovery from seed, (so no not just a re-scan but creating a new wallet from your seed), the funds will show up since the new wallet does not know the transaction was cancelled and will use all its keys to scan the chain.

Yes. Grim wallet was online

See my post above, the transaction did happen your funds are there.
:arrow_right: Try restoring from seed by using Grim, click the “+” button on the bottom of the wallet tab to create a new wallet, restore from you seed phrase (mnemonic). If my theory is correct, your funds will show up there while not showing up in the old wallet. Please do not delete the old wallet since it could help identify potential issues with the grin-wallet client on how it deals with cancelled transactions.

I have already deleted the first wallet. and already 2 people have said that I shouldn’t have done it. I have already restored my wallet 3 times using the seed phrase

I didn’t know that the initial wallet mattered

Ok, when I look at the block that includes your transaction [LINK]:

:arrow_forward: Ctrl+F, search for your kernel 09177eb77d95bc9092d6ce6371d7612ebd914c01535ae5b2cf99c79b0f77af5553 and you will see this information about the transaction, confirming the transaction to your wallet did take place.

{ "excess": "09177eb77d95bc9092d6ce6371d7612ebd914c01535ae5b2cf99c79b0f77af5553", "excess_sig": "ebb5dd51345ff163ee0510b4ca85163ba4c1dd40824853e2bfe08ed0f2fbe167b0ed56aa9fc3c1970538c52fc144f482f57588c1afac8e0b906e3162067e4b86", "features": "Plain", "fee": 29000000, "fee_shift": 0, "lock_height": 0 } ], "outputs": [ { "block_height": 3023269, "commit": "0958a7e527c068eccc554d62795cae2426dcaca4050a2373372b11b2d41db11ecf", "merkle_proof": null, "mmr_index": 0, "output_type": "Transaction", "proof": "1450aa673eb7cb64488e6af1db2d6ce2002f43e192baf2f87095a251ea7b5185f277a6d04ef21a97429b380c6e6a9f93646558a84440aa076a2ac08436e0e6ad0c88349627d51774a7256db926098e3617fa62209bc2504715a7681038b99fa9f312b34e62c7e597383171bf5714581b0ef277b3b17f4ab7c9c88e254a765c1f05ce885ea6e8192ab1571a8473e3fedc88f4252cc1b5cb66df8efc8590b1d39615d073c564c679392db814e4e4d34a239d9ff06c528420e5b0fe5f6058360c9e9c3843826a6990f0d51692ed3aa3e5e94f82d227cef1ce7a0ab872e1afb9e4350bd96c9bbac88b3b958e71b278189003333cdb46fd95bccf9d5ef975946ced23944208df543b9cfd397a351616539174225bcd9cd533dcdc6695eaab96c9dcb02c15c02aa4ff7405bfc96336a8e34ebfc1589dbd16bd77eae17a0ffc484e9433183c4b965983832bac1bc056f744416464fb17f69b3cd8952a79d51464d311b57eb401dd9fc2f0c44e65c2918536e3f022216e0e0c85b0a031b26e0c4393d69ee7fb6aec6a72044b30b5ded0266500a12e1a5b2bb97fca02d31e3203c83ddedb7f7e8ceb9339f8bd9a9f815549afb9c1c51bd3f6e3911b809c6430b08866d8daea03abf3d97fccb0d2b1d55361f399fed550aeecb2c3f62a88aa3f617b2be2f75ec5c507ce0d9faf8cc24fd1c7981f4f72f62e63528cbb8f2cafb235bc1db909f57239c5539381adad53bf8448b5cc2cb9667e7c8e53769d62b335766e98acab0dbd9171b2978130835b433600ff684baa8c358dd9dec5e7a06a3f3415a935ecf6aa07ee3f43dc82c995fbcfad62d917f4de9abe9fbbe343e6ef2c75860826d039c8fb57e9a712fbe2a99d3e32de363b00361e90c7057c858633ee066c657c0692fe3525256e86d5f727e7d2274c1674005c1970db1ddd6dc975d85921159e28ee6d48", "proof_hash": "06400437123db74cad65208c67d0fec3249bf4c375712b4ccc48a074e72916a1", "spent": true }

Note that it also says:

 "spent": true 

To my understanding this means not only the transaction did take place but it looks like the output that was created in that transaction is already spend in another transaction.. Only you hold the keys to your wallet, so that is not something TO could have done. I have little experience looking at the output from your block explorer, @bluimes, can you confirm that the spend true means the output has been spend?
@Alice Perhaps you did send it to a hot wallet, or back to an exchange and you forgot about it.