PaymentContract
Payment contract
Verifies that LedgerTransactions connected with Payments are completed correctly.
Each output from LedgerTransaction.outputs should:
Commands verification:
Commands.Create should:
have required fields set (Payment.endToEndId);
be signed by Participant Node;
have valid Payment.PaymentStatus from the side of workflow.
Commands.SendToGateway should:
have required fields set (Payment.endToEndId);
be signed by Participant Node;
be signed by Gateway Node;
have same values of key fields of input and output Payments;
have valid Payment.PaymentStatus from the side of workflow.
Commands.UpdateStatus should:
have required fields set (Payment.endToEndId);
be signed by Participant Node;
be signed by Gateway Node;
have same values of key fields of input and output Payments;
have valid Payment.PaymentStatus from the side of workflow.