G-d willing
Hello,
I am having the following template
template Product
with
id: Text
owner: Party
responsible: Party
where
signatory owner, responsible
choice ChangeResponsible : ContractId Product
with
newRespobsible : Party
controller responsible, newRespobsible
do
create this with responsible = newRespobsible
Say that the owner of the product would like to propose to candidates to be responsible for the product, meaning to be the responsible party of the contract. So, I created a proposal template to represent it:
template ProductResponsibleProposal
with
lessor: Party
lessee: Party
product: ContractId Product
where
signatory lessor
observer lessee
choice AcceptResponsibleProposal : ContractId RentAgreement
controller lessee
do
exercise product ChangeResponsible with newRespobsible = lessee
I created a script for that:
setup : Script ()
setup = script do
alice <- allocateParty "alice"
bob <- allocateParty "bob"
pen <- submit alice do
createCmd Product with owner = alice, responsible = alice, id ="1"
proposalId <- submit alice do
createCmd ProductResponsibleProposal with
lessor = alice
lessee = bob
product = pen
submit bob do
exerciseCmd proposalId AcceptResponsibleProposal
pure ()
However, that does not work since the bob, the lesser, is not visible in the Product contract. So, I tried creating an agreement between them before exercising the choice.
I created the following template:
template ProductResponsibleAgreement
with
lessor: Party
lessee: Party
product: ContractId Product
where
signatory lessor, lessee
choice ChangeResponsibility : ContractId Product
controller lessee, lessor
do
exercise product ChangeResponsible with newRespobsible = lessee
I updated the choice in the proposal for the following;
choice AcceptResponsibleProposal : ContractId ProductResponsibleAgreement
controller lessee
do
a <- create ProductResponsibleAgreement with ..
exercise a ChangeResponsibility
return a
And, since the agreement has both signatories, bob & alice, exercising the choice from the agreement should work. However, that does not work as again for the same visibility error.
How can I resolve this, so bob can be the responsible party for the product in one step only on accepting the proposal?
I don’t want to create the agreement first, and then ask bob (as a second step) to exercise the AcceptResponsibleProposal
choice at another time. I want it all in one go.