The duplicate-payment assertions for gateways that claim the payment image
only after paying and forfeit the duplicates: one settles, two are refunded.
The duplicate-payment assertions for gateways that claim the payment image
at intake: one send settles, the gateway refuses the other two without
paying or forfeiting anything, so they stay unresolved until their contracts
expire, and the gateway is reimbursed exactly once.
Creates a fresh client and joins it to the federation identified by
invite_code, unlike Federation::new_joined_client which always joins
whichever federation last wrote the shared invite-code file.
Three independent clients โ two in the primary federation and one in a
second federation, all served by the same gateway โ race to pay the same
invoice. The gateway pays the invoice only once, so it may claim only one of
the three outgoing contracts regardless of which federation funded them.
Exactly one payment settles; how the other two end depends on the gateway
version, see assert_duplicates_refunded and
assert_duplicates_refused.
Stops enough guardians that no threshold of them can answer, checks that
a receive is refused without the gateway funding anything, then checks
that receives work again once the guardians are back.