We are not talking about different participants, but about one participant in coinjoin, who during the coinjoin needs to transfer to the coordinator the address from which he will pay from one IP and the address to which he will receive from another IP. So that the coordinator cannot link its inputs and outputs.
We are talking about the same thing. One participant uses the whirlpool client and changes identities when signing input and output.
Can you please explain in more detail how exactly you can get a new tor circuit without using tor management interface?
I found this discussion in their github repo:
https://github.com/sparrowwallet/sparrow/issues/1328.
So, as it turns out, nightjar is kind of depreciated, and replaced by a direct dependency of Samourai libs:
Nightjar is actually going away in favour of direct dependency on the Samourai libs, which have recently been updated to be compatible with Sparrow.
This is the code that changes identities:
https://github.com/sparrowwallet/sparrow/blob/9d0c35bc750091abdca2769b4ff6fde819d7503e/src/main/java/com/sparrowwallet/sparrow/whirlpool/tor/SparrowTorClientService.java. You can see that it imports the relevant libraries for this purpose.
At this point, if you're still having trouble understanding what it does, we can continue the conversation, but note that I'm not a Sparrow contributor, so you'd be better asking themselves by opening an issue.