How to recover a swap that failed in Komodo mobile wallet using Desktop
If for any reason, you don’t want to/can’t recover a stuck/timed out/failed swap in Komodo mobile wallet and wants to use the CLI on a desktop, follow this guide.
- First, export the log file from your Komodo mobile wallet (Settings -> “Share log File”) and transfer it to your Desktop.
- Follow the instructions in this linked guide to extract the swap data from the log file into a format usable by
kdf - It should create two directories named “MAKER” and “TAKER” and files named
<uuid>.jsonin the appropriate directory.uuidis the swap id from the Komodo mobile wallet app - Find the file named after your stuck swap’s id and save it in a accessible location. Also note if it was in the directory named “MAKER” or “TAKER”
- Follow the instructions in this linked guide to download, configure and setup Komodo DeFi Framework on your desktop. When creating the file
MM2.jsonas described in the guide, use the seed words from Komodo mobile wallet as the value for the key"passphrase" - Once
kdfis up and running, open a new terminal window and export therpc_passwordas value to the environment variable nameduserpass.
export userpass="<value of rpc_password from MM2.json here>"
- Stop
kdfby issuing thestopcommand in the same terminal
curl --url "http://127.0.0.1:7783" --data "{\"method\":\"stop\",\"userpass\":\"$userpass\"}"
- Navigate to the directory where
kdfis located . You should find a directory namedDB. Inside it, there should be a directory with a long hex (similar to514fa660fa9976c87bb08e5636653ac75be9f606) as its name. Navigate into it, then into “SWAPS”, then “MY”.- the directory structure should look similar to
DB/514fa660fa9976c87bb08e5636653ac75be9f606/SWAPS/MY
- the directory structure should look similar to
- now, place the swap file in the above mentioned directory
- Now start
kdfagain using the command
stdbuf -oL nohup ./kdf
- Enable the coins involved in the swap using the electrum command
curl --url "http://127.0.0.1:7783" --data "{\"userpass\":\"$userpass\",\"method\":\"electrum\",\"coin\":\"RICK\",\"servers\":[{\"url\":\"electrum1.cipig.net:10017\"},{\"url\":\"electrum2.cipig.net:10017\"},{\"url\":\"electrum3.cipig.net:10017\"}]}"
- The above command outputs a response similar to
{
"coin": "RICK",
"address": "RQNUR7qLgPUgZxYbvU9x5Kw93f6LU898CQ",
"balance": "10",
"locked_by_swaps": "0",
"required_confirmations": 1,
"result": "success"
}
- Make sure the address and balance in the above response match the values shown in Komodo mobile wallet. If the address does not match, the
"passphrase"(seed words) inMM2.jsonis incorrect. Stopkdf, delete the directory namedDB, correct the passphrase and repeat all the steps from before. If the balance is0, either the electrum server’s addresses you are using are incorrect or your connection might have an issue. Likely a firewall is blocking it.
- Once you are sure that both the coins have been enabled using the
electrummethod and the addresses and balances match the values in the Komodo mobile wallet, you are ready to recover the swap. Issue therecover_funds_of_swapcommand with the swap id as an argument
curl --url "http://127.0.0.1:7783" --data "{\"userpass\":\"$userpass\",\"method\":\"recover_funds_of_swap\",\"params\":{\"uuid\":\"<swap id of the stuck swap here>\"}}"
- Replace the text
<swap id of the stuck swap here>with the swap id of the stuck swap. - You should see a response similar to the following, if it was successful
{
"result": {
"action": "RefundedMyPayment",
"coin": "RICK",
"tx_hash": "696571d032976876df94d4b9994ee98faa870b44fbbb4941847e25fb7c49b85d",
"tx_hex": "0400008085202f890113591b1feb52878f8aea53b658cf9948ba89b0cb27ad0cf30b59b5d3ef6d8ef700000000d8483045022100eda93472c1f6aa18aacb085e456bc47b75ce88527ed01c279ee1a955e85691b702201adf552cfc85cecf588536d5b8257d4969044dde86897f2780e8c122e3a705e40120576fa34d308f39b7a704616656cc124232143565ca7cf1c8c60d95859af8f22d004c6b63042555555db1752102631dcf1d4b1b693aa8c2751afc68e4794b1e5996566cfc701a663f8b7bbbe640ac6782012088a9146e602d4affeb86e4ee208802901b8fd43be2e2a4882102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ac68ffffffff0198929800000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac0238555d000000000000000000000000000000"
}
}
Please contact us in the Discord server if any step is unclear. When in doubt, ask first before executing a command.