From a4b3d4d4e2c4c6e1d4a79f24b85a3ee731d21589 Mon Sep 17 00:00:00 2001 From: Ulrich Petri <ulo@ulo.pe> Date: Wed, 5 Aug 2020 10:46:48 +0200 Subject: [PATCH] Upgrade Synapse to 1.19.1 This upgrades the Synapse requirement to 1.19.1 and fixes all backwards incompatibilities that have been introduced. This is mainly related to the [alias semantics change (MSC2432)](https://github.com/matrix-org/matrix-doc/pull/2432). (cherry picked from commit 14164ecb3f0ba53de5dee51893d49258d6430827) --- raiden/network/transport/matrix/client.py | 54 +++++++---- raiden/network/transport/matrix/transport.py | 20 ++-- raiden/network/transport/matrix/utils.py | 2 +- raiden/network/transport/utils.py | 2 +- .../test_matrix_transport_assumptions.py | 8 +- raiden/tests/utils/transport.py | 93 ++++++++++--------- requirements/requirements-ci.txt | 72 +++++++------- requirements/requirements-dev.in | 2 +- requirements/requirements-dev.txt | 84 +++++++++-------- requirements/requirements.txt | 47 +++++----- 10 files changed, 210 insertions(+), 174 deletions(-) diff --git a/raiden/network/transport/matrix/client.py b/raiden/network/transport/matrix/client.py index 9a4deb1e32..d12e363599 100644 --- a/raiden/network/transport/matrix/client.py +++ b/raiden/network/transport/matrix/client.py @@ -4,7 +4,7 @@ from functools import wraps from itertools import repeat from typing import Any, Callable, Container, Dict, Iterable, Iterator, List, Optional, Tuple -from urllib.parse import quote, urlparse +from urllib.parse import quote from uuid import UUID, uuid4 import gevent @@ -54,6 +54,7 @@ def __init__(self, client: "GMatrixClient", room_id: str) -> None: super().__init__(client, room_id) self._members: Dict[str, User] = {} self.aliases: List[str] + self.canonical_alias: str def get_joined_members(self, force_resync: bool = False) -> List[User]: """ Return a list of members of this room. """ @@ -81,38 +82,39 @@ def _rmmembers(self, user_id: str) -> None: self._members.pop(user_id, None) def __repr__(self) -> str: - return f"<Room id={self.room_id!r} aliases={self.aliases!r}>" + return f"<Room id={self.room_id!r} canonical_alias={self.canonical_alias!r}>" - def update_local_aliases(self) -> bool: - """ Fetch server local aliases for the room. + def update_local_alias(self) -> bool: + """ Fetch the server local canonical alias for the room. This is an optimization over the general `update_aliases()` method which fetches the entire room state (which can be large in Raiden) and then discards all non-alias events. - Unfortunately due to a limitation in the Matrix API it's not possible to query for all - aliases of a room. Only aliases for a specific server can be fetched, see: - https://github.com/matrix-org/synapse/issues/6908 + With MSC2432[1] implemented only ``m.room.canonical_alias`` events exist. + They represent the server local canonical_alias. - Since in Raiden we always have server local aliases set, this method is sufficient for our - use case. + Since in Raiden broadcast rooms always have a server local alias set, this method is + sufficient for our use case. + + [1] https://github.com/matrix-org/matrix-doc/pull/2432 Returns: - boolean: True if the aliases changed, False if not + boolean: True if the canonical_alias changed, False if not """ - server_name = urlparse(self.client.api.base_url).netloc changed = False try: response = self.client.api.get_room_state_type( - self.room_id, "m.room.aliases", server_name + self.room_id, "m.room.canonical_alias", "" ) except MatrixRequestError: return False - if "aliases" in response: - if self.aliases != response["aliases"]: - self.aliases = response["aliases"] - changed = True + server_sent_alias = response.get("alias") + if server_sent_alias is not None and self.canonical_alias != server_sent_alias: + self.canonical_alias = server_sent_alias + changed = True + return changed @@ -227,6 +229,22 @@ def create_room( def get_presence(self, user_id: str) -> Dict[str, Any]: return self._send("GET", f"/presence/{quote(user_id)}/status") + def get_aliases(self, room_id: str) -> Dict[str, Any]: + """ + Perform GET /rooms/{room_id}/aliases. + + Requires Synapse >= 1.11.0 which implements the (as of yet) unstable MSC2432 room alias + semantics change. + """ + return self._send( + "GET", + f"/rooms/{room_id}/aliases", + api_path="/_matrix/client/unstable/org.matrix.msc2432", + ) + + def __repr__(self) -> str: + return f"<GMatrixHttpApi base_url={self.base_url}>" + class GMatrixClient(MatrixClient): """ Gevent-compliant MatrixClient subclass """ @@ -527,8 +545,8 @@ def _mkroom(self, room_id: str) -> Room: if room_id not in self.rooms: self.rooms[room_id] = Room(self, room_id) room = self.rooms[room_id] - if not room.aliases: - room.update_local_aliases() + if not room.canonical_alias: + room.update_local_alias() return room def get_user_presence(self, user_id: str) -> Optional[str]: diff --git a/raiden/network/transport/matrix/transport.py b/raiden/network/transport/matrix/transport.py index 19e319c73d..904e1af559 100644 --- a/raiden/network/transport/matrix/transport.py +++ b/raiden/network/transport/matrix/transport.py @@ -810,7 +810,10 @@ def _initialize_first_sync(self) -> None: self._set_room_id_for_address(partner_address[0], room.room_id) self.log.debug( - "Found room", room=room, aliases=room.aliases, members=room.get_joined_members() + "Found room", + room=room, + canonical_alias=room.canonical_alias, + members=room.get_joined_members(), ) def _leave_unexpected_rooms( @@ -829,7 +832,7 @@ def to_string_representation(partner: Optional[Address]) -> str: self.log.warning( "Leaving Room", reason=reason, - room_aliases=room.aliases, + canonical_alias=room.canonical_alias, room_id=room.room_id, partners=[to_string_representation(partner) for partner in partners], ) @@ -1046,7 +1049,7 @@ def _handle_invite(self, room_id: RoomID, state: dict) -> None: self.log.debug( "Joined from invite", room_id=room_id, - aliases=room.aliases, + canonical_alias=room.canonical_alias, inviting_address=to_checksum_address(peer_address), ) @@ -1057,7 +1060,7 @@ def _handle_invite(self, room_id: RoomID, state: dict) -> None: def _handle_member_join(self, room: Room) -> None: if self._is_broadcast_room(room): raise AssertionError( - f"Broadcast room events should be filtered in syncs: {room.aliases}." + f"Broadcast room events should be filtered in syncs: {room.canonical_alias}." f"Joined Broadcast Rooms: {list(self._broadcast_rooms.keys())}" f"Should be joined to: {self._config.broadcast_rooms}" ) @@ -1104,7 +1107,7 @@ def _handle_text(self, room: Room, message: MatrixMessage) -> List[Message]: if self._is_broadcast_room(room): # This must not happen. Nodes must not listen on broadcast rooms. raise RuntimeError( - f"Received message in broadcast room {room.aliases[0]}. Sending user: {user}" + f"Received message in broadcast room {room.canonical_alias}. Sending user: {user}" ) if not self._address_mgr.is_address_known(peer_address): @@ -1366,10 +1369,9 @@ def partner_joined(fetched_members: Optional[List[User]]) -> bool: return room def _is_broadcast_room(self, room: Room) -> bool: - return any( - suffix in room_alias - for suffix in self._config.broadcast_rooms - for room_alias in room.aliases + has_alias = room.canonical_alias is not None + return has_alias and any( + suffix in room.canonical_alias for suffix in self._config.broadcast_rooms ) def _user_presence_changed(self, user: User, _presence: UserPresence) -> None: diff --git a/raiden/network/transport/matrix/utils.py b/raiden/network/transport/matrix/utils.py index 7945e86d89..28d58b7193 100644 --- a/raiden/network/transport/matrix/utils.py +++ b/raiden/network/transport/matrix/utils.py @@ -648,7 +648,7 @@ def first_login(client: GMatrixClient, signer: Signer, username: str, cap_str: s # Disabling sync because login is done before the transport is fully # initialized, i.e. the inventory rooms don't have the callbacks installed. - client.login(username, password, sync=False) + client.login(username, password, sync=False, device_id="raiden") # Because this is the first login, the display name has to be set, this # prevents the impersonation metioned above. subsequent calls will reuse diff --git a/raiden/network/transport/utils.py b/raiden/network/transport/utils.py index 84777978df..fe5548b081 100644 --- a/raiden/network/transport/utils.py +++ b/raiden/network/transport/utils.py @@ -1,4 +1,4 @@ -from raiden.utils.typing import Iterator +from typing import Iterator def timeout_exponential_backoff(retries: int, timeout: float, maximum: float) -> Iterator[float]: diff --git a/raiden/tests/integration/network/transport/test_matrix_transport_assumptions.py b/raiden/tests/integration/network/transport/test_matrix_transport_assumptions.py index b692ffa1ea..50b51bdda3 100644 --- a/raiden/tests/integration/network/transport/test_matrix_transport_assumptions.py +++ b/raiden/tests/integration/network/transport/test_matrix_transport_assumptions.py @@ -170,8 +170,8 @@ def test_assumption_user_goes_offline_if_sync_is_not_called_within_35s(local_mat assert len(tracker3.address_presence) == 0, msg_no_sync room: Room = client1.create_room("test", is_public=True) - client2.join_room(room.aliases[0]) - client3.join_room(room.aliases[0]) + client2.join_room(room.canonical_alias) + client3.join_room(room.canonical_alias) client1.blocking_sync(timeout_ms=SHORT_TIMEOUT_MS, latency_ms=SHORT_TIMEOUT_MS) client2.blocking_sync(timeout_ms=SHORT_TIMEOUT_MS, latency_ms=SHORT_TIMEOUT_MS) @@ -224,7 +224,7 @@ def test_assumption_user_is_online_while_sync_is_blocking(local_matrix_servers): client2.add_presence_listener(tracker2.presence_listener) room: Room = client1.create_room("test", is_public=True) - client2.join_room(room.aliases[0]) + client2.join_room(room.canonical_alias) client2.blocking_sync(timeout_ms=SHORT_TIMEOUT_MS, latency_ms=SHORT_TIMEOUT_MS) client1.blocking_sync(timeout_ms=SHORT_TIMEOUT_MS, latency_ms=SHORT_TIMEOUT_MS) @@ -312,7 +312,7 @@ def test_assumption_cannot_override_room_alias(local_matrix_servers): for local_server in local_matrix_servers[1:]: client = new_client(ignore_messages, ignore_member_join, local_server) assert public_room.room_id not in client.rooms - client.join_room(public_room.aliases[0]) + client.join_room(public_room.canonical_alias) assert public_room.room_id in client.rooms alias_on_current_server = f"#{room_alias_prefix}:{local_server.netloc}" diff --git a/raiden/tests/utils/transport.py b/raiden/tests/utils/transport.py index 92e7a87c34..61b1857015 100644 --- a/raiden/tests/utils/transport.py +++ b/raiden/tests/utils/transport.py @@ -1,3 +1,4 @@ +import json import logging import os import re @@ -6,7 +7,7 @@ from collections import defaultdict from contextlib import ExitStack, contextmanager from datetime import datetime -from itertools import chain +from json.decoder import JSONDecodeError from pathlib import Path from subprocess import DEVNULL, STDOUT from tempfile import mkdtemp @@ -20,7 +21,6 @@ from requests.packages.urllib3.exceptions import InsecureRequestWarning from structlog import get_logger from synapse.handlers.auth import AuthHandler -from twisted.internet import defer from raiden.constants import Environment from raiden.messages.abstract import Message @@ -31,7 +31,8 @@ from raiden.transfer.identifiers import QueueIdentifier from raiden.utils.http import EXECUTOR_IO, HTTPExecutor from raiden.utils.signer import recover -from raiden.utils.typing import Iterable, Port, Signature +from raiden.utils.typing import Iterable, Port +from raiden_contracts.utils.type_aliases import Signature log = get_logger(__name__) @@ -94,22 +95,15 @@ def setup_broadcast_room(servers: List["ParsedURL"], broadcast_room_name: str) - client = new_client(ignore_messages, ignore_member_join, server) # A user must join the room to create the room in the federated server - room = client.join_room(room.aliases[0]) + room = client.join_room(room.canonical_alias) - # Since #5892 `join_room()` only populates server-local aliases but we need all here - room.update_aliases() server_name = server.netloc alias = f"#{broadcast_room_name}:{server_name}" msg = "Setting up the room alias must not fail, otherwise the test can not run." assert room.add_room_alias(alias), msg - room_state = client.api.get_room_state(room.room_id) - all_aliases = chain.from_iterable( - event["content"]["aliases"] - for event in room_state - if event["type"] == "m.room.aliases" - ) + all_aliases = client.api.get_aliases(room.room_id).get("aliases", []) msg = "The new alias must be added, otherwise the Raiden node won't be able to find it." assert alias in all_aliases, msg @@ -145,59 +139,68 @@ def __getattr__(self, item): class AdminUserAuthProvider: __version__ = "0.1" - def __init__(self, config, account_handler): + def __init__(self, config, account_handler) -> None: # type: ignore self.account_handler = account_handler self.log = logging.getLogger(__name__) - self.credentials = config["admin_credentials"] + if "credentials_file" in config: + credentials_file = Path(config["credentials_file"]) + if not credentials_file.exists(): + raise AssertionError(f"Credentials file '{credentials_file}' is missing.") + try: + self.credentials = json.loads(credentials_file.read_text()) + except (JSONDecodeError, UnicodeDecodeError, OSError) as ex: + raise AssertionError( + f"Could not read credentials file '{credentials_file}': {ex}" + ) from ex + elif "admin_credentials" in config: + self.credentials = config["admin_credentials"] + else: + raise AssertionError( + "Either 'credentials_file' or 'admin_credentials' must be specified in " + "auth provider config." + ) msg = "Keys 'username' and 'password' expected in credentials." assert "username" in self.credentials, msg assert "password" in self.credentials, msg - @defer.inlineCallbacks - def check_password(self, user_id: str, password: str): + async def check_password(self, user_id: str, password: str) -> bool: if not password: self.log.error("No password provided, user=%r", user_id) - defer.returnValue(False) + return False username = user_id.partition(":")[0].strip("@") if username == self.credentials["username"] and password == self.credentials["password"]: self.log.info("Logging in well known admin user") - user_exists = yield self.account_handler.check_user_exists(user_id) + user_exists = await self.account_handler.check_user_exists(user_id) if not user_exists: self.log.info("First well known admin user login, registering: user=%r", user_id) - user_id = yield self.account_handler._hs.get_registration_handler().register_user( + await self.account_handler._hs.get_registration_handler().register_user( localpart=username, admin=True ) - _, access_token = yield self.account_handler.register_device(user_id) - yield user_id, access_token - defer.returnValue(True) - - self.log.error("Unknown user '%s', ignoring.", user_id) - defer.returnValue(False) + return True + return False @staticmethod - def parse_config(config): + def parse_config(config: Any) -> Any: return config -# Used from within synapse during tests class EthAuthProvider: __version__ = "0.1" _user_re = re.compile(r"^@(0x[0-9a-f]{40}):(.+)$") _password_re = re.compile(r"^0x[0-9a-f]{130}$") - def __init__(self, config, account_handler): + def __init__(self, config, account_handler) -> None: # type: ignore self.account_handler = account_handler self.config = config self.hs_hostname = self.account_handler._hs.hostname self.log = logging.getLogger(__name__) - @defer.inlineCallbacks - def check_password(self, user_id, password): + async def check_password(self, user_id: str, password: str) -> bool: if not password: self.log.error("no password provided, user=%r", user_id) - defer.returnValue(False) + return False if not self._password_re.match(password): self.log.error( @@ -205,7 +208,7 @@ def check_password(self, user_id, password): "lowercase, 65-bytes hash. user=%r", user_id, ) - defer.returnValue(False) + return False signature = Signature(unhexlify(password[2:])) @@ -216,7 +219,7 @@ def check_password(self, user_id, password): "lowercase address. user=%r", user_id, ) - defer.returnValue(False) + return False user_addr_hex = user_match.group(1) user_addr = unhexlify(user_addr_hex[2:]) @@ -226,19 +229,20 @@ def check_password(self, user_id, password): self.log.error( "invalid account password/signature. user=%r, signer=%r", user_id, rec_addr ) - defer.returnValue(False) + return False localpart = user_id.split(":", 1)[0][1:] self.log.info("eth login! valid signature. user=%r", user_id) - if not (yield self.account_handler.check_user_exists(user_id)): - self.log.info("first user login, registering: user=%r", user_id) - yield self.account_handler.register(localpart=localpart) + if not (await self.account_handler.check_user_exists(user_id)): + self.log.info("First login, creating new user: user=%r", user_id) + registered_user_id = await self.account_handler.register_user(localpart=localpart) + await self.account_handler.register_device(registered_user_id, device_id="raiden") - defer.returnValue(True) + return True @staticmethod - def parse_config(config): + def parse_config(config: Any) -> Any: return config @@ -248,10 +252,11 @@ class NoTLSFederationMonkeyPatchProvider: This is used by the integration tests to avoid the need for tls certificates. It's implemented as an auth provider since that's a handy way to inject code into the - synapse process. + Synapse process. - It works by replacing ``synapse.crypto.context_factory.ClientTLSOptionsFactory`` with an - object that returns ``None`` when instantiated. + It works by replacing ``synapse.crypto.context_factory.FederationPolicyForHTTPS`` with an + object that returns ``None`` when instantiated which causes a non-TLS socket to be used + inside the Synapse federation machinery. """ __version__ = "0.1" @@ -267,7 +272,7 @@ def __init__( # pylint: disable=unused-argument ) -> None: pass - def check_password( # pylint: disable=unused-argument,no-self-use + async def check_password( # pylint: disable=unused-argument,no-self-use self, user_id: str, password: str ) -> bool: return False @@ -276,7 +281,7 @@ def check_password( # pylint: disable=unused-argument,no-self-use def parse_config(config: Dict[str, Any]) -> Dict[str, Any]: from synapse.crypto import context_factory - context_factory.ClientTLSOptionsFactory = NoTLSFederationMonkeyPatchProvider.NoTLSFactory + context_factory.FederationPolicyForHTTPS = NoTLSFederationMonkeyPatchProvider.NoTLSFactory return config diff --git a/requirements/requirements-ci.txt b/requirements/requirements-ci.txt index cf04088422..eff8948890 100644 --- a/requirements/requirements-ci.txt +++ b/requirements/requirements-ci.txt @@ -4,16 +4,20 @@ # # 'requirements/deps compile' (for details see requirements/README) # +aioice==0.6.18 # via -r requirements-dev.txt, aiortc +aiortc==0.9.28 # via -r requirements-dev.txt alabaster==0.7.12 # via -r requirements-dev.txt, sphinx altgraph==0.16.1 # via macholib, pyinstaller aniso8601==7.0.0 # via -r requirements-dev.txt, flask-restful apipkg==1.5 # via -r requirements-dev.txt, execnet appdirs==1.4.3 # via -r requirements-dev.txt, black +appnope==0.1.0 # via -r requirements-dev.txt, ipython asn1crypto==1.3.0 # via -r requirements-dev.txt, coincurve astroid==2.4.2 # via -r requirements-dev.txt, pylint astunparse==1.6.2 # via -r requirements-dev.txt, sphinxcontrib-httpexample attrs==19.3.0 # via -r requirements-dev.txt, automat, black, flake8-bugbear, hypothesis, jsonschema, matrix-synapse, pytest, service-identity, treq, twisted automat==0.7.0 # via -r requirements-dev.txt, twisted +av==8.0.2 # via -r requirements-dev.txt, aiortc babel==2.7.0 # via -r requirements-dev.txt, sphinx backcall==0.1.0 # via -r requirements-dev.txt, ipython base58==2.0.0 # via -r requirements-dev.txt, multiaddr @@ -23,29 +27,29 @@ black==19.10b0 # via -r requirements-dev.txt bleach==3.1.4 # via -r requirements-dev.txt, matrix-synapse, readme-renderer bump2version==1.0.0 # via -r requirements-dev.txt cachetools==4.1.1 # via -r requirements-dev.txt -canonicaljson==1.1.4 # via -r requirements-dev.txt, matrix-synapse, signedjson +canonicaljson==1.4.0 # via -r requirements-dev.txt, matrix-synapse, signedjson certifi==2019.3.9 # via -r requirements-dev.txt, requests -cffi==1.12.3 # via -r requirements-dev.txt, bcrypt, coincurve, cryptography, pynacl +cffi==1.12.3 # via -r requirements-dev.txt, aiortc, bcrypt, coincurve, cryptography, pylibsrtp, pynacl chardet==3.0.4 # via -r requirements-dev.txt, requests click==7.0 # via -r requirements-dev.txt, black, flask, pip-tools, raiden-contracts coincurve==13.0.0 # via -r requirements-dev.txt, raiden-contracts colorama==0.4.3 # via -r requirements-dev.txt colour==0.1.5 # via -r requirements-dev.txt constantly==15.1.0 # via -r requirements-dev.txt, twisted -coverage==5.2 # via -r requirements-dev.txt -cryptography==2.8 # via -r requirements-dev.txt, pyopenssl, service-identity +coverage==5.3 # via -r requirements-dev.txt +crc32c==2.0 # via -r requirements-dev.txt, aiortc +cryptography==2.9.2 # via -r requirements-dev.txt, aiortc, pyopenssl, service-identity cytoolz==0.10.1 # via -r requirements-dev.txt, eth-keyfile, eth-utils -daemonize==2.5.0 # via -r requirements-dev.txt, matrix-synapse decorator==4.4.0 # via -r requirements-dev.txt, ipython, networkx, traitlets docutils==0.14 # via -r requirements-dev.txt, readme-renderer, sphinx, sphinxcontrib-httpexample eth-abi==2.1.0 # via -r requirements-dev.txt, eth-account, raiden-contracts, web3 -eth-account==0.5.2 # via -r requirements-dev.txt, web3 +eth-account==0.5.3 # via -r requirements-dev.txt, web3 eth-hash[pycryptodome]==0.2.0 # via -r requirements-dev.txt, eth-utils, web3 eth-keyfile==0.5.1 # via -r requirements-dev.txt, eth-account eth-keys==0.3.3 # via -r requirements-dev.txt, eth-account, eth-keyfile eth-rlp==0.1.2 # via -r requirements-dev.txt, eth-account eth-typing==2.2.1 # via -r requirements-dev.txt, eth-abi, eth-keys, eth-utils, raiden-contracts, web3 -eth-utils==1.9.0 # via -r requirements-dev.txt, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 +eth-utils==1.9.5 # via -r requirements-dev.txt, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 execnet==1.6.0 # via -r requirements-dev.txt, pytest-xdist fancycompleter==0.8 # via -r requirements-dev.txt, pdbpp filelock==3.0.12 # via -r requirements-dev.txt @@ -54,7 +58,7 @@ flake8-comprehensions==3.2.3 # via -r requirements-dev.txt flake8-tuple==0.4.1 # via -r requirements-dev.txt flake8==3.8.3 # via -r requirements-dev.txt, flake8-bugbear, flake8-comprehensions, flake8-tuple flaky==3.7.0 # via -r requirements-dev.txt -flask-cors==3.0.8 # via -r requirements-dev.txt +flask-cors==3.0.9 # via -r requirements-dev.txt flask-restful==0.3.8 # via -r requirements-dev.txt flask==1.1.2 # via -r requirements-dev.txt, flask-cors, flask-restful frozendict==1.2 # via -r requirements-dev.txt, canonicaljson, matrix-synapse @@ -65,29 +69,30 @@ grequests==0.6.0 # via -r requirements-dev.txt guppy3==3.0.10.post1 # via -r requirements-dev.txt hexbytes==0.2.0 # via -r requirements-dev.txt, eth-account, eth-rlp, web3 hyperlink==19.0.0 # via -r requirements-dev.txt, twisted -hypothesis==5.19.2 # via -r requirements-dev.txt +hypothesis==5.35.2 # via -r requirements-dev.txt idna==2.8 # via -r requirements-dev.txt, hyperlink, matrix-synapse, requests, twisted imagesize==1.1.0 # via -r requirements-dev.txt, sphinx -importlib-metadata==1.6.1 # via -r requirements-dev.txt, pluggy +importlib-metadata==1.7.0 # via -r requirements-dev.txt, flake8, flake8-comprehensions, jsonschema, pluggy, pytest incremental==17.5.0 # via -r requirements-dev.txt, treq, twisted -ipfshttpclient==0.4.12 # via -r requirements-dev.txt, web3 +iniconfig==1.0.1 # via -r requirements-dev.txt, pytest +ipfshttpclient==0.6.0.post1 # via -r requirements-dev.txt, web3 ipython-genutils==0.2.0 # via -r requirements-dev.txt, traitlets -ipython==7.16.1 # via -r requirements-dev.txt -isort==4.3.21 # via -r requirements-dev.txt, pylint +ipython==7.18.1 # via -r requirements-dev.txt +isort==5.5.3 # via -r requirements-dev.txt, pylint itsdangerous==1.1.0 # via -r requirements-dev.txt, flask jedi==0.17.0 # via -r requirements-dev.txt, ipython jinja2==2.10.1 # via -r requirements-dev.txt, flask, matrix-synapse, sphinx jsonschema==3.2.0 # via -r requirements-dev.txt, matrix-synapse, web3 lazy-object-proxy==1.4.1 # via -r requirements-dev.txt, astroid lru-dict==1.1.6 # via -r requirements-dev.txt, web3 -macholib==1.14 # via -r requirements-ci.in +macholib==1.14 # via -r requirements-ci.in, pyinstaller markupsafe==1.1.1 # via -r requirements-dev.txt, jinja2 marshmallow-dataclass==6.0.0 # via -r requirements-dev.txt marshmallow-enum==1.5.1 # via -r requirements-dev.txt marshmallow-polyfield==5.9 # via -r requirements-dev.txt -marshmallow==3.7.0 # via -r requirements-dev.txt, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield +marshmallow==3.8.0 # via -r requirements-dev.txt, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield matrix-client==0.3.2 # via -r requirements-dev.txt -matrix-synapse==1.10.1 # via -r requirements-dev.txt +matrix-synapse==1.19.1 # via -r requirements-dev.txt mccabe==0.6.1 # via -r requirements-dev.txt, flake8, pylint mirakuru==2.1.2 # via -r requirements-dev.txt more-itertools==7.0.0 # via -r requirements-dev.txt, pytest @@ -96,8 +101,8 @@ multiaddr==0.0.9 # via -r requirements-dev.txt, ipfshttpclient mypy-extensions==0.4.3 # via -r requirements-dev.txt, mypy, raiden-contracts, typing-inspect mypy==0.782 # via -r requirements-dev.txt netaddr==0.7.19 # via -r requirements-dev.txt, matrix-synapse, multiaddr -netifaces==0.10.9 # via -r requirements-dev.txt -networkx==2.4 # via -r requirements-dev.txt +netifaces==0.10.9 # via -r requirements-dev.txt, aioice +networkx==2.5 # via -r requirements-dev.txt objgraph==3.4.1 # via -r requirements-dev.txt packaging==19.0 # via -r requirements-dev.txt, pytest, sphinx parsimonious==0.8.1 # via -r requirements-dev.txt, eth-abi @@ -108,27 +113,30 @@ pexpect==4.8.0 # via -r requirements-dev.txt, ipython phonenumbers==8.10.13 # via -r requirements-dev.txt, matrix-synapse pickleshare==0.7.5 # via -r requirements-dev.txt, ipython pillow==6.2.0 # via -r requirements-dev.txt, matrix-synapse -pip-tools==5.2.1 # via -r requirements-dev.txt +pip-tools==5.3.1 # via -r requirements-dev.txt pluggy==0.12.0 # via -r requirements-dev.txt, pytest prometheus-client==0.3.1 # via -r requirements-dev.txt, matrix-synapse prompt-toolkit==3.0.5 # via -r requirements-dev.txt, ipython protobuf==3.11.3 # via -r requirements-dev.txt, web3 -psutil==5.7.0 # via -r requirements-dev.txt, mirakuru +psutil==5.7.2 # via -r requirements-dev.txt, mirakuru ptyprocess==0.6.0 # via -r requirements-dev.txt, pexpect py-ecc==1.4.7 # via -r requirements-dev.txt, raiden-contracts py-solc==3.2.0 # via -r requirements-dev.txt, raiden-contracts py-spy==0.3.3 # via -r requirements-dev.txt -py==1.8.0 # via -r requirements-dev.txt, pytest +py==1.9.0 # via -r requirements-dev.txt, pytest pyasn1-modules==0.2.5 # via -r requirements-dev.txt, matrix-synapse, service-identity pyasn1==0.4.5 # via -r requirements-dev.txt, matrix-synapse, pyasn1-modules, service-identity pycodestyle==2.6.0 # via -r requirements-dev.txt, flake8 pycparser==2.19 # via -r requirements-dev.txt, cffi pycryptodome==3.8.2 # via -r requirements-dev.txt, eth-hash, eth-keyfile +pyee==7.0.2 # via -r requirements-dev.txt, aiortc pyflakes==2.2.0 # via -r requirements-dev.txt, flake8 pygments==2.6.1 # via -r requirements-dev.txt, ipython, pdbpp, readme-renderer, sphinx pyhamcrest==1.9.0 # via -r requirements-dev.txt, twisted -pyinstaller==3.6 # via -r requirements-ci.in -pylint==2.5.3 # via -r requirements-dev.txt +pyinstaller-hooks-contrib==2020.7 # via pyinstaller +pyinstaller==4.0 # via -r requirements-ci.in +pylibsrtp==0.6.6 # via -r requirements-dev.txt, aiortc +pylint==2.6.0 # via -r requirements-dev.txt pymacaroons==0.13.0 # via -r requirements-dev.txt, matrix-synapse pynacl==1.3.0 # via -r requirements-dev.txt, matrix-synapse, pymacaroons, signedjson pyopenssl==19.0.0 # via -r requirements-dev.txt, matrix-synapse, twisted @@ -138,8 +146,8 @@ pysha3==1.0.2 # via -r requirements-dev.txt pytest-forked==1.1.3 # via -r requirements-dev.txt, pytest-xdist pytest-random==0.2 # via -r requirements-dev.txt pytest-select==0.1.2 # via -r requirements-dev.txt -pytest-xdist==1.33.0 # via -r requirements-dev.txt -pytest==5.4.3 # via -r requirements-dev.txt, pytest-forked, pytest-random, pytest-select, pytest-xdist +pytest-xdist==2.1.0 # via -r requirements-dev.txt +pytest==6.0.2 # via -r requirements-dev.txt, pytest-forked, pytest-random, pytest-select, pytest-xdist python-dateutil==2.8.0 # via s3cmd python-magic==0.4.15 # via s3cmd pytz==2019.1 # via -r requirements-dev.txt, babel, flask-restful @@ -158,11 +166,11 @@ semver==2.8.1 # via -r requirements-dev.txt, raiden-contracts service-identity==18.1.0 # via -r requirements-dev.txt, matrix-synapse, twisted signedjson==1.1 # via -r requirements-dev.txt, matrix-synapse simplejson==3.16.0 # via -r requirements-dev.txt, canonicaljson -six==1.12.0 # via -r requirements-dev.txt, astroid, astunparse, automat, bcrypt, bleach, canonicaljson, cryptography, flake8-tuple, flask-cors, flask-restful, ipfshttpclient, jsonschema, matrix-synapse, multiaddr, packaging, parsimonious, pip-tools, protobuf, pyhamcrest, pymacaroons, pynacl, pyopenssl, pyrsistent, pytest-xdist, python-dateutil, readme-renderer, responses, sphinxcontrib-httpdomain, structlog, traitlets, treq +six==1.12.0 # via -r requirements-dev.txt, astroid, astunparse, automat, bcrypt, bleach, cryptography, flake8-tuple, flask-cors, flask-restful, jsonschema, multiaddr, packaging, parsimonious, pip-tools, protobuf, pyhamcrest, pymacaroons, pynacl, pyopenssl, pyrsistent, python-dateutil, readme-renderer, responses, sphinxcontrib-httpdomain, structlog, traitlets, treq snowballstemmer==1.2.1 # via -r requirements-dev.txt, sphinx sortedcontainers==2.1.0 # via -r requirements-dev.txt, hypothesis, matrix-synapse sphinx-rtd-theme==0.5.0 # via -r requirements-dev.txt -sphinx==3.1.2 # via -r requirements-dev.txt, releases, sphinx-rtd-theme, sphinxcontrib-httpdomain, sphinxcontrib-httpexample, sphinxcontrib-images +sphinx==3.2.1 # via -r requirements-dev.txt, releases, sphinx-rtd-theme, sphinxcontrib-httpdomain, sphinxcontrib-httpexample, sphinxcontrib-images sphinxcontrib-applehelp==1.0.2 # via -r requirements-dev.txt, sphinx sphinxcontrib-devhelp==1.0.2 # via -r requirements-dev.txt, sphinx sphinxcontrib-htmlhelp==1.0.3 # via -r requirements-dev.txt, sphinx @@ -173,19 +181,19 @@ sphinxcontrib-jsmath==1.0.1 # via -r requirements-dev.txt, sphinx sphinxcontrib-qthelp==1.0.3 # via -r requirements-dev.txt, sphinx sphinxcontrib-serializinghtml==1.1.4 # via -r requirements-dev.txt, sphinx structlog==20.1.0 # via -r requirements-dev.txt -toml==0.10.1 # via -r requirements-dev.txt, black, pylint +toml==0.10.1 # via -r requirements-dev.txt, black, pylint, pytest toolz==0.9.0 # via -r requirements-dev.txt, cytoolz traitlets==4.3.2 # via -r requirements-dev.txt, ipython treq==18.6.0 # via -r requirements-dev.txt, matrix-synapse twisted[tls]==20.3.0 # via -r requirements-dev.txt, matrix-synapse, treq -typed-ast==1.4.0 # via -r requirements-dev.txt, black, mypy -typing-extensions==3.7.4.2 # via -r requirements-dev.txt, matrix-synapse, mypy, signedjson +typed-ast==1.4.0 # via -r requirements-dev.txt, astroid, black, mypy +typing-extensions==3.7.4.3 # via -r requirements-dev.txt, matrix-synapse, mypy, signedjson, web3 typing-inspect==0.4.0 # via -r requirements-dev.txt, marshmallow-dataclass unpaddedbase64==1.1.0 # via -r requirements-dev.txt, matrix-synapse, signedjson urllib3==1.25.3 # via -r requirements-dev.txt, requests varint==1.0.2 # via -r requirements-dev.txt, multiaddr -wcwidth==0.1.9 # via -r requirements-dev.txt, prompt-toolkit, pytest -web3==5.11.1 # via -r requirements-dev.txt, raiden-contracts +wcwidth==0.1.9 # via -r requirements-dev.txt, prompt-toolkit +web3==5.12.1 # via -r requirements-dev.txt, raiden-contracts webencodings==0.5.1 # via -r requirements-dev.txt, bleach websockets==8.1 # via -r requirements-dev.txt, web3 werkzeug==1.0.1 # via -r requirements-dev.txt, flask diff --git a/requirements/requirements-dev.in b/requirements/requirements-dev.in index 6c00f96eb2..c72297b046 100644 --- a/requirements/requirements-dev.in +++ b/requirements/requirements-dev.in @@ -43,4 +43,4 @@ coverage bump2version # Test support -matrix-synapse<1.11 +matrix-synapse==1.19.1 diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index b0e772ae0a..743ebeba0f 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -4,6 +4,8 @@ # # 'requirements/deps compile' (for details see requirements/README) # +aioice==0.6.18 # via -r requirements.txt, aiortc +aiortc==0.9.28 # via -r requirements.txt alabaster==0.7.12 # via -r requirements-docs.txt, sphinx aniso8601==7.0.0 # via -r requirements.txt, flask-restful apipkg==1.5 # via execnet @@ -13,6 +15,7 @@ astroid==2.4.2 # via pylint astunparse==1.6.2 # via -r requirements-docs.txt, sphinxcontrib-httpexample attrs==19.3.0 # via -r requirements.txt, automat, black, flake8-bugbear, hypothesis, jsonschema, matrix-synapse, pytest, service-identity, treq, twisted automat==0.7.0 # via twisted +av==8.0.2 # via -r requirements.txt, aiortc babel==2.7.0 # via -r requirements-docs.txt, sphinx backcall==0.1.0 # via -r requirements.txt, ipython base58==2.0.0 # via -r requirements.txt, multiaddr @@ -22,29 +25,29 @@ black==19.10b0 # via -r requirements-dev.in bleach==3.1.4 # via matrix-synapse, readme-renderer bump2version==1.0.0 # via -r requirements-dev.in cachetools==4.1.1 # via -r requirements.txt -canonicaljson==1.1.4 # via matrix-synapse, signedjson +canonicaljson==1.4.0 # via matrix-synapse, signedjson certifi==2019.3.9 # via -r requirements-docs.txt, -r requirements.txt, requests -cffi==1.12.3 # via -r requirements.txt, bcrypt, coincurve, cryptography, pynacl +cffi==1.12.3 # via -r requirements.txt, aiortc, bcrypt, coincurve, cryptography, pylibsrtp, pynacl chardet==3.0.4 # via -r requirements-docs.txt, -r requirements.txt, requests click==7.0 # via -r requirements.txt, black, flask, pip-tools, raiden-contracts coincurve==13.0.0 # via -r requirements.txt, raiden-contracts colorama==0.4.3 # via -r requirements.txt colour==0.1.5 # via -r requirements-dev.in constantly==15.1.0 # via twisted -coverage==5.2 # via -r requirements-dev.in -cryptography==2.8 # via pyopenssl, service-identity +coverage==5.3 # via -r requirements-dev.in +crc32c==2.0 # via -r requirements.txt, aiortc +cryptography==2.9.2 # via -r requirements.txt, aiortc, pyopenssl, service-identity cytoolz==0.10.1 # via -r requirements.txt, eth-keyfile, eth-utils -daemonize==2.5.0 # via matrix-synapse decorator==4.4.0 # via -r requirements.txt, ipython, networkx, traitlets docutils==0.14 # via -r requirements-docs.txt, readme-renderer, sphinx, sphinxcontrib-httpexample eth-abi==2.1.0 # via -r requirements.txt, eth-account, raiden-contracts, web3 -eth-account==0.5.2 # via -r requirements.txt, web3 +eth-account==0.5.3 # via -r requirements.txt, web3 eth-hash[pycryptodome]==0.2.0 # via -r requirements.txt, eth-utils, web3 eth-keyfile==0.5.1 # via -r requirements.txt, eth-account eth-keys==0.3.3 # via -r requirements.txt, eth-account, eth-keyfile eth-rlp==0.1.2 # via -r requirements.txt, eth-account eth-typing==2.2.1 # via -r requirements.txt, eth-abi, eth-keys, eth-utils, raiden-contracts, web3 -eth-utils==1.9.0 # via -r requirements.txt, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 +eth-utils==1.9.5 # via -r requirements.txt, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 execnet==1.6.0 # via pytest-xdist fancycompleter==0.8 # via pdbpp filelock==3.0.12 # via -r requirements.txt @@ -53,7 +56,7 @@ flake8-comprehensions==3.2.3 # via -r requirements-dev.in flake8-tuple==0.4.1 # via -r requirements-dev.in flake8==3.8.3 # via -r requirements-dev.in, flake8-bugbear, flake8-comprehensions, flake8-tuple flaky==3.7.0 # via -r requirements-dev.in -flask-cors==3.0.8 # via -r requirements.txt +flask-cors==3.0.9 # via -r requirements.txt flask-restful==0.3.8 # via -r requirements.txt flask==1.1.2 # via -r requirements.txt, flask-cors, flask-restful frozendict==1.2 # via canonicaljson, matrix-synapse @@ -64,17 +67,18 @@ grequests==0.6.0 # via -r requirements-dev.in guppy3==3.0.10.post1 # via -r requirements.txt hexbytes==0.2.0 # via -r requirements.txt, eth-account, eth-rlp, web3 hyperlink==19.0.0 # via twisted -hypothesis==5.19.2 # via -r requirements-dev.in +hypothesis==5.35.2 # via -r requirements-dev.in idna==2.8 # via -r requirements-docs.txt, -r requirements.txt, hyperlink, matrix-synapse, requests, twisted imagesize==1.1.0 # via -r requirements-docs.txt, sphinx -importlib-metadata==1.6.1 # via pluggy +importlib-metadata==1.7.0 # via -r requirements.txt, flake8, flake8-comprehensions, jsonschema, pluggy, pytest incremental==17.5.0 # via treq, twisted -ipfshttpclient==0.4.12 # via -r requirements.txt, web3 -ipython-genutils==0.2.0 # via -r requirements.txt, traitlets -ipython==7.16.1 # via -r requirements.txt -isort==4.3.21 # via -r requirements-dev.in, pylint +iniconfig==1.0.1 # via pytest +ipfshttpclient==0.6.0.post1 # via -r requirements.txt, web3 +ipython-genutils==0.2.0 # via traitlets +ipython==7.18.1 # via -r requirements-dev.in +isort==5.5.3 # via -r requirements-dev.in, pylint itsdangerous==1.1.0 # via -r requirements.txt, flask -jedi==0.17.0 # via -r requirements.txt, ipython +jedi==0.17.0 # via ipython jinja2==2.10.1 # via -r requirements-docs.txt, -r requirements.txt, flask, matrix-synapse, sphinx jsonschema==3.2.0 # via -r requirements.txt, matrix-synapse, web3 lazy-object-proxy==1.4.1 # via astroid @@ -83,9 +87,9 @@ markupsafe==1.1.1 # via -r requirements-docs.txt, -r requirements.txt, j marshmallow-dataclass==6.0.0 # via -r requirements.txt marshmallow-enum==1.5.1 # via -r requirements.txt marshmallow-polyfield==5.9 # via -r requirements.txt -marshmallow==3.7.0 # via -r requirements.txt, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield +marshmallow==3.8.0 # via -r requirements.txt, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield matrix-client==0.3.2 # via -r requirements.txt -matrix-synapse==1.10.1 # via -r requirements-dev.in +matrix-synapse==1.19.1 # via -r requirements-dev.in mccabe==0.6.1 # via flake8, pylint mirakuru==2.1.2 # via -r requirements.txt more-itertools==7.0.0 # via pytest @@ -94,38 +98,40 @@ multiaddr==0.0.9 # via -r requirements.txt, ipfshttpclient mypy-extensions==0.4.3 # via -r requirements.txt, mypy, raiden-contracts, typing-inspect mypy==0.782 # via -r requirements-dev.in netaddr==0.7.19 # via -r requirements.txt, matrix-synapse, multiaddr -netifaces==0.10.9 # via -r requirements.txt -networkx==2.4 # via -r requirements.txt +netifaces==0.10.9 # via -r requirements.txt, aioice +networkx==2.5 # via -r requirements.txt objgraph==3.4.1 # via -r requirements.txt packaging==19.0 # via -r requirements-docs.txt, pytest, sphinx parsimonious==0.8.1 # via -r requirements.txt, eth-abi -parso==0.7.0 # via -r requirements.txt, jedi +parso==0.7.0 # via jedi pathspec==0.8.0 # via black pdbpp==0.10.2 # via -r requirements-dev.in -pexpect==4.8.0 # via -r requirements-dev.in, -r requirements.txt, ipython +pexpect==4.8.0 # via -r requirements-dev.in, ipython phonenumbers==8.10.13 # via matrix-synapse -pickleshare==0.7.5 # via -r requirements.txt, ipython +pickleshare==0.7.5 # via ipython pillow==6.2.0 # via matrix-synapse -pip-tools==5.2.1 # via -r requirements-dev.in +pip-tools==5.3.1 # via -r requirements-dev.in pluggy==0.12.0 # via pytest prometheus-client==0.3.1 # via matrix-synapse -prompt-toolkit==3.0.5 # via -r requirements.txt, ipython +prompt-toolkit==3.0.5 # via ipython protobuf==3.11.3 # via -r requirements.txt, web3 -psutil==5.7.0 # via -r requirements.txt, mirakuru -ptyprocess==0.6.0 # via -r requirements.txt, pexpect +psutil==5.7.2 # via -r requirements.txt, mirakuru +ptyprocess==0.6.0 # via pexpect py-ecc==1.4.7 # via -r requirements.txt, raiden-contracts py-solc==3.2.0 # via -r requirements.txt, raiden-contracts py-spy==0.3.3 # via -r requirements-dev.in -py==1.8.0 # via pytest +py==1.9.0 # via pytest pyasn1-modules==0.2.5 # via matrix-synapse, service-identity pyasn1==0.4.5 # via matrix-synapse, pyasn1-modules, service-identity pycodestyle==2.6.0 # via flake8 pycparser==2.19 # via -r requirements.txt, cffi pycryptodome==3.8.2 # via -r requirements.txt, eth-hash, eth-keyfile +pyee==7.0.2 # via -r requirements.txt, aiortc pyflakes==2.2.0 # via flake8 pygments==2.6.1 # via -r requirements-docs.txt, -r requirements.txt, ipython, pdbpp, readme-renderer, sphinx pyhamcrest==1.9.0 # via twisted -pylint==2.5.3 # via -r requirements-dev.in +pylibsrtp==0.6.6 # via -r requirements.txt, aiortc +pylint==2.6.0 # via -r requirements-dev.in pymacaroons==0.13.0 # via matrix-synapse pynacl==1.3.0 # via matrix-synapse, pymacaroons, signedjson pyopenssl==19.0.0 # via matrix-synapse, twisted @@ -135,8 +141,8 @@ pysha3==1.0.2 # via -r requirements.txt pytest-forked==1.1.3 # via pytest-xdist pytest-random==0.2 # via -r requirements-dev.in pytest-select==0.1.2 # via -r requirements-dev.in -pytest-xdist==1.33.0 # via -r requirements-dev.in -pytest==5.4.3 # via -r requirements-dev.in, pytest-forked, pytest-random, pytest-select, pytest-xdist +pytest-xdist==2.1.0 # via -r requirements-dev.in +pytest==6.0.2 # via -r requirements-dev.in, pytest-forked, pytest-random, pytest-select, pytest-xdist pytz==2019.1 # via -r requirements-docs.txt, -r requirements.txt, babel, flask-restful pyyaml==5.1.1 # via matrix-synapse raiden-contracts==0.37.1 # via -r requirements.txt @@ -152,11 +158,11 @@ semver==2.8.1 # via -r requirements.txt, raiden-contracts service-identity==18.1.0 # via matrix-synapse, twisted signedjson==1.1 # via matrix-synapse simplejson==3.16.0 # via canonicaljson -six==1.12.0 # via -r requirements-docs.txt, -r requirements.txt, astroid, astunparse, automat, bcrypt, bleach, canonicaljson, cryptography, flake8-tuple, flask-cors, flask-restful, ipfshttpclient, jsonschema, matrix-synapse, multiaddr, packaging, parsimonious, pip-tools, protobuf, pyhamcrest, pymacaroons, pynacl, pyopenssl, pyrsistent, pytest-xdist, readme-renderer, responses, sphinxcontrib-httpdomain, structlog, traitlets, treq +six==1.12.0 # via -r requirements-docs.txt, -r requirements.txt, astroid, astunparse, automat, bcrypt, bleach, cryptography, flake8-tuple, flask-cors, flask-restful, jsonschema, multiaddr, packaging, parsimonious, pip-tools, protobuf, pyhamcrest, pymacaroons, pynacl, pyopenssl, pyrsistent, readme-renderer, responses, sphinxcontrib-httpdomain, structlog, traitlets, treq snowballstemmer==1.2.1 # via -r requirements-docs.txt, sphinx sortedcontainers==2.1.0 # via hypothesis, matrix-synapse sphinx-rtd-theme==0.5.0 # via -r requirements-docs.txt -sphinx==3.1.2 # via -r requirements-docs.txt, releases, sphinx-rtd-theme, sphinxcontrib-httpdomain, sphinxcontrib-httpexample, sphinxcontrib-images +sphinx==3.2.1 # via -r requirements-docs.txt, releases, sphinx-rtd-theme, sphinxcontrib-httpdomain, sphinxcontrib-httpexample, sphinxcontrib-images sphinxcontrib-applehelp==1.0.2 # via -r requirements-docs.txt, sphinx sphinxcontrib-devhelp==1.0.2 # via -r requirements-docs.txt, sphinx sphinxcontrib-htmlhelp==1.0.3 # via -r requirements-docs.txt, sphinx @@ -167,26 +173,26 @@ sphinxcontrib-jsmath==1.0.1 # via -r requirements-docs.txt, sphinx sphinxcontrib-qthelp==1.0.3 # via -r requirements-docs.txt, sphinx sphinxcontrib-serializinghtml==1.1.4 # via -r requirements-docs.txt, sphinx structlog==20.1.0 # via -r requirements.txt -toml==0.10.1 # via -r requirements.txt, black, pylint +toml==0.10.1 # via -r requirements.txt, black, pylint, pytest toolz==0.9.0 # via -r requirements.txt, cytoolz -traitlets==4.3.2 # via -r requirements.txt, ipython +traitlets==4.3.2 # via ipython treq==18.6.0 # via matrix-synapse twisted[tls]==20.3.0 # via matrix-synapse, treq -typed-ast==1.4.0 # via black, mypy -typing-extensions==3.7.4.2 # via -r requirements.txt, matrix-synapse, mypy, signedjson +typed-ast==1.4.0 # via astroid, black, mypy +typing-extensions==3.7.4.3 # via -r requirements.txt, matrix-synapse, mypy, signedjson, web3 typing-inspect==0.4.0 # via -r requirements.txt, marshmallow-dataclass unpaddedbase64==1.1.0 # via matrix-synapse, signedjson urllib3==1.25.3 # via -r requirements-docs.txt, -r requirements.txt, requests varint==1.0.2 # via -r requirements.txt, multiaddr -wcwidth==0.1.9 # via -r requirements.txt, prompt-toolkit, pytest -web3==5.11.1 # via -r requirements.txt, raiden-contracts +wcwidth==0.1.9 # via prompt-toolkit +web3==5.12.1 # via -r requirements.txt, raiden-contracts webencodings==0.5.1 # via bleach websockets==8.1 # via -r requirements.txt, web3 werkzeug==1.0.1 # via -r requirements.txt, flask wheel==0.33.4 # via -r requirements-docs.txt, astunparse wmctrl==0.3 # via pdbpp wrapt==1.11.1 # via astroid -zipp==3.1.0 # via importlib-metadata +zipp==3.1.0 # via -r requirements.txt, importlib-metadata zope.event==4.4 # via -r requirements.txt, gevent zope.interface==5.1.0 # via -r requirements.txt, gevent, twisted diff --git a/requirements/requirements.txt b/requirements/requirements.txt index fa8b4b2477..c586e3f6e8 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -4,31 +4,35 @@ # # 'requirements/deps compile' (for details see requirements/README) # +aioice==0.6.18 # via aiortc +aiortc==0.9.28 # via -r requirements.in aniso8601==7.0.0 # via flask-restful asn1crypto==1.3.0 # via coincurve attrs==19.3.0 # via jsonschema -backcall==0.1.0 # via ipython +av==8.0.2 # via aiortc base58==2.0.0 # via multiaddr bitarray==1.2.1 # via eth-account cachetools==4.1.1 # via -r requirements.in certifi==2019.3.9 # via requests -cffi==1.12.3 # via coincurve +cffi==1.12.3 # via aiortc, coincurve, cryptography, pylibsrtp chardet==3.0.4 # via requests click==7.0 # via flask, raiden-contracts coincurve==13.0.0 # via -r requirements.in, raiden-contracts colorama==0.4.3 # via -r requirements.in +crc32c==2.0 # via aiortc +cryptography==2.9.2 # via aiortc cytoolz==0.10.1 # via eth-keyfile, eth-utils -decorator==4.4.0 # via ipython, networkx, traitlets +decorator==4.4.0 # via networkx eth-abi==2.1.0 # via eth-account, raiden-contracts, web3 -eth-account==0.5.2 # via web3 +eth-account==0.5.3 # via web3 eth-hash[pycryptodome]==0.2.0 # via eth-utils, web3 eth-keyfile==0.5.1 # via -r requirements.in, eth-account eth-keys==0.3.3 # via -r requirements.in, eth-account, eth-keyfile eth-rlp==0.1.2 # via eth-account eth-typing==2.2.1 # via eth-abi, eth-keys, eth-utils, raiden-contracts, web3 -eth-utils==1.9.0 # via -r requirements.in, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 +eth-utils==1.9.5 # via -r requirements.in, eth-abi, eth-account, eth-keyfile, eth-keys, eth-rlp, hexbytes, raiden-contracts, rlp, web3 filelock==3.0.12 # via -r requirements.in -flask-cors==3.0.8 # via -r requirements.in +flask-cors==3.0.9 # via -r requirements.in flask-restful==0.3.8 # via -r requirements.in flask==1.1.2 # via -r requirements.in, flask-cors, flask-restful gevent==20.6.2 # via -r requirements.in @@ -37,11 +41,9 @@ greenlet==0.4.16 # via gevent guppy3==3.0.10.post1 # via -r requirements.in hexbytes==0.2.0 # via eth-account, eth-rlp, web3 idna==2.8 # via requests -ipfshttpclient==0.4.12 # via web3 -ipython-genutils==0.2.0 # via traitlets -ipython==7.16.1 # via -r requirements.in +importlib-metadata==1.7.0 # via jsonschema +ipfshttpclient==0.6.0.post1 # via web3 itsdangerous==1.1.0 # via flask -jedi==0.17.0 # via ipython jinja2==2.10.1 # via flask jsonschema==3.2.0 # via web3 lru-dict==1.1.6 # via web3 @@ -49,28 +51,24 @@ markupsafe==1.1.1 # via jinja2 marshmallow-dataclass==6.0.0 # via -r requirements.in marshmallow-enum==1.5.1 # via -r requirements.in marshmallow-polyfield==5.9 # via -r requirements.in -marshmallow==3.7.0 # via -r requirements.in, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield +marshmallow==3.8.0 # via -r requirements.in, marshmallow-dataclass, marshmallow-enum, marshmallow-polyfield matrix-client==0.3.2 # via -r requirements.in mirakuru==2.1.2 # via -r requirements.in multiaddr==0.0.9 # via ipfshttpclient mypy-extensions==0.4.3 # via raiden-contracts, typing-inspect netaddr==0.7.19 # via multiaddr -netifaces==0.10.9 # via -r requirements.in -networkx==2.4 # via -r requirements.in +netifaces==0.10.9 # via -r requirements.in, aioice +networkx==2.5 # via -r requirements.in objgraph==3.4.1 # via -r requirements.in parsimonious==0.8.1 # via eth-abi -parso==0.7.0 # via jedi -pexpect==4.8.0 # via ipython -pickleshare==0.7.5 # via ipython -prompt-toolkit==3.0.5 # via ipython protobuf==3.11.3 # via web3 -psutil==5.7.0 # via -r requirements.in, mirakuru -ptyprocess==0.6.0 # via pexpect +psutil==5.7.2 # via -r requirements.in, mirakuru py-ecc==1.4.7 # via raiden-contracts py-solc==3.2.0 # via raiden-contracts pycparser==2.19 # via cffi pycryptodome==3.8.2 # via eth-hash, eth-keyfile -pygments==2.6.1 # via ipython +pyee==7.0.2 # via aiortc +pylibsrtp==0.6.6 # via aiortc pyrsistent==0.15.7 # via jsonschema pysha3==1.0.2 # via -r requirements.in pytz==2019.1 # via flask-restful @@ -80,19 +78,18 @@ requests==2.24.0 # via -r requirements.in, ipfshttpclient, matrix-clien rlp==1.1.0 # via eth-account, eth-rlp, raiden-contracts semantic-version==2.6.0 # via py-solc semver==2.8.1 # via raiden-contracts -six==1.12.0 # via flask-cors, flask-restful, ipfshttpclient, jsonschema, multiaddr, parsimonious, protobuf, pyrsistent, structlog, traitlets +six==1.12.0 # via cryptography, flask-cors, flask-restful, jsonschema, multiaddr, parsimonious, protobuf, pyrsistent, structlog structlog==20.1.0 # via -r requirements.in toml==0.10.1 # via -r requirements.in toolz==0.9.0 # via cytoolz -traitlets==4.3.2 # via ipython -typing-extensions==3.7.4.2 # via -r requirements.in +typing-extensions==3.7.4.3 # via -r requirements.in, web3 typing-inspect==0.4.0 # via marshmallow-dataclass urllib3==1.25.3 # via requests varint==1.0.2 # via multiaddr -wcwidth==0.1.9 # via prompt-toolkit -web3==5.11.1 # via -r requirements.in, raiden-contracts +web3==5.12.1 # via -r requirements.in, raiden-contracts websockets==8.1 # via web3 werkzeug==1.0.1 # via flask +zipp==3.1.0 # via importlib-metadata zope.event==4.4 # via gevent zope.interface==5.1.0 # via gevent