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
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -260,13 +260,14 @@ The sender should check the payjoin proposal before signing it to prevent a mali
260
260
** Verify that all of sender's inputs from the original PSBT are in the proposal.
261
261
* For each outputs in the proposal:
262
262
** Verify that no keypaths is in the PSBT output
263
-
** If it is one of the sender's output
264
-
*** If that's the [[#fee-output|fee ouptut]]:
265
-
**** 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>.
266
-
**** 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.
267
-
**** 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)
268
-
*** If it is not the fee output:
269
-
**** Make sure the output's value did not changed.
263
+
** If the output is the [[#fee-output|fee ouptut]]:
264
+
*** 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>.
265
+
*** 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.
266
+
*** 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)
267
+
** If the output is the payment output and <code>disableoutputsubstitution=</code> is <code>false</code or not specified
268
+
*** Do not make any check
269
+
** Else
270
+
*** Make sure the output's value did not changed.
270
271
** 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.
271
272
* 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.
0 commit comments