algorand-python-testing 1.0.0b1__tar.gz → 1.1.0__tar.gz

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.
Files changed (411) hide show
  1. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/CHANGELOG.md +56 -0
  2. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/PKG-INFO +2 -2
  3. algorand_python_testing-1.1.0/docs/algopy.md +9 -0
  4. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/api.md +3 -3
  5. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/coverage.md +8 -1
  6. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/examples.md +3 -3
  7. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/faq.md +5 -5
  8. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/index.md +2 -2
  9. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/arc4-types.md +5 -5
  10. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/avm-types.md +1 -1
  11. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/concepts.md +18 -11
  12. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/contract-testing.md +4 -4
  13. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/index.md +3 -3
  14. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/opcodes.md +2 -2
  15. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/transactions.md +4 -4
  16. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/marketplace/contract.py +14 -14
  17. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/marketplace/test_contract.py +12 -12
  18. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/proof_of_attendance/contract.py +4 -4
  19. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/pyproject.toml +9 -9
  20. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/scripts/refresh_test_artifacts.py +4 -0
  21. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/scripts/validate_examples.py +3 -1
  22. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/arc4.py +148 -60
  23. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/context_helpers/txn_context.py +2 -1
  24. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/decorators/arc4.py +68 -22
  25. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/itxn.py +20 -12
  26. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/account.py +3 -0
  27. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/application.py +1 -0
  28. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/contract.py +1 -1
  29. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/txn_fields.py +187 -17
  30. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/pure.py +8 -9
  31. algorand_python_testing-1.1.0/src/_algopy_testing/primitives/__init__.py +27 -0
  32. algorand_python_testing-1.1.0/src/_algopy_testing/primitives/array.py +590 -0
  33. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/primitives/bytes.py +3 -2
  34. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/serialize.py +67 -7
  35. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/state/box.py +71 -3
  36. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/utils.py +23 -4
  37. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/value_generators/avm.py +1 -0
  38. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/__init__.py +19 -2
  39. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/conftest.py +1 -1
  40. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_address.py +7 -0
  41. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_arc4_method_signature.py +104 -1
  42. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_bool.py +4 -1
  43. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_dynamic_array.py +57 -0
  44. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_dynamic_bytes.py +6 -6
  45. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_emit.py +2 -2
  46. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_static_array.py +67 -0
  47. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_string.py +4 -1
  48. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_struct.py +2 -0
  49. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_tuple.py +2 -0
  50. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_ufixednxm.py +6 -2
  51. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_uintn.py +77 -5
  52. algorand_python_testing-1.1.0/tests/artifacts/AVM12/contract.py +45 -0
  53. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/Contract.approval.teal +161 -0
  54. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/Contract.arc56.json +131 -0
  55. {algorand_python_testing-1.0.0b1/tests/artifacts/Arrays → algorand_python_testing-1.1.0/tests/artifacts/AVM12}/data/Contract.clear.teal +1 -1
  56. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV0.approval.teal +52 -0
  57. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV0.arc56.json +102 -0
  58. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal → algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV0.clear.teal +1 -1
  59. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV1.approval.teal +52 -0
  60. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV1.arc56.json +102 -0
  61. algorand_python_testing-1.1.0/tests/artifacts/AVM12/data/ContractV1.clear.teal +7 -0
  62. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4ABIMethod/contract.py +35 -5
  63. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +310 -303
  64. algorand_python_testing-1.1.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +305 -0
  65. algorand_python_testing-1.1.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +498 -0
  66. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +22 -36
  67. algorand_python_testing-1.1.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +55 -0
  68. algorand_python_testing-1.1.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +101 -0
  69. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4PrimitiveOps/contract.py +21 -1
  70. algorand_python_testing-1.1.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +1809 -0
  71. algorand_python_testing-1.1.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +1101 -0
  72. algorand_python_testing-1.1.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +1587 -0
  73. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +1 -1
  74. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/data/Contract.approval.teal +665 -711
  75. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/Contract.arc32.json +198 -0
  76. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/Contract.arc56.json +379 -0
  77. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/Contract.clear.teal +7 -0
  78. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +274 -0
  79. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +144 -0
  80. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +7 -0
  81. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +1612 -1672
  82. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +498 -0
  83. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +840 -0
  84. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +1 -1
  85. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +272 -0
  86. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +144 -0
  87. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +1101 -0
  88. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +175 -0
  89. algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +334 -0
  90. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +1 -1
  91. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/immutable.py +195 -10
  92. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/static_size.py +61 -14
  93. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arrays/uint64.py +62 -18
  94. algorand_python_testing-1.1.0/tests/artifacts/BoxContract/contract.py +350 -0
  95. algorand_python_testing-1.1.0/tests/artifacts/BoxContract/data/BoxContract.approval.teal +1797 -0
  96. algorand_python_testing-1.1.0/tests/artifacts/BoxContract/data/BoxContract.arc32.json +63 -0
  97. algorand_python_testing-1.1.0/tests/artifacts/BoxContract/data/BoxContract.arc56.json +780 -0
  98. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +1 -1
  99. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Contains/data/MyContract.approval.teal +1 -1
  100. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Contains/data/MyContract.clear.teal +1 -1
  101. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +20 -25
  102. algorand_python_testing-1.1.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +50 -0
  103. algorand_python_testing-1.1.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +96 -0
  104. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +1 -1
  105. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +53 -97
  106. algorand_python_testing-1.1.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +77 -0
  107. algorand_python_testing-1.1.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +181 -0
  108. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +1 -1
  109. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +359 -634
  110. algorand_python_testing-1.1.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +368 -0
  111. algorand_python_testing-1.1.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +450 -0
  112. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +1 -1
  113. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +24 -40
  114. algorand_python_testing-1.1.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +59 -0
  115. algorand_python_testing-1.1.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +111 -0
  116. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +1 -1
  117. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/MiscellaneousOps/contract.py +4 -4
  118. algorand_python_testing-1.1.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +940 -0
  119. algorand_python_testing-1.1.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +858 -0
  120. algorand_python_testing-1.1.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +1012 -0
  121. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +1 -1
  122. algorand_python_testing-1.1.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +1669 -0
  123. algorand_python_testing-1.1.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +1393 -0
  124. algorand_python_testing-1.1.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +1616 -0
  125. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +1 -1
  126. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +190 -157
  127. algorand_python_testing-1.1.0/tests/artifacts/StateMutations/data/StateMutations.arc32.json +95 -0
  128. algorand_python_testing-1.1.0/tests/artifacts/StateMutations/data/StateMutations.arc56.json +276 -0
  129. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +1 -1
  130. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/contract.py +15 -15
  131. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +354 -774
  132. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +563 -0
  133. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +801 -0
  134. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +1 -1
  135. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +14 -21
  136. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +1 -1
  137. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +96 -0
  138. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +1 -1
  139. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +489 -0
  140. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +381 -0
  141. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +583 -0
  142. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +1 -1
  143. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +249 -522
  144. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +307 -0
  145. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +478 -0
  146. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +7 -0
  147. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +188 -0
  148. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +188 -0
  149. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +254 -0
  150. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +1 -1
  151. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +11 -11
  152. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +1 -1
  153. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +104 -0
  154. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +1 -1
  155. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +246 -0
  156. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +251 -0
  157. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +329 -0
  158. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +1 -1
  159. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +16 -21
  160. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +63 -0
  161. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +112 -0
  162. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +1 -1
  163. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +134 -306
  164. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +199 -0
  165. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +297 -0
  166. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +1 -1
  167. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +76 -0
  168. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +81 -0
  169. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +130 -0
  170. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +1 -1
  171. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +184 -413
  172. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +253 -0
  173. algorand_python_testing-1.1.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +366 -0
  174. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +1 -1
  175. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Tuples/data/TuplesContract.approval.teal +8 -14
  176. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Tuples/data/TuplesContract.arc32.json +1 -1
  177. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Tuples/data/TuplesContract.arc56.json +8 -14
  178. algorand_python_testing-1.1.0/tests/artifacts/Tuples/data/TuplesContract.clear.teal +7 -0
  179. algorand_python_testing-1.1.0/tests/avm12/conftest.py +14 -0
  180. algorand_python_testing-1.1.0/tests/avm12/test_avm12.py +66 -0
  181. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_box.py +223 -4
  182. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_box_map.py +25 -0
  183. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_box_ref.py +53 -42
  184. {algorand_python_testing-1.0.0b1/tests/utilities → algorand_python_testing-1.1.0/tests/primitives}/conftest.py +1 -1
  185. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/state/conftest.py +2 -2
  186. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/state/test_global_state.py +1 -1
  187. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/test_array.py +64 -14
  188. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/test_context.py +1 -1
  189. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/test_miscellaneous_op.py +60 -62
  190. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/test_op.py +9 -9
  191. algorand_python_testing-1.1.0/tests/utilities/__init__.py +0 -0
  192. {algorand_python_testing-1.0.0b1/tests/primitives → algorand_python_testing-1.1.0/tests/utilities}/conftest.py +1 -1
  193. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/utilities/test_log.py +2 -2
  194. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/utilities/test_size_of.py +33 -5
  195. algorand_python_testing-1.1.0/tests/value_generators/__init__.py +0 -0
  196. algorand_python_testing-1.0.0b1/docs/algopy.md +0 -9
  197. algorand_python_testing-1.0.0b1/src/_algopy_testing/primitives/__init__.py +0 -7
  198. algorand_python_testing-1.0.0b1/src/_algopy_testing/primitives/array.py +0 -144
  199. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -253
  200. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +0 -420
  201. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -55
  202. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +0 -107
  203. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -2349
  204. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -1029
  205. algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +0 -1586
  206. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/Contract.arc32.json +0 -172
  207. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/Contract.arc56.json +0 -347
  208. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -450
  209. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +0 -718
  210. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -895
  211. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -162
  212. algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +0 -274
  213. algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract/contract.py +0 -19
  214. algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -120
  215. algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -63
  216. algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract/data/BoxContract.arc56.json +0 -145
  217. algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -50
  218. algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +0 -102
  219. algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -77
  220. algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +0 -189
  221. algorand_python_testing-1.0.0b1/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -368
  222. algorand_python_testing-1.0.0b1/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +0 -480
  223. algorand_python_testing-1.0.0b1/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -59
  224. algorand_python_testing-1.0.0b1/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +0 -117
  225. algorand_python_testing-1.0.0b1/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -1656
  226. algorand_python_testing-1.0.0b1/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -858
  227. algorand_python_testing-1.0.0b1/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +0 -1090
  228. algorand_python_testing-1.0.0b1/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -2834
  229. algorand_python_testing-1.0.0b1/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -1393
  230. algorand_python_testing-1.0.0b1/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +0 -1740
  231. algorand_python_testing-1.0.0b1/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -95
  232. algorand_python_testing-1.0.0b1/tests/artifacts/StateMutations/data/StateMutations.arc56.json +0 -264
  233. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -563
  234. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +0 -865
  235. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +0 -102
  236. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -780
  237. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -381
  238. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +0 -618
  239. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -307
  240. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +0 -512
  241. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -311
  242. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -188
  243. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +0 -272
  244. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +0 -104
  245. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -406
  246. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -251
  247. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +0 -350
  248. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -63
  249. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +0 -118
  250. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -199
  251. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +0 -319
  252. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -122
  253. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -81
  254. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +0 -138
  255. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -253
  256. algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +0 -394
  257. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.coveragerc +0 -0
  258. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.editorconfig +0 -0
  259. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  260. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  261. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/dependabot.yml +0 -0
  262. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/pull_request_template.md +0 -0
  263. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/workflows/cd.yaml +0 -0
  264. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/workflows/ci.yaml +0 -0
  265. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.github/workflows/gh-pages.yaml +0 -0
  266. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.gitignore +0 -0
  267. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.pre-commit-config.yaml +0 -0
  268. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.vscode/extensions.json +0 -0
  269. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.vscode/launch.json +0 -0
  270. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/.vscode/settings.json +0 -0
  271. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/CONTRIBUTING.md +0 -0
  272. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/LICENSE +0 -0
  273. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/README.md +0 -0
  274. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/Makefile +0 -0
  275. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/__init__.py +0 -0
  276. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/_static/custom.css +0 -0
  277. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/conf.py +0 -0
  278. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/make.bat +0 -0
  279. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/signature-testing.md +0 -0
  280. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/state-management.md +0 -0
  281. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/docs/testing-guide/subroutines.md +0 -0
  282. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/README.md +0 -0
  283. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/__init__.py +0 -0
  284. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/auction/__init__.py +0 -0
  285. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/auction/contract.py +0 -0
  286. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/auction/test_contract.py +0 -0
  287. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/htlc_logicsig/__init__.py +0 -0
  288. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/htlc_logicsig/signature.py +0 -0
  289. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/htlc_logicsig/test_signature.py +0 -0
  290. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/marketplace/__init__.py +0 -0
  291. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/proof_of_attendance/__init__.py +0 -0
  292. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/proof_of_attendance/test_contract.py +0 -0
  293. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/scratch_storage/__init__.py +0 -0
  294. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/scratch_storage/contract.py +0 -0
  295. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/scratch_storage/test_contract.py +0 -0
  296. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/simple_voting/__init__.py +0 -0
  297. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/simple_voting/contract.py +0 -0
  298. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/simple_voting/test_contract.py +0 -0
  299. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/zk_whitelist/__init__.py +0 -0
  300. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/zk_whitelist/contract.py +0 -0
  301. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/examples/zk_whitelist/test_contract.py +0 -0
  302. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/scripts/__init__.py +0 -0
  303. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/scripts/check_stubs_cov.py +0 -0
  304. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/__init__.py +0 -0
  305. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/compiled.py +0 -0
  306. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/constants.py +0 -0
  307. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/context.py +0 -0
  308. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/context_helpers/__init__.py +0 -0
  309. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
  310. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
  311. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/decorators/__init__.py +0 -0
  312. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/decorators/subroutine.py +0 -0
  313. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/enums.py +0 -0
  314. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/gtxn.py +0 -0
  315. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/itxn_loader.py +0 -0
  316. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/__init__.py +0 -0
  317. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/asset.py +0 -0
  318. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/logicsig.py +0 -0
  319. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/template_variable.py +0 -0
  320. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
  321. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/mutable.py +0 -0
  322. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/__init__.py +0 -0
  323. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/block.py +0 -0
  324. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/constants.py +0 -0
  325. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/crypto.py +0 -0
  326. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/global_values.py +0 -0
  327. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/itxn.py +0 -0
  328. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/misc.py +0 -0
  329. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/op/txn.py +0 -0
  330. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/primitives/biguint.py +0 -0
  331. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/primitives/string.py +0 -0
  332. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/primitives/uint64.py +0 -0
  333. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/protocols.py +0 -0
  334. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/py.typed +0 -0
  335. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/state/__init__.py +0 -0
  336. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/state/global_state.py +0 -0
  337. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/state/local_state.py +0 -0
  338. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/state/utils.py +0 -0
  339. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/utilities/__init__.py +0 -0
  340. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/utilities/budget.py +0 -0
  341. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/utilities/log.py +0 -0
  342. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/utilities/size_of.py +0 -0
  343. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/value_generators/__init__.py +0 -0
  344. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/value_generators/arc4.py +0 -0
  345. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/_algopy_testing/value_generators/txn.py +0 -0
  346. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/arc4.py +0 -0
  347. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/gtxn.py +0 -0
  348. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/itxn.py +0 -0
  349. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/op.py +0 -0
  350. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy/py.typed +0 -0
  351. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy_testing/__init__.py +0 -0
  352. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/src/algopy_testing/py.typed +0 -0
  353. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/templates/.macros.j2 +0 -0
  354. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/templates/.release_notes.md.j2 +0 -0
  355. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/templates/CHANGELOG.md.j2 +0 -0
  356. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/__init__.py +0 -0
  357. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/__init__.py +0 -0
  358. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/arc4/test_abi_call.py +0 -0
  359. {algorand_python_testing-1.0.0b1/tests/artifacts/Arc4ABIMethod → algorand_python_testing-1.1.0/tests/artifacts/AVM12}/__init__.py +0 -0
  360. {algorand_python_testing-1.0.0b1/tests/artifacts/Arc4InnerTxns → algorand_python_testing-1.1.0/tests/artifacts/Arc4ABIMethod}/__init__.py +0 -0
  361. /algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal → /algorand_python_testing-1.1.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
  362. {algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps → algorand_python_testing-1.1.0/tests/artifacts/Arc4InnerTxns}/__init__.py +0 -0
  363. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
  364. /algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/data/TuplesContract.clear.teal → /algorand_python_testing-1.1.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
  365. {algorand_python_testing-1.0.0b1/tests/artifacts/Arrays → algorand_python_testing-1.1.0/tests/artifacts/Arc4PrimitiveOps}/__init__.py +0 -0
  366. {algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract → algorand_python_testing-1.1.0/tests/artifacts/Arrays}/__init__.py +0 -0
  367. /algorand_python_testing-1.0.0b1/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal → /algorand_python_testing-1.1.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
  368. {algorand_python_testing-1.0.0b1/tests/artifacts/Contains → algorand_python_testing-1.1.0/tests/artifacts/BoxContract}/__init__.py +0 -0
  369. {algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset → algorand_python_testing-1.1.0/tests/artifacts/Contains}/__init__.py +0 -0
  370. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Contains/contract.py +0 -0
  371. {algorand_python_testing-1.0.0b1/tests/artifacts/CryptoOps → algorand_python_testing-1.1.0/tests/artifacts/CreatedAppAsset}/__init__.py +0 -0
  372. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
  373. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CreatedAppAsset/other.py +0 -0
  374. {algorand_python_testing-1.0.0b1/tests/artifacts/GlobalStateValidator → algorand_python_testing-1.1.0/tests/artifacts/CryptoOps}/__init__.py +0 -0
  375. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/CryptoOps/contract.py +0 -0
  376. {algorand_python_testing-1.0.0b1/tests/artifacts/MiscellaneousOps → algorand_python_testing-1.1.0/tests/artifacts/GlobalStateValidator}/__init__.py +0 -0
  377. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
  378. {algorand_python_testing-1.0.0b1/tests/artifacts/PrimitiveOps → algorand_python_testing-1.1.0/tests/artifacts/MiscellaneousOps}/__init__.py +0 -0
  379. {algorand_python_testing-1.0.0b1/tests/artifacts/StateMutations → algorand_python_testing-1.1.0/tests/artifacts/PrimitiveOps}/__init__.py +0 -0
  380. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/PrimitiveOps/contract.py +0 -0
  381. {algorand_python_testing-1.0.0b1/tests/artifacts/StateOps → algorand_python_testing-1.1.0/tests/artifacts/StateMutations}/__init__.py +0 -0
  382. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
  383. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
  384. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
  385. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateMutations/statemutations.py +0 -0
  386. {algorand_python_testing-1.0.0b1/tests/artifacts/Tuples → algorand_python_testing-1.1.0/tests/artifacts/StateOps}/__init__.py +0 -0
  387. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
  388. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
  389. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
  390. {algorand_python_testing-1.0.0b1/tests/artifacts → algorand_python_testing-1.1.0/tests/artifacts/Tuples}/__init__.py +0 -0
  391. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/artifacts/Tuples/contract.py +0 -0
  392. {algorand_python_testing-1.0.0b1/tests/contexts → algorand_python_testing-1.1.0/tests/artifacts}/__init__.py +0 -0
  393. {algorand_python_testing-1.0.0b1/tests/models → algorand_python_testing-1.1.0/tests/avm12}/__init__.py +0 -0
  394. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/common.py +0 -0
  395. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/conftest.py +0 -0
  396. {algorand_python_testing-1.0.0b1/tests/primitives → algorand_python_testing-1.1.0/tests/contexts}/__init__.py +0 -0
  397. {algorand_python_testing-1.0.0b1/tests/state → algorand_python_testing-1.1.0/tests/models}/__init__.py +0 -0
  398. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_asset.py +0 -0
  399. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_contract.py +0 -0
  400. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_uenumerate.py +0 -0
  401. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/models/test_urange.py +0 -0
  402. {algorand_python_testing-1.0.0b1/tests/utilities → algorand_python_testing-1.1.0/tests/primitives}/__init__.py +0 -0
  403. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/primitives/test_biguint.py +0 -0
  404. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/primitives/test_bytes.py +0 -0
  405. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/primitives/test_string.py +0 -0
  406. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/primitives/test_uint64.py +0 -0
  407. {algorand_python_testing-1.0.0b1/tests/value_generators → algorand_python_testing-1.1.0/tests/state}/__init__.py +0 -0
  408. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/state/test_local_state.py +0 -0
  409. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/state/test_mutations.py +0 -0
  410. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/util.py +0 -0
  411. {algorand_python_testing-1.0.0b1 → algorand_python_testing-1.1.0}/tests/value_generators/test_avm.py +0 -0
@@ -1,4 +1,60 @@
1
1
  # CHANGELOG
2
+ ## v1.1.0 (2025-10-20)
3
+
4
+ ## v1.1.0-beta.1 (2025-10-20)
5
+
6
+ ### Features
7
+
8
+ * add mock implementations for validation functionality ([`ccde074`](https://github.com/algorandfoundation/algorand-python-testing/commit/ccde0740889bd68ef0fba418182d71ac0fc9f76a))
9
+
10
+ ### Documentation
11
+
12
+ * add note about data validation in the testing library ([`bc47a68`](https://github.com/algorandfoundation/algorand-python-testing/commit/bc47a6838cf00907f2a718ddb8cb45fe97947d77))
13
+
14
+ * add missing native types in coverage table ([`a95116c`](https://github.com/algorandfoundation/algorand-python-testing/commit/a95116c567dc77cfcf4f7ec517df60bb3d9d1eb5))
15
+
16
+ ## v1.0.0 (2025-10-06)
17
+
18
+ ## v1.0.0-beta.8 (2025-10-06)
19
+
20
+ ### Documentation
21
+
22
+ * fix typos and broken links ([`f221910`](https://github.com/algorandfoundation/algorand-python-testing/commit/f221910b54a2cdc76aa99b8883d75d4ddae78ee3))
23
+
24
+ ## v1.0.0-beta.7 (2025-09-26)
25
+
26
+ ### Bug fixes
27
+
28
+ * bump puyapy dependencies ([`8b2064d`](https://github.com/algorandfoundation/algorand-python-testing/commit/8b2064dc8bd94b0dadf6f283e8d639543241eadc))
29
+
30
+ Update to latest release candidates, so dependencies projects using both puyapy, language server and algorand python testing can resolve to a consistent version
31
+
32
+ ## v1.0.0-beta.6 (2025-09-18)
33
+
34
+ ### Features
35
+
36
+ * update langspec to 4.3.0 ([`c05bdc0`](https://github.com/algorandfoundation/algorand-python-testing/commit/c05bdc053f4b6aa52206cbeeaddb40609688b052))
37
+
38
+ ## v1.0.0-beta.5 (2025-09-16)
39
+
40
+ ## v1.0.0-beta.4 (2025-09-12)
41
+
42
+ ### Features
43
+
44
+ * make BoxRef methods directly accessible on Box class ([`38e12f6`](https://github.com/algorandfoundation/algorand-python-testing/commit/38e12f6d595c204eb6f7dcd74c393c46f166e3d4))
45
+
46
+ ## v1.0.0-beta.3 (2025-09-08)
47
+
48
+ ### Features
49
+
50
+ * add .as_uint64 and .as_biguint methods to replace native property ([`0f9c6c0`](https://github.com/algorandfoundation/algorand-python-testing/commit/0f9c6c06b6e1b986c4e512cbbe0098aea32615b7))
51
+
52
+ ## v1.0.0-beta.2 (2025-09-03)
53
+
54
+ ### Features
55
+
56
+ * add stub implementations of array types ([`b7b831d`](https://github.com/algorandfoundation/algorand-python-testing/commit/b7b831da7570367494e823485910bc7191376e48))
57
+
2
58
  ## v1.0.0-beta.1 (2025-07-16)
3
59
 
4
60
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algorand-python-testing
3
- Version: 1.0.0b1
3
+ Version: 1.1.0
4
4
  Summary: Algorand Python testing library
5
5
  Project-URL: Documentation, https://github.com/algorandfoundation/puya/tree/main/algopy_testing#README.md
6
6
  Project-URL: Issues, https://github.com/algorandfoundation/puya/issues
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Topic :: Software Development :: Testing
17
17
  Requires-Python: >=3.12
18
- Requires-Dist: algorand-python>=2.0
18
+ Requires-Dist: algorand-python>=3
19
19
  Requires-Dist: coincurve>=19.0.1
20
20
  Requires-Dist: ecdsa>=0.17.0
21
21
  Requires-Dist: pycryptodomex<4,>=3.6.0
@@ -0,0 +1,9 @@
1
+ # Algorand Python
2
+
3
+ Algorand Python is a partial implementation of the Python programming language that runs on the AVM. It includes a statically typed framework for developing Algorand smart contracts and logic signatures, with Pythonic interfaces to underlying AVM functionality that work with standard Python tooling.
4
+
5
+ Algorand Python is compiled for execution on the AVM by PuyaPy, an optimising compiler that ensures the resulting AVM bytecode has execution semantics that match the given Python code. PuyaPy produces output that is directly compatible with [AlgoKit typed clients](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/generate.md#1-typed-clients) to make deployment and calling easy.
6
+
7
+ ## Quick start
8
+
9
+ To get started, refer to the [official documentation](https://algorandfoundation.github.io/puya).
@@ -1,13 +1,13 @@
1
1
  # API Reference
2
2
 
3
- An overview of the `algorand-python-testing`'s `algopy_testing` module - covering the main classes and functions.
3
+ An overview of the `algopy_testing` module in `algorand-python-testing` library - covering the main classes and functions.
4
4
 
5
5
  ```{hint}
6
- Spotted a typo in documentation? This project is open source, please submit an issue or a PR on [GitHub](https://github.com/algorand/algorand-python-testing).
6
+ Spotted a typo in the documentation? This project is open source; please submit an issue or a PR on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
7
7
  ```
8
8
 
9
9
  ```{warning}
10
- Note, assume `_algopy_testing` to refer to `algopy_testing` namespace in the auto-generated class documentation above. To be patched in near future.
10
+ Note: Auto-generated class documentation may reference `_algopy_testing`; these should be interpreted as the `algopy_testing` namespace. The naming discrepancy will be fixed in a future update.
11
11
  ```
12
12
 
13
13
  ## Contexts
@@ -1,12 +1,13 @@
1
1
  # Coverage
2
2
 
3
- See which `algorand-python` stubs are implemented by the `algorand-python-testing` library. See the [Concepts](testing-guide/concepts.md#types-of-algopy-stub-implementations) section for more details on the implementation categories. Refer to the [`algorand-python` stubs API](api.md) for the full list of the stubs for which the `algorand-python-testing` library provides implementations referenced in the table below.
3
+ See which `algorand-python` stubs are implemented by the `algorand-python-testing` library. See the [Concepts](testing-guide/concepts.md#types-of-algopy-stub-implementations) section for more details on the implementation categories. Refer to the [`algorand-python` stubs API](api.md) for the full list of stubs for which the `algorand-python-testing` library provides implementations referenced in the table below.
4
4
 
5
5
  | Name | Implementation type |
6
6
  |---------------------------------------------|---------------------|
7
7
  | algopy.Account | Emulated |
8
8
  | algopy.Application | Emulated |
9
9
  | algopy.Asset | Emulated |
10
+ | algopy.Array | Native |
10
11
  | algopy.BigUInt | Native |
11
12
  | algopy.Box | Emulated |
12
13
  | algopy.BoxMap | Emulated |
@@ -16,14 +17,19 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
16
17
  | algopy.CompiledContract | Mockable |
17
18
  | algopy.CompiledLogicSig | Mockable |
18
19
  | algopy.Contract | Emulated |
20
+ | algopy.FixedArray | Native |
19
21
  | algopy.Global | Emulated |
20
22
  | algopy.GlobalState | Emulated |
23
+ | algopy.ImmutableArray | Native |
24
+ | algopy.ImmutableFixedArray | Native |
21
25
  | algopy.LocalState | Emulated |
22
26
  | algopy.LogicSig | Emulated |
23
27
  | algopy.OnCompleteAction | Native |
24
28
  | algopy.OpUpFeeSource | Native |
29
+ | algopy.ReferenceArray | Native |
25
30
  | algopy.StateTotals | Emulated |
26
31
  | algopy.String | Native |
32
+ | algopy.Struct | Native |
27
33
  | algopy.TemplateVar | Emulated |
28
34
  | algopy.TransactionType | Native |
29
35
  | algopy.Txn | Emulated |
@@ -158,3 +164,4 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
158
164
  | algopy.op.EllipticCurve | Mockable |
159
165
  | algopy.op.VrfVerify | Mockable |
160
166
  | algopy.op.vrf_verify | Mockable |
167
+ | algopy.op.falcon_verify | Mockable |
@@ -5,9 +5,9 @@ Below is a showcase of various examples of unit testing real and sample Algorand
5
5
  | Contract Name | Test File | Key Features Demonstrated | Test versions of Algopy Abstractions used |
6
6
  | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
7
7
  | Auction | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/auction/test_contract.py) | - Use of algopy_testing_context<br>- Mocking of global state and transaction fields<br>- Testing of ARC4 contract methods<br>- Emulation of asset creation and transfers<br>- Verification of inner transactions | - **ARC4Contract**<br>- **Global**<br>- **Txn**<br>- **Asset**<br>- **Account**<br>- **LocalState** |
8
- | Proof of Attendance | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/proof_of_attendance/test_contract.py) | - Creation and management of dummy assets<br>- Testing of box storage operations<br>- Verification of inner transactions for asset transfers<br>- Use of any\_\* methods for generating test data | - **ARC4Contract**<br>- **Box**<br>- **BoxMap**<br>- **Asset**<br>- **Account**<br>- **op** |
8
+ | Proof of Attendance | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/proof_of_attendance/test_contract.py) | - Creation and management of dummy assets<br>- Testing of box storage operations<br>- Verification of inner transactions for asset transfers<br>- Use of `any.*` methods for generating test data | - **ARC4Contract**<br>- **Box**<br>- **BoxMap**<br>- **Asset**<br>- **Account**<br>- **op** |
9
9
  | Simple Voting | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/simple_voting/test_contract.py) | - Testing of global and local state operations<br>- Verification of transaction group operations<br>- Mocking of payment transactions | - **Contract**<br>- **GlobalState**<br>- **LocalState**<br>- **Txn**<br>- **op.GTxn** |
10
- | ZK Whitelist | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/zk_whitelist/test_contract.py) | - Testing of zero-knowledge proof verification<br>- Mocking of external application calls<br>- Use of ARC4 types and methods | - **ARC4Contract**<br>- **arc4 types**<br>- **LocalState**<br>- **Global**<br>- **Txn** |
10
+ | ZK Whitelist | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/zk_whitelist/test_contract.py) | - Testing of zero-knowledge proof verification<br>- Mocking of external application calls<br>- Use of ARC4 types and methods | - **ARC4Contract**<br>- **ARC4 types**<br>- **LocalState**<br>- **Global**<br>- **Txn** |
11
11
  | HTLC LogicSig | [test_signature.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/htlc_logicsig/test_signature.py) | - Testing of LogicSig contracts<br>- Verification of time-based conditions<br>- Mocking of transaction parameters | - **logicsig**<br>- **Account**<br>- **Txn**<br>- **Global**<br>- **op** |
12
- | Marketplace | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/marketplace/test_contract.py) | - Testing of complex marketplace operations<br>- Use of BoxMap for listings<br>- Testing of asset transfers and payments | - **ARC4Contract**<br>- **BoxMap**<br>- **Asset**<br>- **arc4 types**<br>- **Global**<br>- **Txn** |
12
+ | Marketplace | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/marketplace/test_contract.py) | - Testing of complex marketplace operations<br>- Use of BoxMap for listings<br>- Testing of asset transfers and payments | - **ARC4Contract**<br>- **BoxMap**<br>- **Asset**<br>- **ARC4 types**<br>- **Global**<br>- **Txn** |
13
13
  | Scratch Storage | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/scratch_storage/test_contract.py) | - Testing of scratch space usage<br>- Verification of scratch slot values | - **ARC4Contract**<br>- **Contract**<br>- **op** |
@@ -14,7 +14,7 @@ Operational Codes, or opcodes, are AVM instructions that are executed directly b
14
14
 
15
15
  ## What are Value Generators?
16
16
 
17
- Value Generators are helper methods that generate randomized values for testing when the specific value of the tested type is not important. In the context of Algorand Python testing, these are represented by property on the context manager, accessed via `any.*` (or `any.arc4.*`, `any.txn.*`. in the case of ARC 4 types). To understand how to use Value Generators effectively, check out our [Value Generators section](testing-guide/concepts.md#value-generators) in the documentation.
17
+ Value Generators are helper methods that produce randomized values for testing when the exact value of a type isn't important. In Algorand Python testing these generators are exposed as properties on the test context manager and accessed via `any.*` (for example, `any.arc4.*` and `any.txn.*` for ARC4 types). To learn more, see the [Value Generators section](testing-guide/concepts.md#value-generators).
18
18
 
19
19
  ## What are the limitations of the Algorand Python Testing framework?
20
20
 
@@ -26,7 +26,7 @@ The Algorand Python Testing framework emulates the Algorand Virtual Machine (AVM
26
26
  4. Certain cryptographic operations are mocked or simplified
27
27
  5. No state proof generation or verification
28
28
 
29
- For scenarios where these limitations are crucial, it's recommended to pair this framework with integration testing. If you have a solid reason to justify introducing new emulated behaviour, please open an issue or contribute to the project on [Github](https://github.com/algorandfoundation/algorand-python-testing).
29
+ For scenarios where these limitations are crucial, it's recommended to pair this framework with integration testing. If you have a solid reason to justify introducing new emulated behaviour, please open an issue or contribute to the project on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
30
30
 
31
31
  ## How does balance tracking work in the testing framework?
32
32
 
@@ -46,16 +46,16 @@ Some cryptographic operations are mocked or simplified in the framework. For a d
46
46
 
47
47
  ## Can I use this framework for security-critical validations?
48
48
 
49
- While this framework is useful for unit testing and local development, it should not be the only tool used for security-critical validations or performance benchmarking. It's designed to approximate AVM behavior for common scenarios. Always complement your testing with additional integration testing options available in `algokit`, where you can test against real localnet or testnet environments.
49
+ While this framework is useful for unit testing and local development, it should not be the only tool used for security-critical validations or performance benchmarking. It's designed to approximate AVM behaviour for common scenarios. Always complement your testing with additional integration testing options available in `algokit`, where you can test against real localnet or testnet environments.
50
50
 
51
51
  ## Is there an example of how to use this framework alongside integration tests?
52
52
 
53
53
  Yes, the `algokit-python-template`, accessible via `algokit init`, provides a working example of how to structure `algorand-python-testing` along with regular integration tests against localnet.
54
54
 
55
55
  ```{hint}
56
- An `algokit-python-template` accessible via `algokit init -t python`, provides a comprehensive and customizable working example of how to structure `algorand-python-testing` along with regular integration tests against localnet.
56
+ The `algokit-python-template`, accessible via `algokit init -t python`, provides a comprehensive and customizable working example of how to structure `algorand-python-testing` along with regular integration tests against localnet.
57
57
  ```
58
58
 
59
59
  ## Is it compatible with `pytest`?
60
60
 
61
- Yes, it is compatible with `pytest` and _any_ other python testing framework as its agnostic of the testing framework as long as its python. If you spot incompatibility with a certain tool, please open an issue or contribute to the project on [Github](https://github.com/algorandfoundation/algorand-python-testing).
61
+ Yes, it is compatible with `pytest` and _any_ other Python testing framework as it is agnostic of the testing framework as long as it's Python. If you spot incompatibility with a certain tool, please open an issue or contribute to the project on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
@@ -5,7 +5,7 @@
5
5
  [![github-stars](https://img.shields.io/github/stars/algorandfoundation/algorand-python-testing?color=74dfdc&logo=star&style=flat)](https://github.com/algorandfoundation/algorand-python-testing)
6
6
  [![visitor-badge](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Falgorandfoundation%2Falgorand-python-testing&countColor=%2374dfdc&style=flat)](https://developer.algorand.org/algokit/)
7
7
 
8
- `algorand-python-testing` is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. This package emulates key AVM behaviors without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface.
8
+ `algorand-python-testing` is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. This package emulates key AVM behaviours without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface.
9
9
 
10
10
  The `algorand-python-testing` package provides:
11
11
 
@@ -160,7 +160,7 @@ This example demonstrates key aspects of testing with `algorand-python-testing`
160
160
  - Checking global and local state changes after method execution.
161
161
  - Verifying return values from ABI methods using ARC4-specific types.
162
162
 
163
- > **NOTE**: Thorough testing is crucial in smart contract development due to their immutable nature post-deployment. Comprehensive unit and integration tests ensure contract validity and reliability. Optimizing for efficiency can significantly improve user experience by reducing transaction fees and simplifying interactions. Investing in robust testing and optimization practices is crucial and offers many benefits in the long run.
163
+ > **NOTE**: Thorough testing is crucial in smart contract development due to their immutable nature post-deployment. Comprehensive unit and integration tests ensure contract validity and reliability. Optimising for efficiency can significantly improve user experience by reducing transaction fees and simplifying interactions. Investing in robust testing and optimisation practices is crucial and offers many benefits in the long run.
164
164
 
165
165
  ### Next steps
166
166
 
@@ -1,9 +1,9 @@
1
1
  # ARC4 Types
2
2
 
3
- These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://arc.algorand.foundation/ARCs/arc-0004) for more details on the spec.
3
+ These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://dev.algorand.co/arc-standards/arc-0004/) for more details on the spec.
4
4
 
5
5
  ```{hint}
6
- Test context manager provides _value generators_ for ARC4 types. To access their _value generators_, use `{context_instance}.any.arc4` property. See more examples below.
6
+ The test context manager provides _value generators_ for ARC4 types. To access the _value generators_, use `{context_instance}.any.arc4` property. See more examples below.
7
7
  ```
8
8
 
9
9
  ```{note}
@@ -63,7 +63,7 @@ address_value = arc4.Address("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
63
63
  # Generate a random address
64
64
  random_address = context.any.arc4.address()
65
65
 
66
- # Access native underlaying type
66
+ # Access native underlying type
67
67
  native = random_address.native
68
68
  ```
69
69
 
@@ -76,7 +76,7 @@ from algopy import arc4
76
76
  bytes_value = arc4.DynamicBytes(b"Hello, Algorand!")
77
77
 
78
78
  # Generate random dynamic bytes
79
- random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the arc4 dynamic bytes
79
+ random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the ARC4 dynamic bytes
80
80
  ```
81
81
 
82
82
  ## String
@@ -88,7 +88,7 @@ from algopy import arc4
88
88
  string_value = arc4.String("Hello, Algorand!")
89
89
 
90
90
  # Generate random string
91
- random_string = context.any.arc4.string(n=12) # n is the number of bits in the arc4 string
91
+ random_string = context.any.arc4.string(n=12) # n is the number of bits in the ARC4 string
92
92
  ```
93
93
 
94
94
  ```{testcleanup}
@@ -3,7 +3,7 @@
3
3
  These types are available directly under the `algopy` namespace. They represent the basic AVM primitive types and can be instantiated directly or via _value generators_:
4
4
 
5
5
  ```{note}
6
- For 'primitive `algopy` types such as `Account`, `Application`, `Asset`, `UInt64`, `BigUint`, `Bytes`, `Sting` with and without respective _value generator_, instantiation can be performed directly. If you have a suggestion for a new _value generator_ implementation, please open an issue in the [`algorand-python-testing`](https://github.com/algorandfoundation/algorand-python-testing) repository or contribute by following the [contribution guide](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md).
6
+ For primitive `algopy` types such as `Account`, `Application`, `Asset`, `UInt64`, `BigUint`, `Bytes`, and `String`, instantiation can be performed directly, with or without a corresponding _value generator_. If you have a suggestion for a new _value generator_ implementation, please open an issue in the [`algorand-python-testing`](https://github.com/algorandfoundation/algorand-python-testing) repository or contribute by following the [contribution guide](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md).
7
7
  ```
8
8
 
9
9
  ```{testsetup}
@@ -4,7 +4,7 @@ The following sections provide an overview of key concepts and features in the A
4
4
 
5
5
  ## Test Context
6
6
 
7
- The main abstraction for interacting with the testing framework is the [`AlgopyTestContext`](../api-context.md#algopy_testing.AlgopyTestContext). It creates an emulated Algorand environment that closely mimics AVM behavior relevant to unit testing the contracts and provides a Pythonic interface for interacting with the emulated environment.
7
+ The main abstraction for interacting with the testing framework is the [`AlgopyTestContext`](#_algopy_testing.context.AlgopyTestContext). It creates an emulated Algorand environment that closely mimics AVM behaviour relevant to unit testing contracts and provides a Pythonic interface for interacting with the emulated environment.
8
8
 
9
9
  ```python
10
10
  from algopy_testing import algopy_testing_context
@@ -24,15 +24,18 @@ The context manager interface exposes three main properties:
24
24
  3. `any`: An instance of `AlgopyValueGenerator` for generating randomized test data.
25
25
 
26
26
  For detailed method signatures, parameters, and return types, refer to the following API sections:
27
- - [`algopy_testing.LedgerContext`](../api.md)
28
- - [`algopy_testing.TransactionContext`](../api.md)
29
- - [`algopy_testing.AVMValueGenerator`, `algopy_testing.TxnValueGenerator`, `algopy_testing.ARC4ValueGenerator`](../api.md)
27
+
28
+ - [`algopy_testing.LedgerContext`](#_algopy_testing.context_helpers.ledger_context.LedgerContext)
29
+ - [`algopy_testing.TransactionContext`](#_algopy_testing.context_helpers.txn_context.TransactionContext)
30
+ - [`algopy_testing.AVMValueGenerator`](#_algopy_testing.value_generators.avm.AVMValueGenerator)
31
+ - [`algopy_testing.TxnValueGenerator`](#_algopy_testing.value_generators.txn.TxnValueGenerator)
32
+ - [`algopy_testing.ARC4ValueGenerator`](#_algopy_testing.value_generators.arc4.ARC4ValueGenerator)
30
33
 
31
34
  The `any` property provides access to different value generators:
32
35
 
33
- - `AVMValueGenerator`: Base abstractions for AVM types. All methods are available directly on the instance returned from `any`.
34
- - `TxnValueGenerator`: Accessible via `any.txn`, for transaction-related data.
35
- - `ARC4ValueGenerator`: Accessible via `any.arc4`, for ARC4 type data.
36
+ - `AVMValueGenerator`: Base abstractions for AVM types. All methods are available directly on the instance returned from `any`.
37
+ - `TxnValueGenerator`: Accessible via `any.txn`, for transaction-related data.
38
+ - `ARC4ValueGenerator`: Accessible via `any.arc4`, for ARC4 type data.
36
39
 
37
40
  These generators allow creation of constrained random values for various AVM entities (accounts, assets, applications, etc.) when specific values are not required.
38
41
 
@@ -50,9 +53,13 @@ As explained in the [introduction](index.md), `algorand-python-testing` _injects
50
53
 
51
54
  1. **Native**: Fully matches AVM computation in Python. For example, `algopy.op.sha256` and other cryptographic operations behave identically in AVM and unit tests. This implies that the majority of opcodes that are 'pure' functions in AVM also have a native Python implementation provided by this package. These abstractions and opcodes can be used within and outside of the testing context.
52
55
 
53
- 2. **Emulated**: Uses `AlgopyTestContext` to mimic AVM behavior. For example, `Box.put` on an `algopy.Box` within a test context stores data in the test manager, not the real Algorand network, but provides the same interface.
56
+ 2. **Emulated**: Uses `AlgopyTestContext` to mimic AVM behaviour. For example, `Box.put` on an `algopy.Box` within a test context stores data in the test manager, not the real Algorand network, but provides the same interface.
54
57
 
55
- 3. **Mockable**: Not implemented, but can be mocked or patched. For example, `algopy.abi_call` can be mocked to return specific values or behaviors; otherwise, it raises a `NotImplementedError`. This category covers cases where native or emulated implementation in a unit test context is impractical or overly complex.
58
+ 3. **Mockable**: Not implemented, but can be mocked or patched. For example, `algopy.abi_call` can be mocked to return specific values or behaviours; otherwise, it raises a `NotImplementedError`. This category covers cases where native or emulated implementation in a unit test context is impractical or overly complex.
56
59
 
57
- For a full list of all public `algopy` types and their corresponding implementation category, refer to the [Coverage](coverage.md) section.
58
- ```
60
+ For a full list of all public `algopy` types and their corresponding implementation category, refer to the [Coverage](../coverage.md) section.
61
+
62
+ ## Data Validation
63
+
64
+ Algorand Python and the puya compiler have functionality to perform validation of transaction inputs via the `--validate-abi-args`, `--validate-abi-return` CLI arguments, `arc4.abimethod(validate_encoding=...)` decorator and `.validate()` methods.
65
+ The Algorand Python Testing library does *NOT* implement this validation behaviour, as you should test invalid inputs using an integrated test against a real Algorand network.
@@ -1,6 +1,6 @@
1
1
  # Smart Contract Testing
2
2
 
3
- This guide provides an overview of how to test smart contracts using the Algorand Python SDK (`algopy`). We will cover the basics of testing `ARC4Contract` and `Contract` classes, focusing on `abimethod` and `baremethod` decorators.
3
+ This guide provides an overview of how to test smart contracts using the Algorand Python SDK (`algopy`). It covers the basics of testing `ARC4Contract` and `Contract` classes, focusing on the `abimethod` and `baremethod` decorators.
4
4
 
5
5
  ![](https://mermaid.ink/img/pako:eNqVkrFugzAQhl_Fujnp1ImhEiJrJNREWeoOV9sNVsFG9iEVBd69R5w0JE2llsk2n7-7_-AAymsDGewDtpXYrqQT_GyKFwl5vfcBnRZlT5V3IjYYSCjvKKAiCa-JzXfrObyzgTqsxRpVZZ25YOX2nnRrIomCneZzpszLkllktu0f8ratrUKyjFsXCZ1K2gTH7i01_8dGUjOT_55YeLdUFVr3zRunf5b6R5hZoFnBq9cX72_Br_Cj8bl4vJCHaVucvowYxHk5Xg_sfPkY6SbbphDL5dMgQZu29n0U5DMJwzTVGyApySKZKFSNMXKVxPJYYAGNCQ1azX_VYboqgSrTcAcZLzWGDwnSjcxhR37TOwUZhc4sIPhuX0H2jnXkXddqrrCyyKNpTqfjF5m74B8?type=png)
6
6
 
@@ -24,7 +24,7 @@ context = ctx_manager.__enter__()
24
24
 
25
25
  Subclasses of `algopy.ARC4Contract` are **required** to be instantiated with an active test context. As part of instantiation, the test context will automatically create a matching `algopy.Application` object instance.
26
26
 
27
- Within the class implementation, methods decorated with `algopy.arc4.abimethod` and `algopy.arc4.baremethod` will automatically assemble an `algopy.gtxn.ApplicationCallTransaction` transaction to emulate the AVM application call. This behavior can be overriden by setting the transaction group manually as part of test setup, this is done via implicit invocation of `algopy_testing.context.any_application()` _value generator_ (refer to [APIs](../apis.md) for more details).
27
+ Within the class implementation, methods decorated with `algopy.arc4.abimethod` and `algopy.arc4.baremethod` will automatically assemble an `algopy.gtxn.ApplicationCallTransaction` to emulate the AVM application call. This behaviour can be overridden by setting the transaction group manually as part of test setup; this is done via implicit invocation of the `algopy_testing.context.any_application()` _value generator_ (refer to the [API](../api.md) for more details).
28
28
 
29
29
  ```{testcode}
30
30
  class SimpleVotingContract(algopy.ARC4Contract):
@@ -104,9 +104,9 @@ assert votes == algopy.UInt64(0)
104
104
 
105
105
  For more examples of tests using `algopy.ARC4Contract`, see the [examples](../examples.md) section.
106
106
 
107
- ## `algopy.Contract``
107
+ ## `algopy.Contract`
108
108
 
109
- Subclasses of `algopy.Contract` are **required** to be instantiated with an active test context. As part of instantiation, the test context will automatically create a matching `algopy.Application` object instance. This behavior is identical to `algopy.ARC4Contract` class instances.
109
+ Subclasses of `algopy.Contract` are **required** to be instantiated with an active test context. As part of instantiation, the test context will automatically create a matching `algopy.Application` object instance. This behaviour is identical to `algopy.ARC4Contract` class instances.
110
110
 
111
111
  Unlike `algopy.ARC4Contract`, `algopy.Contract` requires manual setup of the transaction context and explicit method calls. Alternatively, you can use `active_txn_overrides` to specify application arguments and foreign arrays without needing to create a full transaction group if your aim is to patch a specific active transaction related metadata.
112
112
 
@@ -33,7 +33,7 @@ The Algorand Python Testing framework streamlines unit testing of your Algorand
33
33
  4. Verify logic signatures and subroutines
34
34
  5. Manage global state, local state, scratch slots, and boxes in test contexts
35
35
  6. Simulate transactions and transaction groups, including inner transactions
36
- 7. Verify opcode behavior
36
+ 7. Verify opcode behaviour
37
37
 
38
38
  By using this framework, you can ensure your Algorand Python smart contracts function correctly before deploying them to a live network.
39
39
 
@@ -44,9 +44,9 @@ Key features of the framework include:
44
44
  - ARC4 Support: Tools for testing ARC4 contracts and methods, including struct definitions and ABI encoding/decoding
45
45
  - Transaction Simulation: Ability to create and execute various transaction types
46
46
  - State Management: Tools for managing and verifying global and local state changes
47
- - Opcode Simulation: Implementations of AVM opcodes for accurate smart contract behavior testing
47
+ - Opcode Simulation: Implementations of AVM opcodes for accurate smart contract behaviour testing
48
48
 
49
- The framework is designed to work seamlessly with Algorand Python smart contracts, allowing developers to write comprehensive unit tests that closely mimic the behavior of contracts on the Algorand blockchain.
49
+ The framework is designed to work seamlessly with Algorand Python smart contracts, allowing developers to write comprehensive unit tests that closely mimic the behaviour of contracts on the Algorand blockchain.
50
50
 
51
51
  ## Table of Contents
52
52
 
@@ -1,6 +1,6 @@
1
1
  # AVM Opcodes
2
2
 
3
- The [coverage](coverage.md) file provides a comprehensive list of all opcodes and their respective types, categorized as _Mockable_, _Emulated_, or _Native_ within the `algorand-python-testing` package. This section highlights a **subset** of opcodes and types that typically require interaction with the test context manager.
3
+ The [coverage](../coverage.md) file provides a comprehensive list of all opcodes and their respective types, categorized as _Mockable_, _Emulated_, or _Native_ within the `algorand-python-testing` package. This section highlights a **subset** of opcodes and types that typically require interaction with the test context manager.
4
4
 
5
5
  `Native` opcodes are assumed to function as they do in the Algorand Virtual Machine, given their stateless nature. If you encounter issues with any `Native` opcodes, please raise an issue in the [`algorand-python-testing` repo](https://github.com/algorandfoundation/algorand-python-testing/issues/new/choose) or contribute a PR following the [Contributing](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md) guide.
6
6
 
@@ -375,7 +375,7 @@ These examples demonstrate how to mock key mockable opcodes in `algorand-python-
375
375
 
376
376
  Mocking these opcodes allows you to:
377
377
 
378
- 1. Control complex operations' behavior not covered by _implemented_ and _emulated_ types.
378
+ 1. Control complex operations' behaviour not covered by _implemented_ and _emulated_ types.
379
379
  2. Test edge cases and error conditions.
380
380
  3. Isolate contract logic from external dependencies.
381
381
 
@@ -1,6 +1,6 @@
1
1
  # Transactions
2
2
 
3
- The testing framework follows the Transaction definitions described in [`algorand-python` docs](https://algorand-python.readthedocs.io/en/latest/algorand_sdk/transactions.html). This section focuses on _value generators_ and interactions with inner transactions, it also explains how the framework identifies _active_ transaction group during contract method/subroutine/logicsig invocation.
3
+ The testing framework follows the Transaction definitions described in [`algorand-python` docs](https://algorandfoundation.github.io/puya/lg-transactions.html). This section focuses on _value generators_ and interactions with inner transactions, it also explains how the framework identifies _active_ transaction group during contract method/subroutine/logicsig invocation.
4
4
 
5
5
  ```{testsetup}
6
6
  import algopy
@@ -16,7 +16,7 @@ context = ctx_manager.__enter__()
16
16
 
17
17
  ## Group Transactions
18
18
 
19
- Refers to test implementation of transaction stubs available under `algopy.gtxn.*` namespace. Available under [`algopy.TxnValueGenerator`](../api.md) instance accessible via `context.any.txn` property:
19
+ Refers to test implementation of transaction stubs available under `algopy.gtxn.*` namespace. Available under [`algopy.TxnValueGenerator`](#_algopy_testing.value_generators.txn.TxnValueGenerator) instance accessible via `context.any.txn` property:
20
20
 
21
21
  ```{mermaid}
22
22
  graph TD
@@ -107,7 +107,7 @@ generic_txn = context.any.txn.transaction(
107
107
 
108
108
  When a smart contract instance (application) is interacted with on the Algorand network, it must be performed in relation to a specific transaction or transaction group where one or many transactions are application calls to target smart contract instances.
109
109
 
110
- To emulate this behaviour, the `create_group` context manager is available on [`algopy.TransactionContext`](../api.md) instance that allows setting temporary transaction fields within a specific scope, passing in emulated transaction objects and identifying the active transaction index within the transaction group
110
+ To emulate this behaviour, the `create_group` context manager is available on [`algopy.TransactionContext`](#_algopy_testing.context_helpers.txn_context.TransactionContext) instance that allows setting temporary transaction fields within a specific scope, passing in emulated transaction objects and identifying the active transaction index within the transaction group
111
111
 
112
112
  ```{testcode}
113
113
  import algopy
@@ -139,7 +139,7 @@ assert len(context.txn.last_group.txns) == 1
139
139
 
140
140
  Inner transactions are AVM transactions that are signed and executed by AVM applications (instances of deployed smart contracts or signatures).
141
141
 
142
- When testing smart contracts, to stay consistent with AVM, the framework \_does not allow you to submit inner transactions outside of contract/subroutine invocation, but you can interact with and manage inner transactions using the test context manager as follows:
142
+ When testing smart contracts, to stay consistent with AVM, the framework _does not allow you to submit inner transactions outside of contract/subroutine invocation_, but you can interact with and manage inner transactions using the test context manager as follows:
143
143
 
144
144
  ```{testcode}
145
145
  class MyContract(algopy.ARC4Contract):
@@ -130,7 +130,7 @@ class DigitalMarketplace(ARC4Contract):
130
130
  assert xfer.asset_amount > 0
131
131
 
132
132
  self.listings[key].deposited = arc4.UInt64(
133
- self.listings[key].deposited.native + xfer.asset_amount
133
+ self.listings[key].deposited.as_uint64() + xfer.asset_amount
134
134
  )
135
135
 
136
136
  @abimethod
@@ -161,14 +161,14 @@ class DigitalMarketplace(ARC4Contract):
161
161
  listing = self.listings[key].copy()
162
162
 
163
163
  amount_to_be_paid = self.quantity_price(
164
- quantity, listing.unitary_price.native, asset.decimals
164
+ quantity, listing.unitary_price.as_uint64(), asset.decimals
165
165
  )
166
166
 
167
167
  assert buy_pay.sender == Txn.sender
168
168
  assert buy_pay.receiver.bytes == owner.bytes
169
169
  assert buy_pay.amount == amount_to_be_paid
170
170
 
171
- self.listings[key].deposited = arc4.UInt64(listing.deposited.native - quantity)
171
+ self.listings[key].deposited = arc4.UInt64(listing.deposited.as_uint64() - quantity)
172
172
 
173
173
  itxn.AssetTransfer(
174
174
  xfer_asset=asset,
@@ -187,8 +187,8 @@ class DigitalMarketplace(ARC4Contract):
187
187
  listing = self.listings[key].copy()
188
188
  if listing.bidder != arc4.Address():
189
189
  current_bid_deposit = self.quantity_price(
190
- listing.bid.native,
191
- listing.bid_unitary_price.native,
190
+ listing.bid.as_uint64(),
191
+ listing.bid_unitary_price.as_uint64(),
192
192
  asset.decimals,
193
193
  )
194
194
  itxn.Payment(receiver=listing.bidder.native, amount=current_bid_deposit).submit()
@@ -200,7 +200,7 @@ class DigitalMarketplace(ARC4Contract):
200
200
  itxn.AssetTransfer(
201
201
  xfer_asset=asset,
202
202
  asset_receiver=Txn.sender,
203
- asset_amount=listing.deposited.native,
203
+ asset_amount=listing.deposited.as_uint64(),
204
204
  ).submit()
205
205
 
206
206
  @abimethod
@@ -220,13 +220,13 @@ class DigitalMarketplace(ARC4Contract):
220
220
  assert unitary_price > listing.bid_unitary_price
221
221
 
222
222
  current_bid_amount = self.quantity_price(
223
- listing.bid.native, listing.bid_unitary_price.native, asset.decimals
223
+ listing.bid.as_uint64(), listing.bid_unitary_price.as_uint64(), asset.decimals
224
224
  )
225
225
 
226
226
  itxn.Payment(receiver=listing.bidder.native, amount=current_bid_amount).submit()
227
227
 
228
228
  amount_to_be_bid = self.quantity_price(
229
- quantity.native, unitary_price.native, asset.decimals
229
+ quantity.as_uint64(), unitary_price.as_uint64(), asset.decimals
230
230
  )
231
231
 
232
232
  assert bid_pay.sender == Txn.sender
@@ -245,12 +245,12 @@ class DigitalMarketplace(ARC4Contract):
245
245
  assert listing.bidder != arc4.Address()
246
246
 
247
247
  min_quantity = (
248
- listing.deposited.native
249
- if listing.deposited.native < listing.bid.native
250
- else listing.bid.native
248
+ listing.deposited.as_uint64()
249
+ if listing.deposited.as_uint64() < listing.bid.as_uint64()
250
+ else listing.bid.as_uint64()
251
251
  )
252
252
  best_bid_amount = self.quantity_price(
253
- min_quantity, listing.bid_unitary_price.native, asset.decimals
253
+ min_quantity, listing.bid_unitary_price.as_uint64(), asset.decimals
254
254
  )
255
255
 
256
256
  itxn.Payment(receiver=Txn.sender, amount=best_bid_amount).submit()
@@ -262,6 +262,6 @@ class DigitalMarketplace(ARC4Contract):
262
262
  ).submit()
263
263
 
264
264
  self.listings[key].deposited = arc4.UInt64(
265
- self.listings[key].deposited.native - min_quantity
265
+ self.listings[key].deposited.as_uint64() - min_quantity
266
266
  )
267
- self.listings[key].bid = arc4.UInt64(self.listings[key].bid.native - min_quantity)
267
+ self.listings[key].bid = arc4.UInt64(self.listings[key].bid.as_uint64() - min_quantity)
@@ -162,19 +162,19 @@ def test_buy(
162
162
  buy_pay=context.any.txn.payment(
163
163
  receiver=context.default_sender,
164
164
  amount=contract.quantity_price(
165
- quantity=test_buy_quantity.native,
166
- price=test_unitary_price.native,
165
+ quantity=test_buy_quantity.as_uint64(),
166
+ price=test_unitary_price.as_uint64(),
167
167
  asset_decimals=test_asset.decimals,
168
168
  ),
169
169
  ),
170
- quantity=test_buy_quantity.native,
170
+ quantity=test_buy_quantity.as_uint64(),
171
171
  )
172
172
 
173
173
  # Assert
174
174
  updated_listing = ListingValue.from_bytes(
175
175
  context.ledger.get_box(contract, b"listings" + listing_key.bytes)
176
176
  )
177
- assert updated_listing.deposited == initial_deposit.native - test_buy_quantity.native
177
+ assert updated_listing.deposited == initial_deposit.as_uint64() - test_buy_quantity.as_uint64()
178
178
  assert (
179
179
  context.txn.last_group.get_itxn_group(0).asset_transfer(0).asset_receiver
180
180
  == context.default_sender
@@ -215,7 +215,7 @@ def test_withdraw(
215
215
  asset_transfer_txn = context.txn.last_group.get_itxn_group(1).asset_transfer(0)
216
216
  assert asset_transfer_txn.xfer_asset == test_asset
217
217
  assert asset_transfer_txn.asset_receiver == test_owner.native
218
- assert asset_transfer_txn.asset_amount == initial_deposit.native
218
+ assert asset_transfer_txn.asset_amount == initial_deposit.as_uint64()
219
219
 
220
220
 
221
221
  def test_bid(
@@ -240,12 +240,12 @@ def test_bid(
240
240
  )
241
241
 
242
242
  bidder = context.any.account()
243
- bid_quantity = context.any.arc4.uint64(max_value=int(initial_deposit.native))
243
+ bid_quantity = context.any.arc4.uint64(max_value=int(initial_deposit.as_uint64()))
244
244
  bid_price = context.any.arc4.uint64(
245
- min_value=int(initial_price.native) + 1, max_value=int(10e6)
245
+ min_value=int(initial_price.as_uint64()) + 1, max_value=int(10e6)
246
246
  )
247
247
  bid_amount = contract.quantity_price(
248
- bid_quantity.native, bid_price.native, test_asset.decimals
248
+ bid_quantity.as_uint64(), bid_price.as_uint64(), test_asset.decimals
249
249
  )
250
250
 
251
251
  # Act
@@ -277,7 +277,7 @@ def test_accept_bid(
277
277
  # Arrange
278
278
  owner = context.default_sender
279
279
  initial_deposit = context.any.arc4.uint64(min_value=1, max_value=int(1e6))
280
- bid_quantity = context.any.arc4.uint64(max_value=int(initial_deposit.native))
280
+ bid_quantity = context.any.arc4.uint64(max_value=int(initial_deposit.as_uint64()))
281
281
  bid_price = context.any.arc4.uint64(max_value=int(10e6))
282
282
  bidder = context.any.account()
283
283
 
@@ -294,10 +294,10 @@ def test_accept_bid(
294
294
  bid_unitary_price=bid_price,
295
295
  )
296
296
 
297
- min_quantity = min(initial_deposit.native, bid_quantity.native)
297
+ min_quantity = min(initial_deposit.as_uint64(), bid_quantity.as_uint64())
298
298
  expected_payment = contract.quantity_price(
299
299
  min_quantity,
300
- bid_price.native,
300
+ bid_price.as_uint64(),
301
301
  asset_decimals=test_asset.decimals,
302
302
  )
303
303
 
@@ -306,7 +306,7 @@ def test_accept_bid(
306
306
 
307
307
  # Assert
308
308
  updated_listing = contract.listings[listing_key]
309
- assert updated_listing.deposited == initial_deposit.native - min_quantity
309
+ assert updated_listing.deposited == initial_deposit.as_uint64() - min_quantity
310
310
 
311
311
  assert len(context.txn.last_group.itxn_groups) == 2
312
312