Sign inSign up

bakingbad/michelson-kernel

By bakingbad

•Updated 8 days ago

Jupyter kernel for the Michelson language

Image
0

2.8K

bakingbad/michelson-kernel repository overview

⁠PyTezos

PyPI version Tests Docker Build Status Made With License: MIT Binder

  • RPC query engine
  • Cryptography
  • Building and parsing operations
  • Smart contract interaction
  • Local forging/packing & vice versa
  • Working with Michelson AST
⁠PyTezos CLI
  • Generating contract parameter/storage schema
  • Activating and revealing accounts
  • Deploying contracts (+ GitHub integration)
⁠Michelson REPL
  • Builtin interpreter (reimplemented)
  • Set of extra helpers (stack visualization, blockchain context mocking)
⁠Michelson Jupyter kernel
  • Custom interpreter with runtime type checker
  • Syntax highlighting, autocomplete with Tab
  • In-place docstrings with Shift+Tab
  • Macros support
  • Verbose execution logging
  • Debug helpers
⁠Michelson integration testing framework
  • Writing integration tests using unittest package
  • Simulating contract execution using remote intepreter (via RPC) or builtin one

⁠Installation

⁠From PyPi
$ pip install pytezos
⁠Google Colab⁠
>>> !apt install libsodium-dev libsecp256k1-dev libgmp-dev
>>> !pip install pytezos
⁠Docker container

Verified & minified images for CI/CD https://hub.docker.com/r/bakingbad/pytezos/tags⁠

$ # 1. Use image from registry
$ docker pull bakingbad/pytezos
$ # or build it yourself
$ docker build . -t pytezos
$ # 2. Use included docker-compose.yml
$ docker-compose up -d notebook
⁠Building from sources

Requirements:

  • Python 3.7+
  • Poetry⁠
  • libsodium, libsecp256k1, gmp
  • make
$ # prepare environment
$ make install
# # run full CI with tests
$ make

You need to install cryptographic packages before building the project:

⁠Linux
⁠Ubuntu, Debian and other apt-based distributions
$ sudo apt install libsodium-dev libsecp256k1-dev libgmp-dev
⁠Arch Linux
$ sudo pacman -Syu --needed libsodium libsecp256k1 gmp
⁠MacOS

Homebrew⁠ needs to be installed.

$ brew tap cuber/homebrew-libsecp256k1
$ brew install libsodium libsecp256k1 gmp
⁠Windows

The recommended way is to use WSL and then follow the instructions for Linux, but if you feel lucky you can try to install natively:

  1. Install MinGW from https://osdn.net/projects/mingw/⁠
  2. Make sure C:\MinGW\bin is added to your PATH
  3. Download the latest libsodium-X.Y.Z-msvc.zip from https://download.libsodium.org/libsodium/releases/⁠.
  4. Extract the Win64/Release/v143/dynamic/libsodium.dll from the zip file
  5. Copy libsodium.dll to C:\Windows\System32\libsodium.dll

⁠Quick start

Read quick start guide⁠
Learn how to enable Jupyter with Michelson⁠

⁠API reference

Check out a complete API reference⁠

⁠Inline documentation

If you are working in Jupyter/Google Colab or any other interactive console, you can display documentation for a particular class/method:

>>> from pytezos import pytezos
>>> pytezos
⁠Publications
⁠Contact

⁠Credits

  • The project was initially started by Arthur Breitman, now it's maintained by Baking Bad team.
  • Baking Bad is supported by Tezos Foundation
  • Michelson test set from the Tezos repo is used to ensure the interpreter workability
  • Michelson structured documentation by Nomadic Labs is used for inline help

Tag summary

Content type

Image

Digest

sha256:5605b931d…

Size

95.6 MB

Last updated

8 days ago

docker pull bakingbad/michelson-kernel