Skip to main content

PyMavryk

Twitter Monthly downloads GitHub stars Python Version
Binder License: MIT Latest release GitHub issues GitHub pull requests

  • RPC query engine
  • Cryptography
  • Building and parsing operations
  • Smart contract interaction
  • Local forging/packing & vice versa
  • Working with Michelson AST

PyMavryk 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

Make sure you have Python 3.8 to 3.12 installed and set as default in the system.

You also need to install cryptographic packages before installing the library/building the project:

Linux

Ubuntu, Debian and other apt-based distributions

$ sudo apt install libsodium-dev libgmp-dev pkg-config

Arch Linux

$ sudo pacman -Syu --needed libsodium gmp

MacOS

Homebrew needs to be installed.

$ brew install libsodium gmp pkg-config

M1 (ARM)

In case libsodium or gmp cannot find either include or lib paths, try explicitly set environment vars:

export CFLAGS="-I/opt/homebrew/Cellar/gmp/6.2.1_1/include/ -L/opt/homebrew/Cellar/gmp/6.2.1_1/lib/"
export DYLD_LIBRARY_PATH=/opt/homebrew/lib/
pip3 install --user pymavryk

For running tests you might also need to export LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/homebrew/lib/

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

From PyPi

$ pip install wheel setuptools pkginfo cryptography
$ pip install pymavryk

Google Colab

>>> !apt install libsodium-dev libgmp-dev
>>> !pip install pymavryk

Docker container

Verified & minified images for CI/CD https://hub.docker.com/r/mavrykdynamics/pymavryk/tags

$ # 1. Use image from registry
$ docker pull mavrykdynamics/pymavryk
$ # or build it yourself
$ docker build . -t pymavryk
$ # 2. Use included docker-compose.yml
$ docker-compose up -d notebook

Building from sources

Requirements:

  • Python 3.8 to 3.12
  • libsodium, coincurve, gmp
  • make
$ # prepare environment
$ make install
# # run full CI with tests
$ make all

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 pymavryk import pymavryk
>>> pymavryk

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 Mavryk repo is used to ensure the interpreter workability
  • Michelson structured documentation by Nomadic Labs is used for inline help

Metadata

Release files for pymavryk 3.14.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymavryk 3.14.0
File Size Uploaded
pymavryk-3.14.0.tar.gz 164.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymavryk 3.14.0
File Interpreter ABI Platform
pymavryk-3.14.0-py3-none-any.whl Python 3 none any Details

Total release size: 380.3 kB

Release files / pymavryk-3.14.0.tar.gz

Download URL pymavryk-3.14.0.tar.gz
Size 164.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8c539e0b329ccee029c08fec2be28371ebd3b38c8e82def8012c67da7a7aec83
BLAKE2b-256 checksum
How to use checksums
a2d0648b02eb8cfc5b34c3344b61befc1e3a1f8cb1aad5c0a61900cf0d88dfaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

Release files / pymavryk-3.14.0-py3-none-any.whl

Download URL pymavryk-3.14.0-py3-none-any.whl
Size 216.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98aaeefa6f050ec1625a0ec36409729b247df5ea4d076c5e1c8f8be6c94a7158
BLAKE2b-256 checksum
How to use checksums
f8cc58a0c8893364c7932fd0947d8f90d792d8cb5ac87c3eaba5db30c2de199b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

3.14.0 This release

2 release files

3.12.2

2 release files

3.12.1

2 release files

3.10.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page