xmr-btc-swap
xmr-btc-swap copied to clipboard
Swap fails immediately after deposit with deserialization error
Note: I am opening this for another user who isn't comfortable posting here, but will do my best to relay questions/requests and respond promptly.
A user who attempted to swap with my ASB ran into a new issue I have not seen. When the user started the swap and deposited funds, the swap tool immediately crashed with the following output:
After this failure they attempted to resume/cancel/refund but the swap is not in the swap tool's history/DB:
./swap history
+---------+-------+
| SWAP ID | STATE |
+=================+
+---------+-------+
./swap resume --swap-id REDACTED
Error: Swap with id REDACTED not found in database
./swap cancel --swap-id REDACTED
Error: Swap with id REDACTED not found in database
./swap refund --swap-id REDACTED
Error: Swap with id REDACTED not found in database
The only other logs for the swap are:
./swap list-sellers --rendezvous-point /dnsaddr/rendezvous.coblox.tech/p2p/12D3KooWQUt9DkNZxEn2R5ymJzWj15MpG6mTW84kyd8vDaRZi46o
Parent directory does not exist, creating recursively directory=REDACTED
Connected to rendezvous point, discovering nodes in 'xmr-btc-swap-mainnet' namespace ...
Discovered peer 12D3KooWCPcfhr6e7V7NHoKWRxZ5zPRr6v5hGrVPhHdsftQk2DXW at /dnsaddr/swap.sethforprivacy.com/p2p/12D3KooWCPcfhr6e7V7NHoKWRxZ5zPRr6v5hGrVPhHdsftQk2DXW
Discovered peer 12D3KooWAPci3x4GuWDi9P86efnR1q9a7phKnPwnwQcRNMW2HDUy at /ip4/51.15.44.142/tcp/9939
+----------------+----------------+----------------+--------+-------------------------------------------------------------------------------------------+
| PRICE | MIN_QUANTITY | MAX_QUANTITY | STATUS | ADDRESS |
+=======================================================================================================================================================+
| 0.00586950 BTC | 0.00010000 BTC | 0.00190000 BTC | Online | /ip4/51.15.44.142/tcp/9939/p2p/12D3KooWAPci3x4GuWDi9P86efnR1q9a7phKnPwnwQcRNMW2HDUy |
|----------------+----------------+----------------+--------+-------------------------------------------------------------------------------------------|
| 0.00642850 BTC | 0.00050000 BTC | 0.00100000 BTC | Online | /dnsaddr/swap.sethforprivacy.com/p2p/12D3KooWCPcfhr6e7V7NHoKWRxZ5zPRr6v5hGrVPhHdsftQk2DXW |
+----------------+----------------+----------------+--------+-------------------------------------------------------------------------------------------+
The most pressing concern is how to help the user recover funds, but also would love to get to the bottom of this.
Will reach out to the user and try to get host/OS/arch/version info.
OS/version details:
OS = Manjaro Arch = x86_64 Swap tool = 0.8.1
What is the result of:
-
swap --version
for the user? -
asb --version
on your end?
The most pressing concern is how to help the user recover funds, but also would love to get to the bottom of this.
Funds are safe as long as the user doesn't delete their data directory. If there isn't a swap in the database, the funds are sitting in the internal wallet and can be used for the next swap.
We may need to add some emergency recovery commands to display that balance / withdraw it.
What is the result of:
swap --version
for the user?
swap 0.8.1
asb --version
on your end?
ASB 0.8.1
I noticed that this error also occurs when the asb sets target_block=0
in its config.toml
. The asb fails to estimate a proper fee and the swap cli gives an error. This is probably not what happened here, but it could be a clue as to why this error occurs.
Funds are safe as long as the user doesn't delete their data directory. If there isn't a swap in the database, the funds are sitting in the internal wallet and can be used for the next swap.
Can you please teach how to get funds back or complete?
Funds are safe as long as the user doesn't delete their data directory. If there isn't a swap in the database, the funds are sitting in the internal wallet and can be used for the next swap.
Can you please teach how to get funds back or complete?
If you trigger another swap, the funds should be used for that.
Funds are safe as long as the user doesn't delete their data directory. If there isn't a swap in the database, the funds are sitting in the internal wallet and can be used for the next swap.
Can you please teach how to get funds back or complete?
If you trigger another swap, the funds should be used for that.
Success! Thank you very much!
I can confirm this issue is still happening on Windows 10 x64, ver 0.9.0 of swap-cli. Steps to reproduce:
- Run
swap.exe buy-xmr --receive-address [REDACTED] --change-address [REDACTED] --seller {tested with 3 different sellers}
- Deposit BTC when you connect to the seller
- The wallet registers the transaction, outputs the error, and now you MUST do
swap.exe withdraw-btc
. None of the other commands to cancel or resume the swap are valid because there is no swap ID.
I lost a good chunk of change due to fees, but quickly realized I should stop using this tool until it gets fixed before I lost even more BTC, or worse, lost the full amount I wanted to swap.
but --rendezvous-point
is not an option for swap buy-xmr
but
--rendezvous-point
is not an option forswap buy-xmr
My bad, it should be --seller
, not --rendezvous-point
. Edited the command to reflect that. I had to manually type it in.