algokit-utils 3.0.0b3__py3-none-any.whl → 3.0.0b5__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,45 +1,46 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from decimal import Decimal
4
+ from typing import overload
4
5
 
5
6
  import algosdk
6
7
  from typing_extensions import Self
7
8
 
8
- __all__ = ["AlgoAmount"]
9
+ __all__ = ["ALGORAND_MIN_TX_FEE", "AlgoAmount", "algo", "micro_algo", "transaction_fees"]
9
10
 
10
11
 
11
12
  class AlgoAmount:
12
13
  """Wrapper class to ensure safe, explicit conversion between µAlgo, Algo and numbers.
13
14
 
14
- :param amount: A dictionary containing either algos, algo, microAlgos, or microAlgo as key
15
- and their corresponding value as an integer or Decimal.
16
- :raises ValueError: If an invalid amount format is provided.
17
-
18
15
  :example:
19
- >>> amount = AlgoAmount({"algos": 1})
20
- >>> amount = AlgoAmount({"microAlgos": 1_000_000})
16
+ >>> amount = AlgoAmount(algo=1)
17
+ >>> amount = AlgoAmount.from_algo(1)
18
+ >>> amount = AlgoAmount(micro_algo=1_000_000)
19
+ >>> amount = AlgoAmount.from_micro_algo(1_000_000)
21
20
  """
22
21
 
23
- def __init__(self, amount: dict[str, int | Decimal]):
24
- if "microAlgos" in amount:
25
- self.amount_in_micro_algo = int(amount["microAlgos"])
26
- elif "microAlgo" in amount:
27
- self.amount_in_micro_algo = int(amount["microAlgo"])
28
- elif "algos" in amount:
29
- self.amount_in_micro_algo = int(amount["algos"] * algosdk.constants.MICROALGOS_TO_ALGOS_RATIO)
30
- elif "algo" in amount:
31
- self.amount_in_micro_algo = int(amount["algo"] * algosdk.constants.MICROALGOS_TO_ALGOS_RATIO)
22
+ @overload
23
+ def __init__(self, *, micro_algo: int) -> None: ...
24
+
25
+ @overload
26
+ def __init__(self, *, algo: int | Decimal) -> None: ...
27
+
28
+ def __init__(
29
+ self,
30
+ *,
31
+ micro_algo: int | None = None,
32
+ algo: int | Decimal | None = None,
33
+ ):
34
+ if micro_algo is None and algo is None:
35
+ raise ValueError("No amount provided")
36
+
37
+ if micro_algo is not None:
38
+ self.amount_in_micro_algo = int(micro_algo)
39
+ elif algo is not None:
40
+ self.amount_in_micro_algo = int(algo * algosdk.constants.MICROALGOS_TO_ALGOS_RATIO)
32
41
  else:
33
42
  raise ValueError("Invalid amount provided")
34
43
 
35
- @property
36
- def micro_algos(self) -> int:
37
- """Return the amount as a number in µAlgo.
38
-
39
- :returns: The amount in µAlgo.
40
- """
41
- return self.amount_in_micro_algo
42
-
43
44
  @property
44
45
  def micro_algo(self) -> int:
45
46
  """Return the amount as a number in µAlgo.
@@ -48,14 +49,6 @@ class AlgoAmount:
48
49
  """
49
50
  return self.amount_in_micro_algo
50
51
 
51
- @property
52
- def algos(self) -> Decimal:
53
- """Return the amount as a number in Algo.
54
-
55
- :returns: The amount in Algo.
56
- """
57
- return algosdk.util.microalgos_to_algos(self.amount_in_micro_algo) # type: ignore[no-any-return]
58
-
59
52
  @property
60
53
  def algo(self) -> Decimal:
61
54
  """Return the amount as a number in Algo.
@@ -64,18 +57,6 @@ class AlgoAmount:
64
57
  """
65
58
  return algosdk.util.microalgos_to_algos(self.amount_in_micro_algo) # type: ignore[no-any-return]
66
59
 
67
- @staticmethod
68
- def from_algos(amount: int | Decimal) -> AlgoAmount:
69
- """Create an AlgoAmount object representing the given number of Algo.
70
-
71
- :param amount: The amount in Algo.
72
- :returns: An AlgoAmount instance.
73
-
74
- :example:
75
- >>> amount = AlgoAmount.from_algos(1)
76
- """
77
- return AlgoAmount({"algos": amount})
78
-
79
60
  @staticmethod
80
61
  def from_algo(amount: int | Decimal) -> AlgoAmount:
81
62
  """Create an AlgoAmount object representing the given number of Algo.
@@ -84,21 +65,9 @@ class AlgoAmount:
84
65
  :returns: An AlgoAmount instance.
85
66
 
86
67
  :example:
87
- >>> amount = AlgoAmount.from_algo(1)
68
+ >>> amount = AlgoAmount.from_algo(1)
88
69
  """
89
- return AlgoAmount({"algo": amount})
90
-
91
- @staticmethod
92
- def from_micro_algos(amount: int) -> AlgoAmount:
93
- """Create an AlgoAmount object representing the given number of µAlgo.
94
-
95
- :param amount: The amount in µAlgo.
96
- :returns: An AlgoAmount instance.
97
-
98
- :example:
99
- >>> amount = AlgoAmount.from_micro_algos(1_000_000)
100
- """
101
- return AlgoAmount({"microAlgos": amount})
70
+ return AlgoAmount(algo=amount)
102
71
 
103
72
  @staticmethod
104
73
  def from_micro_algo(amount: int) -> AlgoAmount:
@@ -108,29 +77,29 @@ class AlgoAmount:
108
77
  :returns: An AlgoAmount instance.
109
78
 
110
79
  :example:
111
- >>> amount = AlgoAmount.from_micro_algo(1_000_000)
80
+ >>> amount = AlgoAmount.from_micro_algo(1_000_000)
112
81
  """
113
- return AlgoAmount({"microAlgo": amount})
82
+ return AlgoAmount(micro_algo=amount)
114
83
 
115
84
  def __str__(self) -> str:
116
85
  return f"{self.micro_algo:,} µALGO"
117
86
 
118
87
  def __int__(self) -> int:
119
- return self.micro_algos
88
+ return self.micro_algo
120
89
 
121
90
  def __add__(self, other: AlgoAmount) -> AlgoAmount:
122
91
  if isinstance(other, AlgoAmount):
123
- total_micro_algos = self.micro_algos + other.micro_algos
92
+ total_micro_algos = self.micro_algo + other.micro_algo
124
93
  else:
125
94
  raise TypeError(f"Unsupported operand type(s) for +: 'AlgoAmount' and '{type(other).__name__}'")
126
- return AlgoAmount.from_micro_algos(total_micro_algos)
95
+ return AlgoAmount.from_micro_algo(total_micro_algos)
127
96
 
128
97
  def __radd__(self, other: AlgoAmount) -> AlgoAmount:
129
98
  return self.__add__(other)
130
99
 
131
100
  def __iadd__(self, other: AlgoAmount) -> Self:
132
101
  if isinstance(other, AlgoAmount):
133
- self.amount_in_micro_algo += other.micro_algos
102
+ self.amount_in_micro_algo += other.micro_algo
134
103
  else:
135
104
  raise TypeError(f"Unsupported operand type(s) for +: 'AlgoAmount' and '{type(other).__name__}'")
136
105
  return self
@@ -179,20 +148,53 @@ class AlgoAmount:
179
148
 
180
149
  def __sub__(self, other: AlgoAmount) -> AlgoAmount:
181
150
  if isinstance(other, AlgoAmount):
182
- total_micro_algos = self.micro_algos - other.micro_algos
151
+ total_micro_algos = self.micro_algo - other.micro_algo
183
152
  else:
184
153
  raise TypeError(f"Unsupported operand type(s) for -: 'AlgoAmount' and '{type(other).__name__}'")
185
- return AlgoAmount.from_micro_algos(total_micro_algos)
154
+ return AlgoAmount.from_micro_algo(total_micro_algos)
186
155
 
187
156
  def __rsub__(self, other: int) -> AlgoAmount:
188
157
  if isinstance(other, (int)):
189
- total_micro_algos = int(other) - self.micro_algos
190
- return AlgoAmount.from_micro_algos(total_micro_algos)
158
+ total_micro_algos = int(other) - self.micro_algo
159
+ return AlgoAmount.from_micro_algo(total_micro_algos)
191
160
  raise TypeError(f"Unsupported operand type(s) for -: '{type(other).__name__}' and 'AlgoAmount'")
192
161
 
193
162
  def __isub__(self, other: AlgoAmount) -> Self:
194
163
  if isinstance(other, AlgoAmount):
195
- self.amount_in_micro_algo -= other.micro_algos
164
+ self.amount_in_micro_algo -= other.micro_algo
196
165
  else:
197
166
  raise TypeError(f"Unsupported operand type(s) for -: 'AlgoAmount' and '{type(other).__name__}'")
198
167
  return self
168
+
169
+
170
+ # Helper functions
171
+ def algo(algo: int) -> AlgoAmount:
172
+ """Create an AlgoAmount object representing the given number of Algo.
173
+
174
+ :param algo: The number of Algo to create an AlgoAmount object for.
175
+ :return: An AlgoAmount object representing the given number of Algo.
176
+ """
177
+ return AlgoAmount.from_algo(algo)
178
+
179
+
180
+ def micro_algo(micro_algo: int) -> AlgoAmount:
181
+ """Create an AlgoAmount object representing the given number of µAlgo.
182
+
183
+ :param micro_algo: The number of µAlgo to create an AlgoAmount object for.
184
+ :return: An AlgoAmount object representing the given number of µAlgo.
185
+ """
186
+ return AlgoAmount.from_micro_algo(micro_algo)
187
+
188
+
189
+ ALGORAND_MIN_TX_FEE = micro_algo(1_000)
190
+
191
+
192
+ def transaction_fees(number_of_transactions: int) -> AlgoAmount:
193
+ """Calculate the total transaction fees for a given number of transactions.
194
+
195
+ :param number_of_transactions: The number of transactions to calculate the fees for.
196
+ :return: The total transaction fees.
197
+ """
198
+
199
+ total_micro_algos = number_of_transactions * ALGORAND_MIN_TX_FEE.micro_algo
200
+ return AlgoAmount.from_micro_algo(total_micro_algos)
@@ -12,11 +12,15 @@ class AlgoClientNetworkConfig:
12
12
  {py:class}`algosdk.v2client.indexer.IndexerClient`"""
13
13
 
14
14
  server: str
15
- """URL for the service e.g. `http://localhost:4001` or `https://testnet-api.algonode.cloud`"""
15
+ """URL for the service e.g. `http://localhost` or `https://testnet-api.algonode.cloud`"""
16
16
  token: str | None = None
17
- """API Token to authenticate with the service"""
17
+ """API Token to authenticate with the service e.g '4001' or '8980'"""
18
18
  port: str | int | None = None
19
19
 
20
+ def full_url(self) -> str:
21
+ """Returns the full URL for the service"""
22
+ return f"{self.server.rstrip('/')}{f':{self.port}' if self.port else ''}"
23
+
20
24
 
21
25
  @dataclasses.dataclass
22
26
  class AlgoClientConfigs:
@@ -68,6 +68,8 @@ __all__ = [
68
68
  "TransactionComposer",
69
69
  "TransactionComposerBuildResult",
70
70
  "TxnParams",
71
+ "populate_app_call_resources",
72
+ "prepare_group_for_sending",
71
73
  "send_atomic_transaction_composer",
72
74
  ]
73
75
 
@@ -107,7 +109,7 @@ class PaymentParams(_CommonTxnParams):
107
109
  :ivar receiver: The account that will receive the ALGO
108
110
  :ivar amount: Amount to send
109
111
  :ivar close_remainder_to: If given, close the sender account and send the remaining balance to this address,
110
- defaults to None
112
+ defaults to None
111
113
  """
112
114
 
113
115
  receiver: str
@@ -299,9 +301,9 @@ class AppCreateParams(_CommonTxnParams):
299
301
  """Parameters for creating an application.
300
302
 
301
303
  :ivar approval_program: The program to execute for all OnCompletes other than ClearState as raw teal (string)
302
- or compiled teal (bytes)
304
+ or compiled teal (bytes)
303
305
  :ivar clear_state_program: The program to execute for ClearState OnComplete as raw teal (string)
304
- or compiled teal (bytes)
306
+ or compiled teal (bytes)
305
307
  :ivar schema: The state schema for the app. This is immutable, defaults to None
306
308
  :ivar on_complete: The OnComplete action (cannot be ClearState), defaults to None
307
309
  :ivar args: Application arguments, defaults to None
@@ -330,9 +332,9 @@ class AppUpdateParams(_CommonTxnParams):
330
332
 
331
333
  :ivar app_id: ID of the application
332
334
  :ivar approval_program: The program to execute for all OnCompletes other than ClearState as raw teal (string)
333
- or compiled teal (bytes)
335
+ or compiled teal (bytes)
334
336
  :ivar clear_state_program: The program to execute for ClearState OnComplete as raw teal (string)
335
- or compiled teal (bytes)
337
+ or compiled teal (bytes)
336
338
  :ivar args: Application arguments, defaults to None
337
339
  :ivar account_references: Account references, defaults to None
338
340
  :ivar app_references: App references, defaults to None
@@ -417,7 +419,7 @@ class AppCallMethodCallParams(_BaseAppMethodCall):
417
419
  :ivar app_id: ID of the application
418
420
  :ivar method: The ABI method to call
419
421
  :ivar args: Arguments to the ABI method, either an ABI value, transaction with explicit signer,
420
- transaction, another method call, or None
422
+ transaction, another method call, or None
421
423
  :ivar on_complete: The OnComplete action (cannot be UpdateApplication or ClearState), defaults to None
422
424
  """
423
425
 
@@ -673,7 +675,7 @@ def _get_group_execution_info( # noqa: C901, PLR0912
673
675
  if not suggested_params:
674
676
  raise ValueError("suggested_params required when cover_app_call_inner_transaction_fees enabled")
675
677
 
676
- max_fee = max_fees.get(i).micro_algos if max_fees and i in max_fees else None # type: ignore[union-attr]
678
+ max_fee = max_fees.get(i).micro_algo if max_fees and i in max_fees else None # type: ignore[union-attr]
677
679
  if max_fee is None:
678
680
  app_call_indexes_without_max_fees.append(i)
679
681
  else:
@@ -843,7 +845,7 @@ def prepare_group_for_sending( # noqa: C901, PLR0912, PLR0915
843
845
  if not txn_info:
844
846
  continue
845
847
  txn = group[i].txn
846
- max_fee = max_fees.get(i).micro_algos if max_fees and i in max_fees else None # type: ignore[union-attr]
848
+ max_fee = max_fees.get(i).micro_algo if max_fees and i in max_fees else None # type: ignore[union-attr]
847
849
  immutable_fee = max_fee is not None and max_fee == txn.fee
848
850
  priority_multiplier = (
849
851
  1000
@@ -1096,7 +1098,7 @@ def prepare_group_for_sending( # noqa: C901, PLR0912, PLR0915
1096
1098
  )
1097
1099
 
1098
1100
  transaction_fee = cur_txn.fee + additional_fee
1099
- max_fee = max_fees.get(i).micro_algos if max_fees and i in max_fees else None # type: ignore[union-attr]
1101
+ max_fee = max_fees.get(i).micro_algo if max_fees and i in max_fees else None # type: ignore[union-attr]
1100
1102
 
1101
1103
  if max_fee is None or transaction_fee > max_fee:
1102
1104
  raise ValueError(
@@ -1324,7 +1326,7 @@ class TransactionComposer:
1324
1326
  :param algod: An instance of AlgodClient used to get suggested params and send transactions
1325
1327
  :param get_signer: A function that takes an address and returns a TransactionSigner for that address
1326
1328
  :param get_suggested_params: Optional function to get suggested transaction parameters,
1327
- defaults to using algod.suggested_params()
1329
+ defaults to using algod.suggested_params()
1328
1330
  :param default_validity_window: Optional default validity window for transactions in rounds, defaults to 10
1329
1331
  :param app_manager: Optional AppManager instance for compiling TEAL programs, defaults to None
1330
1332
  """
@@ -1600,6 +1602,8 @@ class TransactionComposer:
1600
1602
  signers[idx] = ts.signer
1601
1603
  if isinstance(ts, TransactionWithSignerAndContext) and ts.context.abi_method:
1602
1604
  method_calls[idx] = ts.context.abi_method
1605
+ if ts.context.max_fee:
1606
+ self._txn_max_fees[idx] = ts.context.max_fee
1603
1607
  idx += 1
1604
1608
 
1605
1609
  return BuiltTransactions(transactions=transactions, method_calls=method_calls, signers=signers)
@@ -1681,7 +1685,7 @@ class TransactionComposer:
1681
1685
 
1682
1686
  :param allow_more_logs: Whether to allow more logs than the standard limit
1683
1687
  :param allow_empty_signatures: Whether to allow transactions with empty signatures
1684
- :param allow_unnamed_resources: Whether to allow unnamed resources
1688
+ :param allow_unnamed_resources: Whether to allow unnamed resources.
1685
1689
  :param extra_opcode_budget: Additional opcode budget to allocate
1686
1690
  :param exec_trace_config: Configuration for execution tracing
1687
1691
  :param simulation_round: Round number to simulate at
@@ -1839,7 +1843,7 @@ class TransactionComposer:
1839
1843
  txn_params["sp"].last = txn_params["sp"].first + window
1840
1844
 
1841
1845
  if params.static_fee is not None and txn_params["sp"]:
1842
- txn_params["sp"].fee = params.static_fee.micro_algos
1846
+ txn_params["sp"].fee = params.static_fee.micro_algo
1843
1847
  txn_params["sp"].flat_fee = True
1844
1848
 
1845
1849
  if isinstance(txn_params.get("method"), Arc56Method):
@@ -1848,9 +1852,9 @@ class TransactionComposer:
1848
1852
  txn = build_txn(txn_params)
1849
1853
 
1850
1854
  if params.extra_fee:
1851
- txn.fee += params.extra_fee.micro_algos
1855
+ txn.fee += params.extra_fee.micro_algo
1852
1856
 
1853
- if params.max_fee and txn.fee > params.max_fee.micro_algos:
1857
+ if params.max_fee and txn.fee > params.max_fee.micro_algo:
1854
1858
  raise ValueError(f"Transaction fee {txn.fee} is greater than max_fee {params.max_fee}")
1855
1859
  use_max_fee = params.max_fee and params.max_fee.micro_algo > (
1856
1860
  params.static_fee.micro_algo if params.static_fee else 0
@@ -2037,7 +2041,7 @@ class TransactionComposer:
2037
2041
  "sender": params.sender,
2038
2042
  "sp": suggested_params,
2039
2043
  "receiver": params.receiver,
2040
- "amt": params.amount.micro_algos,
2044
+ "amt": params.amount.micro_algo,
2041
2045
  "close_remainder_to": params.close_remainder_to,
2042
2046
  }
2043
2047
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: algokit-utils
3
- Version: 3.0.0b3
3
+ Version: 3.0.0b5
4
4
  Summary: Utilities for Algorand development for use by AlgoKit
5
5
  License: MIT
6
6
  Author: Algorand Foundation
@@ -3,7 +3,7 @@ algokit_utils/_debugging.py,sha256=nAiC10WXiZsvc0RPWOrMLpjJQZT_ItgcMl7D9Z4DfYc,1
3
3
  algokit_utils/_legacy_v2/__init__.py,sha256=WcRE30axWjGnBB09bJCeTw9NT-2_jDN_CVJITFcIDc8,4689
4
4
  algokit_utils/_legacy_v2/_ensure_funded.py,sha256=tw4ZEcqsKBHbSCH9gPz3V2onGaj1kyv6BM9V59fLgCU,6931
5
5
  algokit_utils/_legacy_v2/_transfer.py,sha256=FRut71CU8kDn4-FqMepwZGjFPhPtQg5Wv5_kdtVqK-8,6256
6
- algokit_utils/_legacy_v2/account.py,sha256=yP3t7qB-fAXfLf8G5buYgsdknwrdigzrWsTu08XJWuE,8224
6
+ algokit_utils/_legacy_v2/account.py,sha256=_4pxTKO6y9XK4CkUb1M9Du_XVXKeU1MWXHx54KPVbMk,8240
7
7
  algokit_utils/_legacy_v2/application_client.py,sha256=ScUalY2h2Wj_TAPYdxuucAmdwRwvO-xZ0yOMXDb9OgE,59536
8
8
  algokit_utils/_legacy_v2/application_specification.py,sha256=wp2Y9ou2_F-bSFbDnm6AEhFexybmD7-fAT0CuWtO26g,521
9
9
  algokit_utils/_legacy_v2/asset.py,sha256=b4GEzsPuHAbb330ZjoyY3lol0SisQGwJiOpnXvuXvJI,7594
@@ -14,16 +14,16 @@ algokit_utils/_legacy_v2/models.py,sha256=hH7aO50E4po4EgxXI9zdX5HTthn1HLfSLvkuPf
14
14
  algokit_utils/_legacy_v2/network_clients.py,sha256=5nqC-47hreWvMxR-PQWs_QP44wJDAGhtS1MQv8JQ82o,5660
15
15
  algokit_utils/account.py,sha256=gyGrBSoafUh8WV677IzYGkYoxtzzElsgxGMp4SgA4pk,410
16
16
  algokit_utils/accounts/__init__.py,sha256=_LyY0se6TaQOes7vAcmbpt6pmG4VKlzfTt37-IjwimA,138
17
- algokit_utils/accounts/account_manager.py,sha256=KWJWX_4rFWhMcK54x7-k6ooI5BNLQGWjM2kXwMbh1eg,39361
18
- algokit_utils/accounts/kmd_account_manager.py,sha256=7HF2eKYULu6TAXSSXrSGZG7i6VuIEMyf6Ppmo5hE3EI,6342
17
+ algokit_utils/accounts/account_manager.py,sha256=zr8NV6k9L8xESzsmbFK06T-DOmVEvHWcoHgIIX5SDcQ,39763
18
+ algokit_utils/accounts/kmd_account_manager.py,sha256=0flsU5T11JciyL0YvOKDHPVSm-ghV0RjJAbtm8JwrhU,6476
19
19
  algokit_utils/algorand.py,sha256=Gtx3vspZmSxUrNWmh09NFQB24G4v4CEogYuRX_9o5Xw,10554
20
20
  algokit_utils/application_client.py,sha256=5UIxXIBjukjRyjZPCeXmaNlAftbb3TziV7EfBolW79k,337
21
21
  algokit_utils/application_specification.py,sha256=-ZM13Qv-AcLmwudJCq8xGPoWLvAvKBICgAdHeFozKbY,1416
22
22
  algokit_utils/applications/__init__.py,sha256=NGjhpBeExsQZOAYCT2QUFag1xuKoFiX-Ux5SR2GNzd8,452
23
23
  algokit_utils/applications/abi.py,sha256=ZwiLuFXx2EwWJ_cOEvNWCzt5onoasm-QmQPv9N7d49g,10087
24
- algokit_utils/applications/app_client.py,sha256=O6nuxT5iMasYzncyljieI34UcARnTIRuHKCvxudaSyo,85964
24
+ algokit_utils/applications/app_client.py,sha256=oAwe9_6-ETWJIdXNScDvUiVYN8JNP4kplSnr3qCQPVY,84979
25
25
  algokit_utils/applications/app_deployer.py,sha256=RrSmIsbN84z0lNtGD8JP2FwkDmsAD_HvF8b4kHnCSmo,23099
26
- algokit_utils/applications/app_factory.py,sha256=yLe5TAss_r4JjE06rdtU7y2dmR9GrMh7JWG8ggApD-k,33605
26
+ algokit_utils/applications/app_factory.py,sha256=wljyXuXWaMc3KJkDeACJ5XVEfIsVxeSXqdGTJ9p3tJQ,33425
27
27
  algokit_utils/applications/app_manager.py,sha256=EA1uRtmvPVAdKi1I5HSCpHjIDgLN7eZcEPT0Cj3C7fU,17661
28
28
  algokit_utils/applications/app_spec/__init__.py,sha256=HtjAhAqHNFml9WbRKGmhJnwyJeW8AztPRO_BriQ84vs,140
29
29
  algokit_utils/applications/app_spec/arc32.py,sha256=8MMGUopPzkWq48rl5sYbc2Awf-RKnxSX8F0P0UibK5M,7523
@@ -31,15 +31,15 @@ algokit_utils/applications/app_spec/arc56.py,sha256=8GyQ_gDBSkHLzTL35D1r7dce5owh
31
31
  algokit_utils/applications/enums.py,sha256=1MUBrPW9v0-OZk6jsa5rqSEEpC-z-6QAQIs9G7pLn1I,1257
32
32
  algokit_utils/asset.py,sha256=ZnNo_MsDGPb8UTPxi7cmIZpbrT0x0xZjblHP01pDAC0,874
33
33
  algokit_utils/assets/__init__.py,sha256=6igogt0eo0TEae6-rO9qPsmlrKkbnkq3aV8wtePX3yk,63
34
- algokit_utils/assets/asset_manager.py,sha256=S4-ob-JO31aCq3N9tqI2JREtq2R7eJ8F6WTXbQczvg4,14132
34
+ algokit_utils/assets/asset_manager.py,sha256=0vs02dbXarAkVxehM4XJp_AHveZCujIPfnQVXiwhZiw,14152
35
35
  algokit_utils/beta/_utils.py,sha256=eGgrSH5dA7Lhe7Z_9rudU7O6azZHMH0U7A3in4GpFOg,1839
36
36
  algokit_utils/beta/account_manager.py,sha256=xDFvsMSha0Ki42BGvKvfScQWT_W9y4GeP_RWXjc3vnE,213
37
37
  algokit_utils/beta/algorand_client.py,sha256=xDFvsMSha0Ki42BGvKvfScQWT_W9y4GeP_RWXjc3vnE,213
38
38
  algokit_utils/beta/client_manager.py,sha256=xDFvsMSha0Ki42BGvKvfScQWT_W9y4GeP_RWXjc3vnE,213
39
39
  algokit_utils/beta/composer.py,sha256=xDFvsMSha0Ki42BGvKvfScQWT_W9y4GeP_RWXjc3vnE,213
40
40
  algokit_utils/clients/__init__.py,sha256=qUuKBvfLnw4z6ZU9x7mc-mLjfnnXC9UcvtoeU33ZLJ8,136
41
- algokit_utils/clients/client_manager.py,sha256=DzJMf_jdQoZYNcy0sK34Uv-IenqJmfAupkqzo_Asp-A,25683
42
- algokit_utils/clients/dispenser_api_client.py,sha256=NDb6h7TVPR3qnkJNZIW1zlD5ufTlYLPnm5DeXCpR5Fc,5869
41
+ algokit_utils/clients/client_manager.py,sha256=Yl5k7LwlUaoHh76tNK1UxFl8xoFdaTejrhrr488E0Ww,25559
42
+ algokit_utils/clients/dispenser_api_client.py,sha256=lx6II3beCt7YiKO2TrW6UbsRVirf3NoWMJi8HD_W5nI,6045
43
43
  algokit_utils/common.py,sha256=5wl83vWw91RYdEC4hTTufqaptKiFtgjKLIyONDmRSH0,300
44
44
  algokit_utils/config.py,sha256=Fd466a33pyqmblKn3YUEoSqMSGbKDmZeaS5Uu7_CNHw,7029
45
45
  algokit_utils/deploy.py,sha256=UUtSDI6JcBUuto62FuirhUlDcjZwQyLkiERgDMx8P7A,330
@@ -49,9 +49,9 @@ algokit_utils/errors/logic_error.py,sha256=uxqUOU9-D1R5TrKturCbmmWRVlB024Ca4CfVi
49
49
  algokit_utils/logic_error.py,sha256=3duw-l6tBr-DeapO0e0tYHoa9rOxP-QZZ6QWmN8L9tc,305
50
50
  algokit_utils/models/__init__.py,sha256=0aB_c5pnkqKl1Z0hkxM9qbKn2qVdizZE2DvziN9ObqM,465
51
51
  algokit_utils/models/account.py,sha256=TdeKjhYkppD8g0DYRGbnCsi8zfPz3zU74DaZte_CYJw,6014
52
- algokit_utils/models/amount.py,sha256=s9_2BCI5BOI_k9dnjNZZ0mNLwOOjlQyuTW4qgHUnTKI,7627
52
+ algokit_utils/models/amount.py,sha256=PcjzqRY5ThcUuSYHk1yeYgUooos1j2-54hBIJJcipd4,7567
53
53
  algokit_utils/models/application.py,sha256=lM2_g5kZ18k_zyVzcbGvkvqHzksfb2sgRqowJ3pvUgo,1288
54
- algokit_utils/models/network.py,sha256=Qe631nHpLgjtGcwqWTc6D4Gk_5Fc_dutxD-bCTsb-xw,723
54
+ algokit_utils/models/network.py,sha256=3QNcZ9jVmckv3CCxrD2Y1jiwBdBGdaaziiRgOpsqhwI,904
55
55
  algokit_utils/models/simulate.py,sha256=F9OSEfA9QGFGe5po24h8IGLor5z1ogu5Cwm3l6cHnAs,236
56
56
  algokit_utils/models/state.py,sha256=N6jsjZiZsz-Rn1ZDnBRvVv1En-lUrh97JuaaDRZtCkg,1478
57
57
  algokit_utils/models/transaction.py,sha256=Am0-rmfiANVq9_Zbd1zMTtaV91ZcPqtEfpp2ScQ2Ji8,3052
@@ -61,10 +61,10 @@ algokit_utils/protocols/account.py,sha256=CowaVY7ErBP84TWBHNvBjkZy18whPb8HIlMZtJ
61
61
  algokit_utils/protocols/typed_clients.py,sha256=UrQrHbN2SvS8pEFJ8JQodvouoWeBrQOQGZGyBQx1KLM,3322
62
62
  algokit_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  algokit_utils/transactions/__init__.py,sha256=7fYF3m6DyOGzbV36MT5svo0wSkj9AIz496kWgIWSAlk,225
64
- algokit_utils/transactions/transaction_composer.py,sha256=yGLFgJk51BKgnwbGYmmuDIE7WPpZZmHqVAVZ7IWcRDQ,94794
64
+ algokit_utils/transactions/transaction_composer.py,sha256=AZ4xVHH1IFSKSoxdHpvGVfa2v-e9MkZGiXilCHnjfqE,94996
65
65
  algokit_utils/transactions/transaction_creator.py,sha256=A1YHeGC2EkR2V0HPYJiXVOAEIrfjBW2KVyYgi3exm4E,6167
66
66
  algokit_utils/transactions/transaction_sender.py,sha256=uQmHElJgUIxLXfdklMNoabjQQzUku8CFP82wwhfr44E,22769
67
- algokit_utils-3.0.0b3.dist-info/LICENSE,sha256=J5i7U1Q9Q2c7saUzlvFRmrCCFhQyXb5Juz_LO5omNUw,1076
68
- algokit_utils-3.0.0b3.dist-info/METADATA,sha256=s6SYm28_fAjF_SD0UtYwyfMdttrg7qvOmwKoTkYpKdw,2416
69
- algokit_utils-3.0.0b3.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
70
- algokit_utils-3.0.0b3.dist-info/RECORD,,
67
+ algokit_utils-3.0.0b5.dist-info/LICENSE,sha256=J5i7U1Q9Q2c7saUzlvFRmrCCFhQyXb5Juz_LO5omNUw,1076
68
+ algokit_utils-3.0.0b5.dist-info/METADATA,sha256=agxt079grOlLMzeM0hMFI9g-yl8PfBbVqKUVCMAF1M8,2416
69
+ algokit_utils-3.0.0b5.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
70
+ algokit_utils-3.0.0b5.dist-info/RECORD,,