Skip to content

Instantly share code, notes, and snippets.

@paluh
Last active August 26, 2022 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paluh/d6c5662a360ff2bc57068c25022ce36c to your computer and use it in GitHub Desktop.
Save paluh/d6c5662a360ff2bc57068c25022ce36c to your computer and use it in GitHub Desktop.
{}
{"valueParameterInfo":[["Price",{"valueParameterFormat":{"contents":[6,"₳"],"tag":"DecimalFormat"},"valueParameterDescription":"The price of the item."}]],"timeParameterDescriptions":[["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 "Priasdfadce"))
(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)] (TimeParam "Mediation deadline") Close))] (TimeParam "Complaint deadline") Close)))] (TimeParam "Complaint response deadline") Close))] (TimeParam "Payment deadline") Close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment