Marlowe
Explore Marlowe
Tutorials
Introducing Marlowe
Programming Languages and Domain-Specific Languages
Marlowe in a nutshell
Timeouts, deposits and commitments
Marlowe in action
Research-based
Finding out more
A first example
A simple escrow contract
Escrow in Marlowe
Adding timeouts
Adding commitments
Definitions
Notes
Background
The Marlowe model
Contracts
Participants, roles, and public key
Accounts
Steps and states
Blockchain
UTxO, wallets and the Marlowe Run app
Omniscient simulation
Values and tokens
Executing a Marlowe contract
Marlowe step by step
Pay
Close
Values, observations and actions
Oracles
If
When
Let
Assert
Marlowe in Blockly
Getting started
Exercises
Editing Blockly
The Marlowe data types
Marlowe
Basic components
Values, observations and actions
Extended Marlowe
Transactions
Time intervals
Notes
Marlowe embedded in Haskell
A simple escrow contract, revisited.
Note
Marlowe embedded in JavaScript
Using the JS Editor in the Marlowe Playground
The
SomeNumber
type
The
EValue
type and boolean overloading
Example: Writing a Swap contract in TypeScript
The Marlowe Playground
Introducing the Marlowe Playground
Getting started
The JavaScript Editor: developing embedded contracts
The Haskell Editor: developing embedded contracts
Developing contracts in Blockly
Developing contracts in Marlowe
Simulating Marlowe contracts and templates
Oracle simulation
Saving and Opening Projects
Analysing a contract
Potential problems with contracts
Warnings
Non-positive payments
Non-positive deposits
Partial payment
Let
shadowing (not covered by static analysis)
Bad smells
Undefined
Let
usage (should be a warning)
Unreachable parts of a contract
Usability issues
Bad timing of
When
constructs
Errors
Ambiguous interval
Apply no-match
Useless transaction
Static analysis
An example
Under the hood
Next steps
ACTUS and Marlowe
ACTUS
Simple Zero Coupon Bond Example
Guaranteed Coupon Bond Example
Using Marlowe from the ghci command line
Marlowe in Haskell
Stepping through contracts
Alternative routes through the contract
Using Marlowe Run
Accessing the Marlowe Run Demo
Adding Contacts
Migrating from earlier versions of Marlowe
Remove
Both
Include accounts
Discussion: Implicit vs Explicit Accounts
Close
replaces
Null
/
Pay
Pay
Multi-clause When
Observations and Values
Inclusion of TimeIntervals
Reference
Reference
Examples
Cost model parameters
Glossary
Bibliography
Marlowe
»
Reference
Edit on GitHub
Reference
ΒΆ
Examples
Cost model parameters
Glossary
Bibliography