python312Packages.web3: 6.5.0 -> 7.2.0 (#373563)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
clang,
|
||||
# dependencies
|
||||
pyyaml,
|
||||
blst,
|
||||
# checkPhase dependencies
|
||||
python,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ckzg";
|
||||
version = "2.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "c-kzg-4844";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kOoodri80p5tz8RlMz6mqsZRAuXBxZm4vr+VWJEtfA0=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeBuildInputs = [ clang ];
|
||||
|
||||
dependencies = [
|
||||
pyyaml
|
||||
blst
|
||||
];
|
||||
|
||||
postPatch =
|
||||
# unvendor "blst"
|
||||
''
|
||||
substituteInPlace setup.py \
|
||||
--replace-fail '"build_ext": CustomBuild,' ""
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
cd bindings/python
|
||||
${python.interpreter} tests.py
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "ckzg" ];
|
||||
|
||||
meta = {
|
||||
description = "Minimal implementation of the Polynomial Commitments API for EIP-4844 and EIP-7594";
|
||||
homepage = "https://github.com/ethereum/c-kzg-4844";
|
||||
changelog = "https://github.com/ethereum/c-kzg-4844/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -2,62 +2,56 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
eth-hash,
|
||||
setuptools,
|
||||
# dependencies
|
||||
eth-typing,
|
||||
eth-utils,
|
||||
hypothesis,
|
||||
parsimonious,
|
||||
# nativeCheckInputs
|
||||
hypothesis,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
pytest-xdist,
|
||||
eth-hash,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-abi";
|
||||
version = "4.1.0";
|
||||
format = "setuptools";
|
||||
disabled = pythonOlder "3.7";
|
||||
version = "5.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-abi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CGAfu3Ovz2WPJOD+4W2+cOAz+wYvuIyFL333Jw66ozA=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-D3aGMx2oZFttwQ90ouwQbbRelCb2bvyQgvamKweX9Nw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "parsimonious>=0.9.0,<0.10.0" "parsimonious"
|
||||
'';
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
eth-typing
|
||||
eth-utils
|
||||
parsimonious
|
||||
];
|
||||
|
||||
# lots of: TypeError: isinstance() arg 2 must be a type or tuple of types
|
||||
doCheck = false;
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
] ++ eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
disabledTests = [
|
||||
# boolean list representation changed
|
||||
"test_get_abi_strategy_returns_certain_strategies_for_known_type_strings"
|
||||
# hypothesis.errors.Flaky
|
||||
"test_base_equals_has_expected_behavior_for_parsable_types"
|
||||
"test_has_arrlist_has_expected_behavior_for_parsable_types"
|
||||
"test_is_base_tuple_has_expected_behavior_for_parsable_types"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth_abi" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ethereum ABI utilities";
|
||||
homepage = "https://github.com/ethereum/eth-abi";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/ethereum/eth-abi/blob/v${version}/docs/release_notes.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,33 +2,42 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
bitarray,
|
||||
ckzg,
|
||||
eth-abi,
|
||||
eth-keyfile,
|
||||
eth-keys,
|
||||
eth-rlp,
|
||||
eth-utils,
|
||||
websockets,
|
||||
hexbytes,
|
||||
pythonOlder,
|
||||
rlp,
|
||||
websockets,
|
||||
# nativeCheckInputs
|
||||
hypothesis,
|
||||
pydantic,
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-account";
|
||||
version = "0.9.0";
|
||||
format = "setuptools";
|
||||
disabled = pythonOlder "3.7";
|
||||
version = "0.13.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-account";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Ps/vzJv0W1+wy1mSJaqRNNU6CoCMchReHIocB9kPrGs=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Y55WCgWJd2AaDNKbyBe9oi1soT19RdUjQWy5884Pcq8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
bitarray
|
||||
ckzg
|
||||
eth-abi
|
||||
eth-keyfile
|
||||
eth-keys
|
||||
@@ -39,15 +48,29 @@ buildPythonPackage rec {
|
||||
websockets
|
||||
];
|
||||
|
||||
# require buildinga npm project
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pydantic
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# requires local nodejs install
|
||||
"test_messages_where_all_3_sigs_match"
|
||||
"test_messages_where_eth_account_matches_ethers_but_not_metamask"
|
||||
"test_messages_where_eth_account_matches_metamask_but_not_ethers"
|
||||
# disable flaky fuzzing test
|
||||
"test_compatibility"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth_account" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Account abstraction library for web3.py";
|
||||
homepage = "https://github.com/ethereum/eth-account";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/ethereum/eth-account/blob/v${version}/docs/release_notes.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
eth-hash,
|
||||
# nativeCheckInputs
|
||||
hypothesis,
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-bloom";
|
||||
version = "3.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-bloom";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-WrBLFICPyb+1bIitHZ172A1p1VYqLR75YfJ5/IBqDr8=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ eth-hash ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
] ++ eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
pythonImportsCheck = [ "eth_bloom" ];
|
||||
|
||||
disabledTests = [
|
||||
# not testable in nix build
|
||||
"test_install_local_wheel"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Implementation of the Ethereum bloom filter";
|
||||
homepage = "https://github.com/ethereum/eth-bloom";
|
||||
changelog = "https://github.com/ethereum/eth-bloom/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -1,41 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
pythonAtLeast,
|
||||
pythonOlder,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
isPyPy,
|
||||
# nativeCheckInputs
|
||||
pytest,
|
||||
safe-pysha3,
|
||||
pytest-xdist,
|
||||
# optional dependencies
|
||||
pycryptodome,
|
||||
safe-pysha3,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-hash";
|
||||
version = "0.5.2";
|
||||
format = "setuptools";
|
||||
disabled = pythonOlder "3.5";
|
||||
version = "0.7.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-hash";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6UN+kvLjjAtkmLgUaovjZC/6n3FZtXCwyXZH7ijQObU=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-91jWZDqrd7ZZlM0D/3sDokJ26NiAQ3gdeBebTV1Lq8s=";
|
||||
};
|
||||
|
||||
nativeCheckInputs =
|
||||
[ pytest ]
|
||||
++ optional-dependencies.pycryptodome
|
||||
# eth-hash can use either safe-pysha3 or pycryptodome;
|
||||
# safe-pysha3 requires Python 3.9+ while pycryptodome does not.
|
||||
# https://github.com/ethereum/eth-hash/issues/46#issuecomment-1314029211
|
||||
++ lib.optional (pythonAtLeast "3.9") optional-dependencies.pysha3;
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs =
|
||||
[
|
||||
pytest
|
||||
pytest-xdist
|
||||
]
|
||||
++ optional-dependencies.pycryptodome
|
||||
# safe-pysha3 is not available on pypy
|
||||
++ lib.optional (!isPyPy) optional-dependencies.pysha3;
|
||||
|
||||
# Backends need to be tested separatly and can not use hook
|
||||
checkPhase =
|
||||
''
|
||||
pytest tests/backends/pycryptodome/
|
||||
runHook preCheck
|
||||
pytest tests/core tests/backends/pycryptodome
|
||||
''
|
||||
+ lib.optionalString (pythonAtLeast "3.9") ''
|
||||
pytest tests/backends/pysha3/
|
||||
+ lib.optionalString (!isPyPy) ''
|
||||
pytest tests/backends/pysha3
|
||||
''
|
||||
+ ''
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
optional-dependencies = {
|
||||
@@ -43,10 +53,11 @@ buildPythonPackage rec {
|
||||
pysha3 = [ safe-pysha3 ];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ethereum hashing function keccak256";
|
||||
homepage = "https://github.com/ethereum/eth-hash";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/ethereum/eth-hash/blob/v${version}/docs/release_notes.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,30 +3,30 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
eth-keys,
|
||||
eth-utils,
|
||||
pycryptodome,
|
||||
# nativeCheckInputs
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-keyfile";
|
||||
version = "0.8.0";
|
||||
version = "0.8.1";
|
||||
pyproject = true;
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-keyfile";
|
||||
rev = "v${version}";
|
||||
tag = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-797yhHuU9/lm96YKxl3SZ5IQAwDxDSYkLkiBdAHh0Uk=";
|
||||
hash = "sha256-HufsN3aXdQErcQmnG2PZnEm5joqpy4f8IWNm3VrzJSY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
eth-keys
|
||||
eth-utils
|
||||
pycryptodome
|
||||
@@ -36,10 +36,11 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "eth_keyfile" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tools for handling the encrypted keyfile format used to store private keys";
|
||||
homepage = "https://github.com/ethereum/eth-keyfile";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/ethereum/eth-keyfile/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
asn1tools,
|
||||
coincurve,
|
||||
eth-hash,
|
||||
# dependencies
|
||||
eth-typing,
|
||||
eth-utils,
|
||||
# nativeCheckInputs
|
||||
asn1tools,
|
||||
factory-boy,
|
||||
hypothesis,
|
||||
isPyPy,
|
||||
pyasn1,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
coincurve,
|
||||
eth-hash,
|
||||
isPyPy,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-keys";
|
||||
version = "0.5.0";
|
||||
version = "0.6.0";
|
||||
pyproject = true;
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-keys";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vyyaLCG2uIHXX0t93DmFq8/u0rZL+nsBsH2gfgjziyo=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-HyOfuzwldtqjjowW7HGdZ8RNMXNK3y2NrXUoeMlWJjs=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
eth-typing
|
||||
eth-utils
|
||||
];
|
||||
@@ -48,29 +48,17 @@ buildPythonPackage rec {
|
||||
++ lib.optional (!isPyPy) eth-hash.optional-dependencies.pysha3
|
||||
++ lib.optional isPyPy eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
disabledTests = [
|
||||
# tests are broken
|
||||
"test_compress_decompress_inversion"
|
||||
"test_public_key_generation_is_equal"
|
||||
"test_signing_is_equal"
|
||||
"test_native_to_coincurve_recover"
|
||||
"test_public_key_compression_is_equal"
|
||||
"test_public_key_decompression_is_equal"
|
||||
"test_signatures_with_high_s"
|
||||
# timing sensitive
|
||||
"test_encode_decode_pairings"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth_keys" ];
|
||||
|
||||
optional-dependencies = {
|
||||
coincurve = [ coincurve ];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Common API for Ethereum key operations";
|
||||
homepage = "https://github.com/ethereum/eth-keys";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/ethereum/eth-keys/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
eth-abi,
|
||||
eth-account,
|
||||
eth-keys,
|
||||
eth-utils,
|
||||
pydantic,
|
||||
rlp,
|
||||
semantic-version,
|
||||
# nativeCheckInputs
|
||||
py-evm,
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-tester";
|
||||
version = "0.12.0-beta.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-tester";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ox7adsqD0MPZFcxBhino8cgwYYEWrBnD+ugPQOuOO2U=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
eth-abi
|
||||
eth-account
|
||||
eth-keys
|
||||
eth-utils
|
||||
pydantic
|
||||
rlp
|
||||
semantic-version
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
py-evm
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth_tester" ];
|
||||
|
||||
meta = {
|
||||
description = "Tool suite for testing ethereum applications";
|
||||
homepage = "https://github.com/ethereum/eth-tester";
|
||||
changelog = "https://github.com/ethereum/eth-tester/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -1,40 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
pythonOlder,
|
||||
pytestCheckHook,
|
||||
typing-extensions,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
typing-extensions,
|
||||
# nativeCheckInputs
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-typing";
|
||||
version = "5.0.1";
|
||||
version = "5.1.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-typing";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-WFTx5u85Gp+jQPWS3BTk1Pky07C2fVAzwrG/c3hSRzM=";
|
||||
hash = "sha256-IOWd6WFPAYO+VZwlMilRVHtudEjHt5p8Xu4WloFB/ww=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
dependencies = [ typing-extensions ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth_typing" ];
|
||||
|
||||
meta = with lib; {
|
||||
disabledTests = [
|
||||
# side-effect: runs pip online check and is blocked by sandbox
|
||||
"test_install_local_wheel"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Common type annotations for Ethereum Python packages";
|
||||
homepage = "https://github.com/ethereum/eth-typing";
|
||||
changelog = "https://github.com/ethereum/eth-typing/blob/v${version}/docs/release_notes.rst";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ siraben ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ siraben ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
isPyPy,
|
||||
# dependencies
|
||||
eth-hash,
|
||||
eth-typing,
|
||||
cytoolz,
|
||||
hypothesis,
|
||||
isPyPy,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
toolz,
|
||||
# nativeCheckInputs
|
||||
hypothesis,
|
||||
mypy,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "eth-utils";
|
||||
version = "5.1.0";
|
||||
pyproject = true;
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "eth-utils";
|
||||
rev = "v${version}";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-uPzg1gUEsulQL2u22R/REHWx1ZtbMxvcXf6UgWqkDF4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
[
|
||||
@@ -39,8 +39,8 @@ buildPythonPackage rec {
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
mypy
|
||||
pytestCheckHook
|
||||
] ++ eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
pythonImportsCheck = [ "eth_utils" ];
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
cached-property,
|
||||
ckzg,
|
||||
eth-bloom,
|
||||
eth-keys,
|
||||
eth-typing,
|
||||
eth-utils,
|
||||
lru-dict,
|
||||
pydantic,
|
||||
py-ecc,
|
||||
rlp,
|
||||
trie,
|
||||
# nativeCheckInputs
|
||||
factory-boy,
|
||||
hypothesis,
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
eth-hash,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py-evm";
|
||||
version = "0.10.1-beta.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "py-evm";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-2BWMen/6ZcL1/SgGP0XcrTC63+LEjZO7Ogb3anhavsE=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
cached-property
|
||||
ckzg
|
||||
eth-bloom
|
||||
eth-keys
|
||||
eth-typing
|
||||
eth-utils
|
||||
lru-dict
|
||||
py-ecc
|
||||
rlp
|
||||
trie
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
factory-boy
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
] ++ eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
disabledTests = [
|
||||
# side-effect: runs pip online check and is blocked by sandbox
|
||||
"test_install_local_wheel"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# json-fixtures require fixture submodule and execution spec
|
||||
"tests/json-fixtures"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "eth" ];
|
||||
|
||||
meta = {
|
||||
description = "A Python implementation of the Ethereum Virtual Machine.";
|
||||
homepage = "https://github.com/ethereum/py-evm";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
# nativeCheckInputs
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyunormalize";
|
||||
version = "16.0.0";
|
||||
pyproject = true;
|
||||
|
||||
# No tags on GitHub
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-Lh37tKEYFUrib3BxBCalKjZLkmyRkfdkYB9ajLEnYfc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
# The pypi archive does not contain the tests.
|
||||
# NOTE: one should review this for each future update.
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "pyunormalize" ];
|
||||
|
||||
meta = {
|
||||
description = "Unicode normalization forms (NFC, NFKC, NFD, NFKD) independent of the Python core Unicode database";
|
||||
homepage = "https://github.com/mlodewijck/pyunormalize";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
# dependencies
|
||||
eth-hash,
|
||||
eth-utils,
|
||||
hexbytes,
|
||||
rlp,
|
||||
sortedcontainers,
|
||||
# nativeCheckInputs
|
||||
hypothesis,
|
||||
pytestCheckHook,
|
||||
pytest-xdist,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "trie";
|
||||
version = "3.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "py-trie";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kG/5ijckiEOfB5y1c3Yqudqnb1MDbPD25YZZM+H13Lw=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
eth-hash
|
||||
eth-utils
|
||||
hexbytes
|
||||
rlp
|
||||
sortedcontainers
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
pytest-xdist
|
||||
] ++ eth-hash.optional-dependencies.pycryptodome;
|
||||
|
||||
disabledTests = [
|
||||
# some core tests require fixture submodule and execution spec
|
||||
"test_fixtures_exist"
|
||||
"test_bin_trie_update_value"
|
||||
"test_branch_updates"
|
||||
];
|
||||
disabledTestPaths = [ "tests/core/test_iter.py" ];
|
||||
|
||||
pythonImportsCheck = [ "trie" ];
|
||||
|
||||
meta = {
|
||||
description = "Python library which implements the Ethereum Trie structure";
|
||||
homepage = "https://github.com/ethereum/py-trie";
|
||||
changelog = "https://github.com/ethereum/py-trie/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hellwolf ];
|
||||
};
|
||||
}
|
||||
@@ -2,7 +2,8 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
# dependencies
|
||||
aiohttp,
|
||||
eth-abi,
|
||||
eth-account,
|
||||
@@ -14,22 +15,32 @@
|
||||
jsonschema,
|
||||
lru-dict,
|
||||
protobuf,
|
||||
pydantic,
|
||||
requests,
|
||||
types-requests,
|
||||
websockets,
|
||||
# nativeCheckInputs
|
||||
eth-tester,
|
||||
flaky,
|
||||
hypothesis,
|
||||
py-evm,
|
||||
pytest-asyncio_0_21,
|
||||
pytestCheckHook,
|
||||
pytest-mock,
|
||||
pytest-xdist,
|
||||
pyunormalize,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "web3";
|
||||
version = "6.5.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
version = "7.6.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "web3.py";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RNWCZQjcse415SSNkHhMWckDcBJGFZnjisckF7gbYY8=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rpXSkQtqUZiCLMF2XlElbsjFjJmX+3j/NdAU2oaPU54=";
|
||||
};
|
||||
|
||||
# Note: to reflect the extra_requires in main/setup.py.
|
||||
@@ -37,7 +48,9 @@ buildPythonPackage rec {
|
||||
ipfs = [ ipfshttpclient ];
|
||||
};
|
||||
|
||||
propagatedBuildInputs =
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies =
|
||||
[
|
||||
aiohttp
|
||||
eth-abi
|
||||
@@ -52,16 +65,38 @@ buildPythonPackage rec {
|
||||
jsonschema
|
||||
lru-dict
|
||||
protobuf
|
||||
pydantic
|
||||
requests
|
||||
types-requests
|
||||
websockets
|
||||
];
|
||||
|
||||
# TODO: package eth-tester required for tests
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
eth-tester
|
||||
flaky
|
||||
hypothesis
|
||||
py-evm
|
||||
pytest-asyncio_0_21
|
||||
pytestCheckHook
|
||||
pytest-mock
|
||||
pytest-xdist
|
||||
pyunormalize
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py --replace "types-protobuf==3.19.13" "types-protobuf"
|
||||
'';
|
||||
disabledTests = [
|
||||
# side-effect: runs pip online check and is blocked by sandbox
|
||||
"test_install_local_wheel"
|
||||
# not sure why they fail
|
||||
"test_init_multiple_contracts_performance"
|
||||
"test_async_init_multiple_contracts_performance"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# requires geth library and binaries
|
||||
"tests/integration/go_ethereum"
|
||||
# requires local running beacon node
|
||||
"tests/beacon"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "web3" ];
|
||||
|
||||
|
||||
@@ -2336,6 +2336,8 @@ self: super: with self; {
|
||||
|
||||
ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
|
||||
|
||||
ckzg = callPackage ../development/python-modules/ckzg { };
|
||||
|
||||
clarabel = callPackage ../development/python-modules/clarabel { };
|
||||
|
||||
clarifai = callPackage ../development/python-modules/clarifai { };
|
||||
@@ -4264,6 +4266,8 @@ self: super: with self; {
|
||||
|
||||
eth-account = callPackage ../development/python-modules/eth-account { };
|
||||
|
||||
eth-bloom = callPackage ../development/python-modules/eth-bloom { };
|
||||
|
||||
eth-hash = callPackage ../development/python-modules/eth-hash { };
|
||||
|
||||
eth-keyfile = callPackage ../development/python-modules/eth-keyfile { };
|
||||
@@ -4272,6 +4276,8 @@ self: super: with self; {
|
||||
|
||||
eth-rlp = callPackage ../development/python-modules/eth-rlp { };
|
||||
|
||||
eth-tester = callPackage ../development/python-modules/eth-tester { };
|
||||
|
||||
eth-typing = callPackage ../development/python-modules/eth-typing { };
|
||||
|
||||
eth-utils = callPackage ../development/python-modules/eth-utils { };
|
||||
@@ -9502,6 +9508,8 @@ self: super: with self; {
|
||||
|
||||
py-eth-sig-utils = callPackage ../development/python-modules/py-eth-sig-utils { };
|
||||
|
||||
py-evm = callPackage ../development/python-modules/py-evm { };
|
||||
|
||||
py-expression-eval = callPackage ../development/python-modules/py-expression-eval { };
|
||||
|
||||
py-improv-ble-client = callPackage ../development/python-modules/py-improv-ble-client { };
|
||||
@@ -10869,6 +10877,8 @@ self: super: with self; {
|
||||
|
||||
pyunpack = callPackage ../development/python-modules/pyunpack { };
|
||||
|
||||
pyunormalize = callPackage ../development/python-modules/pyunormalize { };
|
||||
|
||||
pyutil = callPackage ../development/python-modules/pyutil { };
|
||||
|
||||
pyzbar = callPackage ../development/python-modules/pyzbar { };
|
||||
@@ -16499,6 +16509,8 @@ self: super: with self; {
|
||||
|
||||
trezor = callPackage ../development/python-modules/trezor { };
|
||||
|
||||
trie = callPackage ../development/python-modules/trie { };
|
||||
|
||||
trimesh = callPackage ../development/python-modules/trimesh { };
|
||||
|
||||
trino-python-client = callPackage ../development/python-modules/trino-python-client { };
|
||||
|
||||
Reference in New Issue
Block a user