algokit-utils 2.2.2b4__py3-none-any.whl → 2.3.0b1__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 algokit-utils might be problematic. Click here for more details.

algokit_utils/deploy.py CHANGED
@@ -23,6 +23,7 @@ from algokit_utils.models import (
23
23
  ABIMethod,
24
24
  Account,
25
25
  CreateCallParameters,
26
+ TransactionParameters,
26
27
  TransactionResponse,
27
28
  )
28
29
 
@@ -724,7 +725,7 @@ class Deployer:
724
725
  def _create_app(self) -> DeployResponse:
725
726
  assert self.app_client.existing_deployments
726
727
 
727
- method, abi_args, parameters = _convert_deploy_args(
728
+ method, abi_args, parameters = _convert_create_deploy_args(
728
729
  self.create_args, self.new_app_metadata, self.signer, self.sender
729
730
  )
730
731
  create_response = self.app_client.create(
@@ -751,7 +752,7 @@ class Deployer:
751
752
  f"{self.new_app_metadata.name} ({self.new_app_metadata.version}) in {self.creator} account."
752
753
  )
753
754
  atc = AtomicTransactionComposer()
754
- create_method, create_abi_args, create_parameters = _convert_deploy_args(
755
+ create_method, create_abi_args, create_parameters = _convert_create_deploy_args(
755
756
  self.create_args, self.new_app_metadata, self.signer, self.sender
756
757
  )
757
758
  self.app_client.compose_create(
@@ -850,11 +851,10 @@ def _convert_deploy_args(
850
851
  note: AppDeployMetaData,
851
852
  signer: TransactionSigner | None,
852
853
  sender: str | None,
853
- ) -> tuple[ABIMethod | bool | None, ABIArgsDict, CreateCallParameters]:
854
+ ) -> tuple[ABIMethod | bool | None, ABIArgsDict, TransactionParameters]:
854
855
  args = _args.__dict__ if isinstance(_args, DeployCallArgs) else (_args or {})
855
856
 
856
- # return most derived type, unused parameters are ignored
857
- parameters = CreateCallParameters(
857
+ parameters = TransactionParameters(
858
858
  note=note.encode(),
859
859
  signer=signer,
860
860
  sender=sender,
@@ -865,11 +865,25 @@ def _convert_deploy_args(
865
865
  foreign_apps=args.get("foreign_apps"),
866
866
  boxes=args.get("boxes"),
867
867
  rekey_to=args.get("rekey_to"),
868
+ )
869
+
870
+ return args.get("method"), args.get("args") or {}, parameters
871
+
872
+
873
+ def _convert_create_deploy_args(
874
+ _args: DeployCallArgs | DeployCallArgsDict | None,
875
+ note: AppDeployMetaData,
876
+ signer: TransactionSigner | None,
877
+ sender: str | None,
878
+ ) -> tuple[ABIMethod | bool | None, ABIArgsDict, CreateCallParameters]:
879
+ method, args, parameters = _convert_deploy_args(_args, note, signer, sender)
880
+ create_parameters = CreateCallParameters(
881
+ **parameters.__dict__,
868
882
  extra_pages=args.get("extra_pages"),
869
883
  on_complete=args.get("on_complete"),
870
884
  )
871
885
 
872
- return args.get("method"), args.get("args") or {}, parameters
886
+ return method, args, create_parameters
873
887
 
874
888
 
875
889
  def get_app_id_from_tx_id(algod_client: "AlgodClient", tx_id: str) -> int:
algokit_utils/models.py CHANGED
@@ -155,25 +155,86 @@ class TransactionParameters:
155
155
 
156
156
  # CreateTransactionParameters is used by algokit-client-generator clients
157
157
  @dataclasses.dataclass(kw_only=True)
158
- class CreateTransactionParameters(TransactionParameters):
158
+ class CreateTransactionParameters:
159
159
  """Additional parameters that can be included in a transaction when calling a create method"""
160
160
 
161
+ signer: TransactionSigner | None = None
162
+ """Signer to use when signing this transaction"""
163
+ sender: str | None = None
164
+ """Sender of this transaction"""
165
+ suggested_params: transaction.SuggestedParams | None = None
166
+ """SuggestedParams to use for this transaction"""
167
+ note: bytes | str | None = None
168
+ """Note for this transaction"""
169
+ lease: bytes | str | None = None
170
+ """Lease value for this transaction"""
171
+ boxes: Sequence[tuple[int, bytes | bytearray | str | int]] | None = None
172
+ """Box references to include in transaction. A sequence of (app id, box key) tuples"""
173
+ accounts: list[str] | None = None
174
+ """Accounts to include in transaction"""
175
+ foreign_apps: list[int] | None = None
176
+ """List of foreign apps (by app id) to include in transaction"""
177
+ foreign_assets: list[int] | None = None
178
+ """List of foreign assets (by asset id) to include in transaction"""
179
+ rekey_to: str | None = None
180
+ """Address to rekey to"""
161
181
  extra_pages: int | None = None
162
182
 
163
183
 
164
184
  @dataclasses.dataclass(kw_only=True)
165
- class OnCompleteCallParameters(TransactionParameters):
185
+ class OnCompleteCallParameters:
166
186
  """Additional parameters that can be included in a transaction when using the
167
187
  ApplicationClient.call/compose_call methods"""
168
188
 
189
+ signer: TransactionSigner | None = None
190
+ """Signer to use when signing this transaction"""
191
+ sender: str | None = None
192
+ """Sender of this transaction"""
193
+ suggested_params: transaction.SuggestedParams | None = None
194
+ """SuggestedParams to use for this transaction"""
195
+ note: bytes | str | None = None
196
+ """Note for this transaction"""
197
+ lease: bytes | str | None = None
198
+ """Lease value for this transaction"""
199
+ boxes: Sequence[tuple[int, bytes | bytearray | str | int]] | None = None
200
+ """Box references to include in transaction. A sequence of (app id, box key) tuples"""
201
+ accounts: list[str] | None = None
202
+ """Accounts to include in transaction"""
203
+ foreign_apps: list[int] | None = None
204
+ """List of foreign apps (by app id) to include in transaction"""
205
+ foreign_assets: list[int] | None = None
206
+ """List of foreign assets (by asset id) to include in transaction"""
207
+ rekey_to: str | None = None
208
+ """Address to rekey to"""
169
209
  on_complete: transaction.OnComplete | None = None
170
210
 
171
211
 
172
212
  @dataclasses.dataclass(kw_only=True)
173
- class CreateCallParameters(OnCompleteCallParameters):
213
+ class CreateCallParameters:
174
214
  """Additional parameters that can be included in a transaction when using the
175
215
  ApplicationClient.create/compose_create methods"""
176
216
 
217
+ signer: TransactionSigner | None = None
218
+ """Signer to use when signing this transaction"""
219
+ sender: str | None = None
220
+ """Sender of this transaction"""
221
+ suggested_params: transaction.SuggestedParams | None = None
222
+ """SuggestedParams to use for this transaction"""
223
+ note: bytes | str | None = None
224
+ """Note for this transaction"""
225
+ lease: bytes | str | None = None
226
+ """Lease value for this transaction"""
227
+ boxes: Sequence[tuple[int, bytes | bytearray | str | int]] | None = None
228
+ """Box references to include in transaction. A sequence of (app id, box key) tuples"""
229
+ accounts: list[str] | None = None
230
+ """Accounts to include in transaction"""
231
+ foreign_apps: list[int] | None = None
232
+ """List of foreign apps (by app id) to include in transaction"""
233
+ foreign_assets: list[int] | None = None
234
+ """List of foreign assets (by asset id) to include in transaction"""
235
+ rekey_to: str | None = None
236
+ """Address to rekey to"""
237
+ on_complete: transaction.OnComplete | None = None
177
238
  extra_pages: int | None = None
178
239
 
179
240
 
@@ -202,17 +263,58 @@ class TransactionParametersDict(TypedDict, total=False):
202
263
  """Address to rekey to"""
203
264
 
204
265
 
205
- class OnCompleteCallParametersDict(TypedDict, TransactionParametersDict, total=False):
266
+ class OnCompleteCallParametersDict(TypedDict, total=False):
206
267
  """Additional parameters that can be included in a transaction when using the
207
268
  ApplicationClient.call/compose_call methods"""
208
269
 
270
+ signer: TransactionSigner
271
+ """Signer to use when signing this transaction"""
272
+ sender: str
273
+ """Sender of this transaction"""
274
+ suggested_params: transaction.SuggestedParams
275
+ """SuggestedParams to use for this transaction"""
276
+ note: bytes | str
277
+ """Note for this transaction"""
278
+ lease: bytes | str
279
+ """Lease value for this transaction"""
280
+ boxes: Sequence[tuple[int, bytes | bytearray | str | int]]
281
+ """Box references to include in transaction. A sequence of (app id, box key) tuples"""
282
+ accounts: list[str]
283
+ """Accounts to include in transaction"""
284
+ foreign_apps: list[int]
285
+ """List of foreign apps (by app id) to include in transaction"""
286
+ foreign_assets: list[int]
287
+ """List of foreign assets (by asset id) to include in transaction"""
288
+ rekey_to: str
289
+ """Address to rekey to"""
209
290
  on_complete: transaction.OnComplete
210
291
 
211
292
 
212
- class CreateCallParametersDict(TypedDict, OnCompleteCallParametersDict, total=False):
293
+ class CreateCallParametersDict(TypedDict, total=False):
213
294
  """Additional parameters that can be included in a transaction when using the
214
295
  ApplicationClient.create/compose_create methods"""
215
296
 
297
+ signer: TransactionSigner
298
+ """Signer to use when signing this transaction"""
299
+ sender: str
300
+ """Sender of this transaction"""
301
+ suggested_params: transaction.SuggestedParams
302
+ """SuggestedParams to use for this transaction"""
303
+ note: bytes | str
304
+ """Note for this transaction"""
305
+ lease: bytes | str
306
+ """Lease value for this transaction"""
307
+ boxes: Sequence[tuple[int, bytes | bytearray | str | int]]
308
+ """Box references to include in transaction. A sequence of (app id, box key) tuples"""
309
+ accounts: list[str]
310
+ """Accounts to include in transaction"""
311
+ foreign_apps: list[int]
312
+ """List of foreign apps (by app id) to include in transaction"""
313
+ foreign_assets: list[int]
314
+ """List of foreign assets (by asset id) to include in transaction"""
315
+ rekey_to: str
316
+ """Address to rekey to"""
317
+ on_complete: transaction.OnComplete
216
318
  extra_pages: int
217
319
 
218
320
 
@@ -18,6 +18,8 @@ __all__ = [
18
18
  "is_localnet",
19
19
  "is_mainnet",
20
20
  "is_testnet",
21
+ "AlgoClientConfigs",
22
+ "get_kmd_client",
21
23
  ]
22
24
 
23
25
  _PURE_STAKE_HOST = "purestake.io"
@@ -34,6 +36,13 @@ class AlgoClientConfig:
34
36
  """API Token to authenticate with the service"""
35
37
 
36
38
 
39
+ @dataclasses.dataclass
40
+ class AlgoClientConfigs:
41
+ algod_config: AlgoClientConfig
42
+ indexer_config: AlgoClientConfig
43
+ kmd_config: AlgoClientConfig | None
44
+
45
+
37
46
  def get_default_localnet_config(config: Literal["algod", "indexer", "kmd"]) -> AlgoClientConfig:
38
47
  """Returns the client configuration to point to the default LocalNet"""
39
48
  port = {"algod": 4001, "indexer": 8980, "kmd": 4002}[config]
@@ -69,6 +78,14 @@ def get_algod_client(config: AlgoClientConfig | None = None) -> AlgodClient:
69
78
  return AlgodClient(config.token, config.server, headers)
70
79
 
71
80
 
81
+ def get_kmd_client(config: AlgoClientConfig | None = None) -> KMDClient:
82
+ """Returns an {py:class}`algosdk.kmd.KMDClient` from `config` or environment
83
+
84
+ If no configuration provided will use environment variables `KMD_SERVER`, `KMD_PORT` and `KMD_TOKEN`"""
85
+ config = config or _get_config_from_environment("KMD")
86
+ return KMDClient(config.token, config.server) # type: ignore[no-untyped-call]
87
+
88
+
72
89
  def get_indexer_client(config: AlgoClientConfig | None = None) -> IndexerClient:
73
90
  """Returns an {py:class}`algosdk.v2client.indexer.IndexerClient` from `config` or environment.
74
91
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: algokit-utils
3
- Version: 2.2.2b4
3
+ Version: 2.3.0b1
4
4
  Summary: Utilities for Algorand development for use by AlgoKit
5
5
  License: MIT
6
6
  Author: Algorand Foundation
@@ -3,18 +3,22 @@ algokit_utils/_debugging.py,sha256=4UC5NZGqxF32y742TUB34rX9kWaObXCCPOs-lbkQjGQ,1
3
3
  algokit_utils/_ensure_funded.py,sha256=ZdEdUB43QGIQrg7cSSgNrDmWaLSUhli9x9I6juwKfgo,6786
4
4
  algokit_utils/_transfer.py,sha256=CyXGOR_Zy-2crQhk-78uUbB8Sj_ZeTzxPwOAHU7wwno,5947
5
5
  algokit_utils/account.py,sha256=UIuOQZe28pQxjEP9TzhtYlOU20tUdzzS-nIIZM9Bp6Y,7364
6
- algokit_utils/application_client.py,sha256=xOZJ8i3y8wDJL0Uvaw1o-UmJKvSmbv8ib5RwGl4ar0w,58661
6
+ algokit_utils/application_client.py,sha256=qylA2aI4Ecs532bIs6fyc6FgLnWey9PBzZBZW_jnYtk,59092
7
7
  algokit_utils/application_specification.py,sha256=XusOe7VrGPun2UoNspC9Ei202NzPkxRNx5USXiABuXc,7466
8
8
  algokit_utils/asset.py,sha256=jsc7T1dH9HZA3Yve2gRLObwUlK6xLDoQz0NxLLnqaGs,7216
9
+ algokit_utils/beta/account_manager.py,sha256=dSb-jpBAWRfmKFYzG6T8t5vkh6ysX2NkZXl5UcZY5WA,8015
10
+ algokit_utils/beta/algorand_client.py,sha256=y1CYYn_ADwgOLTVID9BFMvdubDgKqUfx9R6XH3PrzsA,12649
11
+ algokit_utils/beta/client_manager.py,sha256=rW58VVBdYAV_5QwXNyt3VMP8NGon_IRhq1Dr35Mp31g,3117
12
+ algokit_utils/beta/composer.py,sha256=qpIWQ6Xeysk1FzqW8AntHJ_go_W2qIEDB4uvGFOOdgM,28627
9
13
  algokit_utils/common.py,sha256=K6-3_9dv2clDn0WMYb8AWE_N46kWWIXglZIPfHIowDs,812
10
14
  algokit_utils/config.py,sha256=oY3o1kPzVPRiQH--f4HzrMMNPojT078CSudqS9WQaEc,4279
11
- algokit_utils/deploy.py,sha256=ydE3QSq1lRkjXQC9zdFclywx8q1UgV9l-l3Mx-shbHg,34668
15
+ algokit_utils/deploy.py,sha256=BxIFPtZd1lO8o_JmQQDIKk0O93E_bE-ZzglEWXwbefw,35110
12
16
  algokit_utils/dispenser_api.py,sha256=BpwEhKDig6qz54wbO-htG8hmLxFIrvdzXpESUb7Y1zw,5584
13
17
  algokit_utils/logic_error.py,sha256=YeE70qHZ6WBeoKCXqnto3uBg8R4ODXiNZkLmfEmASQo,2617
14
- algokit_utils/models.py,sha256=GWpZQ2bTGfkldM12VZntGlVJTFBTtWf5SM7ZYXC_LHE,8238
15
- algokit_utils/network_clients.py,sha256=sj5y_g5uclddWCEyUCptA-KjWuAtLV06hZH4QIGM1yE,5313
18
+ algokit_utils/models.py,sha256=iJUiV6eLq5N_FKki4X5ll5rYQslU_wSPiSTtl61Z1CI,12803
19
+ algokit_utils/network_clients.py,sha256=O4nJ3ECms4hFbuB1X64nzTMNOfK1Uj2oyjKxeieri-g,5929
16
20
  algokit_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- algokit_utils-2.2.2b4.dist-info/LICENSE,sha256=J5i7U1Q9Q2c7saUzlvFRmrCCFhQyXb5Juz_LO5omNUw,1076
18
- algokit_utils-2.2.2b4.dist-info/METADATA,sha256=ljuQvwihRxkVXBUYrOfYDY7t3IKXOQBOlYK-DWS_3ko,2207
19
- algokit_utils-2.2.2b4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
20
- algokit_utils-2.2.2b4.dist-info/RECORD,,
21
+ algokit_utils-2.3.0b1.dist-info/LICENSE,sha256=J5i7U1Q9Q2c7saUzlvFRmrCCFhQyXb5Juz_LO5omNUw,1076
22
+ algokit_utils-2.3.0b1.dist-info/METADATA,sha256=dybj019jKMUl-xvnqX0pKgaKzNT2snOiY_APCekP21Q,2207
23
+ algokit_utils-2.3.0b1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
24
+ algokit_utils-2.3.0b1.dist-info/RECORD,,