In the previous section we described how the
verifyPathConstraints() function calls the
verifyPath() function from
ContractUtils. In this section you can see how
verifyPath() works. You can also see the implementation of
VerifyPath in the cdl-example
This diagram shows an example of an implementation of
LedgerTransaction you can establish the
Path in the transaction, as well as the status of the Primary input state. From the status of the Primary input state you can establish the set of allowed
PathConstraints for the status of that input state. The
verifyPath() function then takes the Path and checks it against each
PathConstraint. If it can find a
PathConstraint which allows the transaction
Path then it returns
true, if not, it will return
false which will cause the
verifyPathConstraints() function to throw a verification error.
Looking in detail, you can see the properties in
PathConstraint respectively, together with the checks that each
PathConstraint property applies to its corresponding
Then, for the full description, you must add in the
additionalStates checks in which each required
additionStatesConstraint must be satisfied by at least one of the
additionalStates in the transaction:
Was this page helpful?
Thanks for your feedback!
Chat with us
Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.
Propose documentation improvements directly
Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.
We're sorry this page wasn't helpful. Let us know how we can make it better!
Chat with us
Create an issue
Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.