Metadata-Version: 2.4
Name: chia_puzzles_py
Version: 0.20.3
Summary: A collection of the currently deployed ChiaLisp puzzles.
License-File: LICENSE
Author: Matt Howard
Author-email: matt@chia.net
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: clvm-rs (>=0.2.3,<0.3.0)
Requires-Dist: clvm-tools-rs (>=0.1.45,<0.2.0)
Requires-Dist: pytest (>=8.3.3,<9.0.0)
Description-Content-Type: text/markdown

# Chia Puzzles

This is a collection of the standard Chia puzzles.
These are the puzzles which are deployed on chain and therefore cannot change.

This repository tracks the source code, the compiled hex, and a hash of the compiled hex to ensure continuity.

All puzzles are kept in the `puzzles` folder as both a `.clsp` and `.clsp.hex` file.

The Python and Rust bindings are created by running `generate_chialisp_constants.py`

## Adding Bindings for a New Puzzle

1. Add the `.clsp` and `.clsp.hex` files into the `programs` folder.
2. Add the puzzle name, path, and shatree hash into the list in `generate_chialisp_constants.py`.
3. Run `generate_chialisp_constants.py`.
4. Commit your changes, including to the outputted `programs.py` and `programs.rs`.

# Testing

This project is managed with `poetry` for Python and `cargo` for Rust.

To run the Python tests:

```
python -m venv venv

pip install poetry
. ./venv/bin/activate
poetry install
pytest chia_puzzles_py/tests
```

If you're on Windows activate the venv with `. venv\Scripts\activate` instead

To run the Rust tests:

```
cargo test --all
```

