mirror of https://github.com/nucypher/nucypher.git
commit
b00485822b
|
@ -1,44 +1,42 @@
|
|||
abnf==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
aiohappyeyeballs==2.3.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
aiohttp==3.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
aiohappyeyeballs==2.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
aiohttp==3.10.5 ; python_version >= "3.9" and python_version < "4"
|
||||
aiosignal==1.3.1 ; python_version >= "3.9" and python_version < "4"
|
||||
annotated-types==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
ape-solidity==0.7.3 ; python_version >= "3.9" and python_version < "4"
|
||||
ape-solidity==0.8.3 ; python_version >= "3.9" and python_version < "4"
|
||||
appdirs==1.4.4 ; python_version >= "3.9" and python_version < "4"
|
||||
asttokens==2.4.1 ; python_version >= "3.9" and python_version < "4"
|
||||
async-timeout==4.0.3 ; python_version >= "3.9" and python_version < "3.11"
|
||||
atomicwrites==1.4.1 ; python_version >= "3.9" and python_version < "4" and sys_platform == "win32"
|
||||
attrs==23.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
attrs==24.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
atxm==0.5.0 ; python_version >= "3.9" and python_version < "4"
|
||||
autobahn==23.6.2 ; python_version >= "3.9" and python_version < "4"
|
||||
automat==22.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
autobahn==24.4.2 ; python_version >= "3.9" and python_version < "4"
|
||||
automat==24.8.1 ; python_version >= "3.9" and python_version < "4"
|
||||
base58==1.0.3 ; python_version >= "3.9" and python_version < "4"
|
||||
bitarray==2.9.2 ; python_version >= "3.9" and python_version < "4"
|
||||
blinker==1.8.2 ; python_version >= "3.9" and python_version < "4"
|
||||
bytestring-splitter==2.4.1 ; python_version >= "3.9" and python_version < "4"
|
||||
cached-property==1.5.2 ; python_version >= "3.9" and python_version < "4"
|
||||
certifi==2024.7.4 ; python_version >= "3.9" and python_version < "4"
|
||||
cffi==1.16.0 ; python_version >= "3.9" and python_version < "4"
|
||||
cffi==1.17.0 ; python_version >= "3.9" and python_version < "4"
|
||||
cfgv==3.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4"
|
||||
ckzg==1.0.2 ; python_version >= "3.9" and python_version < "4"
|
||||
ckzg==2.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
click==8.1.7 ; python_version >= "3.9" and python_version < "4"
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4"
|
||||
constant-sorrow==0.1.0a9 ; python_version >= "3.9" and python_version < "4"
|
||||
constantly==23.10.4 ; python_version >= "3.9" and python_version < "4"
|
||||
coverage==7.6.0 ; python_version >= "3.9" and python_version < "4"
|
||||
coverage[toml]==7.6.0 ; python_version >= "3.9" and python_version < "4"
|
||||
coverage==7.6.1 ; python_version >= "3.9" and python_version < "4"
|
||||
coverage[toml]==7.6.1 ; python_version >= "3.9" and python_version < "4"
|
||||
cryptography==43.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
cytoolz==0.12.3 ; python_version >= "3.9" and python_version < "4" and implementation_name == "cpython"
|
||||
dataclassy==0.11.1 ; python_version >= "3.9" and python_version < "4"
|
||||
dateparser==1.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
decorator==5.1.1 ; python_version >= "3.9" and python_version < "4"
|
||||
deprecated==1.2.14 ; python_version >= "3.9" and python_version < "4"
|
||||
distlib==0.3.8 ; python_version >= "3.9" and python_version < "4"
|
||||
eip712==0.2.7 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-abi==5.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-account==0.11.2 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-ape==0.7.23 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-ape==0.8.12 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-bloom==3.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-hash==0.7.0 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-hash[pycryptodome]==0.7.0 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -50,8 +48,9 @@ eth-rlp==1.0.1 ; python_version >= "3.9" and python_version < "4"
|
|||
eth-tester[py-evm]==0.11.0b2 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-typing==3.5.2 ; python_version >= "3.9" and python_version < "4"
|
||||
eth-utils==2.3.1 ; python_version >= "3.9" and python_version < "4"
|
||||
ethpm-types==0.6.14 ; python_version >= "3.9" and python_version < "4"
|
||||
evm-trace==0.1.5 ; python_version >= "3.9" and python_version < "4"
|
||||
ethpm-types==0.6.17 ; python_version >= "3.9" and python_version < "4"
|
||||
eval-type-backport==0.2.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
evm-trace==0.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
evmchains==0.0.11 ; python_version >= "3.9" and python_version < "4"
|
||||
exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11"
|
||||
executing==2.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -66,7 +65,7 @@ hyperlink==21.0.0 ; python_version >= "3.9" and python_version < "4"
|
|||
identify==2.6.0 ; python_version >= "3.9" and python_version < "4"
|
||||
idna==3.7 ; python_version >= "3.9" and python_version < "4"
|
||||
ijson==3.3.0 ; python_version >= "3.9" and python_version < "4"
|
||||
importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
importlib-metadata==8.4.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
incremental==24.7.2 ; python_version >= "3.9" and python_version < "4"
|
||||
iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
ipython==8.18.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -81,7 +80,7 @@ lru-dict==1.2.0 ; python_version >= "3.9" and python_version < "4"
|
|||
mako==1.3.5 ; python_version >= "3.9" and python_version < "4"
|
||||
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4"
|
||||
marshmallow==3.21.3 ; python_version >= "3.9" and python_version < "4"
|
||||
marshmallow==3.22.0 ; python_version >= "3.9" and python_version < "4"
|
||||
matplotlib-inline==0.1.7 ; python_version >= "3.9" and python_version < "4"
|
||||
maya==0.6.1 ; python_version >= "3.9" and python_version < "4"
|
||||
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -94,7 +93,7 @@ nodeenv==1.9.1 ; python_version >= "3.9" and python_version < "4"
|
|||
nucypher-core==0.13.0 ; python_version >= "3.9" and python_version < "4"
|
||||
numpy==1.26.4 ; python_version >= "3.9" and python_version < "4"
|
||||
packaging==23.2 ; python_version >= "3.9" and python_version < "4"
|
||||
pandas==1.5.3 ; python_version >= "3.9" and python_version < "4"
|
||||
pandas==2.2.2 ; python_version >= "3.9" and python_version < "4"
|
||||
parsimonious==0.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
parso==0.8.4 ; python_version >= "3.9" and python_version < "4"
|
||||
pendulum==3.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -105,18 +104,17 @@ ply==3.11 ; python_version >= "3.9" and python_version < "4"
|
|||
pre-commit==2.21.0 ; python_version >= "3.9" and python_version < "4"
|
||||
prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "4"
|
||||
prompt-toolkit==3.0.47 ; python_version >= "3.9" and python_version < "4"
|
||||
protobuf==5.27.2 ; python_version >= "3.9" and python_version < "4"
|
||||
protobuf==5.27.3 ; python_version >= "3.9" and python_version < "4"
|
||||
ptyprocess==0.7.0 ; python_version >= "3.9" and python_version < "4" and sys_platform != "win32"
|
||||
pure-eval==0.2.3 ; python_version >= "3.9" and python_version < "4"
|
||||
py-cid==0.3.0 ; python_version >= "3.9" and python_version < "4"
|
||||
py-ecc==7.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
py-evm==0.10.1b1 ; python_version >= "3.9" and python_version < "4"
|
||||
py-geth==4.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
py-evm==0.10.1b2 ; python_version >= "3.9" and python_version < "4"
|
||||
py-geth==5.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
py-multibase==1.0.3 ; python_version >= "3.9" and python_version < "4"
|
||||
py-multicodec==0.2.1 ; python_version >= "3.9" and python_version < "4"
|
||||
py-multihash==0.2.3 ; python_version >= "3.9" and python_version < "4"
|
||||
py-solc-x==2.0.3 ; python_version >= "3.9" and python_version < "4"
|
||||
py==1.11.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pyasn1-modules==0.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pyasn1==0.6.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pychalk==2.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -125,50 +123,48 @@ pycryptodome==3.20.0 ; python_version >= "3.9" and python_version < "4"
|
|||
pydantic-core==2.20.1 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pydantic-settings==2.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pydantic==2.8.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
pygithub==1.59.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pygments==2.18.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pyjwt[crypto]==2.8.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pynacl==1.5.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pyopenssl==24.2.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest-cov==5.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest-mock==3.14.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest-timeout==2.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest-timeout==2.3.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest-twisted==1.14.2 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest==6.2.5 ; python_version >= "3.9" and python_version < "4"
|
||||
pytest==8.3.2 ; python_version >= "3.9" and python_version < "4"
|
||||
python-baseconv==1.2.2 ; python_version >= "3.9" and python_version < "4"
|
||||
python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4"
|
||||
python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pytz==2024.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pyunormalize==15.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pywin32==306 ; python_version >= "3.9" and python_version < "4" and platform_system == "Windows"
|
||||
pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
pyyaml==6.0.2 ; python_version >= "3.9" and python_version < "4"
|
||||
referencing==0.35.1 ; python_version >= "3.9" and python_version < "4"
|
||||
regex==2024.7.24 ; python_version >= "3.9" and python_version < "4"
|
||||
requests==2.32.3 ; python_version >= "3.9" and python_version < "4"
|
||||
rich==13.7.1 ; python_version >= "3.9" and python_version < "4"
|
||||
rlp==4.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "4"
|
||||
rpds-py==0.20.0 ; python_version >= "3.9" and python_version < "4"
|
||||
safe-pysha3==1.0.4 ; python_version >= "3.9" and python_version < "4" and implementation_name == "cpython"
|
||||
semantic-version==2.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
service-identity==24.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
setuptools==72.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
setuptools==73.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
siwe==4.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
six==1.16.0 ; python_version >= "3.9" and python_version < "4"
|
||||
snaptime==0.2.4 ; python_version >= "3.9" and python_version < "4"
|
||||
sortedcontainers==2.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
sqlalchemy==2.0.31 ; python_version >= "3.9" and python_version < "4"
|
||||
sqlalchemy==2.0.32 ; python_version >= "3.9" and python_version < "4"
|
||||
stack-data==0.6.3 ; python_version >= "3.9" and python_version < "4"
|
||||
tabulate==0.9.0 ; python_version >= "3.9" and python_version < "4"
|
||||
time-machine==2.14.2 ; python_version >= "3.9" and python_version < "4"
|
||||
toml==0.10.2 ; python_version >= "3.9" and python_version < "4"
|
||||
time-machine==2.15.0 ; python_version >= "3.9" and python_version < "4"
|
||||
toml==0.10.2 ; python_version >= "3.9" and python_version < "3.11"
|
||||
tomli==2.0.1 ; python_version >= "3.9" and python_full_version <= "3.11.0a6"
|
||||
toolz==0.12.1 ; python_version >= "3.9" and python_version < "4" and (implementation_name == "pypy" or implementation_name == "cpython")
|
||||
tqdm==4.66.4 ; python_version >= "3.9" and python_version < "4"
|
||||
tqdm==4.66.5 ; python_version >= "3.9" and python_version < "4"
|
||||
traitlets==5.14.3 ; python_version >= "3.9" and python_version < "4"
|
||||
trie==3.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
twisted-iocpsupport==1.0.4 ; python_version >= "3.9" and python_version < "4" and platform_system == "Windows"
|
||||
twisted==24.3.0 ; python_version >= "3.9" and python_version < "4"
|
||||
twisted==24.7.0 ; python_version >= "3.9" and python_version < "4"
|
||||
txaio==23.1.1 ; python_version >= "3.9" and python_version < "4"
|
||||
types-requests==2.32.0.20240712 ; python_version >= "3.9" and python_version < "4"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "4"
|
||||
tzdata==2024.1 ; python_version >= "3.9" and python_version < "4"
|
||||
tzlocal==5.2 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -179,9 +175,8 @@ watchdog==3.0.0 ; python_version >= "3.9" and python_version < "4"
|
|||
wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "4"
|
||||
web3==6.20.1 ; python_version >= "3.9" and python_version < "4"
|
||||
web3[tester]==6.20.1 ; python_version >= "3.9" and python_version < "4"
|
||||
websockets==12.0 ; python_version >= "3.9" and python_version < "4"
|
||||
werkzeug==3.0.3 ; python_version >= "3.9" and python_version < "4"
|
||||
wrapt==1.16.0 ; python_version >= "3.9" and python_version < "4"
|
||||
websockets==13.0 ; python_version >= "3.9" and python_version < "4"
|
||||
werkzeug==3.0.4 ; python_version >= "3.9" and python_version < "4"
|
||||
yarl==1.9.4 ; python_version >= "3.9" and python_version < "4"
|
||||
zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
zope-interface==6.4.post2 ; python_version >= "3.9" and python_version < "4"
|
||||
zipp==3.20.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
zope-interface==7.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -31,12 +31,12 @@ twisted = "^24.2.0rc1"
|
|||
jsonpath-ng = "^1.6.1"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = '<7'
|
||||
pytest = '*'
|
||||
pytest-cov = '*'
|
||||
pytest-mock = '*'
|
||||
pytest-timeout = '*'
|
||||
pytest-twisted = '*'
|
||||
eth-ape = ">=0.7"
|
||||
eth-ape = ">=0.8"
|
||||
ape-solidity = '*'
|
||||
coverage = '^7.3.2'
|
||||
pre-commit = '^2.12.1'
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
abnf==2.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
aiohappyeyeballs==2.3.2 ; python_version >= "3.9" and python_version < "4.0"
|
||||
aiohttp==3.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
aiohappyeyeballs==2.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
aiohttp==3.10.5 ; python_version >= "3.9" and python_version < "4"
|
||||
aiosignal==1.3.1 ; python_version >= "3.9" and python_version < "4"
|
||||
annotated-types==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
appdirs==1.4.4 ; python_version >= "3.9" and python_version < "4"
|
||||
async-timeout==4.0.3 ; python_version >= "3.9" and python_version < "3.11"
|
||||
attrs==23.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
attrs==24.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
atxm==0.5.0 ; python_version >= "3.9" and python_version < "4"
|
||||
autobahn==23.6.2 ; python_version >= "3.9" and python_version < "4"
|
||||
automat==22.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
autobahn==24.4.2 ; python_version >= "3.9" and python_version < "4"
|
||||
automat==24.8.1 ; python_version >= "3.9" and python_version < "4"
|
||||
bitarray==2.9.2 ; python_version >= "3.9" and python_version < "4"
|
||||
blinker==1.8.2 ; python_version >= "3.9" and python_version < "4"
|
||||
bytestring-splitter==2.4.1 ; python_version >= "3.9" and python_version < "4"
|
||||
certifi==2024.7.4 ; python_version >= "3.9" and python_version < "4"
|
||||
cffi==1.16.0 ; python_version >= "3.9" and python_version < "4"
|
||||
cffi==1.17.0 ; python_version >= "3.9" and python_version < "4"
|
||||
charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4"
|
||||
ckzg==1.0.2 ; python_version >= "3.9" and python_version < "4"
|
||||
ckzg==2.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
click==8.1.7 ; python_version >= "3.9" and python_version < "4"
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4"
|
||||
constant-sorrow==0.1.0a9 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -39,7 +39,7 @@ hexbytes==0.3.1 ; python_version >= "3.9" and python_version < "4"
|
|||
humanize==4.10.0 ; python_version >= "3.9" and python_version < "4"
|
||||
hyperlink==21.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
idna==3.7 ; python_version >= "3.9" and python_version < "4"
|
||||
importlib-metadata==8.2.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
importlib-metadata==8.4.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
incremental==24.7.2 ; python_version >= "3.9" and python_version < "4"
|
||||
itsdangerous==2.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
jinja2==3.1.4 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -49,7 +49,7 @@ jsonschema==4.23.0 ; python_version >= "3.9" and python_version < "4"
|
|||
lru-dict==1.2.0 ; python_version >= "3.9" and python_version < "4"
|
||||
mako==1.3.5 ; python_version >= "3.9" and python_version < "4"
|
||||
markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4"
|
||||
marshmallow==3.21.3 ; python_version >= "3.9" and python_version < "4"
|
||||
marshmallow==3.22.0 ; python_version >= "3.9" and python_version < "4"
|
||||
maya==0.6.1 ; python_version >= "3.9" and python_version < "4"
|
||||
mnemonic==0.21 ; python_version >= "3.9" and python_version < "4"
|
||||
msgpack-python==0.5.6 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -60,7 +60,7 @@ parsimonious==0.10.0 ; python_version >= "3.9" and python_version < "4"
|
|||
pendulum==3.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
ply==3.11 ; python_version >= "3.9" and python_version < "4"
|
||||
prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "4"
|
||||
protobuf==5.27.2 ; python_version >= "3.9" and python_version < "4"
|
||||
protobuf==5.27.3 ; python_version >= "3.9" and python_version < "4"
|
||||
pyasn1-modules==0.4.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pyasn1==0.6.0 ; python_version >= "3.9" and python_version < "4"
|
||||
pychalk==2.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -79,18 +79,17 @@ referencing==0.35.1 ; python_version >= "3.9" and python_version < "4"
|
|||
regex==2024.7.24 ; python_version >= "3.9" and python_version < "4"
|
||||
requests==2.32.3 ; python_version >= "3.9" and python_version < "4"
|
||||
rlp==4.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
rpds-py==0.19.1 ; python_version >= "3.9" and python_version < "4"
|
||||
rpds-py==0.20.0 ; python_version >= "3.9" and python_version < "4"
|
||||
service-identity==24.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
setuptools==72.1.0 ; python_version >= "3.9" and python_version < "4"
|
||||
setuptools==73.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
siwe==4.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
||||
six==1.16.0 ; python_version >= "3.9" and python_version < "4"
|
||||
snaptime==0.2.4 ; python_version >= "3.9" and python_version < "4"
|
||||
tabulate==0.9.0 ; python_version >= "3.9" and python_version < "4"
|
||||
time-machine==2.14.2 ; python_version >= "3.9" and python_version < "4"
|
||||
time-machine==2.15.0 ; python_version >= "3.9" and python_version < "4"
|
||||
tomli==2.0.1 ; python_version >= "3.9" and python_version < "3.11"
|
||||
toolz==0.12.1 ; python_version >= "3.9" and python_version < "4" and (implementation_name == "pypy" or implementation_name == "cpython")
|
||||
twisted-iocpsupport==1.0.4 ; python_version >= "3.9" and python_version < "4" and platform_system == "Windows"
|
||||
twisted==24.3.0 ; python_version >= "3.9" and python_version < "4"
|
||||
twisted==24.7.0 ; python_version >= "3.9" and python_version < "4"
|
||||
txaio==23.1.1 ; python_version >= "3.9" and python_version < "4"
|
||||
typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "4"
|
||||
tzdata==2024.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
@ -98,8 +97,8 @@ tzlocal==5.2 ; python_version >= "3.9" and python_version < "4"
|
|||
urllib3==2.2.2 ; python_version >= "3.9" and python_version < "4"
|
||||
watchdog==3.0.0 ; python_version >= "3.9" and python_version < "4"
|
||||
web3==6.20.1 ; python_version >= "3.9" and python_version < "4"
|
||||
websockets==12.0 ; python_version >= "3.9" and python_version < "4"
|
||||
werkzeug==3.0.3 ; python_version >= "3.9" and python_version < "4"
|
||||
websockets==13.0 ; python_version >= "3.9" and python_version < "4"
|
||||
werkzeug==3.0.4 ; python_version >= "3.9" and python_version < "4"
|
||||
yarl==1.9.4 ; python_version >= "3.9" and python_version < "4"
|
||||
zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10"
|
||||
zope-interface==6.4.post2 ; python_version >= "3.9" and python_version < "4"
|
||||
zipp==3.20.0 ; python_version >= "3.9" and python_version < "3.10"
|
||||
zope-interface==7.0.1 ; python_version >= "3.9" and python_version < "4"
|
||||
|
|
|
@ -2,6 +2,7 @@ import pytest
|
|||
import pytest_twisted
|
||||
from twisted.logger import globalLogPublisher
|
||||
|
||||
from nucypher.blockchain.eth.models import Coordinator
|
||||
from nucypher.blockchain.eth.signers import InMemorySigner
|
||||
from nucypher.crypto.keypairs import RitualisticKeypair
|
||||
from nucypher.crypto.powers import RitualisticPower
|
||||
|
@ -117,11 +118,22 @@ def test_dkg_failure_with_ferveo_key_mismatch(
|
|||
|
||||
globalLogPublisher.addObserver(log_trapper)
|
||||
|
||||
print("==================== AWAITING DKG FAILURE ====================")
|
||||
while len(log_messages) == 0:
|
||||
|
||||
print(
|
||||
"==================== AWAITING DKG FAILURE (FERVEO MISMATCH) ===================="
|
||||
)
|
||||
while (
|
||||
coordinator_agent.get_ritual_status(ritual_id)
|
||||
!= Coordinator.RitualStatus.DKG_TIMEOUT
|
||||
):
|
||||
# remains in awaiting transcripts because of the one bad ursula not submitting transcript
|
||||
assert (
|
||||
coordinator_agent.get_ritual_status(ritual_id)
|
||||
== Coordinator.RitualStatus.DKG_AWAITING_TRANSCRIPTS
|
||||
)
|
||||
yield clock.advance(interval)
|
||||
yield testerchain.time_travel(seconds=1)
|
||||
yield testerchain.time_travel(
|
||||
seconds=coordinator_agent.get_timeout() // 6
|
||||
) # min. 6 rounds before timeout
|
||||
|
||||
assert (
|
||||
render_ferveo_key_mismatch_warning(
|
||||
|
@ -130,6 +142,17 @@ def test_dkg_failure_with_ferveo_key_mismatch(
|
|||
in log_messages
|
||||
)
|
||||
|
||||
for ursula in cohort:
|
||||
participant = coordinator_agent.get_participant(
|
||||
ritual_id, ursula.checksum_address, True
|
||||
)
|
||||
if ursula.checksum_address == bad_ursula.checksum_address:
|
||||
assert (
|
||||
not participant.transcript
|
||||
), "transcript not submitted due to mismatched ferveo key"
|
||||
else:
|
||||
assert participant.transcript, "transcript submitted"
|
||||
|
||||
testerchain.tx_machine.stop()
|
||||
assert not testerchain.tx_machine.running
|
||||
globalLogPublisher.removeObserver(log_trapper)
|
||||
|
|
|
@ -11,11 +11,6 @@ dependencies:
|
|||
solidity:
|
||||
version: 0.8.23
|
||||
evm_version: paris
|
||||
import_remapping:
|
||||
- "@openzeppelin/contracts=openzeppelin/v5.0.0"
|
||||
- "@openzeppelin-upgradeable/contracts=openzeppelin-upgradeable/v5.0.0"
|
||||
- "@fx-portal/contracts=fx-portal/v1.0.5"
|
||||
- "@threshold/contracts=threshold/v1.2.1"
|
||||
|
||||
- name: openzeppelin
|
||||
github: OpenZeppelin/openzeppelin-contracts
|
||||
|
@ -24,11 +19,10 @@ dependencies:
|
|||
solidity:
|
||||
version: 0.8.23
|
||||
evm_version: paris
|
||||
import_remapping:
|
||||
- "@openzeppelin/contracts=openzeppelin/v5.0.0"
|
||||
|
||||
test:
|
||||
provider:
|
||||
chain_id: 131277322940537 # ensure ape doesn't change chain id to 1337
|
||||
mnemonic: test test test test test test test test test test test junk
|
||||
number_of_accounts: 30
|
||||
balance: 1_000_000 ETH
|
||||
|
|
|
@ -7,6 +7,7 @@ import pytest_twisted
|
|||
from eth_typing import ChecksumAddress
|
||||
from nucypher_core.ferveo import FerveoVariant
|
||||
from twisted.internet.threads import deferToThread
|
||||
from twisted.logger import globalLogPublisher
|
||||
from web3.datastructures import AttributeDict
|
||||
|
||||
from nucypher.blockchain.eth.agents import CoordinatorAgent
|
||||
|
@ -16,6 +17,7 @@ from nucypher.characters.lawful import Enrico, Ursula
|
|||
from nucypher.crypto.keypairs import RitualisticKeypair
|
||||
from nucypher.crypto.powers import RitualisticPower
|
||||
from nucypher.policy.conditions.lingo import ConditionLingo, ConditionType
|
||||
from nucypher.utilities.warnings import render_ferveo_key_mismatch_warning
|
||||
from tests.constants import TESTERCHAIN_CHAIN_ID
|
||||
from tests.mock.coordinator import MockCoordinatorAgent
|
||||
from tests.mock.interfaces import MockBlockchain
|
||||
|
@ -122,7 +124,7 @@ def execute_round_2(ritual_id: int, cohort: List[Ursula]):
|
|||
|
||||
def run_test(
|
||||
mock_coordinator_agent,
|
||||
bad_cohort,
|
||||
cohort,
|
||||
alice,
|
||||
bob,
|
||||
dkg_size,
|
||||
|
@ -131,7 +133,7 @@ def run_test(
|
|||
get_random_checksum_address,
|
||||
):
|
||||
"""Tests the DKG and the encryption/decryption of a message"""
|
||||
cohort = bad_cohort[:dkg_size]
|
||||
cohort = cohort[:dkg_size]
|
||||
|
||||
# adjust threshold since we are testing with pre-computed (simple is the default)
|
||||
threshold = mock_coordinator_agent.get_threshold_for_ritual_size(dkg_size)
|
||||
|
@ -380,19 +382,16 @@ def test_ursula_ritualist_good_cohort(
|
|||
)
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason="This is not fixed yet")
|
||||
@pytest_twisted.inlineCallbacks()
|
||||
def test_ursula_ritualist_bad_cohort(
|
||||
mock_coordinator_agent,
|
||||
cohort,
|
||||
alice,
|
||||
bob,
|
||||
get_random_checksum_address,
|
||||
):
|
||||
"""Modify the first Ursula's keystore to be different"""
|
||||
|
||||
bad_ursula = cohort[0]
|
||||
old_public_key = bad_ursula.public_keys(RitualisticPower)
|
||||
onchain_public_key = bad_ursula.public_keys(RitualisticPower)
|
||||
new_keypair = RitualisticKeypair()
|
||||
new_public_key = new_keypair.pubkey
|
||||
|
||||
|
@ -401,18 +400,62 @@ def test_ursula_ritualist_bad_cohort(
|
|||
new_keypair
|
||||
)
|
||||
|
||||
assert old_public_key != new_public_key
|
||||
assert old_public_key != bad_ursula.public_keys(RitualisticPower)
|
||||
assert onchain_public_key != new_public_key
|
||||
assert onchain_public_key != bad_ursula.public_keys(RitualisticPower)
|
||||
assert new_public_key == bad_ursula.public_keys(RitualisticPower)
|
||||
print(f"BAD URSULA: {bad_ursula.checksum_address}")
|
||||
|
||||
yield from run_test(
|
||||
mock_coordinator_agent,
|
||||
cohort,
|
||||
alice,
|
||||
bob,
|
||||
2,
|
||||
3,
|
||||
FerveoVariant.Precomputed,
|
||||
get_random_checksum_address,
|
||||
ritual_id = mock_coordinator_agent.number_of_rituals()
|
||||
|
||||
"==================== INITIALIZING ===================="
|
||||
cohort_staking_provider_addresses = list(u.checksum_address for u in cohort)
|
||||
mock_coordinator_agent.initiate_ritual(
|
||||
fee_model=get_random_checksum_address(),
|
||||
providers=cohort_staking_provider_addresses,
|
||||
authority=alice.transacting_power.account,
|
||||
duration=1,
|
||||
access_controller=get_random_checksum_address(),
|
||||
transacting_power=alice.transacting_power,
|
||||
)
|
||||
|
||||
print(
|
||||
"==================== AWAITING DKG FAILURE (FERVEO MISMATCH) ===================="
|
||||
)
|
||||
|
||||
ritual = mock_coordinator_agent.get_ritual(ritual_id)
|
||||
|
||||
status = mock_coordinator_agent.get_ritual_status(ritual_id=ritual_id)
|
||||
assert status == Coordinator.RitualStatus.DKG_AWAITING_TRANSCRIPTS
|
||||
|
||||
# collect log messages
|
||||
log_messages = []
|
||||
|
||||
def log_trapper(event):
|
||||
log_messages.append(event["log_format"])
|
||||
|
||||
globalLogPublisher.addObserver(log_trapper)
|
||||
|
||||
execute_round_1(ritual_id, ritual.authority, cohort)
|
||||
|
||||
status = mock_coordinator_agent.get_ritual_status(ritual_id=ritual_id)
|
||||
assert status != Coordinator.RitualStatus.ACTIVE
|
||||
# remains in awaiting transcripts until ritual expires, since bad ursula doesn't submit their transcript
|
||||
assert status == Coordinator.RitualStatus.DKG_AWAITING_TRANSCRIPTS
|
||||
|
||||
assert (
|
||||
render_ferveo_key_mismatch_warning(
|
||||
bytes(new_public_key), bytes(onchain_public_key)
|
||||
)
|
||||
in log_messages
|
||||
)
|
||||
|
||||
for ursula in cohort:
|
||||
participant = mock_coordinator_agent.get_participant(
|
||||
ritual_id, ursula.checksum_address, True
|
||||
)
|
||||
if ursula.checksum_address == bad_ursula.checksum_address:
|
||||
assert (
|
||||
not participant.transcript
|
||||
), "transcript not submitted due to mismatched ferveo key"
|
||||
else:
|
||||
assert participant.transcript, "transcript submitted"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from functools import cached_property
|
||||
from functools import cached_property, singledispatchmethod
|
||||
from typing import List, Union
|
||||
|
||||
import maya
|
||||
|
@ -6,6 +6,7 @@ from ape.api import AccountAPI
|
|||
from ape.managers.accounts import TestAccountManager
|
||||
from eth_tester.exceptions import TransactionFailed
|
||||
from eth_typing import ChecksumAddress
|
||||
from eth_utils import to_checksum_address
|
||||
from hexbytes import HexBytes
|
||||
|
||||
from nucypher.blockchain.eth.interfaces import (
|
||||
|
@ -66,6 +67,24 @@ class ReservedTestAccountManager(TestAccountManager):
|
|||
self.__ape_accounts = test_accounts
|
||||
return test_accounts
|
||||
|
||||
@singledispatchmethod
|
||||
def __getitem__(self, account_id):
|
||||
raise NotImplementedError(f"Cannot use {type(account_id)} as account ID.")
|
||||
|
||||
@__getitem__.register
|
||||
def __getitem_int(self, account_id: int):
|
||||
account = self.accounts[account_id]
|
||||
return account
|
||||
|
||||
@__getitem__.register
|
||||
def __getitem_str(self, account_str: str):
|
||||
account_id = to_checksum_address(account_str)
|
||||
for account in self.accounts:
|
||||
if account.address == account_id:
|
||||
return account
|
||||
|
||||
raise KeyError(f"test account '{account_str}' not found")
|
||||
|
||||
@property
|
||||
def etherbase_account(self) -> ChecksumAddress:
|
||||
return self[self._ETHERBASE].address
|
||||
|
|
Loading…
Reference in New Issue