silhouette-python-sdk 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- silhouette/__init__.py +88 -0
- silhouette/abi/silhouette.json +1 -0
- silhouette/api/__init__.py +5 -0
- silhouette/api/auth.py +282 -0
- silhouette/api/client.py +442 -0
- silhouette/hyperliquid/__init__.py +30 -0
- silhouette/hyperliquid/api.py +31 -0
- silhouette/hyperliquid/exchange.py +130 -0
- silhouette/hyperliquid/info.py +110 -0
- silhouette/hyperliquid/utils/__init__.py +22 -0
- silhouette/hyperliquid/utils/constants.py +4 -0
- silhouette/hyperliquid/utils/error.py +4 -0
- silhouette/hyperliquid/utils/signing.py +5 -0
- silhouette/hyperliquid/utils/types.py +4 -0
- silhouette/hyperliquid/websocket_manager.py +34 -0
- silhouette/py.typed +0 -0
- silhouette/utils/__init__.py +8 -0
- silhouette/utils/conversions.py +96 -0
- silhouette/utils/types.py +369 -0
- silhouette_python_sdk-0.1.0.dist-info/LICENSE.md +21 -0
- silhouette_python_sdk-0.1.0.dist-info/METADATA +291 -0
- silhouette_python_sdk-0.1.0.dist-info/RECORD +23 -0
- silhouette_python_sdk-0.1.0.dist-info/WHEEL +4 -0
silhouette/__init__.py
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Silhouette Python SDK - Python SDK for trading on Silhouette, the shielded exchange on Hyperliquid.
|
|
3
|
+
|
|
4
|
+
This package is a drop-in REPLACEMENT for the Hyperliquid Python SDK with additional
|
|
5
|
+
convenience methods, plus integration with the Silhouette enclave API.
|
|
6
|
+
|
|
7
|
+
IMPORTANT: Install only silhouette-python-sdk; it depends on hyperliquid-python-sdk,
|
|
8
|
+
do not install hyperliquid-python-sdk separately. The official Hyperliquid SDK is
|
|
9
|
+
included as a dependency, and silhouette-python-sdk provides enhanced versions of
|
|
10
|
+
all Hyperliquid classes.
|
|
11
|
+
|
|
12
|
+
Usage:
|
|
13
|
+
# IMPORTANT: Always import silhouette FIRST, before any hyperliquid imports
|
|
14
|
+
import silhouette
|
|
15
|
+
|
|
16
|
+
# Then use standard hyperliquid imports to get enhanced versions
|
|
17
|
+
from hyperliquid.info import Info
|
|
18
|
+
from hyperliquid.exchange import Exchange
|
|
19
|
+
from hyperliquid.websocket_manager import WebsocketManager
|
|
20
|
+
|
|
21
|
+
info = Info() # Enhanced with get_balance(), await_withdrawal_completion()
|
|
22
|
+
exchange = Exchange(wallet) # Enhanced with deposit_to_silhouette()
|
|
23
|
+
ws_manager = WebsocketManager()
|
|
24
|
+
|
|
25
|
+
# Silhouette enclave API integration
|
|
26
|
+
from silhouette.api import SilhouetteApiClient
|
|
27
|
+
|
|
28
|
+
api_client = SilhouetteApiClient()
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
import sys
|
|
32
|
+
import warnings
|
|
33
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
34
|
+
|
|
35
|
+
# Check if hyperliquid modules were already imported before silhouette
|
|
36
|
+
# This helps users avoid confusion from mixed official/enhanced classes
|
|
37
|
+
_HYPERLIQUID_MODULES = [
|
|
38
|
+
"hyperliquid.info",
|
|
39
|
+
"hyperliquid.exchange",
|
|
40
|
+
"hyperliquid.websocket_manager",
|
|
41
|
+
"hyperliquid.api",
|
|
42
|
+
"hyperliquid.utils",
|
|
43
|
+
]
|
|
44
|
+
_already_imported = [mod for mod in _HYPERLIQUID_MODULES if mod in sys.modules]
|
|
45
|
+
if _already_imported:
|
|
46
|
+
warnings.warn(
|
|
47
|
+
f"Hyperliquid modules {_already_imported} were imported before silhouette. "
|
|
48
|
+
"For best results, import silhouette FIRST before any hyperliquid imports. "
|
|
49
|
+
"This ensures you get the enhanced versions with all convenience methods.",
|
|
50
|
+
UserWarning,
|
|
51
|
+
stacklevel=2,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
# Now import our enhanced wrapper modules
|
|
55
|
+
# ruff: noqa: E402 - Imports must come after the warning check above
|
|
56
|
+
import silhouette.hyperliquid.api
|
|
57
|
+
import silhouette.hyperliquid.exchange
|
|
58
|
+
import silhouette.hyperliquid.info
|
|
59
|
+
import silhouette.hyperliquid.utils
|
|
60
|
+
import silhouette.hyperliquid.utils.constants
|
|
61
|
+
import silhouette.hyperliquid.utils.error
|
|
62
|
+
import silhouette.hyperliquid.utils.signing
|
|
63
|
+
import silhouette.hyperliquid.utils.types
|
|
64
|
+
import silhouette.hyperliquid.websocket_manager
|
|
65
|
+
from silhouette.api import SilhouetteApiClient, SilhouetteApiError
|
|
66
|
+
|
|
67
|
+
# Inject our enhanced versions into sys.modules as 'hyperliquid.*'
|
|
68
|
+
# This makes `from hyperliquid.info import Info` work with our enhanced versions
|
|
69
|
+
sys.modules["hyperliquid.info"] = silhouette.hyperliquid.info
|
|
70
|
+
sys.modules["hyperliquid.exchange"] = silhouette.hyperliquid.exchange
|
|
71
|
+
sys.modules["hyperliquid.websocket_manager"] = silhouette.hyperliquid.websocket_manager
|
|
72
|
+
sys.modules["hyperliquid.api"] = silhouette.hyperliquid.api
|
|
73
|
+
sys.modules["hyperliquid.utils"] = silhouette.hyperliquid.utils
|
|
74
|
+
sys.modules["hyperliquid.utils.signing"] = silhouette.hyperliquid.utils.signing
|
|
75
|
+
sys.modules["hyperliquid.utils.constants"] = silhouette.hyperliquid.utils.constants
|
|
76
|
+
sys.modules["hyperliquid.utils.error"] = silhouette.hyperliquid.utils.error
|
|
77
|
+
sys.modules["hyperliquid.utils.types"] = silhouette.hyperliquid.utils.types
|
|
78
|
+
|
|
79
|
+
try:
|
|
80
|
+
# Prefer the distribution name from pyproject
|
|
81
|
+
__version__ = version("silhouette-python-sdk")
|
|
82
|
+
except PackageNotFoundError:
|
|
83
|
+
try:
|
|
84
|
+
__version__ = version("silhouette")
|
|
85
|
+
except PackageNotFoundError:
|
|
86
|
+
__version__ = "0.0.0"
|
|
87
|
+
|
|
88
|
+
__all__ = ["SilhouetteApiClient", "SilhouetteApiError"]
|