Skip to content

Commit 7977d43

Browse files
authored
fix(Client): wrong propose and delegate endpoints (#79)
* fix(Client): allow `**kwargs` pass-through for GET requests * fix(Client): use v2 API for delegates * fix(Client): updated URLs for new API
1 parent f9daa06 commit 7977d43

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

ape_safe/client/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def _all_transactions(self) -> Iterator[SafeApiTxData]:
134134
url = data.get("next")
135135

136136
def get_confirmations(self, safe_tx_hash: SafeTxID) -> Iterator[SafeTxConfirmation]:
137-
response = self._get(f"/multisig-transactions/{safe_tx_hash}/raw")
137+
response = self._get(f"/multisig-transactions/{safe_tx_hash}", api_version="v2")
138138
data = response.json()
139139
yield from map(SafeTxConfirmation.model_validate, data.get("confirmations", []))
140140

@@ -169,8 +169,8 @@ def post_transaction(
169169
# Signature handled above.
170170
post_dict.pop("signatures")
171171

172-
url = f"/transactions/{tx_data.safe}/propose"
173-
response = self._post(url, json=post_dict)
172+
url = f"/safes/{tx_data.safe}/multisig-transactions"
173+
response = self._post(url, json=post_dict, api_version="v2")
174174
return response
175175

176176
def post_signatures(
@@ -185,7 +185,7 @@ def post_signatures(
185185
safe_tx_hash = safe_tx_or_hash
186186

187187
safe_tx_hash = cast(SafeTxID, to_hex(HexBytes(safe_tx_hash)))
188-
url = f"/transactions/{safe_tx_hash}/confirmations"
188+
url = f"/multisig-transactions/{safe_tx_hash}/confirmations"
189189
signature = to_hex(
190190
HexBytes(b"".join([x.encode_rsv() for x in order_by_signer(signatures)]))
191191
)
@@ -216,7 +216,7 @@ def get_delegates(self) -> dict["AddressType", list["AddressType"]]:
216216
delegates: dict[AddressType, list[AddressType]] = {}
217217

218218
while url:
219-
response = self._get(url, params={"safe": self.address})
219+
response = self._get(url, params={"safe": self.address}, api_version="v2")
220220
data = response.json()
221221

222222
for delegate_info in map(DelegateInfo.model_validate, data.get("results", [])):
@@ -243,7 +243,7 @@ def add_delegate(self, delegate: "AddressType", label: str, delegator: "AccountA
243243
"label": label,
244244
"signature": sig.encode_rsv().hex(),
245245
}
246-
self._post("/delegates", json=payload)
246+
self._post("/delegates", json=payload, api_version="v2")
247247

248248
def remove_delegate(self, delegate: "AddressType", delegator: "AccountAPI"):
249249
msg_hash = self.create_delegate_message(delegate)
@@ -256,7 +256,7 @@ def remove_delegate(self, delegate: "AddressType", delegator: "AccountAPI"):
256256
"delegator": delegator.address,
257257
"signature": sig.encode_rsv().hex(),
258258
}
259-
self._delete(f"/delegates/{delegate}", json=payload)
259+
self._delete(f"/delegates/{delegate}", json=payload, api_version="v2")
260260

261261

262262
__all__ = [

ape_safe/client/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ def session(self) -> requests.Session:
146146
session.mount("https://", adapter)
147147
return session
148148

149-
def _get(self, url: str, params: Optional[dict] = None) -> "Response":
150-
return self._request("GET", url, params=params)
149+
def _get(self, url: str, params: Optional[dict] = None, **kwargs) -> "Response":
150+
return self._request("GET", url, params=params, **kwargs)
151151

152152
def _post(self, url: str, json: Optional[dict] = None, **kwargs) -> "Response":
153153
return self._request("POST", url, json=json, **kwargs)

0 commit comments

Comments
 (0)