algokit-utils 2.2.2b4__py3-none-any.whl → 2.2.2b5__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.

@@ -1,5 +1,6 @@
1
1
  import base64
2
2
  import copy
3
+ import dataclasses
3
4
  import json
4
5
  import logging
5
6
  import re
@@ -58,7 +59,6 @@ if typing.TYPE_CHECKING:
58
59
  from algosdk.v2client.algod import AlgodClient
59
60
  from algosdk.v2client.indexer import IndexerClient
60
61
 
61
-
62
62
  logger = logging.getLogger(__name__)
63
63
 
64
64
 
@@ -375,7 +375,7 @@ class ApplicationClient:
375
375
  ) -> None:
376
376
  """Adds a signed transaction with application id == 0 and the schema and source of client's app_spec to atc"""
377
377
  approval_program, clear_program = self._check_is_compiled()
378
- transaction_parameters = _convert_transaction_parameters(transaction_parameters)
378
+ transaction_parameters = _convert_transaction_parameters(CreateCallParameters, transaction_parameters)
379
379
 
380
380
  extra_pages = transaction_parameters.extra_pages or num_extra_program_pages(
381
381
  approval_program.raw_binary, clear_program.raw_binary
@@ -388,7 +388,7 @@ class ApplicationClient:
388
388
  abi_args=abi_kwargs,
389
389
  on_complete=transaction_parameters.on_complete or transaction.OnComplete.NoOpOC,
390
390
  call_config=au_spec.CallConfig.CREATE,
391
- parameters=transaction_parameters,
391
+ parameters=_convert_transaction_parameters(TransactionParameters, transaction_parameters),
392
392
  approval_program=approval_program.raw_binary,
393
393
  clear_program=clear_program.raw_binary,
394
394
  global_schema=self.app_spec.global_state_schema,
@@ -567,12 +567,12 @@ class ApplicationClient:
567
567
  **abi_kwargs: ABIArgType,
568
568
  ) -> None:
569
569
  """Adds a signed transaction with specified parameters to atc"""
570
- _parameters = _convert_transaction_parameters(transaction_parameters)
570
+ _parameters = _convert_transaction_parameters(OnCompleteCallParameters, transaction_parameters)
571
571
  self.add_method_call(
572
572
  atc,
573
573
  abi_method=call_abi_method,
574
574
  abi_args=abi_kwargs,
575
- parameters=_parameters,
575
+ parameters=_convert_transaction_parameters(TransactionParameters, transaction_parameters),
576
576
  on_complete=_parameters.on_complete or transaction.OnComplete.NoOpOC,
577
577
  )
578
578
 
@@ -607,7 +607,7 @@ class ApplicationClient:
607
607
  ) -> TransactionResponse | ABITransactionResponse:
608
608
  """Submits a signed transaction with specified parameters"""
609
609
  atc = AtomicTransactionComposer()
610
- _parameters = _convert_transaction_parameters(transaction_parameters)
610
+ _parameters = _convert_transaction_parameters(OnCompleteCallParameters, transaction_parameters)
611
611
  self.compose_call(
612
612
  atc,
613
613
  call_abi_method=call_abi_method,
@@ -1003,7 +1003,7 @@ class ApplicationClient:
1003
1003
  if app_id is None:
1004
1004
  self._load_reference_and_check_app_id()
1005
1005
  app_id = self.app_id
1006
- parameters = _convert_transaction_parameters(parameters)
1006
+ parameters = _convert_transaction_parameters(TransactionParameters, parameters)
1007
1007
  method = self._resolve_method(abi_method, abi_args, on_complete, call_config)
1008
1008
  sp = parameters.suggested_params or self.suggested_params or self.algod_client.suggested_params()
1009
1009
  signer, sender = self.resolve_signer_sender(parameters.signer, parameters.sender)
@@ -1317,11 +1317,18 @@ def _create_simulate_traces(simulate: SimulateAtomicTransactionResponse) -> list
1317
1317
  return traces
1318
1318
 
1319
1319
 
1320
+ _TParams = typing.TypeVar("_TParams", TransactionParameters, OnCompleteCallParameters, CreateCallParameters)
1321
+
1322
+
1320
1323
  def _convert_transaction_parameters(
1321
- args: TransactionParameters | TransactionParametersDict | None,
1322
- ) -> CreateCallParameters:
1323
- _args = args.__dict__ if isinstance(args, TransactionParameters) else (args or {})
1324
- return CreateCallParameters(**_args)
1324
+ cls: type[_TParams],
1325
+ args: object | None,
1326
+ ) -> _TParams:
1327
+ if args is None:
1328
+ return cls()
1329
+ args_dict = args.__dict__ if not isinstance(args, dict) else (args or {})
1330
+ _args = {f.name: args_dict[f.name] for f in dataclasses.fields(cls) if f.name in args_dict}
1331
+ return cls(**_args)
1325
1332
 
1326
1333
 
1327
1334
  def get_sender_from_signer(signer: TransactionSigner | None) -> str | None:
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: algokit-utils
3
- Version: 2.2.2b4
3
+ Version: 2.2.2b5
4
4
  Summary: Utilities for Algorand development for use by AlgoKit
5
5
  License: MIT
6
6
  Author: Algorand Foundation
@@ -3,18 +3,18 @@ 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
9
  algokit_utils/common.py,sha256=K6-3_9dv2clDn0WMYb8AWE_N46kWWIXglZIPfHIowDs,812
10
10
  algokit_utils/config.py,sha256=oY3o1kPzVPRiQH--f4HzrMMNPojT078CSudqS9WQaEc,4279
11
- algokit_utils/deploy.py,sha256=ydE3QSq1lRkjXQC9zdFclywx8q1UgV9l-l3Mx-shbHg,34668
11
+ algokit_utils/deploy.py,sha256=BxIFPtZd1lO8o_JmQQDIKk0O93E_bE-ZzglEWXwbefw,35110
12
12
  algokit_utils/dispenser_api.py,sha256=BpwEhKDig6qz54wbO-htG8hmLxFIrvdzXpESUb7Y1zw,5584
13
13
  algokit_utils/logic_error.py,sha256=YeE70qHZ6WBeoKCXqnto3uBg8R4ODXiNZkLmfEmASQo,2617
14
- algokit_utils/models.py,sha256=GWpZQ2bTGfkldM12VZntGlVJTFBTtWf5SM7ZYXC_LHE,8238
14
+ algokit_utils/models.py,sha256=iJUiV6eLq5N_FKki4X5ll5rYQslU_wSPiSTtl61Z1CI,12803
15
15
  algokit_utils/network_clients.py,sha256=sj5y_g5uclddWCEyUCptA-KjWuAtLV06hZH4QIGM1yE,5313
16
16
  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,,
17
+ algokit_utils-2.2.2b5.dist-info/LICENSE,sha256=J5i7U1Q9Q2c7saUzlvFRmrCCFhQyXb5Juz_LO5omNUw,1076
18
+ algokit_utils-2.2.2b5.dist-info/METADATA,sha256=8mkuN9VkBEa_Z2oH1GmzccM-SH63NFZmlBsXxc5CHQ4,2207
19
+ algokit_utils-2.2.2b5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
20
+ algokit_utils-2.2.2b5.dist-info/RECORD,,