From 59e6ddf9ca97f37a7f9cf5a9992521498cafcae1 Mon Sep 17 00:00:00 2001 From: niv vaknin Date: Thu, 2 Jan 2025 16:47:40 +0200 Subject: [PATCH] Extract all info for execution --- Quorum/apis/governance/aave_governance.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Quorum/apis/governance/aave_governance.py b/Quorum/apis/governance/aave_governance.py index 7efdd47..c8c805c 100644 --- a/Quorum/apis/governance/aave_governance.py +++ b/Quorum/apis/governance/aave_governance.py @@ -64,6 +64,11 @@ class BGDProposalData(BaseModel): events: List[EventData] = Field(default_factory=list) +class PayloadAddresses(BaseModel): + chain: str + addresses: List[str] + + # ============================== # Mapping for Chains # ============================== @@ -119,3 +124,14 @@ def get_payload_addresses(self, chain_id: str, controller: str, payload_id: int) payload_data = resp.json() # We only need the 'target' field from each action return [a['target'] for a in payload_data['payload']['actions']] + + def get_all_payload_addresses(self, proposal_id: int) -> List[PayloadAddresses]: + """ + Retrieves a list of payload addresses for each chain in the proposal. + """ + data = self.get_proposal_data(proposal_id) + results = [] + for p in data.proposal.payloads: + addresses = self.get_payload_addresses(p.chain, p.payloads_controller, p.payload_id) + results.append(PayloadAddresses(chain=p.chain, addresses=addresses)) + return results