Prevent taking of offers with unequal bank account types (excl. SEPA) #3673
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use stricter criteria when deciding which of the taker's accounts (if any) are valid for a given offer. Specifically, prevent National Bank accounts from being used to take Same / Specific Bank(s) offers, so the three payment method types can never being mixed.
This prevents an error on the trading peer when the trade starts, due to enforcement of equal maker & taker payment method IDs (except for SEPA) in the Contract payload constructor.
This partially addresses #3602, where the erroneous peer response caused the taker to be presented with a confusing timeout, after they managed to take a SAME_BANK offer using their NATIONAL_BANK account. With this change, the taker would be directed to create a separate SAME_BANK account if they don't have one already (which would then be automatically selected).
(Later, it might be worthwhile to make a more substantial change to allow National, Same or Specific Bank account types to be mixed under certain circumstances when trading, but that could be complicated by the peer running an older version.)