All Projects β†’ baking-bad β†’ pytezos

baking-bad / pytezos

Licence: MIT, MIT licenses found Licenses found MIT LICENSE MIT LICENSE.md
🐍 Python SDK & CLI for Tezos | Michelson REPL and testing framework

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to pytezos

objkt-swap
Hic et Nunc smart contracts. FA2 multiassets: hDAO, OBJKTs, Marketplace, SUBJKTs and Unregistry.
Stars: ✭ 67 (-27.96%)
Mutual labels:  tezos, michelson, tezos-blockchain
granary
Tezos smart contract & dapp development toolkit
Stars: ✭ 67 (-27.96%)
Mutual labels:  tezos, tezos-blockchain
tezedge
Tezos node/shell in Rust. Unfortunately dev has ceased. If you are interested in resurrecting, please contact @drchrispinnock
Stars: ✭ 147 (+58.06%)
Mutual labels:  tezos, tezos-blockchain
lamtez
An ML-inspired smart contract language, compiling to Tezos' Michelson VM
Stars: ✭ 22 (-76.34%)
Mutual labels:  tezos, michelson
ruby-to-michelson
(Secure) Ruby to Liquidity w/ ReasonML Syntax / Michelson (Source-to-Source) Cross-Compiler Cheat Sheet / White Paper
Stars: ✭ 16 (-82.8%)
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 (-65.59%)
Mutual labels:  tezos, tezos-blockchain
tezedge-specification
TLA+ specs and models for the TezEdge node's p2p overlay network, shell, and consensus
Stars: ✭ 19 (-79.57%)
Mutual labels:  tezos, tezos-blockchain
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 (-58.06%)
Mutual labels:  tezos, tezos-blockchain
tezart
Tezart helps to interact with ​Tezos blockchain.
Stars: ✭ 19 (-79.57%)
Mutual labels:  tezos, tezos-blockchain
TZComet
Contract Metadata Viewer on Tezos
Stars: ✭ 24 (-74.19%)
Mutual labels:  tezos, michelson
Tezos-Developer-Resources
Resources for Tezos Developers
Stars: ✭ 34 (-63.44%)
Mutual labels:  tezos, michelson
techelson
A test execution engine for Michelson smart contracts.
Stars: ✭ 17 (-81.72%)
Mutual labels:  tezos, michelson
InterProcessCommunication
Inter-process Communication
Stars: ✭ 11 (-88.17%)
Mutual labels:  rpc
text-engine
A browser-based text adventure game engine and sample game
Stars: ✭ 146 (+56.99%)
Mutual labels:  repl
ShenScript
Shen for JavaScript
Stars: ✭ 40 (-56.99%)
Mutual labels:  repl
hprose-as3
Hprose for ActionScript 3.0
Stars: ✭ 18 (-80.65%)
Mutual labels:  rpc
remote-lib
πŸ’« Convert your JavaScript library to a remote service.
Stars: ✭ 40 (-56.99%)
Mutual labels:  rpc
tzscan
The TzScan block explorer for Tezos
Stars: ✭ 12 (-87.1%)
Mutual labels:  tezos
JwtAuthDemo
ASP.NET Core + Angular JWT auth demo; integration tests; login, logout, refresh token, impersonation, authentication, authorization; run on Docker Compose.
Stars: ✭ 278 (+198.92%)
Mutual labels:  integration-testing
SqlInMemory
SqlInMemory is a library for creating SqlServer database on Memory instead of hard disk, at last Drops and Disposes database when you're done with it. This is useful for Integration Testing.
Stars: ✭ 24 (-74.19%)
Mutual labels:  integration-testing

PyTezos

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

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

You 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 pytezos

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 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.8+
  • Poetry
  • 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 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
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].