module Main where
import Daml.Script
type ItemCustodyId = ContractId ItemCustody
template ItemCustody
with
owner: Party
custodian: Party
itemName: Text
where
signatory owner
controller owner
ReleaseItemTo: ItemCustodyId
with
friend: Party
do
create this with custodian = friend
controller custodian
ReturnItemTo: ItemCustodyId
with
rightfulOwner: Party
do
create this with custodian = rightfulOwner
– test
setup : Script ItemCustodyId
setup = script do
jerry <- allocateParty "Jerry"
elaine <- allocateParty "Elaine"
brandNewCamera <- submit jerry do
createCmd ItemCustody with
owner = jerry
custodian = jerry
itemName = "Really Expensive Camera"
elaineHasCamera <- submit jerry do
exerciseCmd brandNewCamera ReleaseItemTo with friend = elaine
submit elaine do
exerciseCmd elaineHasCamera ReturnItemTo with rightfulOwner = jerry