Do all validating participants validate assert failures?

In the following code…

template TestTemplate
  with
    partyA : Party
    partyB : Party
  where
    signatory partyA
    observer partyB

    choice DoNothing : ()
      controller partyB
      do
        assert False

… if partyA and partyB are on different validators, will partyA’s validator know when partyB attempts to exercise the DoNothing choice?

No.

When partyB submits the exercise command, partyB’s node will attempt to create the resulting transaction, the assertion will fail, and the command exercise will return with an error. Nothing will be submitted to the synchronizer. Consequently, partyA’s node will not receive anything related to the attempted exercise.

1 Like