We have another excellent tutorial
on DAML fundamentals thanks to @drsk
![]()
This time we’re covering an important topic of choices and role pattern as well as what are consuming and nonconsuming choices:
nonconsumingchoice doesn’t affect the contract it’s contained in. You can execute it as many times as you want. In contrast, aconsumingchoice can be called exactly once. As soon as the call happens, the containing contract is marked as inactive and a subsequent call will fail.