Python toolkit for Mavryk
Project description
PyMavryk
- 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:
- Install MinGW from https://osdn.net/projects/mingw/
- Make sure
C:\MinGW\bin
is added to yourPATH
- Download the latest libsodium-X.Y.Z-msvc.zip from https://download.libsodium.org/libsodium/releases/.
- Extract the Win64/Release/v143/dynamic/libsodium.dll from the zip file
- 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
-
Pymavryk 2.0 release with embedded docs and smart contract interaction engine
https://medium.com/coinmonks/high-level-interface-for-michelson-contracts-and-not-only-7264db76d7ae -
Materials from TQuorum:Berlin workshop - building an app on top of PyMavryk and ConseilPy
https://medium.com/coinmonks/atomic-tips-berlin-workshop-materials-c5c8ee3f46aa -
Materials from the EETH hackathon - setting up a local development infrastructure, deploying and interacting with a contract
https://medium.com/tezoscommons/preparing-for-the-tezos-hackathon-with-baking-bad-45f2d5fca519 -
Introducing integration testing engine
https://medium.com/tezoscommons/testing-michelson-contracts-with-pytezos-513718499e93
Contact
- Telegram chat: @baking_bad_chat
- Slack channel: #baking-bad
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98c1da62cb3c07f42bb31c5d8ce00d74b16c9f1d2aa6dacea1864296cd8987a5 |
|
MD5 | 33a0b5814b19d853fb71fc18ec7542f9 |
|
BLAKE2b-256 | 5d1119aa6f3d3cf10f1288478e51d1a4aa8b9d9915e4134df9a4cb0dd458d349 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3d0b1651ba95caa62ec2f762789f7e46d58c34822bb91e1902a083ed783a517 |
|
MD5 | ff12c34752bc37a08c4b9d835099c791 |
|
BLAKE2b-256 | f18410d870408ce653cb375dcc66d9c625f08708c2d7cdce33a09451f911252c |