Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI cannot spend from generated XMR wallet after resume #537

Open
da-kami opened this issue May 25, 2021 · 8 comments
Open

CLI cannot spend from generated XMR wallet after resume #537

da-kami opened this issue May 25, 2021 · 8 comments
Labels
bug Something isn't working cli Related to the swap CLI tool
Projects

Comments

@da-kami
Copy link
Member

da-kami commented May 25, 2021

What happened

  • Start swap between CLI on laptop and ASB on raspberry, branch no-transfer-proof-failure, commit facab99b8af6b2bebd15096c2f324c8460e9089d
  • Swap got stale waiting for transfer proof on the CLI (ASB errored with ERROR Communication error. Error /comit/xmr/btc/transfer_proof/1.0.0 failed because we did not receive a response within the configured timeout peer=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW - monero tx 09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158
  • Restarted the CLI, the CLI kept waiting (this is expected, because the ASB does not go on with swap execution once it fails with an unrecoverable error)
  • Let the CLI run and wait
  • Restart the ASB
  • The CLI properly re-connected to the ASB
  • The ASB re-sent the transfer proof
  • The CLI received the transfer proof
  • The Monero tx already had more than 10 confirmations
  • The CLI sent the encsig
  • The ASB received the encsig and published Bitcoin redeem
  • The CLI extraced key from Bitcoin redeem tx and generated Monero wallet
  • When draining the Monero wallet to spend the funds the CLI reports that there is no unlocked balance in the Monero wallet

Note: I also ran another resume on the same swap after this behaviour which resulted in the same problem:

JSON-RPC request failed with code -4: No unlocked balance in the specified account

Expected

CLI should be able to detect and spend the Monero locked by the ASB.

Logs

Logs are cluttered with some libp2p events that are logged on that branch for investigation reasons, sorry.
It might be very hard to reproduce this problem so I thought I better record it.

CLI logs upon resume:

/Users/dakami/.cargo/bin/cargo run --color=always --bin swap --manifest-path /Users/dakami/CoBloX/repos/xmr-btc-swap_comit-network/swap/Cargo.toml -- --testnet --debug --data-dir /Users/dakami/TEMP/swap/bob/01 resume --swap-id 41f849f8-f4f0-4af8-990e-e0910c939a57 --receive-address 58hKkN5JrirdNehmTXaHhTEg3N5zRYZ6Wb5g5jwDk3wRC4rtNCJvx7hENsbLmfPakC3spGhciosagdVbSqq9vfXsV3zusCn --seller-addr /ip4/141.168.172.35/tcp/8765

    Finished dev [unoptimized + debuginfo] target(s) in 1.09s
     Running `target/debug/swap --testnet --debug --data-dir /Users/dakami/TEMP/swap/bob/01 resume --swap-id 41f849f8-f4f0-4af8-990e-e0910c939a57 --receive-address 58hKkN5JrirdNehmTXaHhTEg3N5zRYZ6Wb5g5jwDk3wRC4rtNCJvx7hENsbLmfPakC3spGhciosagdVbSqq9vfXsV3zusCn --seller-addr /ip4/141.168.172.35/tcp/8765`
2021-05-25 21:33:50  INFO Initialized tracing level=debug
2021-05-25 21:33:50 DEBUG Opening database at /Users/dakami/TEMP/swap/bob/01/database
2021-05-25 21:33:50 DEBUG Reading in seed from /Users/dakami/TEMP/swap/bob/01/seed.pem
2021-05-25 21:33:54 DEBUG Starting monero-wallet-rpc on port=63016
2021-05-25 21:33:58 DEBUG Opened Monero wallet monero_wallet_name=swap-tool-blockchain-monitoring-wallet
2021-05-25 21:34:01  INFO All connections will go through clear net
2021-05-25 21:34:01 DEBUG Initializing network module peer_id=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW
2021-05-25 21:34:01  INFO Waiting for Alice to lock Monero
2021-05-25 21:34:01  INFO Connected to Alice at /ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:34:06 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=unseen
2021-05-25 21:34:59 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 8 blocks
2021-05-25 21:36:47  WARN Lost connection to Alice at /ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx, cause: Connection error: I/O error: connection is closed
2021-05-25 21:36:49 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:36:49  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:36:49  INFO Next redial attempt in 1s
2021-05-25 21:36:50 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:36:50  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:36:50  INFO Next redial attempt in 4s
2021-05-25 21:36:55 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:36:55  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:36:55  INFO Next redial attempt in 4s
2021-05-25 21:36:59 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:36:59  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:36:59  INFO Next redial attempt in 5s
2021-05-25 21:37:04 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:37:04  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:37:04  INFO Next redial attempt in 7s
2021-05-25 21:37:12 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 3,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 2,
}
[swap/src/protocol/bob/event_loop.rs:199] event = UnreachableAddr {
    peer_id: PeerId(
        "12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    ),
    address: "/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx",
    error: Transport(
        Other(
            Custom {
                kind: Other,
                error: Other(
                    A(
                        B(
                            Select(
                                ProtocolError(
                                    IoError(
                                        Os {
                                            code: 32,
                                            kind: BrokenPipe,
                                            message: "Broken pipe",
                                        },
                                    ),
                                ),
                            ),
                        ),
                    ),
                ),
            },
        ),
    ),
    attempts_remaining: 1,
}
2021-05-25 21:37:13  WARN Failed to dial Alice: Pending connection: Transport error: select error: Protocol error: I/O error: Broken pipe (os error 32) address=/ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:37:13  INFO Next redial attempt in 21s
2021-05-25 21:37:35 DEBUG Dialling Alice at 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:37:35  INFO Connected to Alice at /ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:37:35  INFO Received transfer proof swap_id=41f849f8-f4f0-4af8-990e-e0910c939a57 peer=12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 21:37:35  INFO Alice locked Monero txid=09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158
[swap/src/protocol/bob/event_loop.rs:199] event = Behaviour(
    Other,
)
2021-05-25 21:37:35  INFO Waiting for Monero transaction finality txid=09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158 target_confirmations=10
2021-05-25 21:37:35  INFO Received new confirmation for Monero lock tx txid=09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158 seen_confirmations=24 needed_confirmations=10
2021-05-25 21:37:35 DEBUG Redeem tx fee spending_fee=1000
2021-05-25 21:37:35 DEBUG Redeem tx fee spending_fee=1000
2021-05-25 21:37:40 DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=unseen
2021-05-25 21:38:06 DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=in mempool
Error: JSON-RPC request failed with code -4: No unlocked balance in the specified account

Caused by:
    JSON-RPC request failed with code -4: No unlocked balance in the specified account

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
      std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
      std::backtrace::Backtrace::create
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/backtrace.rs:316:13
   1: std::backtrace::Backtrace::capture
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/backtrace.rs:284:9
   2: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/anyhow-1.0.40/src/error.rs:519:25
   3: swap::monero::wallet::Wallet::sweep_all::{{closure}}
             at ./swap/src/monero/wallet.rs:255:19
   4: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
   5: swap::protocol::bob::swap::next_state::{{closure}}
             at ./swap/src/protocol/bob/swap.rs:231:29
   6: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
   7: swap::protocol::bob::swap::run_until::{{closure}}
             at ./swap/src/protocol/bob/swap.rs:35:25
   8: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
   9: swap::protocol::bob::swap::run::{{closure}}
             at ./swap/src/protocol/bob/swap.rs:25:5
  10: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
  11: swap::main::{{closure}}::{{closure}}
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/macros/select.rs:455:49
  12: <tokio::future::poll_fn::PollFn<F> as core::future::future::Future>::poll
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/future/poll_fn.rs:38:9
  13: swap::main::{{closure}}
             at ./swap/src/bin/swap.rs:225:13
  14: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:80:19
  15: tokio::park::thread::CachedParkThread::block_on::{{closure}}
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/park/thread.rs:263:54
  16: tokio::coop::with_budget::{{closure}}
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/coop.rs:106:9
  17: std::thread::local::LocalKey<T>::try_with
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/thread/local.rs:272:16
  18: std::thread::local::LocalKey<T>::with
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/thread/local.rs:248:9
  19: tokio::coop::with_budget
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/coop.rs:99:5
      tokio::coop::budget
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/coop.rs:76:5
      tokio::park::thread::CachedParkThread::block_on
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/park/thread.rs:263:31
  20: tokio::runtime::enter::Enter::block_on
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/runtime/enter.rs:151:13
  21: tokio::runtime::thread_pool::ThreadPool::block_on
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/runtime/thread_pool/mod.rs:71:9
  22: tokio::runtime::Runtime::block_on
             at /Users/dakami/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.6.0/src/runtime/mod.rs:452:43
  23: swap::main
             at ./swap/src/bin/swap.rs:43:1
  24: core::ops::function::FnOnce::call_once
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
  25: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125:18
  26: std::rt::lang_start::{{closure}}
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:66:18
  27: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/core/src/ops/function.rs:259:13
      std::panicking::try::do_call
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:379:40
      std::panicking::try
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panicking.rs:343:19
      std::panic::catch_unwind
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/panic.rs:410:14
      std::rt::lang_start_internal
             at /rustc/04caa632dd10c2bf64b69524c7f9c4c30a436877/library/std/src/rt.rs:51:25
  28: std::rt::lang_start
             at /Users/dakami/.rustup/toolchains/nightly-2021-01-31-x86_64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:65:5
  29: _main

Process finished with exit code 1

Where to start

  • Open the wallet generated by the CLI in the monero-wallet-rpc.
  • Re-scan the wallet
  • See if there is really no balance

My hunch is that somehow the monero_wallet_restore_height is not set correctly, so the wallet does not pick up the balance correctly.

In case that is not the problem we are looking at a more severe issue.

@da-kami da-kami added bug Something isn't working cli Related to the swap CLI tool labels May 25, 2021
@da-kami
Copy link
Member Author

da-kami commented May 25, 2021

I opened the wallet from keys file only (which re-scans) and the balance is actually 0.
I did another rescan_blockchain once the wallet was opened and the balance remains 0.

This means that the generated wallet actually does not contain the funds that the ASB sent.
Note that the ASB did lock funds:

ASB logs:

May 25 11:45:37 raspberrypi asb[25274]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Advancing state state=xmr lock transaction sent rate=0.00629400 BTC
May 25 11:45:37 raspberrypi asb[25274]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Waiting for Monero transaction finality txid=09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158 target_confirmations=1
May 25 11:50:25 raspberrypi asb[25274]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Received new confirmation for Monero lock tx txid=09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158 seen_confirmations=1 needed_confirmations=1
May 25 11:50:26 raspberrypi asb[25274]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Advancing state state=xmr is locked rate=0.00630300 BTC
May 25 11:50:26 raspberrypi asb[25274]:  INFO connection with 12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW alive, sending transfer proof
May 25 11:50:36 raspberrypi asb[25274]: ERROR Communication error. Error /comit/xmr/btc/transfer_proof/1.0.0 failed because we did not receive a response within the configured timeout peer=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW

Wallet RPC logs:

May 25 11:50:16 raspberrypi monero-wallet-rpc[381]: 2021-05-25 10:50:16.063        W Received money: 1.850088978527, with tx: <09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158>
May 25 11:50:16 raspberrypi monero-wallet-rpc[381]: 2021-05-25 10:50:16.064        W Spent money: 1.000000000000, with tx: <09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158>
May 25 12:36:09 raspberrypi monero-wallet-rpc[381]: 2021-05-25 11:36:09.881        W Transaction extra has unsupported format: <8b89ff11875cd338c8f0726fbf9b8e48f6424bc83a6660f75ce5a2ca1a7f72e8>

How to proceed from here on:

  1. Validate that the ASB associates transfer_proofs to the correct swap and peer and sends them correctly
  2. If there is no problem with (1.) then validate that that the Monero transaction contained funds and that the money did not end up on another account (we check for account 0 which is the main, and I don't see any possibility to send it to another account within the wallet).

@da-kami
Copy link
Member Author

da-kami commented May 26, 2021

CLI logs of the initial run:

     Running `target/debug/swap --testnet --debug --data-dir /Users/dakami/TEMP/swap/bob/01 buy-xmr --receive-address 58hKkN5JrirdNehmTXaHhTEg3N5zRYZ6Wb5g5jwDk3wRC4rtNCJvx7hENsbLmfPakC3spGhciosagdVbSqq9vfXsV3zusCn --seller-addr /ip4/141.168.172.35/tcp/8765 --seller-peer-id 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx`
2021-05-25 19:36:11  INFO Initialized tracing level=debug
2021-05-25 19:36:11 DEBUG Opening database at /Users/dakami/TEMP/swap/bob/01/database
2021-05-25 19:36:11 DEBUG Reading in seed from /Users/dakami/TEMP/swap/bob/01/seed.pem
2021-05-25 19:36:14 DEBUG Starting monero-wallet-rpc on port=62254
2021-05-25 19:36:17 DEBUG Opened Monero wallet monero_wallet_name=swap-tool-blockchain-monitoring-wallet
2021-05-25 19:36:20  INFO All connections will go through clear net
2021-05-25 19:36:20 DEBUG Initializing network module peer_id=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW
2021-05-25 19:36:20 DEBUG Requesting quote
2021-05-25 19:36:20  INFO Connected to Alice at /ip4/141.168.172.35/tcp/8765/p2p/12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 19:36:20  INFO Received quote: 1 XMR ~  price=0.00667386 BTC minimum_amount=0.00010000 BTC maximum_amount=0.00100000 BTC
2021-05-25 19:36:20  INFO Please deposit BTC you want to swap to deposit_address=tb1qyccwk4yun26708qg5h6g6we8kxln232wclxf5a current_maximum_giveable=0.00000000 BTC minimum_amount=0.00010000 BTC maximum_amount=0.00100000 BTC
2021-05-25 19:40:10  INFO Received BTC new_balance=0.00100000 BTC current_maximum_giveable=0.00099878 BTC
2021-05-25 19:40:10  INFO Swapping amount=0.00099878 BTC fees=0.00000122 BTC swap_id=41f849f8-f4f0-4af8-990e-e0910c939a57
2021-05-25 19:40:10 DEBUG Min relay fee: 0.00001000 BTC
2021-05-25 19:40:10 DEBUG Estimated fee for weight: 548 for fee_rate: 1 is in total: 137.0
2021-05-25 19:40:10  WARN Estimated fee of 137.0 is smaller than the min relay fee, defaulting to min relay fee 1000
2021-05-25 19:40:11 DEBUG Min relay fee: 0.00001000 BTC
2021-05-25 19:40:11 DEBUG Estimated fee for weight: 596 for fee_rate: 1 is in total: 149.0
2021-05-25 19:40:11  WARN Estimated fee of 149.0 is smaller than the min relay fee, defaulting to min relay fee 1000
2021-05-25 19:40:11  INFO Spot price btc=0.00099878 BTC xmr=0.149815801473 XMR
2021-05-25 19:40:13 DEBUG Starting execution setup with 12D3KooWPZ69DRp4wbGB3wJsxxsg1XW1EVZ2evtVwcARCF3a1nrx
2021-05-25 19:40:33  INFO Published Bitcoin transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec kind=lock
2021-05-25 19:40:33 DEBUG Got notification for new block block_height=1976589
2021-05-25 19:40:33  INFO Waiting for Alice to lock Monero
2021-05-25 19:40:37 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=unseen
2021-05-25 19:41:41 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=in mempool
2021-05-25 19:49:00 DEBUG Got notification for new block block_height=1976590
2021-05-25 19:49:00 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 1 blocks
2021-05-25 20:08:59 DEBUG Got notification for new block block_height=1976591
2021-05-25 20:08:59 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 2 blocks
2021-05-25 20:27:56 DEBUG Got notification for new block block_height=1976592
2021-05-25 20:27:56 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 3 blocks
2021-05-25 20:45:48 DEBUG Got notification for new block block_height=1976593
2021-05-25 20:45:48 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 4 blocks
2021-05-25 21:04:43 DEBUG Got notification for new block block_height=1976594
2021-05-25 21:04:44 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 5 blocks
2021-05-25 21:11:01 DEBUG Got notification for new block block_height=1976595
2021-05-25 21:11:01 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 6 blocks
2021-05-25 21:14:08 DEBUG Got notification for new block block_height=1976596
2021-05-25 21:14:08 DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 7 blocks

@da-kami
Copy link
Member Author

da-kami commented May 26, 2021

Relevant ASB logs (before restart showing the error and after restart redeeming the bitcoin):

May 25 12:37:36 raspberrypi asb[6801]: DEBUG swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Redeem tx fee spending_fee=1000
May 25 12:37:36 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Published Bitcoin transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b kind=redeem
May 25 12:37:41 raspberrypi asb[6801]: DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=unseen
May 25 12:38:02 raspberrypi asb[6801]: DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 8 blocks
May 25 12:38:02 raspberrypi asb[6801]: DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=in mempool
May 25 12:38:02 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Advancing state state=bitcoin redeem transaction published rate=0.00629400 BTC
May 25 12:38:02 raspberrypi asb[6801]: DEBUG swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Redeem tx fee spending_fee=1000
May 25 12:38:02 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Waiting for Bitcoin transaction finality txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b required_confirmation=4
May 25 12:39:00 raspberrypi asb[6801]:  WARN Lost connection. Error Connection error: I/O error: connection is closed peer=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW address=/ip4/141.168.172.35/tcp/63069
May 25 12:43:53 raspberrypi asb[6801]: [swap/src/protocol/alice/event_loop.rs:340] event = IncomingConnection {
May 25 12:43:53 raspberrypi asb[6801]:     local_addr: "/ip4/192.168.1.7/tcp/8765",
May 25 12:43:53 raspberrypi asb[6801]:     send_back_addr: "/ip4/141.168.172.35/tcp/63130",
May 25 12:43:53 raspberrypi asb[6801]: }
May 25 12:43:53 raspberrypi asb[6801]: DEBUG New connection established peer=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW address=/ip4/141.168.172.35/tcp/63130
May 25 12:44:46 raspberrypi asb[6801]:  WARN Lost connection. Error Connection error: I/O error: connection is closed peer=12D3KooWRqVnNWuahKawSSmxQQptGcEApNBFXNodzRv2q6tBvhUW address=/ip4/141.168.172.35/tcp/63130
May 25 12:51:39 raspberrypi asb[6801]: DEBUG Got notification for new block block_height=1976598
May 25 12:51:40 raspberrypi asb[6801]: DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=confirmed with 1 blocks
May 25 12:51:40 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Waiting for Bitcoin transaction finality txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b seen_confirmations=1 needed_confirmations=4
May 25 12:51:40 raspberrypi asb[6801]: DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 9 blocks
May 25 13:05:17 raspberrypi asb[6801]: DEBUG Got notification for new block block_height=1976599
May 25 13:05:17 raspberrypi asb[6801]: DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=confirmed with 2 blocks
May 25 13:05:17 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Waiting for Bitcoin transaction finality txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b seen_confirmations=2 needed_confirmations=4
May 25 13:05:17 raspberrypi asb[6801]: DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 10 blocks
May 25 13:10:29 raspberrypi asb[6801]: DEBUG Got notification for new block block_height=1976601
May 25 13:10:30 raspberrypi asb[6801]: DEBUG Transaction txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b status=confirmed with 4 blocks
May 25 13:10:30 raspberrypi asb[6801]:  INFO swap{id=41f849f8-f4f0-4af8-990e-e0910c939a57}: Waiting for Bitcoin transaction finality txid=ff33aa04c88e19b4c58ad81a6fdf17cad2d43215755ebfa0c7ce5ca469911b0b seen_confirmations=4 needed_confirmations=4
May 25 13:10:30 raspberrypi asb[6801]: DEBUG Transaction txid=04d739af57b0acef1397ee2cebdae1602a822b905436ee3fee90aded954b74ec status=confirmed with 12 blocks
May 25 13:10:30 raspberrypi asb[6801]: DEBUG Swap finished with state swap_id=41f849f8-f4f0-4af8-990e-e0910c939a57 state=btc is redeemed
May 25 13:13:36 raspberrypi asb[6801]: DEBUG Got notification for new block block_height=1976602

@bonomat
Copy link
Member

bonomat commented May 26, 2021

Some details for the said address which couldn't see the funds using monero-wallet-rpc:

address: 59AYoqcA9WXb1r18ttp7C6UW7oMqRrSuLJgcPkJrcbq54S4u2A1mu2QHJHqcF45KrFYAgXK9tLc23KpfVdLJ2Fqj5gC5oZj
viewkey: a7044e751f71c7c5c128e4c201be52d2048da66d37407f41b5f87e92e0f16f0d
spendkey: 3ec4feafbe1368f5e9e4ba318400b066186374151d2054727c5d0596e8d9c107

with this information we can decode the transaction using https://community.xmr.to/explorer/stagenet.
The blockexplorer says the address holds money.

@da-kami
Copy link
Member Author

da-kami commented May 27, 2021

Some details for the said address which couldn't see the funds using monero-wallet-rpc:

address: 59AYoqcA9WXb1r18ttp7C6UW7oMqRrSuLJgcPkJrcbq54S4u2A1mu2QHJHqcF45KrFYAgXK9tLc23KpfVdLJ2Fqj5gC5oZj
viewkey: a7044e751f71c7c5c128e4c201be52d2048da66d37407f41b5f87e92e0f16f0d
spendkey: 3ec4feafbe1368f5e9e4ba318400b066186374151d2054727c5d0596e8d9c107

with this information we can decode the transaction using https://community.xmr.to/explorer/stagenet.
The blockexplorer says the address holds money.

After further investigation it appears the monero-wallet-rpc is unable to handle the generated wallet correctly.
The lock transaction is valid and could be properly decoded with the view-key that was used for the wallet generation (using generate_from_keys) as well.
The lock transaction can also be spent, as we proved here d3e5bdc

Original Monero Stagenet lock transaction ID: 09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158
Stagenet Transaction ID that spends from the lock tx (the tx published through the integration test on this branch): f111e906fd4ea3c25ae34d5c8ec68342bbed258c546ce74a839e14f34b591641

Why the monero-wallet-rpc (and hence the Monero GUI) are unable to detect transaction 09e361acb3e6e71d627a945a30672776a6f8fec7c97f4cae5e09b0780b75c158 on the generated wallet remains unknown for now. We will see to reproduce this with more extensive automated tests on stagenet.

@rishflab rishflab added this to Bug in Maintenance Aug 27, 2021
@da-kami
Copy link
Member Author

da-kami commented Nov 4, 2021

If anybody runs into this problem, it appears to be a problem of an older version of the monero wallet RPC not picking up the transaction, but should be solved when using the latest monero tools. See monero-project/monero#7968

@da-kami
Copy link
Member Author

da-kami commented Dec 20, 2021

We still see tickets that might be related to this problem, see #879 #877

da-kami added a commit that referenced this issue Dec 20, 2021
This allows manual recovery of problems like #537
Since we could not figure out what causes this issue, and it is most likely an upstream problem this is the best we can do so far to allow the user to manually interact with `monero-wallet-cli` or `monero-wallet-rpc`.
@da-kami
Copy link
Member Author

da-kami commented Dec 20, 2021

Some of the recently reported problems might actually be related to the monero wallet restore blockheight being wrongly recorded in scenarios where the CLI goes offline directly after locking the BTC (without waiting for confirmation).

This should fix it: #881

bors bot added a commit that referenced this issue Dec 22, 2021
841: Bump actions/checkout from 2.3.4 to 2.4.0 r=rishflab a=dependabot[bot]

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<ul>
<li>Convert SSH URLs like <code>org-&lt;ORG_ID&gt;`@github.com:</code>` to <code>https://github.com/</code> - <a href="https://github-redirect.dependabot.com/actions/checkout/pull/621">pr</a></li>
</ul>
<h2>v2.3.5</h2>
<p>Update dependencies</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/checkout/commit/ec3a7ce113134d7a93b817d10a8272cb61118579"><code>ec3a7ce</code></a> set insteadOf url for org-id (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/621">#621</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/fd47087372161c6f2a7b96d2ef87e944d89023ed"><code>fd47087</code></a> codeql should analyze lib not dist (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/620">#620</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/3d677ac575eac4b370e52131024fa99ee754def1"><code>3d677ac</code></a> script to generate license info (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/614">#614</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/826ba42d6c06e4d78b1b33478af7b54277e60b52"><code>826ba42</code></a> npm audit fix (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/612">#612</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/eb8a193c1dbf4bbb2053320cef52bacc1a485839"><code>eb8a193</code></a> update dev dependencies and react to new linting rules (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/611">#611</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/c49af7ca1f339b07a5baac8c8bfc49a5248f31d3"><code>c49af7c</code></a> Create codeql-analysis.yml (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/602">#602</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/1e204e9a9253d643386038d443f96446fa156a97"><code>1e204e9</code></a> update licensed check (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/606">#606</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/0299a0d2b67d48224ce047d03c69693b37fe77fe"><code>0299a0d</code></a> update dist (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/605">#605</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/be0f44845645e415725af198163a96fea9e54334"><code>be0f448</code></a> Bump ws from 5.2.2 to 5.2.3 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/604">#604</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/56c00a7b1f53d3094df328ad4c2cd2b2d385c569"><code>56c00a7</code></a> Bump tmpl from 1.0.4 to 1.0.5 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/588">#588</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/actions/checkout/compare/v2.3.4...v2.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2.3.4&new-version=2.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

846: Bump strum from 0.21.0 to 0.23.0 r=rishflab a=dependabot[bot]

Bumps [strum](https://github.com/Peternator7/strum) from 0.21.0 to 0.23.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/Peternator7/strum/blob/master/CHANGELOG.md">strum's changelog</a>.</em></p>
<blockquote>
<h2>0.23.0</h2>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/185">#185</a> Adds the <code>FromRepr</code> derive that adds a <code>from_repr(x: usize) -&gt; Option&lt;Self&gt;</code>
method to your enum. This lets you convert integer values to your enum. If you specify a #[repr(..)] attribute on your enum, or use
an explicit discriminant, this will be incorporated into the derive.</p>
<ul>
<li><code>from_repr</code> will be <code>const</code> if you use a recent rust version.</li>
<li>This cannot be a trait method currently because only inherent methods support <code>const</code>.</li>
</ul>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/186">#186</a> Automatically implement <code>TryFrom&lt;str&gt;</code> for enums that implement <code>EnumString</code>.
This is only enabled for rustc &gt;= 1.34 which is when `TryFrom was stabilized.</p>
<ul>
<li>This is a small breaking change. If you had manually implemented <code>TryFrom&lt;str&gt;</code> for your enum, this will cause a conflict. You
can probably remove your manual implementation.</li>
</ul>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/189">#189</a> Use <code>core::result::Result</code> instead of <code>std::result::Result</code>. This should be
more portable in no-std environments.</p>
</li>
</ul>
<h2>0.22.0</h2>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/180">#180</a>: Deprecates <code>ToString</code> derive. You should use <code>Display</code>
instead.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/178">#178</a>: Deprecates AsStaticStr. This has been undocumented for a while.
The recommended method is to derive <code>IntoStaticStr</code> instead.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/171">#171</a>: Improve <code>no-std</code> support.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/170">#170</a>: enable changing the path to strum traits. This is necessary
if you re-export strum as a submodule in another crate.</p>
</li>
</ul>
<h2>0.21.1</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/164">#164</a> Improve compatibility with older versions of <code>syn</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/Peternator7/strum/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=strum&package-manager=cargo&previous-version=0.21.0&new-version=0.23.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

851: Bump actions/setup-python from 2.2.2 to 2.3.1 r=rishflab a=dependabot[bot]

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2.2.2 to 2.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/setup-python/releases">actions/setup-python's releases</a>.</em></p>
<blockquote>
<h2>Update actions/cache version to 1.0.8</h2>
<p>We have updated <a href="https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md#108">actions/cache</a> dependency version to 1.0.8 to support 10GB cache upload</p>
<h2>Support caching dependencies</h2>
<p>This release introduces dependency caching support (<a href="https://github-redirect.dependabot.com/actions/setup-python/pull/266">actions/setup-python#266</a>)</p>
<h2>Caching dependencies.</h2>
<p>The action has a built-in functionality for caching and restoring pip/pipenv dependencies. The <code>cache</code> input is optional, and caching is turned off by default.</p>
<p>Besides, this release introduces dependency caching support for mono repos and repositories with complex structure.</p>
<p>By default, the action searches for the dependency file (requirements.txt for pip or Pipfile.lock for pipenv) in the whole repository. Use the <code>cache-dependency-path</code> input for cases when you want to override current behaviour and use different file for hash generation (for example requirements-dev.txt). This input supports wildcards or a list of file names for caching multiple dependencies.</p>
<h3>Caching pip dependencies:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pip'
- run: pip install -r requirements.txt
- run: pip test
</code></pre>
<h3>Caching pipenv dependencies:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- name: Install pipenv
  run: pipx install pipenv
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pipenv'
- run: pipenv install
- run: pipenv test
</code></pre>
<h3>Change dependency file:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pip'
    cache-dependency-path: '**/requirements-dev.txt'
- run: pip install -r subdirectory/requirements-dev.txt
- run: pip test
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/setup-python/commit/f38219332975fe8f9c04cca981d674bf22aea1d3"><code>f382193</code></a> Update <code>`@​actions/cache</code>` version to 1.0.8 (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/283">#283</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/3ef38b826b0d09ce746cd326f8cdfa37933f0d6d"><code>3ef38b8</code></a> Create ADR for integrating cache functionality to setup-python action (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/247">#247</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/0066b88440aa9562be742e2c60ee750fc57d8849"><code>0066b88</code></a> Add a workflow to release a new version of the action (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/274">#274</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/280924fbefbb16de742b89e8dd82ba01b5769011"><code>280924f</code></a> Implementation of python's caching (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/266">#266</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/52636cf49aeef8753e61f027f11758ed8a3e9f77"><code>52636cf</code></a> Fix consistency in README (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/250">#250</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/ca5c59064f84b344ed097d6094ee1ce7137e4dee"><code>ca5c590</code></a> Update version for setup-python in package.json (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/264">#264</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/feeaa3ba49f2b4104b79d61cc6a65fbe66e4637a"><code>feeaa3b</code></a> Add issue and pull request templates (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/258">#258</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/002b1e40449cd70913538589c187c2728a41cb61"><code>002b1e4</code></a> Change python version for pypy in workflow files (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/259">#259</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/d12543aa2aa2d1de65cea946cbe1f0c3b720eaae"><code>d12543a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/setup-python/issues/252">#252</a> from dmitry-shibanov/v-dmshib/update-dependencies</li>
<li><a href="https://github.com/actions/setup-python/commit/4aa563ba8c162b807c18c46445057827cf6e2cb8"><code>4aa563b</code></a> update dependencies</li>
<li>Additional commits viewable in <a href="https://github.com/actions/setup-python/compare/v2.2.2...v2.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=2.2.2&new-version=2.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

880: Add `monero-recovery` command to print address + view/spend keys r=rishflab a=da-kami

This allows manual recovery of problems like #537
Since we could not figure out what causes this issue, and it is most likely an upstream problem this is the best we can do so far to allow the user to manually interact with `monero-wallet-cli` or `monero-wallet-rpc`.

884: Bump pem from 1.0.0 to 1.0.1 r=rishflab a=dependabot[bot]

Bumps [pem](https://github.com/jcreekmore/pem-rs) from 1.0.0 to 1.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/jcreekmore/pem-rs/blob/master/CHANGELOG.md">pem's changelog</a>.</em></p>
<blockquote>
<h1>1.0.1</h1>
<ul>
<li>hide the ASCII_ARMOR symbol to work around a linking issue with 32-bit windows builds</li>
</ul>
<h1>1.0</h1>
<ul>
<li><code>pem::parse_many</code> now returns a <code>Result&lt;Vec&lt;Pem&gt;&gt;</code> instead of a <code>Vec&lt;Pem&gt;</code> that silently discarded invalid sections.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/20e9699def7a771ce31603092d96a20585e1cfc5"><code>20e9699</code></a> (cargo-release) version 1.0.1</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/5fa4dbdffb95e84fd7c1b2b356012a5e9aacdfc2"><code>5fa4dbd</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/jcreekmore/pem-rs/issues/30">#30</a> from jcreekmore/refactor-ascii-armor</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/fb15d5c679fb02b7f7fbea48f32a598951f57566"><code>fb15d5c</code></a> hide the ASCII_ARMOR symbol</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/4137641d44684bb710e94f25439e126094ee8841"><code>4137641</code></a> (cargo-release) start next development iteration 1.0.1-alpha.0</li>
<li>See full diff in <a href="https://github.com/jcreekmore/pem-rs/compare/v1.0.0...v1.0.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pem&package-manager=cargo&previous-version=1.0.0&new-version=1.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

885: Bump hyper from 0.14.13 to 0.14.16 r=rishflab a=dependabot[bot]

Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.13 to 0.14.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/hyperium/hyper/releases">hyper's releases</a>.</em></p>
<blockquote>
<h2>v0.14.16</h2>
<h2>Features</h2>
<ul>
<li><strong>http2:</strong> add <code>http2_max_send_buf_size</code> option to client and server (<a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461">bff977b7</a>)</li>
<li><strong>server:</strong> add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>) (<a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2">842c6553</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2457">#2457</a>)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><strong>http1:</strong> return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>) (<a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05">5f938fff</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2701">#2701</a>)</li>
<li><strong>http2:</strong> received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2715">#2715</a>) (<a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503">84b78b6c</a>)</li>
<li><strong>server:</strong> use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>) (<a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1">7435cc33</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2708">#2708</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/rajing"><code>`@​rajing</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2706">hyperium/hyper#2706</a></li>
<li><a href="https://github.com/JonathanMurray"><code>`@​JonathanMurray</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2709">hyperium/hyper#2709</a></li>
</ul>
<h2>v0.14.15</h2>
<h2>Bug Fixes</h2>
<ul>
<li><strong>client:</strong> cancel blocking DNS lookup if <code>GaiFuture</code> is dropped (<a href="https://github.com/hyperium/hyper/commit/174b553d">174b553d</a>)</li>
</ul>
<h2>Features</h2>
<ul>
<li><strong>http1:</strong> add <code>http1_writev(bool)</code> options to Client and Server builders, to allow forcing vectored writes (<a href="https://github.com/hyperium/hyper/commit/80627141">80627141</a>)</li>
<li><strong>upgrade:</strong> allow http upgrades with any body type (<a href="https://github.com/hyperium/hyper/commit/ab469eb3c6cd5e7a035d734f3d21ff4d2d6a21ab">ab469eb3</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/luqmana"><code>`@​luqmana</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2680">hyperium/hyper#2680</a></li>
<li><a href="https://github.com/whentze"><code>`@​whentze</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2688">hyperium/hyper#2688</a></li>
<li><a href="https://github.com/ahmedsobeh"><code>`@​ahmedsobeh</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2689">hyperium/hyper#2689</a></li>
</ul>
<h2>v0.14.14</h2>
<h2>Bug Fixes</h2>
<ul>
<li><strong>client:</strong>
<ul>
<li>make ResponseFuture implement Sync (<a href="https://github.com/hyperium/hyper/commit/bd6c35b98f9513f14ed9cecad933bc7fdb8635ea">bd6c35b9</a>)</li>
<li>remove ipv6 square brackets before resolving (<a href="https://github.com/hyperium/hyper/commit/910e02687df3245aae4bc519fb0bd7eb6a34db7d">910e0268</a>)</li>
</ul>
</li>
</ul>
<h2>Features</h2>
<ul>
<li><strong>http2:</strong> always include original h2 error on broken pipe (<a href="https://github.com/hyperium/hyper/commit/6169db250c932dd012d391389826cd34833077b4">6169db25</a>)</li>
<li><strong>server:</strong> Remove Send + Sync requirement for Body in with_graceful_shutdown (<a href="https://github.com/hyperium/hyper/commit/1d553e52c6953ea3b039f5c3f89d35cb56e2436a">1d553e52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/hyperium/hyper/blob/master/CHANGELOG.md">hyper's changelog</a>.</em></p>
<blockquote>
<h3>v0.14.16 (2021-12-09)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>http1:</strong> return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>) (<a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05">5f938fff</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2701">#2701</a>)</li>
<li><strong>http2:</strong> received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2715">#2715</a>) (<a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503">84b78b6c</a>)</li>
<li><strong>server:</strong> use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>) (<a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1">7435cc33</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2708">#2708</a>)</li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>http2:</strong> add <code>http2_max_send_buf_size</code> option to client and server (<a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461">bff977b7</a>)</li>
<li><strong>server:</strong> add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>) (<a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2">842c6553</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2457">#2457</a>)</li>
</ul>
<h3>v0.14.15 (2021-11-16)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>client:</strong> cancel blocking DNS lookup if <code>GaiFuture</code> is dropped (<a href="https://github.com/hyperium/hyper/commit/174b553d">174b553d</a></li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>http1:</strong> add <code>http1_writev(bool)</code> options to Client and Server builders, to allow forcing vectored writes (<a href="https://github.com/hyperium/hyper/commit/80627141">80627141</a>)</li>
<li><strong>upgrade:</strong> allow http upgrades with any body type (<a href="https://github.com/hyperium/hyper/commit/ab469eb3c6cd5e7a035d734f3d21ff4d2d6a21ab">ab469eb3</a>)</li>
</ul>
<h3>v0.14.14 (2021-10-22)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>client:</strong>
<ul>
<li>make ResponseFuture implement Sync (<a href="https://github.com/hyperium/hyper/commit/bd6c35b98f9513f14ed9cecad933bc7fdb8635ea">bd6c35b9</a>)</li>
<li>remove ipv6 square brackets before resolving (<a href="https://github.com/hyperium/hyper/commit/910e02687df3245aae4bc519fb0bd7eb6a34db7d">910e0268</a>)</li>
</ul>
</li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>h2:</strong> always include original h2 error on broken pipe (<a href="https://github.com/hyperium/hyper/commit/6169db250c932dd012d391389826cd34833077b4">6169db25</a>)</li>
<li><strong>server:</strong> Remove Send + Sync requirement for Body in with_graceful_shutdown (<a href="https://github.com/hyperium/hyper/commit/1d553e52c6953ea3b039f5c3f89d35cb56e2436a">1d553e52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/hyperium/hyper/commit/41dee4a79bd5068c0c19edb34746b87a6a87c09b"><code>41dee4a</code></a> v0.14.16</li>
<li><a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461"><code>bff977b</code></a> feat(http2): add <code>http2_max_send_buf_size</code> option to client and server</li>
<li><a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503"><code>84b78b6</code></a> fix(http2): received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2">#2</a>...</li>
<li><a href="https://github.com/hyperium/hyper/commit/ce8242571fc4dd6db8ccaad76eadab80ac009d32"><code>ce82425</code></a> refactor(lib): resolve unused warnings from server-specific code (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2710">#2710</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1"><code>7435cc3</code></a> fix(server): use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05"><code>5f938ff</code></a> fix(http1): return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/1010614a0de032b43306ef9dc6da5a3e8ebf7a09"><code>1010614</code></a> test(client): refactor client helper macro to handle options better</li>
<li><a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2"><code>842c655</code></a> feat(server): add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/d0b1d9ed3a10013ab356bc7d9b283e179857a672"><code>d0b1d9e</code></a> v0.14.15</li>
<li><a href="https://github.com/hyperium/hyper/commit/a1502e1067d28b5fc1883e48ac7daacf2fbe4b9e"><code>a1502e1</code></a> docs(http1): clarify HTTP1 preserve case option</li>
<li>Additional commits viewable in <a href="https://github.com/hyperium/hyper/compare/v0.14.13...v0.14.16">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hyper&package-manager=cargo&previous-version=0.14.13&new-version=0.14.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Karzel <daniel@comit.network>
abraham-nixon added a commit to abraham-nixon/xmr-btc-swap that referenced this issue Feb 15, 2022
This allows manual recovery of problems like comit-network/xmr-btc-swap#537
Since we could not figure out what causes this issue, and it is most likely an upstream problem this is the best we can do so far to allow the user to manually interact with `monero-wallet-cli` or `monero-wallet-rpc`.
abraham-nixon added a commit to abraham-nixon/xmr-btc-swap that referenced this issue Feb 15, 2022
841: Bump actions/checkout from 2.3.4 to 2.4.0 r=rishflab a=dependabot[bot]

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<ul>
<li>Convert SSH URLs like <code>org-&lt;ORG_ID&gt;`@github.com:</code>` to <code>https://github.com/</code> - <a href="https://github-redirect.dependabot.com/actions/checkout/pull/621">pr</a></li>
</ul>
<h2>v2.3.5</h2>
<p>Update dependencies</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/checkout/commit/ec3a7ce113134d7a93b817d10a8272cb61118579"><code>ec3a7ce</code></a> set insteadOf url for org-id (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/621">#621</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/fd47087372161c6f2a7b96d2ef87e944d89023ed"><code>fd47087</code></a> codeql should analyze lib not dist (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/620">#620</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/3d677ac575eac4b370e52131024fa99ee754def1"><code>3d677ac</code></a> script to generate license info (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/614">#614</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/826ba42d6c06e4d78b1b33478af7b54277e60b52"><code>826ba42</code></a> npm audit fix (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/612">#612</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/eb8a193c1dbf4bbb2053320cef52bacc1a485839"><code>eb8a193</code></a> update dev dependencies and react to new linting rules (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/611">#611</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/c49af7ca1f339b07a5baac8c8bfc49a5248f31d3"><code>c49af7c</code></a> Create codeql-analysis.yml (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/602">#602</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/1e204e9a9253d643386038d443f96446fa156a97"><code>1e204e9</code></a> update licensed check (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/606">#606</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/0299a0d2b67d48224ce047d03c69693b37fe77fe"><code>0299a0d</code></a> update dist (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/605">#605</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/be0f44845645e415725af198163a96fea9e54334"><code>be0f448</code></a> Bump ws from 5.2.2 to 5.2.3 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/604">#604</a>)</li>
<li><a href="https://github.com/actions/checkout/commit/56c00a7b1f53d3094df328ad4c2cd2b2d385c569"><code>56c00a7</code></a> Bump tmpl from 1.0.4 to 1.0.5 (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/588">#588</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/actions/checkout/compare/v2.3.4...v2.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2.3.4&new-version=2.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

846: Bump strum from 0.21.0 to 0.23.0 r=rishflab a=dependabot[bot]

Bumps [strum](https://github.com/Peternator7/strum) from 0.21.0 to 0.23.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/Peternator7/strum/blob/master/CHANGELOG.md">strum's changelog</a>.</em></p>
<blockquote>
<h2>0.23.0</h2>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/185">#185</a> Adds the <code>FromRepr</code> derive that adds a <code>from_repr(x: usize) -&gt; Option&lt;Self&gt;</code>
method to your enum. This lets you convert integer values to your enum. If you specify a #[repr(..)] attribute on your enum, or use
an explicit discriminant, this will be incorporated into the derive.</p>
<ul>
<li><code>from_repr</code> will be <code>const</code> if you use a recent rust version.</li>
<li>This cannot be a trait method currently because only inherent methods support <code>const</code>.</li>
</ul>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/186">#186</a> Automatically implement <code>TryFrom&lt;str&gt;</code> for enums that implement <code>EnumString</code>.
This is only enabled for rustc &gt;= 1.34 which is when `TryFrom was stabilized.</p>
<ul>
<li>This is a small breaking change. If you had manually implemented <code>TryFrom&lt;str&gt;</code> for your enum, this will cause a conflict. You
can probably remove your manual implementation.</li>
</ul>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/189">#189</a> Use <code>core::result::Result</code> instead of <code>std::result::Result</code>. This should be
more portable in no-std environments.</p>
</li>
</ul>
<h2>0.22.0</h2>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/180">#180</a>: Deprecates <code>ToString</code> derive. You should use <code>Display</code>
instead.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/178">#178</a>: Deprecates AsStaticStr. This has been undocumented for a while.
The recommended method is to derive <code>IntoStaticStr</code> instead.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/171">#171</a>: Improve <code>no-std</code> support.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/170">#170</a>: enable changing the path to strum traits. This is necessary
if you re-export strum as a submodule in another crate.</p>
</li>
</ul>
<h2>0.21.1</h2>
<ul>
<li><a href="https://github-redirect.dependabot.com/Peternator7/strum/pull/164">#164</a> Improve compatibility with older versions of <code>syn</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/Peternator7/strum/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=strum&package-manager=cargo&previous-version=0.21.0&new-version=0.23.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

851: Bump actions/setup-python from 2.2.2 to 2.3.1 r=rishflab a=dependabot[bot]

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2.2.2 to 2.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/setup-python/releases">actions/setup-python's releases</a>.</em></p>
<blockquote>
<h2>Update actions/cache version to 1.0.8</h2>
<p>We have updated <a href="https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md#108">actions/cache</a> dependency version to 1.0.8 to support 10GB cache upload</p>
<h2>Support caching dependencies</h2>
<p>This release introduces dependency caching support (<a href="https://github-redirect.dependabot.com/actions/setup-python/pull/266">actions/setup-python#266</a>)</p>
<h2>Caching dependencies.</h2>
<p>The action has a built-in functionality for caching and restoring pip/pipenv dependencies. The <code>cache</code> input is optional, and caching is turned off by default.</p>
<p>Besides, this release introduces dependency caching support for mono repos and repositories with complex structure.</p>
<p>By default, the action searches for the dependency file (requirements.txt for pip or Pipfile.lock for pipenv) in the whole repository. Use the <code>cache-dependency-path</code> input for cases when you want to override current behaviour and use different file for hash generation (for example requirements-dev.txt). This input supports wildcards or a list of file names for caching multiple dependencies.</p>
<h3>Caching pip dependencies:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pip'
- run: pip install -r requirements.txt
- run: pip test
</code></pre>
<h3>Caching pipenv dependencies:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- name: Install pipenv
  run: pipx install pipenv
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pipenv'
- run: pipenv install
- run: pipenv test
</code></pre>
<h3>Change dependency file:</h3>
<pre><code>steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
  with:
    python-version: '3.9'
    cache: 'pip'
    cache-dependency-path: '**/requirements-dev.txt'
- run: pip install -r subdirectory/requirements-dev.txt
- run: pip test
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/setup-python/commit/f38219332975fe8f9c04cca981d674bf22aea1d3"><code>f382193</code></a> Update <code>`@​actions/cache</code>` version to 1.0.8 (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/283">#283</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/3ef38b826b0d09ce746cd326f8cdfa37933f0d6d"><code>3ef38b8</code></a> Create ADR for integrating cache functionality to setup-python action (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/247">#247</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/0066b88440aa9562be742e2c60ee750fc57d8849"><code>0066b88</code></a> Add a workflow to release a new version of the action (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/274">#274</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/280924fbefbb16de742b89e8dd82ba01b5769011"><code>280924f</code></a> Implementation of python's caching (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/266">#266</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/52636cf49aeef8753e61f027f11758ed8a3e9f77"><code>52636cf</code></a> Fix consistency in README (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/250">#250</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/ca5c59064f84b344ed097d6094ee1ce7137e4dee"><code>ca5c590</code></a> Update version for setup-python in package.json (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/264">#264</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/feeaa3ba49f2b4104b79d61cc6a65fbe66e4637a"><code>feeaa3b</code></a> Add issue and pull request templates (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/258">#258</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/002b1e40449cd70913538589c187c2728a41cb61"><code>002b1e4</code></a> Change python version for pypy in workflow files (<a href="https://github-redirect.dependabot.com/actions/setup-python/issues/259">#259</a>)</li>
<li><a href="https://github.com/actions/setup-python/commit/d12543aa2aa2d1de65cea946cbe1f0c3b720eaae"><code>d12543a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/setup-python/issues/252">#252</a> from dmitry-shibanov/v-dmshib/update-dependencies</li>
<li><a href="https://github.com/actions/setup-python/commit/4aa563ba8c162b807c18c46445057827cf6e2cb8"><code>4aa563b</code></a> update dependencies</li>
<li>Additional commits viewable in <a href="https://github.com/actions/setup-python/compare/v2.2.2...v2.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=2.2.2&new-version=2.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

880: Add `monero-recovery` command to print address + view/spend keys r=rishflab a=da-kami

This allows manual recovery of problems like comit-network/xmr-btc-swap#537
Since we could not figure out what causes this issue, and it is most likely an upstream problem this is the best we can do so far to allow the user to manually interact with `monero-wallet-cli` or `monero-wallet-rpc`.

884: Bump pem from 1.0.0 to 1.0.1 r=rishflab a=dependabot[bot]

Bumps [pem](https://github.com/jcreekmore/pem-rs) from 1.0.0 to 1.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/jcreekmore/pem-rs/blob/master/CHANGELOG.md">pem's changelog</a>.</em></p>
<blockquote>
<h1>1.0.1</h1>
<ul>
<li>hide the ASCII_ARMOR symbol to work around a linking issue with 32-bit windows builds</li>
</ul>
<h1>1.0</h1>
<ul>
<li><code>pem::parse_many</code> now returns a <code>Result&lt;Vec&lt;Pem&gt;&gt;</code> instead of a <code>Vec&lt;Pem&gt;</code> that silently discarded invalid sections.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/20e9699def7a771ce31603092d96a20585e1cfc5"><code>20e9699</code></a> (cargo-release) version 1.0.1</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/5fa4dbdffb95e84fd7c1b2b356012a5e9aacdfc2"><code>5fa4dbd</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/jcreekmore/pem-rs/issues/30">#30</a> from jcreekmore/refactor-ascii-armor</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/fb15d5c679fb02b7f7fbea48f32a598951f57566"><code>fb15d5c</code></a> hide the ASCII_ARMOR symbol</li>
<li><a href="https://github.com/jcreekmore/pem-rs/commit/4137641d44684bb710e94f25439e126094ee8841"><code>4137641</code></a> (cargo-release) start next development iteration 1.0.1-alpha.0</li>
<li>See full diff in <a href="https://github.com/jcreekmore/pem-rs/compare/v1.0.0...v1.0.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pem&package-manager=cargo&previous-version=1.0.0&new-version=1.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

885: Bump hyper from 0.14.13 to 0.14.16 r=rishflab a=dependabot[bot]

Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.13 to 0.14.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/hyperium/hyper/releases">hyper's releases</a>.</em></p>
<blockquote>
<h2>v0.14.16</h2>
<h2>Features</h2>
<ul>
<li><strong>http2:</strong> add <code>http2_max_send_buf_size</code> option to client and server (<a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461">bff977b7</a>)</li>
<li><strong>server:</strong> add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>) (<a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2">842c6553</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2457">#2457</a>)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><strong>http1:</strong> return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>) (<a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05">5f938fff</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2701">#2701</a>)</li>
<li><strong>http2:</strong> received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2715">#2715</a>) (<a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503">84b78b6c</a>)</li>
<li><strong>server:</strong> use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>) (<a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1">7435cc33</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2708">#2708</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/rajing"><code>`@​rajing</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2706">hyperium/hyper#2706</a></li>
<li><a href="https://github.com/JonathanMurray"><code>`@​JonathanMurray</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2709">hyperium/hyper#2709</a></li>
</ul>
<h2>v0.14.15</h2>
<h2>Bug Fixes</h2>
<ul>
<li><strong>client:</strong> cancel blocking DNS lookup if <code>GaiFuture</code> is dropped (<a href="https://github.com/hyperium/hyper/commit/174b553d">174b553d</a>)</li>
</ul>
<h2>Features</h2>
<ul>
<li><strong>http1:</strong> add <code>http1_writev(bool)</code> options to Client and Server builders, to allow forcing vectored writes (<a href="https://github.com/hyperium/hyper/commit/80627141">80627141</a>)</li>
<li><strong>upgrade:</strong> allow http upgrades with any body type (<a href="https://github.com/hyperium/hyper/commit/ab469eb3c6cd5e7a035d734f3d21ff4d2d6a21ab">ab469eb3</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/luqmana"><code>`@​luqmana</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2680">hyperium/hyper#2680</a></li>
<li><a href="https://github.com/whentze"><code>`@​whentze</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2688">hyperium/hyper#2688</a></li>
<li><a href="https://github.com/ahmedsobeh"><code>`@​ahmedsobeh</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/hyperium/hyper/pull/2689">hyperium/hyper#2689</a></li>
</ul>
<h2>v0.14.14</h2>
<h2>Bug Fixes</h2>
<ul>
<li><strong>client:</strong>
<ul>
<li>make ResponseFuture implement Sync (<a href="https://github.com/hyperium/hyper/commit/bd6c35b98f9513f14ed9cecad933bc7fdb8635ea">bd6c35b9</a>)</li>
<li>remove ipv6 square brackets before resolving (<a href="https://github.com/hyperium/hyper/commit/910e02687df3245aae4bc519fb0bd7eb6a34db7d">910e0268</a>)</li>
</ul>
</li>
</ul>
<h2>Features</h2>
<ul>
<li><strong>http2:</strong> always include original h2 error on broken pipe (<a href="https://github.com/hyperium/hyper/commit/6169db250c932dd012d391389826cd34833077b4">6169db25</a>)</li>
<li><strong>server:</strong> Remove Send + Sync requirement for Body in with_graceful_shutdown (<a href="https://github.com/hyperium/hyper/commit/1d553e52c6953ea3b039f5c3f89d35cb56e2436a">1d553e52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/hyperium/hyper/blob/master/CHANGELOG.md">hyper's changelog</a>.</em></p>
<blockquote>
<h3>v0.14.16 (2021-12-09)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>http1:</strong> return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>) (<a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05">5f938fff</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2701">#2701</a>)</li>
<li><strong>http2:</strong> received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2715">#2715</a>) (<a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503">84b78b6c</a>)</li>
<li><strong>server:</strong> use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>) (<a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1">7435cc33</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2708">#2708</a>)</li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>http2:</strong> add <code>http2_max_send_buf_size</code> option to client and server (<a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461">bff977b7</a>)</li>
<li><strong>server:</strong> add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>) (<a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2">842c6553</a>, closes <a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2457">#2457</a>)</li>
</ul>
<h3>v0.14.15 (2021-11-16)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>client:</strong> cancel blocking DNS lookup if <code>GaiFuture</code> is dropped (<a href="https://github.com/hyperium/hyper/commit/174b553d">174b553d</a></li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>http1:</strong> add <code>http1_writev(bool)</code> options to Client and Server builders, to allow forcing vectored writes (<a href="https://github.com/hyperium/hyper/commit/80627141">80627141</a>)</li>
<li><strong>upgrade:</strong> allow http upgrades with any body type (<a href="https://github.com/hyperium/hyper/commit/ab469eb3c6cd5e7a035d734f3d21ff4d2d6a21ab">ab469eb3</a>)</li>
</ul>
<h3>v0.14.14 (2021-10-22)</h3>
<h4>Bug Fixes</h4>
<ul>
<li><strong>client:</strong>
<ul>
<li>make ResponseFuture implement Sync (<a href="https://github.com/hyperium/hyper/commit/bd6c35b98f9513f14ed9cecad933bc7fdb8635ea">bd6c35b9</a>)</li>
<li>remove ipv6 square brackets before resolving (<a href="https://github.com/hyperium/hyper/commit/910e02687df3245aae4bc519fb0bd7eb6a34db7d">910e0268</a>)</li>
</ul>
</li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>h2:</strong> always include original h2 error on broken pipe (<a href="https://github.com/hyperium/hyper/commit/6169db250c932dd012d391389826cd34833077b4">6169db25</a>)</li>
<li><strong>server:</strong> Remove Send + Sync requirement for Body in with_graceful_shutdown (<a href="https://github.com/hyperium/hyper/commit/1d553e52c6953ea3b039f5c3f89d35cb56e2436a">1d553e52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/hyperium/hyper/commit/41dee4a79bd5068c0c19edb34746b87a6a87c09b"><code>41dee4a</code></a> v0.14.16</li>
<li><a href="https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461"><code>bff977b</code></a> feat(http2): add <code>http2_max_send_buf_size</code> option to client and server</li>
<li><a href="https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503"><code>84b78b6</code></a> fix(http2): received <code>Body::size_hint()</code> now return 0 if implicitly empty (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2">#2</a>...</li>
<li><a href="https://github.com/hyperium/hyper/commit/ce8242571fc4dd6db8ccaad76eadab80ac009d32"><code>ce82425</code></a> refactor(lib): resolve unused warnings from server-specific code (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2710">#2710</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1"><code>7435cc3</code></a> fix(server): use case-insensitive comparison for Expect: 100-continue (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2709">#2709</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05"><code>5f938ff</code></a> fix(http1): return 414 when URI contains more than 65534 characters (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2706">#2706</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/1010614a0de032b43306ef9dc6da5a3e8ebf7a09"><code>1010614</code></a> test(client): refactor client helper macro to handle options better</li>
<li><a href="https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2"><code>842c655</code></a> feat(server): add HTTP/1 header read timeout option (<a href="https://github-redirect.dependabot.com/hyperium/hyper/issues/2675">#2675</a>)</li>
<li><a href="https://github.com/hyperium/hyper/commit/d0b1d9ed3a10013ab356bc7d9b283e179857a672"><code>d0b1d9e</code></a> v0.14.15</li>
<li><a href="https://github.com/hyperium/hyper/commit/a1502e1067d28b5fc1883e48ac7daacf2fbe4b9e"><code>a1502e1</code></a> docs(http1): clarify HTTP1 preserve case option</li>
<li>Additional commits viewable in <a href="https://github.com/hyperium/hyper/compare/v0.14.13...v0.14.16">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hyper&package-manager=cargo&previous-version=0.14.13&new-version=0.14.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Karzel <daniel@comit.network>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working cli Related to the swap CLI tool
Projects
Development

No branches or pull requests

2 participants