diff options
author | nicolas.dorier <nicolas.dorier@gmail.com> | 2020-06-19 13:16:16 +0900 |
---|---|---|
committer | nicolas.dorier <nicolas.dorier@gmail.com> | 2020-06-19 13:17:34 +0900 |
commit | 7803bf8335780ae2fdcc256e4edd81bb9681089d (patch) | |
tree | 16d7a7627c264759cae0f8df63f40ecbd6a8b139 | |
parent | a3fbc6c6203ef7ded879626ee2fcb689195a7ec1 (diff) | |
download | bips-7803bf8335780ae2fdcc256e4edd81bb9681089d.tar.xz |
Reformat the check list for sender
-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. |