morley: Developer tools for the Michelson Language

[ language, library, mit, program ] [ Propose Tags ]

A library to make writing smart contracts in Michelson — the smart contract language of the Tezos blockchain — pleasant and effective.


[Skip to Readme]

Modules

[Last Documentation]

  • Michelson
    • Michelson.Interpret
    • Michelson.TypeCheck
    • Michelson.Typed
      • Michelson.Typed.Value
    • Michelson.Untyped
  • Morley
    • Morley.Aliases
    • Morley.Default
    • Morley.Ext
    • Morley.Lexer
    • Morley.Macro
    • Morley.Parser
      • Morley.Parser.Annotations
    • Morley.Runtime
      • Morley.Runtime.GState
      • Morley.Runtime.TxData
    • Morley.Test
      • Morley.Test.Dummy
      • Morley.Test.Gen
      • Morley.Test.Import
      • Morley.Test.Integrational
      • Morley.Test.Unit
      • Morley.Test.Util
    • Morley.Types
  • Tezos
    • Tezos.Address
    • Tezos.Core
    • Tezos.Crypto

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.2.0, 0.2.0.1, 0.3.0, 0.3.0.1, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9, 1.10.0, 1.11.0, 1.11.1, 1.12.0, 1.13.0, 1.14.0, 1.15.0, 1.15.1, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.17.0, 1.18.0, 1.19.0, 1.19.1, 1.19.2, 1.20.0
Dependencies aeson, aeson-options, base-noprelude (>=4.7 && <5), base16-bytestring, base58-bytestring, bifunctors, bytestring, containers, cryptonite, data-default, directory, fmt, formatting, hspec, lens, megaparsec (>=7.0.0), memory, morley, morley-prelude, mtl, named, optparse-applicative, parser-combinators (>=1.0.0), pretty-simple, QuickCheck, singletons, syb, text, time, timerep, vinyl [details]
License AGPL-3.0-only
Copyright 2018 camlCase, 2019 Tocqueville Group
Author camlCase, Serokell
Maintainer john@camlcase.io
Category Language
Home page https://gitlab.com/camlcase-dev/morley
Bug tracker https://issues.serokell.io/issues/TM
Source repo head: git clone git@gitlab.com:camlcase-dev/morley.git
Uploaded by gromak at 2019-03-27T20:49:01Z
Distributions
Reverse Dependencies 5 direct, 0 indirect [details]
Executables morley
Downloads 13699 total (62 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2019-03-27 [all 3 reports]

Readme for morley-0.1.0.1

[back to package description]

Morley: Developer tools for the Michelson Language

Morley is a library to make writing smart contracts in Michelson pleasant and effective.

I: A reimplementation of the Michelson Language in Haskell

  • Michelson.Untyped: Simple data types representing Michelson smart contracts and expresions. We use word Untyped to reflect that Michelson type of corresponding Haskel values is not statically known (e. g. there is a Value type which is basically dynamically typed).
  • Michelson.Typed: These modules contain more advanced types comparing to Michelson.Untyped with similar semantics. These types use GADTs GHC extension and in this representation Michelson type of each value and instruction is statically known. There are also some utilities to use this advanced machinery.
  • Michelson.TypeCheck: A typechecker that validates ADT's that conform to Michelson's typing rules.
  • Michelson.Intepreter: An intepreter for Michelson contracts which doesn't perform any side effects.
  • Morley.Types: Types for macros, syntactic sugar, and interpreter directives.
  • Morley.Parser A parser to turn a .tz file into an ADT.
  • Morley.Runtime: An interpreter that executes a well-typed Morley smart contract in a sandbox.

II: Testing tools (TBD)

  • Morley.REPL: An interactive REPL with stack visualization.
  • Morley.QuickCheck: QuickCheck generators for arbitary Michelson Values, LAMBDAs and Contracts.
  • Morley.Sandbox: Simulating a more realistic network environment, multiple smart contracts in the same sandbox.

Issue Tracker

We use YouTrack as our issue tracker. You can login using your GitHub account to leave a comment or create a new issue.

For Contributors

Please see CONTRIBUTING.md for more information.