Skip to content

Instantly share code, notes, and snippets.

@onyedikachi-david
Created May 1, 2022 22:35
Show Gist options
  • Save onyedikachi-david/34587470b3cf12f22488003ccdeab6c4 to your computer and use it in GitHub Desktop.
Save onyedikachi-david/34587470b3cf12f22488003ccdeab6c4 to your computer and use it in GitHub Desktop.
New Project
{"valueParameterInfo":[["Price",{"valueParameterFormat":{"contents":[6,"₳"],"tag":"DecimalFormat"},"valueParameterDescription":"The price of the item."}]],"slotParameterDescriptions":[["Payment deadline","The _**buyer**_ must pay the _price_ of the item by this time, otherwise the contract is cancelled."],["Complaint deadline","The _**buyer**_ can only complain until this deadline, otherwise the contract will assume the transaction went smoothly and pay the _**seller**_."],["Complaint response deadline","If the _**buyer**_ complained, the _**seller**_ must respond before this deadline, otherwise the contract will assume there was a problem with the transaction and refund the _**buyer**_."],["Mediation deadline","If the _**buyer**_ and the _**seller**_ disagree, the _**mediator**_ must weigh in before this deadline, otherwise the contract will assume there was a problem with the transaction and refund the _**buyer**_."]],"roleDescriptions":[["Buyer","The buyer of the item."],["Mediator","The mediator decides who is right in the case of dispute."],["Seller","The seller of the item."]],"contractType":"Escrow","contractShortDescription":"In this contract a _**seller**_ wants to sell an item (like a bicycle) to a _**buyer**_ for a _price_.","contractName":"Purchase","contractLongDescription":"Neither trusts each other, but they both trust a _**mediator**_. The _**buyer**_ pays the _price_ into the contract account: if both the _**buyer**_ and the _**seller**_ agree that the _**buyer**_ has received the item, then the _**seller**_ receives the _price_; if not, then the _**mediator**_ ensures that the _**buyer**_ gets their money back.","choiceInfo":[["Confirm problem",{"choiceFormat":{"contents":null,"tag":"DefaultFormat"},"choiceDescription":"Acknowledge there was a problem and a refund must be granted."}],["Dismiss claim",{"choiceFormat":{"contents":null,"tag":"DefaultFormat"},"choiceDescription":"The _**Mediator**_ does not see any problem with the exchange and the _**Seller**_ must be paid."}],["Dispute problem",{"choiceFormat":{"contents":null,"tag":"DefaultFormat"},"choiceDescription":"The _**Seller**_ disagrees with the _**Buyer**_ about the claim that something went wrong."}],["Everything is alright",{"choiceFormat":{"contents":null,"tag":"DefaultFormat"},"choiceDescription":"The transaction was uneventful, _**Buyer**_ agrees to pay the _**Seller**_."}],["Report problem",{"choiceFormat":{"contents":null,"tag":"DefaultFormat"},"choiceDescription":"The _**Buyer**_ claims not having received the product that was paid for as agreed and would like a refund."}]]}
When
[Case
(Deposit
(Role "Seller")
(Role "Buyer")
(Token "" "")
(ConstantParam "Price")
)
(When
[Case
(Choice
(ChoiceId
"Everything is alright"
(Role "Buyer")
)
[Bound 0 0]
)
Close , Case
(Choice
(ChoiceId
"Report problem"
(Role "Buyer")
)
[Bound 1 1]
)
(Pay
(Role "Seller")
(Account (Role "Buyer"))
(Token "" "")
(ConstantParam "Price")
(When
[Case
(Choice
(ChoiceId
"Confirm problem"
(Role "Seller")
)
[Bound 1 1]
)
Close , Case
(Choice
(ChoiceId
"Dispute problem"
(Role "Seller")
)
[Bound 0 0]
)
(When
[Case
(Choice
(ChoiceId
"Dismiss claim"
(Role "Mediator")
)
[Bound 0 0]
)
(Pay
(Role "Buyer")
(Party (Role "Seller"))
(Token "" "")
(ConstantParam "Price")
Close
), Case
(Choice
(ChoiceId
"Confirm problem"
(Role "Mediator")
)
[Bound 1 1]
)
Close ]
(SlotParam "Mediation deadline")
Close
)]
(SlotParam "Complaint deadline")
Close
)
)]
(SlotParam "Complaint response deadline")
Close
)]
(SlotParam "Payment deadline")
Close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment