corda/docs/source/tut-two-party-contract.rst

1.8 KiB

Updating the contract

Remember that each state references a contract. The contract imposes constraints on transactions involving that state. If the transaction does not obey the constraints of all the contracts of all its states, it cannot become a valid ledger update.

We need to modify our contract so that the borrower's signature is required in any IOU creation transaction.

In IOUContract.java/IOUContract.kt, change the imports block to the following:

example-code/src/main/kotlin/net/corda/docs/tutorial/twoparty/contract.kt

example-code/src/main/java/net/corda/docs/java/tutorial/twoparty/IOUContract.java

And update the final block of constraints in the requireThat block as follows:

example-code/src/main/kotlin/net/corda/docs/tutorial/twoparty/contract.kt

example-code/src/main/java/net/corda/docs/java/tutorial/twoparty/IOUContract.java

Progress so far

Our contract now imposes an additional constraint - the borrower must also sign an IOU creation transaction. Next, we need to update IOUFlow so that it actually gathers the borrower's signature as part of the flow.