Tezos
Accounts
Implicit - non programmable, tagged to public key
Smart contract - programmable. Transaction can contain data, fail for reasons decided by michelson code. Address unique hash that depends on operation that created it. Address starts with KT1
.
Both are indistinguishable.
Smart contract languages
Michelson
Stack based, strict static type checking. Values are immutable and garbage collected. types of input, output stack are fixed, monomorphic. Program is typechecked.
SmartPy
Embedded DSL in python. Users can write and implement test scenarios to test their smart-contracts.
Compiles to imperative, type inferred intermediate language called SmartML.
SmartML in turn compiles to Michelson.
LIGO
LIGO supports:
- CameLIGO - OCaml inspired syntax
- ReasonLIGO - functional Javascript-like syntax inspired by ReasonML
- PascaLIGO - Pascal inspired syntax.
LIGO -> IR -> typecheck -> Michelson.
Morley framework
Collection of projects which build upon and complement each other.
Morley
Haskell framework for meta-programming Michelson smart contracts.
Morley (.mtz) - superset of Michelson, with simpler syntax, simple features.
Library with core Tezos, Michelson datatypes & tools for typechecking, interpreting, parsing and printing Michelson, Morley contracts.
Executable with commands for compiling and working with Morley and Michelson contracts, along with a REPL for interactively running instructions.
Lorentz
eDSL in Haskell
- Expressive type system
- type inference
- Type safe
- Reuse components as Haskell packages
- Autogen docs
Indigo
eDSL in Haskell
- imperative style programming, free you from manual stack management.
Cleveland
Testing Michelson contracts.
Example based, property based tests.
Archetype
Transpilation of contracts to SmartPy, LIGO.
Formal verification.