From 907780ae642306ed582fc3092ac64c11a0b8492c Mon Sep 17 00:00:00 2001 From: Neeraj Kashyap Date: Fri, 8 Mar 2024 07:10:07 -0800 Subject: [PATCH 1/2] Added a try block around ABI loading for Foundry projects A user reported an issue loading a Foundry project: ``` Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.8/bin/inspector-facet", line 8, in sys.exit(main()) File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/inspector_facet/cli.py", line 161, in main abis = foundry_project_abis(args.project, args.build_dir) File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/inspector_facet/abi.py", line 76, in foundry_project_abis contract_abi = contract_artifact.get("abi", []) AttributeError: 'list' object has no attribute 'get' ``` In this PR, I wrap the `contract_artifact.get("abi", [])` call in a try block. This is an exploratory change. --- inspector_facet/abi.py | 8 +++++--- inspector_facet/version.txt | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/inspector_facet/abi.py b/inspector_facet/abi.py index 3ae37a3..e3ea1a4 100644 --- a/inspector_facet/abi.py +++ b/inspector_facet/abi.py @@ -73,9 +73,11 @@ def foundry_project_abis(project_dir: str, build_dirname: None) -> Dict[str, Lis with open(filepath, "r") as ifp: contract_artifact = json.load(ifp) - contract_abi = contract_artifact.get("abi", []) - - abis[contract_name] = contract_abi + try: + contract_abi = contract_artifact.get("abi", []) + abis[contract_name] = contract_abi + except: + continue return abis diff --git a/inspector_facet/version.txt b/inspector_facet/version.txt index 0d91a54..9e11b32 100644 --- a/inspector_facet/version.txt +++ b/inspector_facet/version.txt @@ -1 +1 @@ -0.3.0 +0.3.1 From d59a702829047d70b3057c07272fff76655a68ac Mon Sep 17 00:00:00 2001 From: Neeraj Kashyap Date: Fri, 8 Mar 2024 07:12:50 -0800 Subject: [PATCH 2/2] "except Exception" --- inspector_facet/abi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inspector_facet/abi.py b/inspector_facet/abi.py index e3ea1a4..6114380 100644 --- a/inspector_facet/abi.py +++ b/inspector_facet/abi.py @@ -76,7 +76,7 @@ def foundry_project_abis(project_dir: str, build_dirname: None) -> Dict[str, Lis try: contract_abi = contract_artifact.get("abi", []) abis[contract_name] = contract_abi - except: + except Exception: continue return abis