Skip to content

Commit

Permalink
first try
Browse files Browse the repository at this point in the history
  • Loading branch information
liav-certora committed Feb 18, 2025
1 parent b01e329 commit 8ab6832
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 3 deletions.
6 changes: 5 additions & 1 deletion src/quorum/apis/governance/aave_governance.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from quorum.apis.governance.data_models import BGDProposalData, PayloadAddresses
from quorum.utils.chain_enum import Chain
from quorum.utils.exceptions import ProposalNotFoundException

BASE_BGD_CACHE_REPO = "https://raw.githubusercontent.com/bgd-labs/v3-governance-cache/refs/heads/main/cache"
PROPOSALS_URL = (
Expand Down Expand Up @@ -45,7 +46,10 @@ def get_proposal_data(self, proposal_id: int) -> BGDProposalData:
"""
proposal_data_link = f"{PROPOSALS_URL}/{proposal_id}.json"
resp = self.session.get(proposal_data_link)
resp.raise_for_status()
try:
resp.raise_for_status()
except requests.HTTPError as e:
raise ProposalNotFoundException(proposal_id, "Aave", e.response) from e

raw_json = resp.json()
# Parse into our data model
Expand Down
4 changes: 3 additions & 1 deletion src/quorum/auto_report/aave_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
SEATBELT_PAYLOADS_URL = f"{BASE_SEATBELT_REPO}/payloads"


class ProposalInfoNotFoundException(Exception): ...


class ChainInfo(BaseModel):
name: str
block_explorer_link: str
Expand Down Expand Up @@ -65,7 +68,6 @@ def get_aave_tags(proposal_id: int) -> dict[str, Any]:
"""
api = AaveGovernanceAPI()
bgd_data: BGDProposalData = api.get_proposal_data(proposal_id)

# Safely unwrap fields (some might be None).
ipfs_data: IPFSData = bgd_data.ipfs or IPFSData()
proposal_data: ProposalData = bgd_data.proposal or ProposalData()
Expand Down
7 changes: 6 additions & 1 deletion src/quorum/entry_points/implementations/create_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import quorum.auto_report.aave_tags as aave_tags
import quorum.utils.pretty_printer as pp
from quorum.utils.exceptions import ProposalNotFoundException


def run_create_report(args: argparse.Namespace):
Expand Down Expand Up @@ -40,7 +41,11 @@ def run_create_report(args: argparse.Namespace):
pp.pprint(
f"Retrieving tag information for proposal {args.proposal_id}", pp.Colors.INFO
)
tags = aave_tags.get_aave_tags(args.proposal_id)
try:
tags = aave_tags.get_aave_tags(args.proposal_id)
except ProposalNotFoundException as e:
pp.pprint(e, pp.Colors.FAILURE)
return
pp.pprint("Tag information retrieved", pp.Colors.INFO)

report = template.render(tags)
Expand Down
17 changes: 17 additions & 0 deletions src/quorum/utils/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import requests


class ProposalNotFoundException(Exception):
def __init__(
self, proposal_id: int, project_name: str, response: requests.Response
):
super().__init__()
self.proposal_id = proposal_id
self.project_name = project_name
self.response = response

def __str__(self):
return (
f"Proposal id {self.proposal_id} for {self.project_name} could not be found "
f"at url {self.response.url} (error code {self.response.status_code})"
)

0 comments on commit 8ab6832

Please sign in to comment.