You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: bip-0078.mediawiki
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -271,10 +271,10 @@ The sender should check the payjoin proposal before signing it to prevent a mali
271
271
*** The amount that was substracted from the output's value is less or equal to <code>maxadditionalfeecontribution</code>. Let's call this amount <code>actual contribution</code>.
272
272
*** Make sure the actual contribution is only paying fee: The <code>actual contribution</code> is less or equals to the difference of absolute fee between the payjoin proposal and the original PSBT.
273
273
*** Make sure the actual contribution is only paying for fee incurred by additional inputs: <code>actual contribution</code> is less or equals to <code>originalPSBTFeeRate * vsize(sender_input_type) * (count(original_psbt_inputs) - count(payjoin_proposal_inputs))</code>. (see [[#fee-output|Fee output]] section)
274
-
** If the output is the payment output and payment output substitution is disabled.
274
+
** If the output is the payment output and payment output substitution is allowed.
275
275
*** Do not make any check
276
276
** Else
277
-
*** Make sure the output's value did not changed.
277
+
*** Make sure the output's value did not decreased.
278
278
** Verify that all sender's outputs (ie, all outputs except the output actually paid to the receiver) from the original PSBT are in the proposal.
279
279
* Once the proposal is signed, if <code>minfeerate</code> was specified, check that the fee rate of the payjoin transaction is not less than this value.
280
280
@@ -561,8 +561,8 @@ public async Task<PSBT> RequestPayjoin(
561
561
}
562
562
else
563
563
{
564
-
if (originalOutput.OriginalTxOut.Value != proposedPSBTOutput.Value)
565
-
throw new PayjoinSenderException("The receiver changed one of our outputs");
564
+
if (originalOutput.OriginalTxOut.Value > proposedPSBTOutput.Value)
565
+
throw new PayjoinSenderException("The receiver decreased the value of one of the outputs");
566
566
}
567
567
// We fill up information we had on the signed PSBT, so we can sign it.
568
568
foreach (var hdKey in output.SignedPSBTOutput.HDKeyPaths)
0 commit comments