From 521d1411f3e13504488854f8fb9e9d760371e3b5 Mon Sep 17 00:00:00 2001
From: Mathieu <60658558+enitrat@users.noreply.github.com>
Date: Wed, 9 Oct 2024 17:51:15 +0200
Subject: [PATCH] dev: restore py-evm for debug.py (#1463)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This change is [](https://reviewable.io/reviews/kkrt-labs/kakarot/1463)
Co-authored-by: Clément Walter
---
README.md | 2 +-
docs/CONTRIBUTING.md | 3 ++-
pyproject.toml | 2 ++
uv.lock | 49 ++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 8bd2477c3..867d2b684 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ The set of Cairo programs in this repository are represented below:
## Getting started
-To contribute, please check out
+To contribute and setup your development environment, please check out
[the contribution guide](./docs/CONTRIBUTING.md).
## Build
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index ea9477d9f..7cd8c7dc8 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -34,9 +34,10 @@ libraries, e.g. `cairo-lang`.
- Install [uv](https://github.com/astral-sh/uv) to manage python dependencies
and run commands
+- Install [jq](https://jqlang.github.io/jq/) to process JSON from the CLI
- Install
[cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) to
- manage our Rust dependencies
+ manage our Rust dependencies.
- Install [docker](https://docs.docker.com/get-docker/) to build some
experimental solidity contracts that require a custom solc compiler
- Install [foundry](https://book.getfoundry.sh/getting-started/installation) to
diff --git a/pyproject.toml b/pyproject.toml
index 365ec16ab..3f0220ef1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -21,6 +21,7 @@ ef_tests = "kakarot_scripts.ef_tests.fetch:generate_tests"
[tool.uv.sources]
kakarot-scripts = { path = "./kakarot_scripts" }
ethereum = { git = "https://github.com/ethereum/execution-specs.git" }
+py-evm = { git = "https://github.com/ethereum/py-evm", rev = "f2219d6df83ede8f9574eab48cbe4bc33197066f" }
[tool.uv]
dev-dependencies = [
@@ -35,6 +36,7 @@ dev-dependencies = [
"eth-typing==3.5.2",
"eth-utils>=2.1.0",
"ethereum",
+ "py-evm",
"hypothesis==6.100.1",
"ipykernel>=6.23.1",
"isort>=5.10.1",
diff --git a/uv.lock b/uv.lock
index 006189381..7325e67db 100644
--- a/uv.lock
+++ b/uv.lock
@@ -853,6 +853,18 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/03/0b/c8e21c361b61be773e2d9a4a69ec2c72d445a1f1293e026935affe7fc7df/eth_account-0.13.4-py3-none-any.whl", hash = "sha256:a4c109e9bad3a278243fcc028b755fb72b43e25b1e6256b3f309a44f5f7d87c3", size = 581366 },
]
+[[package]]
+name = "eth-bloom"
+version = "3.0.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "eth-hash", extra = ["pycryptodome"] },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f6/33/f8c9233d7c5e94b64e3885c037d3a7f6ab199fa55ede580cf8d9b66cd724/eth_bloom-3.0.1.tar.gz", hash = "sha256:6be3dfa44a597a0bc8d974c381fb9a60bbcadfb56e88e69ab55ba538d90b3256", size = 8516 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b5/6b/c06b2c72035d24ae5ebc06b56b37a3e3da3e9a80bdfe7b78d3987f9c5013/eth_bloom-3.0.1-py3-none-any.whl", hash = "sha256:c1eb51cb9f9ec8834b691d67e73c02c4e79e22c81ae8058209971803236ffbb2", size = 5703 },
+]
+
[[package]]
name = "eth-hash"
version = "0.7.0"
@@ -1323,6 +1335,8 @@ dev = [
{ name = "openzeppelin-cairo-contracts" },
{ name = "pandas" },
{ name = "py-ecc" },
+ { name = "py-evm" },
+ { name = "pycryptodome" },
{ name = "pyperclip" },
{ name = "pysha3" },
{ name = "pytest" },
@@ -1370,6 +1384,8 @@ dev = [
{ name = "openzeppelin-cairo-contracts", specifier = ">=0.6.1" },
{ name = "pandas", specifier = ">=1.5.1" },
{ name = "py-ecc", specifier = ">=7.0.0" },
+ { name = "py-evm", git = "https://github.com/ethereum/py-evm?rev=f2219d6df83ede8f9574eab48cbe4bc33197066f" },
+ { name = "pycryptodome", specifier = ">=3.16.0" },
{ name = "pyperclip", specifier = ">=1.8.2" },
{ name = "pysha3", specifier = ">=1.0.2" },
{ name = "pytest", specifier = "==8.1.1" },
@@ -2132,6 +2148,23 @@ dependencies = [
{ name = "eth-utils" },
]
+[[package]]
+name = "py-evm"
+version = "0.10.1b2"
+source = { git = "https://github.com/ethereum/py-evm?rev=f2219d6df83ede8f9574eab48cbe4bc33197066f#f2219d6df83ede8f9574eab48cbe4bc33197066f" }
+dependencies = [
+ { name = "cached-property" },
+ { name = "ckzg" },
+ { name = "eth-bloom" },
+ { name = "eth-keys" },
+ { name = "eth-typing" },
+ { name = "eth-utils" },
+ { name = "lru-dict" },
+ { name = "py-ecc" },
+ { name = "rlp" },
+ { name = "trie" },
+]
+
[[package]]
name = "pycparser"
version = "2.22"
@@ -2984,6 +3017,22 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 },
]
+[[package]]
+name = "trie"
+version = "3.0.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "eth-hash" },
+ { name = "eth-utils" },
+ { name = "hexbytes" },
+ { name = "rlp" },
+ { name = "sortedcontainers" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ff/27/f4f27ed9eaf85deccaeebff867060f49712b744b6b9c1bfe9089cdbba0f3/trie-3.0.1.tar.gz", hash = "sha256:3f53adaa04726eb23cb786b0118e62d1f2fb6ed0a7968be964dc34aba27380ee", size = 71618 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a2/d8/9f1a52656da0578dc6592c330b19ed11c22b84d30913a5208e4ec40835b4/trie-3.0.1-py3-none-any.whl", hash = "sha256:fbe90011a28f4fc6597bc83706589c2a74c81c8b1410c5e16eebfae0e9796464", size = 38817 },
+]
+
[[package]]
name = "typeguard"
version = "2.13.3"