Skip to content

OlofBlomqvist/marlowe-py

Repository files navigation

PyPI version Downloads

MARLOWE-PY

Python bindings for Marlowe_Lang marlowe-rs.

Features

  • Deserialize contracts from: cbor-hex, dsl, json.
  • Deserialize datums & redeemers from cbor-hex,json.
  • Serialize contracts to json, dsl.
  • Serialize datums & redeemers to cbor-hex, json.
  • Unstable: View contract expected next inputs and other state info.
  • Unstable: Define contracts directly in Python.
  • Unstable: Code generator: Convert any contract to equivalent Python code

Project goals

  • Provide easy to use API's for everything marlowe-rs supports.
  • Provide easy to use way of designing Marlowe contracts in Python.

How to install

pip install marlowe

Alternatives:

How to use

See the example notebook here.

Basic contract construction:

When(
    case=[
        Deposit(
            by = Role("GUY1"),
            value = Constant(42000000), 
            of_token = ADA, 
            into_account = Role("GUY2"),
            then_continue_with = raw(Close()) # or merkleized("some hash")
        )
    ], 
    timeout = TimeConst(999999999), 
    timeout_continuation = Close()
)

Building from source