Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions hyperliquid/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@


class API:
def __init__(self, base_url=None):
def __init__(self, base_url=None, timeout=None):
self.base_url = base_url or MAINNET_API_URL
self.session = requests.Session()
self.session.headers.update({"Content-Type": "application/json"})
self._logger = logging.getLogger(__name__)
self.timeout = timeout

def post(self, url_path: str, payload: Any = None) -> Any:
payload = payload or {}
url = self.base_url + url_path
response = self.session.post(url, json=payload)
response = self.session.post(url, json=payload, timeout=self.timeout)
self._handle_exception(response)
try:
return response.json()
Expand Down
5 changes: 3 additions & 2 deletions hyperliquid/exchange.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ def __init__(
account_address: Optional[str] = None,
spot_meta: Optional[SpotMeta] = None,
perp_dexs: Optional[List[str]] = None,
timeout: Optional[float] = None,
):
super().__init__(base_url)
super().__init__(base_url, timeout)
self.wallet = wallet
self.vault_address = vault_address
self.account_address = account_address
self.info = Info(base_url, True, meta, spot_meta, perp_dexs)
self.info = Info(base_url, True, meta, spot_meta, perp_dexs, timeout)
self.expires_after: Optional[int] = None

def _post_action(self, action, signature, nonce):
Expand Down
3 changes: 2 additions & 1 deletion hyperliquid/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@ def __init__(
# Note that when perp_dexs is None, then "" is used as the perp dex. "" represents
# the original dex.
perp_dexs: Optional[List[str]] = None,
timeout: Optional[float] = None,
): # pylint: disable=too-many-locals
super().__init__(base_url)
super().__init__(base_url, timeout)
self.ws_manager: Optional[WebsocketManager] = None
if not skip_ws:
self.ws_manager = WebsocketManager(self.base_url)
Expand Down