We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
test fail with web3.py 5.21.0
### Version Information

* vyper Version (output of `vyper --version`): latest master (cff69d63)
* OS: macos
* Python Version (output of `python --version`): 3.9.6

### What's your issue about?

tests fail

tests/cli/vyper_json/test_parse_args_vyperjson.py::test_pretty_json - json.decoder.J...
FAILED tests/cli/vyper_json/test_parse_args_vyperjson.py::test_to_stdout - json.decoder.JSO...
FAILED tests/parser/features/test_assert.py::test_assert_reason[False] - AssertionError: as...
FAILED tests/parser/features/test_assert.py::test_assest_reason_revert

misses the string "execution reverted"


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 import os
4 import subprocess
5 
6 from setuptools import find_packages, setup
7 
8 __version__ = "0.3.0"
9 
10 extras_require = {
11     "test": [
12         "pytest>=5.4,<6.0",
13         "pytest-cov>=2.10,<3.0",
14         "pytest-instafail>=0.4,<1.0",
15         "pytest-xdist>=1.32,<2.0",
16         "eth-tester[py-evm]>=0.5.0b1,<0.6",
17         "py-evm==0.4.0a4",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+
18         "web3==5.12.3",
19         "tox>=3.15,<4.0",
20         "lark-parser==0.10.0",
21         "hypothesis[lark]>=5.37.1,<6.0",
22     ],
23     "lint": [
24         "black==21.9b0",
25         "flake8==3.9.2",
26         "flake8-bugbear==20.1.4",
27         "flake8-use-fstring==1.1",
28         "isort==5.9.3",
29         "mypy==0.910",
30     ],
31     "docs": ["recommonmark", "sphinx>=3.0,<4.0", "sphinx_rtd_theme>=0.5,<0.6"],
32     "dev": ["ipython", "pre-commit", "pyinstaller", "twine"],
33 }
34 
35 extras_require["dev"] = (
36     extras_require["test"] + extras_require["lint"] + extras_require["docs"] + extras_require["dev"]
37 )
38 
39 hash_file_rel_path = os.path.join("vyper", "vyper_git_version.txt")
40 hashfile = os.path.relpath(hash_file_rel_path)
41 
42 try:
43     commithash = subprocess.check_output("git rev-parse HEAD".split())
44     commithash_str = commithash.decode("utf-8").strip()
45     with open(hashfile, "w") as fh:
46         fh.write(f"{__version__}\n{commithash_str}")
47 except subprocess.CalledProcessError:
48     pass
49 
50 with open("README.md", "r") as f:
51     long_description = f.read()
52 
53 setup(
54     name="vyper",
55     version=__version__,
56     description="Vyper: the Pythonic Programming Language for the EVM",
57     long_description=long_description,
58     long_description_content_type="text/markdown",
59     author="Vyper Team",
60     author_email="",
61     url="https://github.com/vyperlang/vyper",
62     license="Apache License 2.0",
63     keywords="ethereum evm smart contract language",
64     include_package_data=True,
65     packages=find_packages(exclude=("tests", "docs")),
66     python_requires=">=3.7,<3.10",
67     py_modules=["vyper"],
68     install_requires=[
69         "asttokens==2.0.4",
70         "pycryptodome>=3.5.1,<4",
71         "semantic-version==2.8.5",
72         "cached-property==1.5.2 ; python_version<'3.8'",
73     ],
74     setup_requires=["pytest-runner"],
75     tests_require=extras_require["test"],
76     extras_require=extras_require,
77     entry_points={
78         "console_scripts": [
79             "vyper=vyper.cli.vyper_compile:_parse_cli_args",
80             "vyper-serve=vyper.cli.vyper_serve:_parse_cli_args",
81             "vyper-lll=vyper.cli.vyper_lll:_parse_cli_args",
82             "vyper-json=vyper.cli.vyper_json:_parse_cli_args",
83         ]
84     },
85     classifiers=[
86         "Intended Audience :: Developers",
87         "License :: OSI Approved :: Apache Software License",
88         "Programming Language :: Python :: 3.7",
89         "Programming Language :: Python :: 3.8",
90         "Programming Language :: Python :: 3.9",
91     ],
92     data_files=[("", [hash_file_rel_path])],
93 )
94
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -15,7 +15,7 @@
         "pytest-xdist>=1.32,<2.0",
         "eth-tester[py-evm]>=0.5.0b1,<0.6",
         "py-evm==0.4.0a4",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+
-        "web3==5.12.3",
+        "web3==5.21.0",
         "tox>=3.15,<4.0",
         "lark-parser==0.10.0",
         "hypothesis[lark]>=5.37.1,<6.0",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -15,7 +15,7 @@\n         \"pytest-xdist>=1.32,<2.0\",\n         \"eth-tester[py-evm]>=0.5.0b1,<0.6\",\n         \"py-evm==0.4.0a4\",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+\n-        \"web3==5.12.3\",\n+        \"web3==5.21.0\",\n         \"tox>=3.15,<4.0\",\n         \"lark-parser==0.10.0\",\n         \"hypothesis[lark]>=5.37.1,<6.0\",\n", "issue": "test fail with web3.py 5.21.0\n### Version Information\r\n\r\n* vyper Version (output of `vyper --version`): latest master (cff69d63)\r\n* OS: macos\r\n* Python Version (output of `python --version`): 3.9.6\r\n\r\n### What's your issue about?\r\n\r\ntests fail\r\n\r\ntests/cli/vyper_json/test_parse_args_vyperjson.py::test_pretty_json - json.decoder.J...\r\nFAILED tests/cli/vyper_json/test_parse_args_vyperjson.py::test_to_stdout - json.decoder.JSO...\r\nFAILED tests/parser/features/test_assert.py::test_assert_reason[False] - AssertionError: as...\r\nFAILED tests/parser/features/test_assert.py::test_assest_reason_revert\r\n\r\nmisses the string \"execution reverted\"\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport os\nimport subprocess\n\nfrom setuptools import find_packages, setup\n\n__version__ = \"0.3.0\"\n\nextras_require = {\n    \"test\": [\n        \"pytest>=5.4,<6.0\",\n        \"pytest-cov>=2.10,<3.0\",\n        \"pytest-instafail>=0.4,<1.0\",\n        \"pytest-xdist>=1.32,<2.0\",\n        \"eth-tester[py-evm]>=0.5.0b1,<0.6\",\n        \"py-evm==0.4.0a4\",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+\n        \"web3==5.12.3\",\n        \"tox>=3.15,<4.0\",\n        \"lark-parser==0.10.0\",\n        \"hypothesis[lark]>=5.37.1,<6.0\",\n    ],\n    \"lint\": [\n        \"black==21.9b0\",\n        \"flake8==3.9.2\",\n        \"flake8-bugbear==20.1.4\",\n        \"flake8-use-fstring==1.1\",\n        \"isort==5.9.3\",\n        \"mypy==0.910\",\n    ],\n    \"docs\": [\"recommonmark\", \"sphinx>=3.0,<4.0\", \"sphinx_rtd_theme>=0.5,<0.6\"],\n    \"dev\": [\"ipython\", \"pre-commit\", \"pyinstaller\", \"twine\"],\n}\n\nextras_require[\"dev\"] = (\n    extras_require[\"test\"] + extras_require[\"lint\"] + extras_require[\"docs\"] + extras_require[\"dev\"]\n)\n\nhash_file_rel_path = os.path.join(\"vyper\", \"vyper_git_version.txt\")\nhashfile = os.path.relpath(hash_file_rel_path)\n\ntry:\n    commithash = subprocess.check_output(\"git rev-parse HEAD\".split())\n    commithash_str = commithash.decode(\"utf-8\").strip()\n    with open(hashfile, \"w\") as fh:\n        fh.write(f\"{__version__}\\n{commithash_str}\")\nexcept subprocess.CalledProcessError:\n    pass\n\nwith open(\"README.md\", \"r\") as f:\n    long_description = f.read()\n\nsetup(\n    name=\"vyper\",\n    version=__version__,\n    description=\"Vyper: the Pythonic Programming Language for the EVM\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    author=\"Vyper Team\",\n    author_email=\"\",\n    url=\"https://github.com/vyperlang/vyper\",\n    license=\"Apache License 2.0\",\n    keywords=\"ethereum evm smart contract language\",\n    include_package_data=True,\n    packages=find_packages(exclude=(\"tests\", \"docs\")),\n    python_requires=\">=3.7,<3.10\",\n    py_modules=[\"vyper\"],\n    install_requires=[\n        \"asttokens==2.0.4\",\n        \"pycryptodome>=3.5.1,<4\",\n        \"semantic-version==2.8.5\",\n        \"cached-property==1.5.2 ; python_version<'3.8'\",\n    ],\n    setup_requires=[\"pytest-runner\"],\n    tests_require=extras_require[\"test\"],\n    extras_require=extras_require,\n    entry_points={\n        \"console_scripts\": [\n            \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\n            \"vyper-serve=vyper.cli.vyper_serve:_parse_cli_args\",\n            \"vyper-lll=vyper.cli.vyper_lll:_parse_cli_args\",\n            \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\n        ]\n    },\n    classifiers=[\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n    ],\n    data_files=[(\"\", [hash_file_rel_path])],\n)\n", "path": "setup.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport os\nimport subprocess\n\nfrom setuptools import find_packages, setup\n\n__version__ = \"0.3.0\"\n\nextras_require = {\n    \"test\": [\n        \"pytest>=5.4,<6.0\",\n        \"pytest-cov>=2.10,<3.0\",\n        \"pytest-instafail>=0.4,<1.0\",\n        \"pytest-xdist>=1.32,<2.0\",\n        \"eth-tester[py-evm]>=0.5.0b1,<0.6\",\n        \"py-evm==0.4.0a4\",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+\n        \"web3==5.21.0\",\n        \"tox>=3.15,<4.0\",\n        \"lark-parser==0.10.0\",\n        \"hypothesis[lark]>=5.37.1,<6.0\",\n    ],\n    \"lint\": [\n        \"black==21.9b0\",\n        \"flake8==3.9.2\",\n        \"flake8-bugbear==20.1.4\",\n        \"flake8-use-fstring==1.1\",\n        \"isort==5.9.3\",\n        \"mypy==0.910\",\n    ],\n    \"docs\": [\"recommonmark\", \"sphinx>=3.0,<4.0\", \"sphinx_rtd_theme>=0.5,<0.6\"],\n    \"dev\": [\"ipython\", \"pre-commit\", \"pyinstaller\", \"twine\"],\n}\n\nextras_require[\"dev\"] = (\n    extras_require[\"test\"] + extras_require[\"lint\"] + extras_require[\"docs\"] + extras_require[\"dev\"]\n)\n\nhash_file_rel_path = os.path.join(\"vyper\", \"vyper_git_version.txt\")\nhashfile = os.path.relpath(hash_file_rel_path)\n\ntry:\n    commithash = subprocess.check_output(\"git rev-parse HEAD\".split())\n    commithash_str = commithash.decode(\"utf-8\").strip()\n    with open(hashfile, \"w\") as fh:\n        fh.write(f\"{__version__}\\n{commithash_str}\")\nexcept subprocess.CalledProcessError:\n    pass\n\nwith open(\"README.md\", \"r\") as f:\n    long_description = f.read()\n\nsetup(\n    name=\"vyper\",\n    version=__version__,\n    description=\"Vyper: the Pythonic Programming Language for the EVM\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    author=\"Vyper Team\",\n    author_email=\"\",\n    url=\"https://github.com/vyperlang/vyper\",\n    license=\"Apache License 2.0\",\n    keywords=\"ethereum evm smart contract language\",\n    include_package_data=True,\n    packages=find_packages(exclude=(\"tests\", \"docs\")),\n    python_requires=\">=3.7,<3.10\",\n    py_modules=[\"vyper\"],\n    install_requires=[\n        \"asttokens==2.0.4\",\n        \"pycryptodome>=3.5.1,<4\",\n        \"semantic-version==2.8.5\",\n        \"cached-property==1.5.2 ; python_version<'3.8'\",\n    ],\n    setup_requires=[\"pytest-runner\"],\n    tests_require=extras_require[\"test\"],\n    extras_require=extras_require,\n    entry_points={\n        \"console_scripts\": [\n            \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\n            \"vyper-serve=vyper.cli.vyper_serve:_parse_cli_args\",\n            \"vyper-lll=vyper.cli.vyper_lll:_parse_cli_args\",\n            \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\n        ]\n    },\n    classifiers=[\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n    ],\n    data_files=[(\"\", [hash_file_rel_path])],\n)\n", "path": "setup.py"}]}