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.
- algokit_utils/_legacy_v2/account.py +4 -4
- algokit_utils/accounts/account_manager.py +98 -98
- algokit_utils/accounts/kmd_account_manager.py +2 -0
- algokit_utils/applications/app_client.py +122 -161
- algokit_utils/applications/app_factory.py +2 -8
- algokit_utils/assets/asset_manager.py +5 -5
- algokit_utils/clients/client_manager.py +17 -12
- algokit_utils/clients/dispenser_api_client.py +3 -0
- algokit_utils/models/amount.py +71 -69
- algokit_utils/models/network.py +6 -2
- algokit_utils/transactions/transaction_composer.py +19 -15
- {algokit_utils-3.0.0b3.dist-info → algokit_utils-3.0.0b5.dist-info}/METADATA +1 -1
- {algokit_utils-3.0.0b3.dist-info → algokit_utils-3.0.0b5.dist-info}/RECORD +15 -15
- {algokit_utils-3.0.0b3.dist-info → algokit_utils-3.0.0b5.dist-info}/LICENSE +0 -0
- {algokit_utils-3.0.0b3.dist-info → algokit_utils-3.0.0b5.dist-info}/WHEEL +0 -0
algokit_utils/models/amount.py
CHANGED
|
@@ -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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
68
|
+
>>> amount = AlgoAmount.from_algo(1)
|
|
88
69
|
"""
|
|
89
|
-
return AlgoAmount(
|
|
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
|
-
|
|
80
|
+
>>> amount = AlgoAmount.from_micro_algo(1_000_000)
|
|
112
81
|
"""
|
|
113
|
-
return AlgoAmount(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
190
|
-
return AlgoAmount.
|
|
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.
|
|
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)
|
algokit_utils/models/network.py
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
304
|
+
or compiled teal (bytes)
|
|
303
305
|
:ivar clear_state_program: The program to execute for ClearState OnComplete as raw teal (string)
|
|
304
|
-
|
|
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
|
-
|
|
335
|
+
or compiled teal (bytes)
|
|
334
336
|
:ivar clear_state_program: The program to execute for ClearState OnComplete as raw teal (string)
|
|
335
|
-
|
|
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
|
-
|
|
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).
|
|
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).
|
|
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).
|
|
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
|
-
|
|
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.
|
|
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.
|
|
1855
|
+
txn.fee += params.extra_fee.micro_algo
|
|
1852
1856
|
|
|
1853
|
-
if params.max_fee and txn.fee > params.max_fee.
|
|
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.
|
|
2044
|
+
"amt": params.amount.micro_algo,
|
|
2041
2045
|
"close_remainder_to": params.close_remainder_to,
|
|
2042
2046
|
}
|
|
2043
2047
|
|
|
@@ -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=
|
|
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=
|
|
18
|
-
algokit_utils/accounts/kmd_account_manager.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
42
|
-
algokit_utils/clients/dispenser_api_client.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
68
|
-
algokit_utils-3.0.
|
|
69
|
-
algokit_utils-3.0.
|
|
70
|
-
algokit_utils-3.0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|