Skip to content

Instantly share code, notes, and snippets.

@danicuki
Created July 12, 2022 15:54
Show Gist options
  • Save danicuki/e583191deee27e514a1544104cab86f9 to your computer and use it in GitHub Desktop.
Save danicuki/e583191deee27e514a1544104cab86f9 to your computer and use it in GitHub Desktop.
Homework - 2 givers - 1 receiver - haskell
{-# LANGUAGE OverloadedStrings #-}
module Example where
import Language.Marlowe.Extended.V1
main :: IO ()
main = printJSON $ contract
{- Define a contract, Close is the simplest contract which just ends the contract straight away
-}
contract :: Contract
contract = When
[Case
(Deposit
(Role "Giver1")
(Role "Giver1")
(Token "" "")
(ConstantParam "Deposit")
)
(When
[Case
(Deposit
(Role "Giver2")
(Role "Giver2")
(Token "" "")
(ConstantParam "Deposit")
)
(Pay
(Role "Giver1")
(Party (Role "Receiver"))
(Token "" "")
(ConstantParam "Deposit")
(Pay
(Role "Giver2")
(Party (Role "Receiver"))
(Token "" "")
(ConstantParam "Deposit")
Close
)
)]
(TimeParam "Deadline")
Close
), Case
(Deposit
(Role "Giver2")
(Role "Giver2")
(Token "" "")
(ConstantParam "Deposit")
)
(When
[Case
(Deposit
(Role "Giver1")
(Role "Giver1")
(Token "" "")
(ConstantParam "Deposit")
)
(Pay
(Role "Giver1")
(Party (Role "Receiver"))
(Token "" "")
(ConstantParam "Deposit")
(Pay
(Role "Giver2")
(Party (Role "Receiver"))
(Token "" "")
(ConstantParam "Deposit")
Close
)
)]
(TimeParam "Deadline")
Close
)]
(TimeParam "Deadline")
Close
{"valueParameterInfo":[["Deposit",{"valueParameterFormat":{"contents":[6,""],"tag":"DecimalFormat"},"valueParameterDescription":""}]],"timeParameterDescriptions":[],"roleDescriptions":[],"contractType":"Other","contractShortDescription":"Unknown","contractName":"Unknown","contractLongDescription":"We couldn't find information about this contract","choiceInfo":[]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment