Reformat the check list for sender

This commit is contained in:
nicolas.dorier 2020-06-19 13:16:16 +09:00
parent a3fbc6c620
commit 7803bf8335
No known key found for this signature in database
GPG Key ID: 6618763EF09186FE

View File

@ -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. ** Verify that all of sender's inputs from the original PSBT are in the proposal.
* For each outputs in the proposal: * For each outputs in the proposal:
** Verify that no keypaths is in the PSBT output ** Verify that no keypaths is in the PSBT output
** If it is one of the sender's output ** If the output is the [[#fee-output|fee ouptut]]:
*** 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>.
**** 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 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)
**** 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
*** If it is not the fee output: *** Do not make any check
**** Make sure the output's value did not changed. ** 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. ** 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. * 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.