chipi-stack 2.0.0__tar.gz → 2.1.0__tar.gz

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.
Files changed (42) hide show
  1. {chipi_stack-2.0.0/chipi_stack.egg-info → chipi_stack-2.1.0}/PKG-INFO +6 -5
  2. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/README.md +5 -3
  3. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/__init__.py +12 -1
  4. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/constants.py +2 -1
  5. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/core.py +6 -0
  6. chipi_stack-2.1.0/chipi_sdk/models/sku_purchase.py +40 -0
  7. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/sdk.py +59 -0
  8. chipi_stack-2.1.0/chipi_sdk/sku_purchases.py +98 -0
  9. {chipi_stack-2.0.0 → chipi_stack-2.1.0/chipi_stack.egg-info}/PKG-INFO +6 -5
  10. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_stack.egg-info/SOURCES.txt +2 -0
  11. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_stack.egg-info/requires.txt +0 -1
  12. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/pyproject.toml +1 -2
  13. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/LICENSE +0 -0
  14. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/MANIFEST.in +0 -0
  15. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/client.py +0 -0
  16. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/encryption.py +0 -0
  17. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/errors.py +0 -0
  18. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/execute_paymaster.py +0 -0
  19. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/formatters.py +0 -0
  20. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/__init__.py +0 -0
  21. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/session.py +0 -0
  22. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/sku.py +0 -0
  23. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/sku_transaction.py +0 -0
  24. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/transaction.py +0 -0
  25. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/user.py +0 -0
  26. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/wallet.py +0 -0
  27. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/models/x402.py +0 -0
  28. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/py.typed +0 -0
  29. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/sessions.py +0 -0
  30. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/sku_transactions.py +0 -0
  31. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/skus.py +0 -0
  32. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/transactions.py +0 -0
  33. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/users.py +0 -0
  34. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/validators.py +0 -0
  35. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/wallets.py +0 -0
  36. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/x402_client.py +0 -0
  37. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/x402_facilitator.py +0 -0
  38. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_sdk/x402_middleware.py +0 -0
  39. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_stack.egg-info/dependency_links.txt +0 -0
  40. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/chipi_stack.egg-info/top_level.txt +0 -0
  41. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/setup.cfg +0 -0
  42. {chipi_stack-2.0.0 → chipi_stack-2.1.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chipi-stack
3
- Version: 2.0.0
3
+ Version: 2.1.0
4
4
  Summary: Python SDK for Starknet Gasless Transactions via Chipi
5
5
  Author-email: Carlos Castillo <carlos@chipipay.com>, Roberto Yamanaka <roberto@chipipay.com>
6
6
  License-Expression: MIT
@@ -34,17 +34,18 @@ Requires-Dist: black>=24.0.0; extra == "dev"
34
34
  Requires-Dist: ruff>=0.3.0; extra == "dev"
35
35
  Requires-Dist: mypy>=1.8.0; extra == "dev"
36
36
  Requires-Dist: build>=1.0.0; extra == "dev"
37
- Requires-Dist: twine>=5.0.0; extra == "dev"
38
37
  Dynamic: license-file
39
38
 
40
39
  # Chipi Python SDK
41
40
 
42
- [![PyPI version](https://badge.fury.io/py/chipi-python.svg)](https://badge.fury.io/py/chipi-python)
41
+ [![PyPI version](https://badge.fury.io/py/chipi-stack.svg)](https://badge.fury.io/py/chipi-stack)
43
42
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
44
43
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
45
44
 
46
45
  Python SDK for executing gasless transactions on Starknet via Chipi's paymaster infrastructure.
47
46
 
47
+ > Published to PyPI as **`chipi-stack`** — matches the `@chipi-stack/*` npm scope. The legacy `chipi-python` package on PyPI is deprecated.
48
+
48
49
  ## Features
49
50
 
50
51
  - 🚀 **Gasless Transactions** - Execute transactions without paying gas fees
@@ -57,13 +58,13 @@ Python SDK for executing gasless transactions on Starknet via Chipi's paymaster
57
58
  ## Installation
58
59
 
59
60
  ```bash
60
- pip install chipi-python
61
+ pip install chipi-stack
61
62
  ```
62
63
 
63
64
  Or with uv:
64
65
 
65
66
  ```bash
66
- uv add chipi-python
67
+ uv add chipi-stack
67
68
  ```
68
69
 
69
70
  ### Requirements
@@ -1,11 +1,13 @@
1
1
  # Chipi Python SDK
2
2
 
3
- [![PyPI version](https://badge.fury.io/py/chipi-python.svg)](https://badge.fury.io/py/chipi-python)
3
+ [![PyPI version](https://badge.fury.io/py/chipi-stack.svg)](https://badge.fury.io/py/chipi-stack)
4
4
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
7
  Python SDK for executing gasless transactions on Starknet via Chipi's paymaster infrastructure.
8
8
 
9
+ > Published to PyPI as **`chipi-stack`** — matches the `@chipi-stack/*` npm scope. The legacy `chipi-python` package on PyPI is deprecated.
10
+
9
11
  ## Features
10
12
 
11
13
  - 🚀 **Gasless Transactions** - Execute transactions without paying gas fees
@@ -18,13 +20,13 @@ Python SDK for executing gasless transactions on Starknet via Chipi's paymaster
18
20
  ## Installation
19
21
 
20
22
  ```bash
21
- pip install chipi-python
23
+ pip install chipi-stack
22
24
  ```
23
25
 
24
26
  Or with uv:
25
27
 
26
28
  ```bash
27
- uv add chipi-python
29
+ uv add chipi-stack
28
30
  ```
29
31
 
30
32
  ### Requirements
@@ -5,7 +5,7 @@ A Python SDK for interacting with Chipi's gasless transaction infrastructure on
5
5
  Supports wallet creation, transaction execution, session keys, and more.
6
6
  """
7
7
 
8
- __version__ = "2.0.0"
8
+ __version__ = "2.1.0"
9
9
 
10
10
  # Main SDK class
11
11
  from .sdk import ChipiSDK
@@ -19,6 +19,7 @@ from .transactions import ChipiTransactions
19
19
  from .sessions import ChipiSessions
20
20
  from .skus import ChipiSkus
21
21
  from .sku_transactions import ChipiSkuTransactions
22
+ from .sku_purchases import ChipiSkuPurchases
22
23
  from .users import ChipiUsers
23
24
 
24
25
  # Models - Core
@@ -26,6 +27,7 @@ from .models.core import (
26
27
  Chain,
27
28
  ChainToken,
28
29
  ChipiSDKConfig,
30
+ Currency,
29
31
  PaginatedResponse,
30
32
  PaginationQuery,
31
33
  StarknetContract,
@@ -103,6 +105,11 @@ from .models.sku_transaction import (
103
105
  SkuTransaction,
104
106
  )
105
107
 
108
+ # Models - SKU Purchase (bill payments)
109
+ from .models.sku_purchase import (
110
+ CreateSkuPurchaseParams,
111
+ )
112
+
106
113
  # Models - User
107
114
  from .models.user import (
108
115
  CreateUserParams,
@@ -205,11 +212,13 @@ __all__ = [
205
212
  "ChipiSessions",
206
213
  "ChipiSkus",
207
214
  "ChipiSkuTransactions",
215
+ "ChipiSkuPurchases",
208
216
  "ChipiUsers",
209
217
  # Core models
210
218
  "Chain",
211
219
  "ChainToken",
212
220
  "ChipiSDKConfig",
221
+ "Currency",
213
222
  "PaginatedResponse",
214
223
  "PaginationQuery",
215
224
  "StarknetContract",
@@ -270,6 +279,8 @@ __all__ = [
270
279
  # SKU Transaction models
271
280
  "CreateSkuTransactionParams",
272
281
  "SkuTransaction",
282
+ # SKU Purchase models (bill payments)
283
+ "CreateSkuPurchaseParams",
273
284
  # User models
274
285
  "CreateUserParams",
275
286
  "GetUserParams",
@@ -35,7 +35,8 @@ API_ENDPOINTS = {
35
35
  "CHIPI_WALLETS": "/chipi-wallets",
36
36
  "TRANSACTIONS": "/transactions",
37
37
  "SKUS": "/skus",
38
- "SKU_TRANSACTIONS": "/sku-transactions",
38
+ "SKU_PURCHASES": "/sku-purchases",
39
+ "SKU_TRANSACTIONS": "/sku-transactions", # legacy / deprecated — see purchase_sku
39
40
  "EXCHANGES": "/exchanges",
40
41
  "USERS": "/users",
41
42
  }
@@ -22,6 +22,12 @@ class ChainToken(str, Enum):
22
22
  OTHER = "OTHER"
23
23
 
24
24
 
25
+ class Currency(str, Enum):
26
+ """Local currencies supported by Chipi services (e.g. SKU purchases)."""
27
+ MXN = "MXN"
28
+ USD = "USD"
29
+
30
+
25
31
  class ChipiSDKConfig(BaseModel):
26
32
  """Configuration for initializing the Chipi SDK."""
27
33
 
@@ -0,0 +1,40 @@
1
+ """Bill payment / SKU purchase types — mirrors @chipi-stack/types CreateSkuPurchaseParams."""
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+ from .core import Chain, ChainToken, Currency
6
+ from .wallet import WalletData, to_camel
7
+
8
+
9
+ class CreateSkuPurchaseParams(BaseModel):
10
+ """
11
+ Parameters for charging a user's gasless wallet for a SKU (bill payment,
12
+ gift card, etc.). Mirrors @chipi-stack/types CreateSkuPurchaseParams; the
13
+ backend endpoint is POST /sku-purchases.
14
+ """
15
+
16
+ model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel)
17
+
18
+ sku_id: str = Field(..., description="SKU identifier from getSkuList / getSku")
19
+ sku_reference: str = Field(
20
+ ...,
21
+ description=(
22
+ "User-facing reference required by the SKU (e.g. phone number for a "
23
+ "phone recharge, account number for a utility bill). Validated "
24
+ "server-side against the SKU's referenceRegexValidation."
25
+ ),
26
+ )
27
+ currency_amount: float = Field(
28
+ ...,
29
+ gt=0,
30
+ description="Amount in the SKU's local currency (e.g. 200 for $200 MXN). Must be > 0.",
31
+ )
32
+ currency: Currency = Field(..., description="Local currency of currency_amount.")
33
+ chain: Chain = Field(..., description="Settlement chain (currently STARKNET).")
34
+ token: ChainToken = Field(
35
+ ..., description="Token used to pay (typically USDC)."
36
+ )
37
+ encrypt_key: str = Field(..., description="User PIN that decrypts the wallet.")
38
+ wallet: WalletData = Field(
39
+ ..., description="The user's gasless wallet (publicKey + encryptedPrivateKey)."
40
+ )
@@ -32,6 +32,7 @@ from .models.wallet import (
32
32
  from .models.session import ExecuteWithSessionParams
33
33
  from .models.sku import Sku, GetSkuListQuery
34
34
  from .models.sku_transaction import CreateSkuTransactionParams, SkuTransaction
35
+ from .models.sku_purchase import CreateSkuPurchaseParams
35
36
  from .models.user import User, CreateUserParams, GetUserParams
36
37
  from .client import ChipiClient
37
38
  from .wallets import ChipiWallets
@@ -39,6 +40,7 @@ from .transactions import ChipiTransactions
39
40
  from .sessions import ChipiSessions
40
41
  from .skus import ChipiSkus
41
42
  from .sku_transactions import ChipiSkuTransactions
43
+ from .sku_purchases import ChipiSkuPurchases
42
44
  from .users import ChipiUsers
43
45
  from .formatters import format_amount
44
46
  from .constants import STARKNET_NETWORKS, CONTRACT_ADDRESSES
@@ -64,6 +66,7 @@ class ChipiSDK:
64
66
  self.sessions = ChipiSessions(self.client)
65
67
  self.skus = ChipiSkus(self.client)
66
68
  self.sku_transactions = ChipiSkuTransactions(self.client)
69
+ self.sku_purchases = ChipiSkuPurchases(self.client)
67
70
  self.users = ChipiUsers(self.client)
68
71
 
69
72
  def _resolve_bearer_token(self, bearer_token: Optional[str] = None) -> str:
@@ -938,6 +941,62 @@ class ChipiSDK:
938
941
  bearer_token=self._resolve_bearer_token(bearer_token),
939
942
  )
940
943
 
944
+ # ===== SKU Purchase (Bill payments) =====
945
+
946
+ async def apurchase_sku(
947
+ self,
948
+ params: CreateSkuPurchaseParams,
949
+ bearer_token: Optional[str] = None,
950
+ ) -> Transaction:
951
+ """
952
+ Charge a gasless wallet for a SKU (bill payment, gift card, ...) — async.
953
+
954
+ Posts to the public POST /sku-purchases endpoint. Mirrors
955
+ ChipiServerSDK.purchaseSku in the Node SDK.
956
+ """
957
+ return await self.sku_purchases.apurchase_sku(
958
+ params=params,
959
+ bearer_token=self._resolve_bearer_token(bearer_token),
960
+ )
961
+
962
+ def purchase_sku(
963
+ self,
964
+ params: CreateSkuPurchaseParams,
965
+ bearer_token: Optional[str] = None,
966
+ ) -> Transaction:
967
+ """
968
+ Charge a gasless wallet for a SKU (bill payment, gift card, ...) — sync.
969
+
970
+ Posts to the public POST /sku-purchases endpoint. Mirrors
971
+ ChipiServerSDK.purchaseSku in the Node SDK.
972
+ """
973
+ return self.sku_purchases.purchase_sku(
974
+ params=params,
975
+ bearer_token=self._resolve_bearer_token(bearer_token),
976
+ )
977
+
978
+ async def aget_sku_purchase(
979
+ self,
980
+ purchase_id: str,
981
+ bearer_token: Optional[str] = None,
982
+ ) -> Transaction:
983
+ """Get a SKU purchase by id (async). Use to poll for SUCCESS / FAILED."""
984
+ return await self.sku_purchases.aget_sku_purchase(
985
+ purchase_id=purchase_id,
986
+ bearer_token=self._resolve_bearer_token(bearer_token),
987
+ )
988
+
989
+ def get_sku_purchase(
990
+ self,
991
+ purchase_id: str,
992
+ bearer_token: Optional[str] = None,
993
+ ) -> Transaction:
994
+ """Get a SKU purchase by id (sync). Use to poll for SUCCESS / FAILED."""
995
+ return self.sku_purchases.get_sku_purchase(
996
+ purchase_id=purchase_id,
997
+ bearer_token=self._resolve_bearer_token(bearer_token),
998
+ )
999
+
941
1000
  # ===== User Methods =====
942
1001
 
943
1002
  async def aget_user(
@@ -0,0 +1,98 @@
1
+ """SKU purchase service — bill payments, gift cards, etc."""
2
+
3
+ from .client import ChipiClient
4
+ from .constants import API_ENDPOINTS
5
+ from .models.sku_purchase import CreateSkuPurchaseParams
6
+ from .models.transaction import Transaction
7
+
8
+
9
+ class ChipiSkuPurchases:
10
+ """SKU purchase / bill payment service."""
11
+
12
+ def __init__(self, client: ChipiClient):
13
+ """
14
+ Initialize SKU purchase manager.
15
+
16
+ Args:
17
+ client: Chipi HTTP client
18
+ """
19
+ self.client = client
20
+
21
+ async def apurchase_sku(
22
+ self, params: CreateSkuPurchaseParams, bearer_token: str
23
+ ) -> Transaction:
24
+ """
25
+ Charge a gasless wallet for a SKU (bill payment, gift card, etc.) — async.
26
+
27
+ Args:
28
+ params: Purchase parameters (skuId, skuReference, amount, wallet, ...)
29
+ bearer_token: Authentication token
30
+
31
+ Returns:
32
+ Transaction record (poll via aget_sku_purchase / get_sku_purchase
33
+ for SUCCESS / FAILED status).
34
+ """
35
+ response = await self.client.apost(
36
+ endpoint=API_ENDPOINTS["SKU_PURCHASES"],
37
+ bearer_token=bearer_token,
38
+ body=params.model_dump(by_alias=True),
39
+ )
40
+ return Transaction(**response)
41
+
42
+ def purchase_sku(
43
+ self, params: CreateSkuPurchaseParams, bearer_token: str
44
+ ) -> Transaction:
45
+ """
46
+ Charge a gasless wallet for a SKU (bill payment, gift card, etc.) — sync.
47
+
48
+ Args:
49
+ params: Purchase parameters (skuId, skuReference, amount, wallet, ...)
50
+ bearer_token: Authentication token
51
+
52
+ Returns:
53
+ Transaction record (poll via get_sku_purchase for SUCCESS / FAILED status).
54
+ """
55
+ response = self.client.post(
56
+ endpoint=API_ENDPOINTS["SKU_PURCHASES"],
57
+ bearer_token=bearer_token,
58
+ body=params.model_dump(by_alias=True),
59
+ )
60
+ return Transaction(**response)
61
+
62
+ async def aget_sku_purchase(
63
+ self, purchase_id: str, bearer_token: str
64
+ ) -> Transaction:
65
+ """
66
+ Get a SKU purchase by id (async). Use for polling settlement status.
67
+
68
+ Args:
69
+ purchase_id: Purchase id from purchase_sku response
70
+ bearer_token: Authentication token
71
+
72
+ Returns:
73
+ Transaction record with current status.
74
+ """
75
+ response = await self.client.aget(
76
+ endpoint=f"{API_ENDPOINTS['SKU_PURCHASES']}/{purchase_id}",
77
+ bearer_token=bearer_token,
78
+ )
79
+ return Transaction(**response)
80
+
81
+ def get_sku_purchase(
82
+ self, purchase_id: str, bearer_token: str
83
+ ) -> Transaction:
84
+ """
85
+ Get a SKU purchase by id (sync). Use for polling settlement status.
86
+
87
+ Args:
88
+ purchase_id: Purchase id from purchase_sku response
89
+ bearer_token: Authentication token
90
+
91
+ Returns:
92
+ Transaction record with current status.
93
+ """
94
+ response = self.client.get(
95
+ endpoint=f"{API_ENDPOINTS['SKU_PURCHASES']}/{purchase_id}",
96
+ bearer_token=bearer_token,
97
+ )
98
+ return Transaction(**response)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chipi-stack
3
- Version: 2.0.0
3
+ Version: 2.1.0
4
4
  Summary: Python SDK for Starknet Gasless Transactions via Chipi
5
5
  Author-email: Carlos Castillo <carlos@chipipay.com>, Roberto Yamanaka <roberto@chipipay.com>
6
6
  License-Expression: MIT
@@ -34,17 +34,18 @@ Requires-Dist: black>=24.0.0; extra == "dev"
34
34
  Requires-Dist: ruff>=0.3.0; extra == "dev"
35
35
  Requires-Dist: mypy>=1.8.0; extra == "dev"
36
36
  Requires-Dist: build>=1.0.0; extra == "dev"
37
- Requires-Dist: twine>=5.0.0; extra == "dev"
38
37
  Dynamic: license-file
39
38
 
40
39
  # Chipi Python SDK
41
40
 
42
- [![PyPI version](https://badge.fury.io/py/chipi-python.svg)](https://badge.fury.io/py/chipi-python)
41
+ [![PyPI version](https://badge.fury.io/py/chipi-stack.svg)](https://badge.fury.io/py/chipi-stack)
43
42
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
44
43
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
45
44
 
46
45
  Python SDK for executing gasless transactions on Starknet via Chipi's paymaster infrastructure.
47
46
 
47
+ > Published to PyPI as **`chipi-stack`** — matches the `@chipi-stack/*` npm scope. The legacy `chipi-python` package on PyPI is deprecated.
48
+
48
49
  ## Features
49
50
 
50
51
  - 🚀 **Gasless Transactions** - Execute transactions without paying gas fees
@@ -57,13 +58,13 @@ Python SDK for executing gasless transactions on Starknet via Chipi's paymaster
57
58
  ## Installation
58
59
 
59
60
  ```bash
60
- pip install chipi-python
61
+ pip install chipi-stack
61
62
  ```
62
63
 
63
64
  Or with uv:
64
65
 
65
66
  ```bash
66
- uv add chipi-python
67
+ uv add chipi-stack
67
68
  ```
68
69
 
69
70
  ### Requirements
@@ -13,6 +13,7 @@ chipi_sdk/formatters.py
13
13
  chipi_sdk/py.typed
14
14
  chipi_sdk/sdk.py
15
15
  chipi_sdk/sessions.py
16
+ chipi_sdk/sku_purchases.py
16
17
  chipi_sdk/sku_transactions.py
17
18
  chipi_sdk/skus.py
18
19
  chipi_sdk/transactions.py
@@ -26,6 +27,7 @@ chipi_sdk/models/__init__.py
26
27
  chipi_sdk/models/core.py
27
28
  chipi_sdk/models/session.py
28
29
  chipi_sdk/models/sku.py
30
+ chipi_sdk/models/sku_purchase.py
29
31
  chipi_sdk/models/sku_transaction.py
30
32
  chipi_sdk/models/transaction.py
31
33
  chipi_sdk/models/user.py
@@ -13,4 +13,3 @@ black>=24.0.0
13
13
  ruff>=0.3.0
14
14
  mypy>=1.8.0
15
15
  build>=1.0.0
16
- twine>=5.0.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "chipi-stack"
7
- version = "2.0.0"
7
+ version = "2.1.0"
8
8
  description = "Python SDK for Starknet Gasless Transactions via Chipi"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -43,7 +43,6 @@ dev = [
43
43
  "ruff>=0.3.0",
44
44
  "mypy>=1.8.0",
45
45
  "build>=1.0.0",
46
- "twine>=5.0.0",
47
46
  ]
48
47
 
49
48
  [project.urls]
File without changes
File without changes
File without changes
File without changes