Skip to main content

Python toolkit for Mavryk

Project description

PyMavryk

PyPI version Tests Docker images 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

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.11 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 libsecp256k1-dev libgmp-dev pkg-config
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 pkg-config
M1 (ARM)

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

CFLAGS="-I/opt/homebrew/Cellar/gmp/6.2.1_1/include/ -L/opt/homebrew/Cellar/gmp/6.2.1_1/lib/" LIB_DIR="/opt/homebrew/Cellar/libsecp256k1/0.1/lib" INCLUDE_DIR=/opt/homebrew/Cellar/libsecp256k1/0.1/include 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 libsecp256k1-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+
  • libsodium, libsecp256k1, gmp
  • make
$ # prepare environment
$ make install
# # run full CI with tests
$ make

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 Mavryk Dynamics team, based on the forked of Baking Bad.
  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymavryk-3.12.1.tar.gz (165.5 kB view details)

Uploaded Source

Built Distribution

pymavryk-3.12.1-py3-none-any.whl (209.5 kB view details)

Uploaded Python 3

File details

Details for the file pymavryk-3.12.1.tar.gz.

File metadata

  • Download URL: pymavryk-3.12.1.tar.gz
  • Upload date:
  • Size: 165.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for pymavryk-3.12.1.tar.gz
Algorithm Hash digest
SHA256 98c1da62cb3c07f42bb31c5d8ce00d74b16c9f1d2aa6dacea1864296cd8987a5
MD5 33a0b5814b19d853fb71fc18ec7542f9
BLAKE2b-256 5d1119aa6f3d3cf10f1288478e51d1a4aa8b9d9915e4134df9a4cb0dd458d349

See more details on using hashes here.

File details

Details for the file pymavryk-3.12.1-py3-none-any.whl.

File metadata

  • Download URL: pymavryk-3.12.1-py3-none-any.whl
  • Upload date:
  • Size: 209.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for pymavryk-3.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a3d0b1651ba95caa62ec2f762789f7e46d58c34822bb91e1902a083ed783a517
MD5 ff12c34752bc37a08c4b9d835099c791
BLAKE2b-256 f18410d870408ce653cb375dcc66d9c625f08708c2d7cdce33a09451f911252c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page