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.
- algokit_utils/application_client.py +18 -11
- algokit_utils/deploy.py +20 -6
- algokit_utils/models.py +107 -5
- {algokit_utils-2.2.2b4.dist-info → algokit_utils-2.2.2b5.dist-info}/METADATA +1 -1
- {algokit_utils-2.2.2b4.dist-info → algokit_utils-2.2.2b5.dist-info}/RECORD +7 -7
- {algokit_utils-2.2.2b4.dist-info → algokit_utils-2.2.2b5.dist-info}/LICENSE +0 -0
- {algokit_utils-2.2.2b4.dist-info → algokit_utils-2.2.2b5.dist-info}/WHEEL +0 -0
|
@@ -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=
|
|
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
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
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 =
|
|
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 =
|
|
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,
|
|
854
|
+
) -> tuple[ABIMethod | bool | None, ABIArgsDict, TransactionParameters]:
|
|
854
855
|
args = _args.__dict__ if isinstance(_args, DeployCallArgs) else (_args or {})
|
|
855
856
|
|
|
856
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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.
|
|
18
|
-
algokit_utils-2.2.
|
|
19
|
-
algokit_utils-2.2.
|
|
20
|
-
algokit_utils-2.2.
|
|
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,,
|
|
File without changes
|
|
File without changes
|