All Projects → OCamlPro → techelson

OCamlPro / techelson

Licence: other
A test execution engine for Michelson smart contracts.

Programming Languages

ocaml
1615 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to techelson

ruby-to-michelson
(Secure) Ruby to Liquidity w/ ReasonML Syntax / Michelson (Source-to-Source) Cross-Compiler Cheat Sheet / White Paper
Stars: ✭ 16 (-5.88%)
Mutual labels:  liquidity, tezos, michelson
Tezos-Developer-Resources
Resources for Tezos Developers
Stars: ✭ 34 (+100%)
Mutual labels:  liquidity, tezos, michelson
pytezos
🐍 Python SDK & CLI for Tezos | Michelson REPL and testing framework
Stars: ✭ 93 (+447.06%)
Mutual labels:  tezos, michelson
TZComet
Contract Metadata Viewer on Tezos
Stars: ✭ 24 (+41.18%)
Mutual labels:  tezos, michelson
objkt-swap
Hic et Nunc smart contracts. FA2 multiassets: hDAO, OBJKTs, Marketplace, SUBJKTs and Unregistry.
Stars: ✭ 67 (+294.12%)
Mutual labels:  tezos, michelson
lamtez
An ML-inspired smart contract language, compiling to Tezos' Michelson VM
Stars: ✭ 22 (+29.41%)
Mutual labels:  tezos, michelson
netezos
Netezos is a cross-platform Tezos SDK for .NET developers, simplifying the access and interaction with the Tezos blockchain
Stars: ✭ 32 (+88.24%)
Mutual labels:  tezos
tezart
Tezart helps to interact with ​Tezos blockchain.
Stars: ✭ 19 (+11.76%)
Mutual labels:  tezos
tzgo
Golang library for the Tezos blockchain
Stars: ✭ 40 (+135.29%)
Mutual labels:  tezos
templewallet-extension
🔐💰Cryptocurrency wallet for Tezos blockchain as Web extension for your Browser.
Stars: ✭ 176 (+935.29%)
Mutual labels:  tezos
tezos-reward-distributor
Tezos Reward Distributor (TRD): A reward distribution software for tezos bakers.
Stars: ✭ 80 (+370.59%)
Mutual labels:  tezos
kukai
Web wallet for the Tezos blockchain
Stars: ✭ 157 (+823.53%)
Mutual labels:  tezos
liquid button
Liquify your buttons, web demo at website
Stars: ✭ 18 (+5.88%)
Mutual labels:  liquidity
quipuswap-core
🧙‍♂️ Repository containing QuipuSwap liquidity protocol smart-contracts written in Ligo language
Stars: ✭ 48 (+182.35%)
Mutual labels:  tezos
tezos-k8s
Deploy a Tezos Blockchain on Kubernetes
Stars: ✭ 43 (+152.94%)
Mutual labels:  tezos
dipdup-py
Modular framework for creating selective indexers and featureful backends for dapps
Stars: ✭ 49 (+188.24%)
Mutual labels:  tezos
Tezori
Whitelabel wallet framework for the Tezos blockchain
Stars: ✭ 59 (+247.06%)
Mutual labels:  tezos
crypto-code-school-inside-tezos
Interactive Code School for onboarding newcomers to build DApps on Tezos using SmartPy
Stars: ✭ 48 (+182.35%)
Mutual labels:  tezos
harbinger
Harbinger is a decentralized price oracle solution for price feeds on the Tezos network. This repository contains top level documentation for the project.
Stars: ✭ 39 (+129.41%)
Mutual labels:  tezos
tzindex
Tezos Blockchain Indexer
Stars: ✭ 64 (+276.47%)
Mutual labels:  tezos

Techelson Build Status

TEst miCHELSON: techelson.

A test execution engine for Michelson smart contracts.

Documentation

The user documentation is hosted here the main repository's github pages. Finally, there is a blog post by Techelson's main developer on how to use Techelson with Liquidity: adrienchampion.github.io/blog.

Features

Techelson is currently in beta. The rough list of (planned) features is

  • operation must-fail: specifies that a (chain of) operation(s) should fail
  • inspection instruction: break points and stack inspection
  • support for all data types (potentially with some liberty taken compared to tezos)
    • everything but signature
    • signature
  • semantics as close to the tezos protocol as possible
    • for non-crypto, non-packing-related operations (int, nat, map, etc.)
    • for crypto operations
    • internal packing and unpacking (packed and unpacked by Techelson)
    • arbitrary byte unpacking
  • support import of local michelson contracts
  • support retrieving the storage and code of contracts directly from the tezos blockchain

Build

We recommend to use the latest version of the OCaml compiler. Make sure you have opam installed, and run

> opam switch create techelson 4.07.1

Techelson relies on the dune build system and a few other libraries:

> opam install dune menhir zarith ptime stdint

(This list of dependencies might be out-of-date. Check .travis.sh for the latest version.) Finally, build Techelson with make. The binary will be ./bin/techelson.

You can also run make test to make sure there is no problem with the Techelson binary. The user documentation's root is docs/user_doc/index.html. You can regenerate it with make user-doc, as long as you have mdbook installed.

Usage

Assuming the binary Techelson is in you path, you can run it with

> techelson [ --contract <contract_file> ]* -- [ <testcase> ]*

Argument <contract_file> is a michelson contract (storage, parameter and code fields). <optional_init_file> is an optional initializer for the contract. It should contain two fields : parameter and code. The former is the type of data the initializer takes as input, and the latter is a (sequence of) michelson instruction(s) which, from a stack with a value of type parameter, produces a stack with a value of the storage type appearing in the <contract_file> associated with the initializer.

A <testcase> is a (sequence of) michelson instruction(s) which produce(s) a list of operations from an empty stack. Techelson runs all testcases sequentially and reports the errors it runs into.

For example

> techelson --contract rsc/tests/test0/contracts/test0.liq.tz -- rsc/tests/test0/okay/Test0Test1.techel
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].