compass_api_sdk 0.9.31__py3-none-any.whl → 0.9.33__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.

Potentially problematic release.


This version of compass_api_sdk might be problematic. Click here for more details.

@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "compass_api_sdk"
6
- __version__: str = "0.9.31"
6
+ __version__: str = "0.9.33"
7
7
  __openapi_doc_version__: str = "0.0.1"
8
- __gen_version__: str = "2.638.5"
9
- __user_agent__: str = "speakeasy-sdk/python 0.9.31 2.638.5 0.0.1 compass_api_sdk"
8
+ __gen_version__: str = "2.640.2"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.9.33 2.640.2 0.0.1 compass_api_sdk"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -8,6 +8,220 @@ from typing import Any, Mapping, Optional, Union
8
8
 
9
9
 
10
10
  class ERC4626Vaults(BaseSDK):
11
+ def vault(
12
+ self,
13
+ *,
14
+ chain: models.VaultsVaultChain = models.VaultsVaultChain.ETHEREUM_MAINNET,
15
+ vault_address: str = "0x182863131F9a4630fF9E27830d945B1413e347E8",
16
+ block: OptionalNullable[int] = UNSET,
17
+ user_address: OptionalNullable[str] = UNSET,
18
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
19
+ server_url: Optional[str] = None,
20
+ timeout_ms: Optional[int] = None,
21
+ http_headers: Optional[Mapping[str, str]] = None,
22
+ ) -> models.VaultGetVaultResponse:
23
+ r"""Get Vault & User Position
24
+
25
+ Get Vault & User Position.
26
+
27
+ :param chain: The chain to use.
28
+ :param vault_address: The vault address of the desired vault position.
29
+ :param block: Optional block number (defaults to latest).
30
+ :param user_address: The user address of the desired vault position. Only include if you would like the user position included in the response. Defaults to `None`.
31
+ :param retries: Override the default retry configuration for this method
32
+ :param server_url: Override the default server URL for this method
33
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
34
+ :param http_headers: Additional headers to set or replace on requests.
35
+ """
36
+ base_url = None
37
+ url_variables = None
38
+ if timeout_ms is None:
39
+ timeout_ms = self.sdk_configuration.timeout_ms
40
+
41
+ if server_url is not None:
42
+ base_url = server_url
43
+ else:
44
+ base_url = self._get_url(base_url, url_variables)
45
+
46
+ request = models.VaultsVaultRequest(
47
+ chain=chain,
48
+ block=block,
49
+ vault_address=vault_address,
50
+ user_address=user_address,
51
+ )
52
+
53
+ req = self._build_request(
54
+ method="GET",
55
+ path="/v0/vaults/vault",
56
+ base_url=base_url,
57
+ url_variables=url_variables,
58
+ request=request,
59
+ request_body_required=False,
60
+ request_has_path_params=False,
61
+ request_has_query_params=True,
62
+ user_agent_header="user-agent",
63
+ accept_header_value="application/json",
64
+ http_headers=http_headers,
65
+ security=self.sdk_configuration.security,
66
+ timeout_ms=timeout_ms,
67
+ )
68
+
69
+ if retries == UNSET:
70
+ if self.sdk_configuration.retry_config is not UNSET:
71
+ retries = self.sdk_configuration.retry_config
72
+
73
+ retry_config = None
74
+ if isinstance(retries, utils.RetryConfig):
75
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
76
+
77
+ http_res = self.do_request(
78
+ hook_ctx=HookContext(
79
+ config=self.sdk_configuration,
80
+ base_url=base_url or "",
81
+ operation_id="vaults_vault",
82
+ oauth2_scopes=[],
83
+ security_source=self.sdk_configuration.security,
84
+ ),
85
+ request=req,
86
+ error_status_codes=["422", "4XX", "5XX"],
87
+ retry_config=retry_config,
88
+ )
89
+
90
+ response_data: Any = None
91
+ if utils.match_response(http_res, "200", "application/json"):
92
+ return utils.unmarshal_json(http_res.text, models.VaultGetVaultResponse)
93
+ if utils.match_response(http_res, "422", "application/json"):
94
+ response_data = utils.unmarshal_json(
95
+ http_res.text, errors.HTTPValidationErrorData
96
+ )
97
+ raise errors.HTTPValidationError(data=response_data)
98
+ if utils.match_response(http_res, "4XX", "*"):
99
+ http_res_text = utils.stream_to_text(http_res)
100
+ raise errors.APIError(
101
+ "API error occurred", http_res.status_code, http_res_text, http_res
102
+ )
103
+ if utils.match_response(http_res, "5XX", "*"):
104
+ http_res_text = utils.stream_to_text(http_res)
105
+ raise errors.APIError(
106
+ "API error occurred", http_res.status_code, http_res_text, http_res
107
+ )
108
+
109
+ content_type = http_res.headers.get("Content-Type")
110
+ http_res_text = utils.stream_to_text(http_res)
111
+ raise errors.APIError(
112
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
113
+ http_res.status_code,
114
+ http_res_text,
115
+ http_res,
116
+ )
117
+
118
+ async def vault_async(
119
+ self,
120
+ *,
121
+ chain: models.VaultsVaultChain = models.VaultsVaultChain.ETHEREUM_MAINNET,
122
+ vault_address: str = "0x182863131F9a4630fF9E27830d945B1413e347E8",
123
+ block: OptionalNullable[int] = UNSET,
124
+ user_address: OptionalNullable[str] = UNSET,
125
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
126
+ server_url: Optional[str] = None,
127
+ timeout_ms: Optional[int] = None,
128
+ http_headers: Optional[Mapping[str, str]] = None,
129
+ ) -> models.VaultGetVaultResponse:
130
+ r"""Get Vault & User Position
131
+
132
+ Get Vault & User Position.
133
+
134
+ :param chain: The chain to use.
135
+ :param vault_address: The vault address of the desired vault position.
136
+ :param block: Optional block number (defaults to latest).
137
+ :param user_address: The user address of the desired vault position. Only include if you would like the user position included in the response. Defaults to `None`.
138
+ :param retries: Override the default retry configuration for this method
139
+ :param server_url: Override the default server URL for this method
140
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
141
+ :param http_headers: Additional headers to set or replace on requests.
142
+ """
143
+ base_url = None
144
+ url_variables = None
145
+ if timeout_ms is None:
146
+ timeout_ms = self.sdk_configuration.timeout_ms
147
+
148
+ if server_url is not None:
149
+ base_url = server_url
150
+ else:
151
+ base_url = self._get_url(base_url, url_variables)
152
+
153
+ request = models.VaultsVaultRequest(
154
+ chain=chain,
155
+ block=block,
156
+ vault_address=vault_address,
157
+ user_address=user_address,
158
+ )
159
+
160
+ req = self._build_request_async(
161
+ method="GET",
162
+ path="/v0/vaults/vault",
163
+ base_url=base_url,
164
+ url_variables=url_variables,
165
+ request=request,
166
+ request_body_required=False,
167
+ request_has_path_params=False,
168
+ request_has_query_params=True,
169
+ user_agent_header="user-agent",
170
+ accept_header_value="application/json",
171
+ http_headers=http_headers,
172
+ security=self.sdk_configuration.security,
173
+ timeout_ms=timeout_ms,
174
+ )
175
+
176
+ if retries == UNSET:
177
+ if self.sdk_configuration.retry_config is not UNSET:
178
+ retries = self.sdk_configuration.retry_config
179
+
180
+ retry_config = None
181
+ if isinstance(retries, utils.RetryConfig):
182
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
183
+
184
+ http_res = await self.do_request_async(
185
+ hook_ctx=HookContext(
186
+ config=self.sdk_configuration,
187
+ base_url=base_url or "",
188
+ operation_id="vaults_vault",
189
+ oauth2_scopes=[],
190
+ security_source=self.sdk_configuration.security,
191
+ ),
192
+ request=req,
193
+ error_status_codes=["422", "4XX", "5XX"],
194
+ retry_config=retry_config,
195
+ )
196
+
197
+ response_data: Any = None
198
+ if utils.match_response(http_res, "200", "application/json"):
199
+ return utils.unmarshal_json(http_res.text, models.VaultGetVaultResponse)
200
+ if utils.match_response(http_res, "422", "application/json"):
201
+ response_data = utils.unmarshal_json(
202
+ http_res.text, errors.HTTPValidationErrorData
203
+ )
204
+ raise errors.HTTPValidationError(data=response_data)
205
+ if utils.match_response(http_res, "4XX", "*"):
206
+ http_res_text = await utils.stream_to_text_async(http_res)
207
+ raise errors.APIError(
208
+ "API error occurred", http_res.status_code, http_res_text, http_res
209
+ )
210
+ if utils.match_response(http_res, "5XX", "*"):
211
+ http_res_text = await utils.stream_to_text_async(http_res)
212
+ raise errors.APIError(
213
+ "API error occurred", http_res.status_code, http_res_text, http_res
214
+ )
215
+
216
+ content_type = http_res.headers.get("Content-Type")
217
+ http_res_text = await utils.stream_to_text_async(http_res)
218
+ raise errors.APIError(
219
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
220
+ http_res.status_code,
221
+ http_res_text,
222
+ http_res,
223
+ )
224
+
11
225
  def deposit(
12
226
  self,
13
227
  *,
@@ -262,6 +262,7 @@ if TYPE_CHECKING:
262
262
  AllowanceInfoResponse,
263
263
  AllowanceInfoResponseTypedDict,
264
264
  )
265
+ from .apy import Apy, ApyTypedDict
265
266
  from .batcheduseroperationsrequest import (
266
267
  BatchedUserOperationsRequest,
267
268
  BatchedUserOperationsRequestTypedDict,
@@ -333,6 +334,10 @@ if TYPE_CHECKING:
333
334
  CompassAPIBackendModelsPendleReadResponsePositionsTokenBalance,
334
335
  CompassAPIBackendModelsPendleReadResponsePositionsTokenBalanceTypedDict,
335
336
  )
337
+ from .compass_api_backend_models_vaults_read_response_vault_asset import (
338
+ CompassAPIBackendModelsVaultsReadResponseVaultAsset,
339
+ CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict,
340
+ )
336
341
  from .curator import Curator, CuratorTypedDict
337
342
  from .details import Details, DetailsTypedDict
338
343
  from .ensnameinforesponse import EnsNameInfoResponse, EnsNameInfoResponseTypedDict
@@ -375,6 +380,7 @@ if TYPE_CHECKING:
375
380
  from .lpbalance import LpBalance, LpBalanceTypedDict
376
381
  from .market import Market, MarketTypedDict
377
382
  from .marketposition import MarketPosition, MarketPositionTypedDict
383
+ from .markettokens import MarketTokens, MarketTokensTypedDict
378
384
  from .metadata import Metadata, MetadataTypedDict
379
385
  from .morpho_market_positionop import (
380
386
  MorphoMarketPositionChain,
@@ -946,6 +952,7 @@ if TYPE_CHECKING:
946
952
  UserOperationResponse,
947
953
  UserOperationResponseTypedDict,
948
954
  )
955
+ from .userposition import UserPosition, UserPositionTypedDict
949
956
  from .userstate import UserState, UserStateTypedDict
950
957
  from .validationerror import (
951
958
  Loc,
@@ -960,7 +967,16 @@ if TYPE_CHECKING:
960
967
  VaultDepositRequestAmountTypedDict,
961
968
  VaultDepositRequestTypedDict,
962
969
  )
970
+ from .vaultgetvaultresponse import (
971
+ VaultGetVaultResponse,
972
+ VaultGetVaultResponseTypedDict,
973
+ )
963
974
  from .vaultposition import VaultPosition, VaultPositionTypedDict
975
+ from .vaults_vaultop import (
976
+ VaultsVaultChain,
977
+ VaultsVaultRequest,
978
+ VaultsVaultRequestTypedDict,
979
+ )
964
980
  from .vaultwithdrawrequest import (
965
981
  VaultWithdrawRequest,
966
982
  VaultWithdrawRequestTypedDict,
@@ -1155,6 +1171,8 @@ __all__ = [
1155
1171
  "AerodromeSlipstreamWithdrawLiquidityProvisionRequestTypedDict",
1156
1172
  "AllowanceInfoResponse",
1157
1173
  "AllowanceInfoResponseTypedDict",
1174
+ "Apy",
1175
+ "ApyTypedDict",
1158
1176
  "BatchedUserOperationsRequest",
1159
1177
  "BatchedUserOperationsRequestTypedDict",
1160
1178
  "BatchedUserOperationsResponse",
@@ -1197,6 +1215,8 @@ __all__ = [
1197
1215
  "CompassAPIBackendModelsMorphoReadResponseGetVaultsVaultStateTypedDict",
1198
1216
  "CompassAPIBackendModelsPendleReadResponsePositionsTokenBalance",
1199
1217
  "CompassAPIBackendModelsPendleReadResponsePositionsTokenBalanceTypedDict",
1218
+ "CompassAPIBackendModelsVaultsReadResponseVaultAsset",
1219
+ "CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict",
1200
1220
  "Curator",
1201
1221
  "CuratorTypedDict",
1202
1222
  "Details",
@@ -1244,6 +1264,8 @@ __all__ = [
1244
1264
  "Market",
1245
1265
  "MarketPosition",
1246
1266
  "MarketPositionTypedDict",
1267
+ "MarketTokens",
1268
+ "MarketTokensTypedDict",
1247
1269
  "MarketTypedDict",
1248
1270
  "MaxSlippagePercent",
1249
1271
  "MaxSlippagePercentTypedDict",
@@ -1658,6 +1680,8 @@ __all__ = [
1658
1680
  "UserOperationResponse",
1659
1681
  "UserOperationResponseTypedDict",
1660
1682
  "UserOperationTypedDict",
1683
+ "UserPosition",
1684
+ "UserPositionTypedDict",
1661
1685
  "UserState",
1662
1686
  "UserStateTypedDict",
1663
1687
  "ValidationError",
@@ -1667,11 +1691,16 @@ __all__ = [
1667
1691
  "VaultDepositRequestAmount",
1668
1692
  "VaultDepositRequestAmountTypedDict",
1669
1693
  "VaultDepositRequestTypedDict",
1694
+ "VaultGetVaultResponse",
1695
+ "VaultGetVaultResponseTypedDict",
1670
1696
  "VaultPosition",
1671
1697
  "VaultPositionTypedDict",
1672
1698
  "VaultTypedDict",
1673
1699
  "VaultWithdrawRequest",
1674
1700
  "VaultWithdrawRequestTypedDict",
1701
+ "VaultsVaultChain",
1702
+ "VaultsVaultRequest",
1703
+ "VaultsVaultRequestTypedDict",
1675
1704
  "WeeklyApys",
1676
1705
  "WeeklyApysTypedDict",
1677
1706
  "WrapEthParams",
@@ -1871,6 +1900,8 @@ _dynamic_imports: dict[str, str] = {
1871
1900
  "AerodromeSlipstreamWithdrawLiquidityProvisionRequestTypedDict": ".aerodromeslipstreamwithdrawliquidityprovisionrequest",
1872
1901
  "AllowanceInfoResponse": ".allowanceinforesponse",
1873
1902
  "AllowanceInfoResponseTypedDict": ".allowanceinforesponse",
1903
+ "Apy": ".apy",
1904
+ "ApyTypedDict": ".apy",
1874
1905
  "BatchedUserOperationsRequest": ".batcheduseroperationsrequest",
1875
1906
  "BatchedUserOperationsRequestTypedDict": ".batcheduseroperationsrequest",
1876
1907
  "BatchedUserOperationsResponse": ".batcheduseroperationsresponse",
@@ -1911,6 +1942,8 @@ _dynamic_imports: dict[str, str] = {
1911
1942
  "CompassAPIBackendModelsMorphoReadResponseGetVaultsVaultStateTypedDict": ".compass_api_backend_models_morpho_read_response_get_vaults_vaultstate",
1912
1943
  "CompassAPIBackendModelsPendleReadResponsePositionsTokenBalance": ".compass_api_backend_models_pendle_read_response_positions_tokenbalance",
1913
1944
  "CompassAPIBackendModelsPendleReadResponsePositionsTokenBalanceTypedDict": ".compass_api_backend_models_pendle_read_response_positions_tokenbalance",
1945
+ "CompassAPIBackendModelsVaultsReadResponseVaultAsset": ".compass_api_backend_models_vaults_read_response_vault_asset",
1946
+ "CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict": ".compass_api_backend_models_vaults_read_response_vault_asset",
1914
1947
  "Curator": ".curator",
1915
1948
  "CuratorTypedDict": ".curator",
1916
1949
  "Details": ".details",
@@ -1953,6 +1986,8 @@ _dynamic_imports: dict[str, str] = {
1953
1986
  "MarketTypedDict": ".market",
1954
1987
  "MarketPosition": ".marketposition",
1955
1988
  "MarketPositionTypedDict": ".marketposition",
1989
+ "MarketTokens": ".markettokens",
1990
+ "MarketTokensTypedDict": ".markettokens",
1956
1991
  "Metadata": ".metadata",
1957
1992
  "MetadataTypedDict": ".metadata",
1958
1993
  "MorphoMarketPositionChain": ".morpho_market_positionop",
@@ -2362,6 +2397,8 @@ _dynamic_imports: dict[str, str] = {
2362
2397
  "UserOperationTypedDict": ".useroperation",
2363
2398
  "UserOperationResponse": ".useroperationresponse",
2364
2399
  "UserOperationResponseTypedDict": ".useroperationresponse",
2400
+ "UserPosition": ".userposition",
2401
+ "UserPositionTypedDict": ".userposition",
2365
2402
  "UserState": ".userstate",
2366
2403
  "UserStateTypedDict": ".userstate",
2367
2404
  "Loc": ".validationerror",
@@ -2374,8 +2411,13 @@ _dynamic_imports: dict[str, str] = {
2374
2411
  "VaultDepositRequestAmount": ".vaultdepositrequest",
2375
2412
  "VaultDepositRequestAmountTypedDict": ".vaultdepositrequest",
2376
2413
  "VaultDepositRequestTypedDict": ".vaultdepositrequest",
2414
+ "VaultGetVaultResponse": ".vaultgetvaultresponse",
2415
+ "VaultGetVaultResponseTypedDict": ".vaultgetvaultresponse",
2377
2416
  "VaultPosition": ".vaultposition",
2378
2417
  "VaultPositionTypedDict": ".vaultposition",
2418
+ "VaultsVaultChain": ".vaults_vaultop",
2419
+ "VaultsVaultRequest": ".vaults_vaultop",
2420
+ "VaultsVaultRequestTypedDict": ".vaults_vaultop",
2379
2421
  "VaultWithdrawRequest": ".vaultwithdrawrequest",
2380
2422
  "VaultWithdrawRequestTypedDict": ".vaultwithdrawrequest",
2381
2423
  "WeeklyApys": ".weeklyapys",
@@ -0,0 +1,19 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from compass_api_sdk.types import BaseModel
5
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class ApyTypedDict(TypedDict):
9
+ apy_1_day: str
10
+ apy_7_day: str
11
+ apy_30_day: str
12
+
13
+
14
+ class Apy(BaseModel):
15
+ apy_1_day: str
16
+
17
+ apy_7_day: str
18
+
19
+ apy_30_day: str
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from compass_api_sdk.types import BaseModel
5
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict(TypedDict):
9
+ address: str
10
+ name: str
11
+ symbol: str
12
+ decimals: int
13
+
14
+
15
+ class CompassAPIBackendModelsVaultsReadResponseVaultAsset(BaseModel):
16
+ address: str
17
+
18
+ name: str
19
+
20
+ symbol: str
21
+
22
+ decimals: int
@@ -9,6 +9,7 @@ class Erc20DataTypedDict(TypedDict):
9
9
  address: str
10
10
  symbol: str
11
11
  name: str
12
+ decimals: int
12
13
 
13
14
 
14
15
  class Erc20Data(BaseModel):
@@ -17,3 +18,5 @@ class Erc20Data(BaseModel):
17
18
  symbol: str
18
19
 
19
20
  name: str
21
+
22
+ decimals: int
@@ -0,0 +1,57 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .erc20data import Erc20Data, Erc20DataTypedDict
5
+ from compass_api_sdk.types import BaseModel, Nullable, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing_extensions import TypedDict
8
+
9
+
10
+ class MarketTokensTypedDict(TypedDict):
11
+ underlying_token: Erc20DataTypedDict
12
+ sy: Erc20DataTypedDict
13
+ pt: Erc20DataTypedDict
14
+ yt: Erc20DataTypedDict
15
+ accounting_asset: Nullable[Erc20DataTypedDict]
16
+
17
+
18
+ class MarketTokens(BaseModel):
19
+ underlying_token: Erc20Data
20
+
21
+ sy: Erc20Data
22
+
23
+ pt: Erc20Data
24
+
25
+ yt: Erc20Data
26
+
27
+ accounting_asset: Nullable[Erc20Data]
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = []
32
+ nullable_fields = ["accounting_asset"]
33
+ null_default_fields = []
34
+
35
+ serialized = handler(self)
36
+
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k)
42
+ serialized.pop(k, None)
43
+
44
+ optional_nullable = k in optional_fields and k in nullable_fields
45
+ is_set = (
46
+ self.__pydantic_fields_set__.intersection({n})
47
+ or k in null_default_fields
48
+ ) # pylint: disable=no-member
49
+
50
+ if val is not None and val != UNSET_SENTINEL:
51
+ m[k] = val
52
+ elif val != UNSET_SENTINEL and (
53
+ not k in optional_fields or (optional_nullable and is_set)
54
+ ):
55
+ m[k] = val
56
+
57
+ return m
@@ -1,39 +1,30 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .erc20data import Erc20Data, Erc20DataTypedDict
4
+ from .markettokens import MarketTokens, MarketTokensTypedDict
5
5
  from compass_api_sdk.types import BaseModel
6
6
  from datetime import datetime
7
7
  from typing_extensions import TypedDict
8
8
 
9
9
 
10
10
  class PendleGetMarketResponseTypedDict(TypedDict):
11
+ market_address: str
12
+ r"""The address of the market."""
11
13
  implied_apy: str
12
14
  r"""The implied APY of the market."""
13
15
  maturity_date: datetime
14
16
  r"""The maturity date of the market. ISO 8601 format. UTC timezone."""
15
- market_address: str
16
- r"""The address of the market."""
17
- underlying_token: Erc20DataTypedDict
18
- sy: Erc20DataTypedDict
19
- pt: Erc20DataTypedDict
20
- yt: Erc20DataTypedDict
17
+ tokens: MarketTokensTypedDict
21
18
 
22
19
 
23
20
  class PendleGetMarketResponse(BaseModel):
21
+ market_address: str
22
+ r"""The address of the market."""
23
+
24
24
  implied_apy: str
25
25
  r"""The implied APY of the market."""
26
26
 
27
27
  maturity_date: datetime
28
28
  r"""The maturity date of the market. ISO 8601 format. UTC timezone."""
29
29
 
30
- market_address: str
31
- r"""The address of the market."""
32
-
33
- underlying_token: Erc20Data
34
-
35
- sy: Erc20Data
36
-
37
- pt: Erc20Data
38
-
39
- yt: Erc20Data
30
+ tokens: MarketTokens
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from compass_api_sdk.types import BaseModel
5
+ from typing_extensions import TypedDict
6
+
7
+
8
+ class UserPositionTypedDict(TypedDict):
9
+ shares: int
10
+ token_amount: str
11
+
12
+
13
+ class UserPosition(BaseModel):
14
+ shares: int
15
+
16
+ token_amount: str
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .apy import Apy, ApyTypedDict
5
+ from .compass_api_backend_models_vaults_read_response_vault_asset import (
6
+ CompassAPIBackendModelsVaultsReadResponseVaultAsset,
7
+ CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict,
8
+ )
9
+ from .userposition import UserPosition, UserPositionTypedDict
10
+ from compass_api_sdk.types import BaseModel, Nullable, UNSET_SENTINEL
11
+ from pydantic import model_serializer
12
+ from typing_extensions import TypedDict
13
+
14
+
15
+ class VaultGetVaultResponseTypedDict(TypedDict):
16
+ name: str
17
+ r"""Name of the vault."""
18
+ symbol: str
19
+ r"""Symbol of the vault."""
20
+ decimals: int
21
+ r"""Number of decimals used for the vault's share precision."""
22
+ total_assets: str
23
+ r"""Total amount of assets deposited in the vault."""
24
+ total_supply: str
25
+ r"""Total amount of shares issued from the vault."""
26
+ share_price: str
27
+ r"""The price of one vault share in terms of the underlying asset."""
28
+ asset: CompassAPIBackendModelsVaultsReadResponseVaultAssetTypedDict
29
+ apy: ApyTypedDict
30
+ user_position: Nullable[UserPositionTypedDict]
31
+ r"""The user's position in the vault."""
32
+
33
+
34
+ class VaultGetVaultResponse(BaseModel):
35
+ name: str
36
+ r"""Name of the vault."""
37
+
38
+ symbol: str
39
+ r"""Symbol of the vault."""
40
+
41
+ decimals: int
42
+ r"""Number of decimals used for the vault's share precision."""
43
+
44
+ total_assets: str
45
+ r"""Total amount of assets deposited in the vault."""
46
+
47
+ total_supply: str
48
+ r"""Total amount of shares issued from the vault."""
49
+
50
+ share_price: str
51
+ r"""The price of one vault share in terms of the underlying asset."""
52
+
53
+ asset: CompassAPIBackendModelsVaultsReadResponseVaultAsset
54
+
55
+ apy: Apy
56
+
57
+ user_position: Nullable[UserPosition]
58
+ r"""The user's position in the vault."""
59
+
60
+ @model_serializer(mode="wrap")
61
+ def serialize_model(self, handler):
62
+ optional_fields = []
63
+ nullable_fields = ["user_position"]
64
+ null_default_fields = []
65
+
66
+ serialized = handler(self)
67
+
68
+ m = {}
69
+
70
+ for n, f in type(self).model_fields.items():
71
+ k = f.alias or n
72
+ val = serialized.get(k)
73
+ serialized.pop(k, None)
74
+
75
+ optional_nullable = k in optional_fields and k in nullable_fields
76
+ is_set = (
77
+ self.__pydantic_fields_set__.intersection({n})
78
+ or k in null_default_fields
79
+ ) # pylint: disable=no-member
80
+
81
+ if val is not None and val != UNSET_SENTINEL:
82
+ m[k] = val
83
+ elif val != UNSET_SENTINEL and (
84
+ not k in optional_fields or (optional_nullable and is_set)
85
+ ):
86
+ m[k] = val
87
+
88
+ return m
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from compass_api_sdk.types import (
5
+ BaseModel,
6
+ Nullable,
7
+ OptionalNullable,
8
+ UNSET,
9
+ UNSET_SENTINEL,
10
+ )
11
+ from compass_api_sdk.utils import FieldMetadata, QueryParamMetadata
12
+ from enum import Enum
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class VaultsVaultChain(str, Enum):
18
+ r"""The chain to use."""
19
+
20
+ BASE_MAINNET = "base:mainnet"
21
+ ETHEREUM_MAINNET = "ethereum:mainnet"
22
+ ARBITRUM_MAINNET = "arbitrum:mainnet"
23
+
24
+
25
+ class VaultsVaultRequestTypedDict(TypedDict):
26
+ chain: VaultsVaultChain
27
+ r"""The chain to use."""
28
+ block: NotRequired[Nullable[int]]
29
+ r"""Optional block number (defaults to latest)."""
30
+ vault_address: str
31
+ r"""The vault address of the desired vault position."""
32
+ user_address: NotRequired[Nullable[str]]
33
+ r"""The user address of the desired vault position. Only include if you would like the user position included in the response. Defaults to `None`."""
34
+
35
+
36
+ class VaultsVaultRequest(BaseModel):
37
+ chain: Annotated[
38
+ VaultsVaultChain,
39
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
40
+ ] = VaultsVaultChain.ETHEREUM_MAINNET
41
+ r"""The chain to use."""
42
+
43
+ block: Annotated[
44
+ OptionalNullable[int],
45
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
46
+ ] = UNSET
47
+ r"""Optional block number (defaults to latest)."""
48
+
49
+ vault_address: Annotated[
50
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
51
+ ] = "0x182863131F9a4630fF9E27830d945B1413e347E8"
52
+ r"""The vault address of the desired vault position."""
53
+
54
+ user_address: Annotated[
55
+ OptionalNullable[str],
56
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
57
+ ] = UNSET
58
+ r"""The user address of the desired vault position. Only include if you would like the user position included in the response. Defaults to `None`."""
59
+
60
+ @model_serializer(mode="wrap")
61
+ def serialize_model(self, handler):
62
+ optional_fields = ["block", "user_address"]
63
+ nullable_fields = ["block", "user_address"]
64
+ null_default_fields = []
65
+
66
+ serialized = handler(self)
67
+
68
+ m = {}
69
+
70
+ for n, f in type(self).model_fields.items():
71
+ k = f.alias or n
72
+ val = serialized.get(k)
73
+ serialized.pop(k, None)
74
+
75
+ optional_nullable = k in optional_fields and k in nullable_fields
76
+ is_set = (
77
+ self.__pydantic_fields_set__.intersection({n})
78
+ or k in null_default_fields
79
+ ) # pylint: disable=no-member
80
+
81
+ if val is not None and val != UNSET_SENTINEL:
82
+ m[k] = val
83
+ elif val != UNSET_SENTINEL and (
84
+ not k in optional_fields or (optional_nullable and is_set)
85
+ ):
86
+ m[k] = val
87
+
88
+ return m
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: compass_api_sdk
3
- Version: 0.9.31
3
+ Version: 0.9.33
4
4
  Summary: Compass API SDK.
5
5
  Author: royalnine
6
6
  Requires-Python: >=3.9.2
@@ -220,6 +220,7 @@ with CompassAPI(
220
220
 
221
221
  ### [erc_4626_vaults](https://github.com/CompassLabs/mono/blob/master/docs/sdks/erc4626vaults/README.md)
222
222
 
223
+ * [vault](https://github.com/CompassLabs/mono/blob/master/docs/sdks/erc4626vaults/README.md#vault) - Get Vault & User Position
223
224
  * [deposit](https://github.com/CompassLabs/mono/blob/master/docs/sdks/erc4626vaults/README.md#deposit) - Deposit to Vault
224
225
  * [withdraw](https://github.com/CompassLabs/mono/blob/master/docs/sdks/erc4626vaults/README.md#withdraw) - Withdraw from Vault
225
226
 
@@ -2,16 +2,16 @@ compass_api_sdk/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,4
2
2
  compass_api_sdk/_hooks/__init__.py,sha256=p5J13DeYuISQyQWirjJAObHIf2VtIlOtFqnIpvjjVwk,118
3
3
  compass_api_sdk/_hooks/sdkhooks.py,sha256=eVxHB2Q_JG6zZx5xn74i208ij-fpTHqq2jod6fbghRQ,2503
4
4
  compass_api_sdk/_hooks/types.py,sha256=4qXm6dEntJOC2QeOdTklcc53oFzTU3HBb1xGdZ-kBXY,3059
5
- compass_api_sdk/_version.py,sha256=P8sYE1gaAKZM6seOorxFFLOGQQWTi3_pMjFOFSw_30w,474
5
+ compass_api_sdk/_version.py,sha256=2X6PUTI3ptsk8rX1erudFp4VAAZENeN4Ff2Jo4pPn_E,474
6
6
  compass_api_sdk/aave_v3.py,sha256=bP2bYTsFsHpZ0PsClTV5qdDHP_n-98NGQKoN3zd9dqo,126376
7
7
  compass_api_sdk/aerodrome_slipstream.py,sha256=xGt8wnAItW8w6kgnqfwDrsX24qw8TIhsD8fRhxta7Bs,83443
8
8
  compass_api_sdk/basesdk.py,sha256=xDxC-X-LHCwtVy8SPM6nckSu1NmF8uKhHUUQd3X-syo,11810
9
- compass_api_sdk/erc_4626_vaults.py,sha256=gF9QlgiDfKyima1HEW4JRHTtJQHu1KM9Qmp0pizDPNA,19487
9
+ compass_api_sdk/erc_4626_vaults.py,sha256=L0dM2NrbUitaFEk9hfrxZGDSDCuP3Qg707JSvqnNuZQ,28365
10
10
  compass_api_sdk/errors/__init__.py,sha256=V3vSSmUvxXtgwHL60IBI0MzLWll8h373LvT3el17p5Q,1289
11
11
  compass_api_sdk/errors/apierror.py,sha256=9mTyJSyvUAOnSfW_1HWt9dGl8IDlpQ68DebwYsDNdug,528
12
12
  compass_api_sdk/errors/httpvalidationerror.py,sha256=KBdpK3fYQoeMB-3m9dLKiMYimFN7B9VLma6YqMKX5k0,671
13
13
  compass_api_sdk/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
14
- compass_api_sdk/models/__init__.py,sha256=RzfA7qGaQPtpQ1xa-Qe0DqblMvWe_vFjQPSnfq3RZKg,118265
14
+ compass_api_sdk/models/__init__.py,sha256=YLnHHzpGW3EY6QieXMs9GwSGI9H7vaNmoTExjGJdO4s,120038
15
15
  compass_api_sdk/models/aave_avg_rateop.py,sha256=Qn7IkBwZv5zY_L15V_LONkANzQPTbtmK2Wwhc2iqYz8,3718
16
16
  compass_api_sdk/models/aave_historical_transactionsop.py,sha256=oWOjaRhNyjddZPqr5RfhNYf6V4Ye4gOQ0BDIXoqZGSs,1785
17
17
  compass_api_sdk/models/aave_liquidity_changeop.py,sha256=o9G4dD2foyhbunziTv_177Qr2AK37KTIQsQfvPxo5Fs,2785
@@ -55,6 +55,7 @@ compass_api_sdk/models/aerodromeslipstreamsellexactlyrequest.py,sha256=8fTTSQkqx
55
55
  compass_api_sdk/models/aerodromeslipstreamwithdrawliquidityprovisionparams.py,sha256=7Oi6Z9Vb4VSAZsvj8j50f6wdcAhzTbwFY6schYwrayA,2871
56
56
  compass_api_sdk/models/aerodromeslipstreamwithdrawliquidityprovisionrequest.py,sha256=VbyHw3IAyF80M4qNEaSDnoiKOCKISO3Ecy814j1481Q,2344
57
57
  compass_api_sdk/models/allowanceinforesponse.py,sha256=uFIiq6V_cnP6mmpItormvRkNspvD1lsRQ4nzSXguJeI,1021
58
+ compass_api_sdk/models/apy.py,sha256=sO4Z_o7sHt8X8iiecXPQiE8I8ICLtVYyVOMlaMFM_v8,367
58
59
  compass_api_sdk/models/batcheduseroperationsrequest.py,sha256=diV1jBsKWflKAXPQvzYH9ZAtWnL9aUV8O3g3K4DOj-M,920
59
60
  compass_api_sdk/models/batcheduseroperationsresponse.py,sha256=RB_xJG3Itpm5DIbPjAt5_mX02hbMklqsWyao7shRiiI,679
60
61
  compass_api_sdk/models/borrow.py,sha256=YQxBejrFjAvfjrYC7kmQRsQL2q6bb6MZxLzFuVHZEFg,2140
@@ -75,10 +76,11 @@ compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_vault
75
76
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_vaults_asset.py,sha256=zlxZwigsUocOnYo2Q43JLDSiFL6w26r-jaqcy4Ds2NU,562
76
77
  compass_api_sdk/models/compass_api_backend_models_morpho_read_response_get_vaults_vaultstate.py,sha256=WwlaoKcfHa18irpBwR95FIV5TD0_2jVN_hIqo1R55rE,796
77
78
  compass_api_sdk/models/compass_api_backend_models_pendle_read_response_positions_tokenbalance.py,sha256=dxEvdDEZmYokpmCAO3RXRQU81kR4Bmiv3eEqMKh0GTU,450
79
+ compass_api_sdk/models/compass_api_backend_models_vaults_read_response_vault_asset.py,sha256=M5ShjhNBdQYc_D4FefCDjDc5hm3KV4u_fJ7ZKyTH-uk,478
78
80
  compass_api_sdk/models/curator.py,sha256=FEyFGfhBNu1xFlSACdFPpBK2kGzLNBvLi8KfaEKy0rY,1392
79
81
  compass_api_sdk/models/details.py,sha256=3nlDe5Po20HFWWc31iX-6wOfMdveE76JpNf-Kp9AsuQ,1212
80
82
  compass_api_sdk/models/ensnameinforesponse.py,sha256=p7y3TYD3lApa8hzHTCKDUEmSpmH2QmJAHG7wzef9rLk,626
81
- compass_api_sdk/models/erc20data.py,sha256=u-Ln_Wj4mpuW5sk1Ull0ir8dJwYRU4Ij7C75R51pZmY,357
83
+ compass_api_sdk/models/erc20data.py,sha256=Pn9h6Ts64VoV3bR5gpbMxTPb2Du8izsK5a6eFxQfRZU,394
82
84
  compass_api_sdk/models/feeenum.py,sha256=TIYaeNWCG9KFGV7CZeXHvZ_4tmlqdlk-Pcg04pc7ynM,363
83
85
  compass_api_sdk/models/generic_allowanceop.py,sha256=EVcwAOVm-VhTHxJYHlgmQkGrsF30b_fEJh8VNI-boOw,3327
84
86
  compass_api_sdk/models/generic_ensop.py,sha256=xH9v260Dw_eF_IAlQqO7eqOKRDNDNV2519ze7VO31CM,1104
@@ -92,6 +94,7 @@ compass_api_sdk/models/liquidity.py,sha256=WOPaK4SXj2C5TBLZlfoaQbcnzhcmFCEUFz59m
92
94
  compass_api_sdk/models/lpbalance.py,sha256=8IxmblTajQs3EZgSqZXD1WOd8Adkzib08iJzxqZryVw,464
93
95
  compass_api_sdk/models/market.py,sha256=GHeU1pdGnyGNDxyx2aSvMfLeUTW1s_wLEkMY5SqBPRg,368
94
96
  compass_api_sdk/models/marketposition.py,sha256=X-qOGEKxLfk-aLWMweaWraTh5G2x_ImBSZCg8_mPUEo,2151
97
+ compass_api_sdk/models/markettokens.py,sha256=fP8EMGaqgZrDg4sRpnqmlESVxz3-ZSotGxZjULAjNfc,1599
95
98
  compass_api_sdk/models/metadata.py,sha256=QtYhxd8PZdJOC2T2SkaKmcAwxg8cfRMjVvpj-D4dytg,1496
96
99
  compass_api_sdk/models/morpho_market_positionop.py,sha256=Oq1MpGNsCsNNrKRVATDpmC9nJO2TKwYi_dSUswuu-iI,1484
97
100
  compass_api_sdk/models/morpho_marketop.py,sha256=xxr06QlU1xkjje5jCFmRT7fg_QDyvaD3c0HsMoDs_I4,1130
@@ -136,7 +139,7 @@ compass_api_sdk/models/pendlebuyptparams.py,sha256=Y_3zGoBomfP1EFK1Gl6DKAOv7C3vS
136
139
  compass_api_sdk/models/pendlebuyptrequest.py,sha256=NQkaQ2HqjGeVx8yNwFz6a_r0ZrMmMo8AEf-zweChOkA,2209
137
140
  compass_api_sdk/models/pendlebuyytparams.py,sha256=KNPS0zRlcr9R44jARza_nDoZNinHc4j34EuReii8JvI,1926
138
141
  compass_api_sdk/models/pendlebuyytrequest.py,sha256=EzpfmTGzWLCuG2C6tFMeHXxdP5L7R6XzWEbMJDOy1Tk,2185
139
- compass_api_sdk/models/pendlegetmarketresponse.py,sha256=j8hr0gg_t9yjKPO_D3TFIpFKEviT0k1ceetPt4XFzQI,1042
142
+ compass_api_sdk/models/pendlegetmarketresponse.py,sha256=zUnoLIjfGt-39sByJHW72l8N0GhcZe18JfV9UgXpuzI,899
140
143
  compass_api_sdk/models/pendlegetuserpositionresponse.py,sha256=lGYK1LRI6osNYz5043uGO2aBYojDzXKK4cVnyvaFdmA,1913
141
144
  compass_api_sdk/models/pendlelistmarketsresponse.py,sha256=-DlImGBzAP-yc0B1F9Cfer1ruFHLUEsRv2F1MQt2-hE,570
142
145
  compass_api_sdk/models/pendlelistuserpositionsresponse.py,sha256=7QQ5xeGxlPo1mPrzR9LRwSlx7veUN3u2qnZDi6iVWj0,572
@@ -210,11 +213,14 @@ compass_api_sdk/models/unwrapwethrequest.py,sha256=pt-eqvKWN6qir5bN6d9EWBZIDrXs_
210
213
  compass_api_sdk/models/usageascollateral.py,sha256=hHBgh83BO9WA6u-9xzTvBlPOLoiYV1N21G6vDeo_b30,1561
211
214
  compass_api_sdk/models/useroperation.py,sha256=oxm4nj0hIhGE821-MTBoQ6x3DrLOi1XbzVXJtrOpaLw,8850
212
215
  compass_api_sdk/models/useroperationresponse.py,sha256=z0o0N-EC30XlrkFiR3vLO_EXbpXojUCJlWQxuOir5VM,671
216
+ compass_api_sdk/models/userposition.py,sha256=tmRq5o-tNWFQCZ-48bA4HCTJnVt_lt1DMM8cZShZOZE,344
213
217
  compass_api_sdk/models/userstate.py,sha256=uwoWC0y2Bv5jHW-F2MInZx0RwMihH6WxcXmemr71sdk,1994
214
218
  compass_api_sdk/models/validationerror.py,sha256=01WnpU7Tgin0B_poO97_hl6b5CNJ_9VGzpcmoeJs4GU,532
215
219
  compass_api_sdk/models/vault.py,sha256=ttepBiKO4o7-C97oALWOYAcN7ALDXmBFBcbQV_nfwO4,1849
216
220
  compass_api_sdk/models/vaultdepositrequest.py,sha256=GXYfXNlMmExOxjgabMDFjRS4kjHovuofGNz9DHO1TDQ,3136
221
+ compass_api_sdk/models/vaultgetvaultresponse.py,sha256=kyVXKLYIVdanyivPPLn9rdhf-kBGRnauzghgXeoGPLI,2778
217
222
  compass_api_sdk/models/vaultposition.py,sha256=o_Nyjc7GB5lLi11yCO6cp8nZpIvJcZzGB1iL_oCJUA0,801
223
+ compass_api_sdk/models/vaults_vaultop.py,sha256=4LE8AgOUsfDBDNcupsAnhbY_s20oMTRsHRazsF-slAY,2989
218
224
  compass_api_sdk/models/vaultwithdrawrequest.py,sha256=w4STTo4hqAZ6OtCgflHlaKquFCDWyTEa399tURyFgTo,2758
219
225
  compass_api_sdk/models/weeklyapys.py,sha256=AaGjDD4NeGsZQBwdRW1G09Pmx17pLPe2oUA9M21jQgY,675
220
226
  compass_api_sdk/models/wrapethparams.py,sha256=nw1fZiDrj5wZnI25Vmg0DcNI01k-uhot68lG1_H7xrY,1223
@@ -249,6 +255,6 @@ compass_api_sdk/utils/security.py,sha256=ktep3HKwbFs-MLxUYTM8Jd4v-ZBum5_Z0u1PFId
249
255
  compass_api_sdk/utils/serializers.py,sha256=hiHBXM1AY8_N2Z_rvFfNSYwvLBkSQlPGFp8poasdU4s,5986
250
256
  compass_api_sdk/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
251
257
  compass_api_sdk/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
252
- compass_api_sdk-0.9.31.dist-info/METADATA,sha256=Qs8ne9DYLSdSngck-RQ8UCD1EWWqApGlDk11vrgKI4s,26910
253
- compass_api_sdk-0.9.31.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
254
- compass_api_sdk-0.9.31.dist-info/RECORD,,
258
+ compass_api_sdk-0.9.33.dist-info/METADATA,sha256=kumDGRCpu-jVfGlCqpK_gaoFsF8Wr3QHU-sSGS8KU7U,27037
259
+ compass_api_sdk-0.9.33.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
260
+ compass_api_sdk-0.9.33.dist-info/RECORD,,