diff options
Diffstat (limited to 'bip-0078.mediawiki')
-rw-r--r-- | bip-0078.mediawiki | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/bip-0078.mediawiki b/bip-0078.mediawiki index bf75ddf..d43249f 100644 --- a/bip-0078.mediawiki +++ b/bip-0078.mediawiki @@ -260,13 +260,14 @@ The sender should check the payjoin proposal before signing it to prevent a mali ** Verify that all of sender's inputs from the original PSBT are in the proposal. * For each outputs in the proposal: ** Verify that no keypaths is in the PSBT output -** If it is one of the sender's output -*** If that's the [[#fee-output|fee ouptut]]: -**** 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>. -**** 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. -**** 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) -*** If it is not the fee output: -**** Make sure the output's value did not changed. +** If the output is the [[#fee-output|fee ouptut]]: +*** 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>. +*** 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. +*** 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) +** If the output is the payment output and <code>disableoutputsubstitution=</code> is <code>false</code or not specified +*** Do not make any check +** Else +*** Make sure the output's value did not changed. ** 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. * 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. |