algorand-python-testing 1.2.0b6__tar.gz → 1.2.0b8__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 (373) hide show
  1. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/CHANGELOG.md +4 -0
  2. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/PKG-INFO +2 -2
  3. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/htlc_logicsig/test_signature.py +2 -3
  4. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/proof_of_attendance/test_contract.py +2 -3
  5. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/pyproject.toml +7 -22
  6. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/arc4.py +5 -5
  7. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/constants.py +2 -0
  8. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/context.py +2 -5
  9. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/context_helpers/ledger_context.py +3 -3
  10. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/context_helpers/txn_context.py +3 -3
  11. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/decorators/arc4.py +7 -14
  12. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/enums.py +7 -7
  13. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/itxn.py +2 -2
  14. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/account.py +5 -7
  15. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/application.py +2 -2
  16. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/crypto.py +9 -6
  17. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/global_values.py +4 -4
  18. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/utils.py +21 -4
  19. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/value_generators/arc4.py +3 -4
  20. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/value_generators/avm.py +7 -7
  21. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_address.py +19 -18
  22. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_arc4_method_signature.py +31 -44
  23. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_dynamic_array.py +1 -1
  24. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_dynamic_bytes.py +2 -2
  25. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_emit.py +2 -4
  26. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_static_array.py +1 -1
  27. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_struct.py +1 -1
  28. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_tuple.py +1 -1
  29. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_ufixednxm.py +15 -7
  30. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_uintn.py +1 -1
  31. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +1 -1
  32. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +1 -1
  33. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/common.py +31 -41
  34. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/conftest.py +1 -1
  35. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/test_array.py +2 -2
  36. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/test_context.py +2 -2
  37. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/test_op.py +27 -25
  38. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/utilities/test_log.py +2 -4
  39. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/value_generators/test_avm.py +2 -3
  40. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.coveragerc +0 -0
  41. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.editorconfig +0 -0
  42. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  43. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  44. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/dependabot.yml +0 -0
  45. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/pull_request_template.md +0 -0
  46. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/workflows/cd.yaml +0 -0
  47. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/workflows/ci.yaml +0 -0
  48. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.github/workflows/gh-pages.yaml +0 -0
  49. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.gitignore +0 -0
  50. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.pre-commit-config.yaml +0 -0
  51. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.vscode/extensions.json +0 -0
  52. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.vscode/launch.json +0 -0
  53. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/.vscode/settings.json +0 -0
  54. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/CONTRIBUTING.md +0 -0
  55. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/LICENSE +0 -0
  56. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/README.md +0 -0
  57. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/Makefile +0 -0
  58. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/__init__.py +0 -0
  59. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/_static/custom.css +0 -0
  60. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/algopy.md +0 -0
  61. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/api.md +0 -0
  62. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/conf.py +0 -0
  63. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/coverage.md +0 -0
  64. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/examples.md +0 -0
  65. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/faq.md +0 -0
  66. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/index.md +0 -0
  67. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/make.bat +0 -0
  68. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/arc4-types.md +0 -0
  69. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/avm-types.md +0 -0
  70. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/concepts.md +0 -0
  71. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/contract-testing.md +0 -0
  72. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/index.md +0 -0
  73. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/opcodes.md +0 -0
  74. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/signature-testing.md +0 -0
  75. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/state-management.md +0 -0
  76. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/subroutines.md +0 -0
  77. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/docs/testing-guide/transactions.md +0 -0
  78. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/README.md +0 -0
  79. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/__init__.py +0 -0
  80. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/auction/__init__.py +0 -0
  81. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/auction/contract.py +0 -0
  82. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/auction/test_contract.py +0 -0
  83. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/htlc_logicsig/__init__.py +0 -0
  84. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/htlc_logicsig/signature.py +0 -0
  85. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/marketplace/__init__.py +0 -0
  86. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/marketplace/contract.py +0 -0
  87. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/marketplace/test_contract.py +0 -0
  88. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/proof_of_attendance/__init__.py +0 -0
  89. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/proof_of_attendance/contract.py +0 -0
  90. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/scratch_storage/__init__.py +0 -0
  91. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/scratch_storage/contract.py +0 -0
  92. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/scratch_storage/test_contract.py +0 -0
  93. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/simple_voting/__init__.py +0 -0
  94. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/simple_voting/contract.py +0 -0
  95. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/simple_voting/test_contract.py +0 -0
  96. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/zk_whitelist/__init__.py +0 -0
  97. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/zk_whitelist/contract.py +0 -0
  98. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/examples/zk_whitelist/test_contract.py +0 -0
  99. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/scripts/__init__.py +0 -0
  100. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/scripts/check_stubs_cov.py +0 -0
  101. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/scripts/refresh_test_artifacts.py +0 -0
  102. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/scripts/validate_examples.py +0 -0
  103. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/__init__.py +0 -0
  104. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/compiled.py +0 -0
  105. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/context_helpers/__init__.py +0 -0
  106. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
  107. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/decorators/__init__.py +0 -0
  108. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/decorators/subroutine.py +0 -0
  109. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/gtxn.py +0 -0
  110. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/itxn_loader.py +0 -0
  111. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/__init__.py +0 -0
  112. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/asset.py +0 -0
  113. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/contract.py +0 -0
  114. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/logicsig.py +0 -0
  115. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/template_variable.py +0 -0
  116. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/txn_fields.py +0 -0
  117. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
  118. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/mutable.py +0 -0
  119. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/__init__.py +0 -0
  120. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/block.py +0 -0
  121. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/constants.py +0 -0
  122. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/itxn.py +0 -0
  123. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/misc.py +0 -0
  124. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/pure.py +0 -0
  125. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/op/txn.py +0 -0
  126. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/__init__.py +0 -0
  127. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/array.py +0 -0
  128. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/biguint.py +0 -0
  129. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/bytes.py +0 -0
  130. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/fixed_bytes.py +0 -0
  131. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/string.py +0 -0
  132. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/primitives/uint64.py +0 -0
  133. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/protocols.py +0 -0
  134. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/py.typed +0 -0
  135. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/serialize.py +0 -0
  136. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/__init__.py +0 -0
  137. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/box.py +0 -0
  138. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/global_map.py +0 -0
  139. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/global_state.py +0 -0
  140. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/local_map.py +0 -0
  141. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/local_state.py +0 -0
  142. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/state/utils.py +0 -0
  143. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/utilities/__init__.py +0 -0
  144. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/utilities/budget.py +0 -0
  145. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/utilities/log.py +0 -0
  146. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/utilities/size_of.py +0 -0
  147. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/value_generators/__init__.py +0 -0
  148. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/_algopy_testing/value_generators/txn.py +0 -0
  149. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/__init__.py +0 -0
  150. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/arc4.py +0 -0
  151. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/gtxn.py +0 -0
  152. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/itxn.py +0 -0
  153. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/op.py +0 -0
  154. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy/py.typed +0 -0
  155. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy_testing/__init__.py +0 -0
  156. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/src/algopy_testing/py.typed +0 -0
  157. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/templates/.macros.j2 +0 -0
  158. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/templates/.release_notes.md.j2 +0 -0
  159. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/templates/CHANGELOG.md.j2 +0 -0
  160. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/__init__.py +0 -0
  161. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/__init__.py +0 -0
  162. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/conftest.py +0 -0
  163. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_abi_call.py +0 -0
  164. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_bool.py +0 -0
  165. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/arc4/test_string.py +0 -0
  166. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/__init__.py +0 -0
  167. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/contract.py +0 -0
  168. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/Contract.approval.teal +0 -0
  169. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/Contract.arc56.json +0 -0
  170. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/Contract.clear.teal +0 -0
  171. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV0.approval.teal +0 -0
  172. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV0.arc56.json +0 -0
  173. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV0.clear.teal +0 -0
  174. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV1.approval.teal +0 -0
  175. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV1.arc56.json +0 -0
  176. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/AVM12/data/ContractV1.clear.teal +0 -0
  177. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
  178. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
  179. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
  180. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
  181. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +0 -0
  182. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
  183. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
  184. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
  185. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
  186. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
  187. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +0 -0
  188. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
  189. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
  190. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
  191. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
  192. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
  193. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +0 -0
  194. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
  195. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/__init__.py +0 -0
  196. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
  197. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
  198. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/Contract.arc56.json +0 -0
  199. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
  200. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +0 -0
  201. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +0 -0
  202. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +0 -0
  203. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
  204. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
  205. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +0 -0
  206. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
  207. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +0 -0
  208. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +0 -0
  209. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
  210. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -0
  211. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
  212. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +0 -0
  213. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
  214. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/immutable.py +0 -0
  215. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/static_size.py +0 -0
  216. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Arrays/uint64.py +0 -0
  217. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/__init__.py +0 -0
  218. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/contract.py +0 -0
  219. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
  220. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
  221. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/data/BoxContract.arc56.json +0 -0
  222. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
  223. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Contains/__init__.py +0 -0
  224. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Contains/contract.py +0 -0
  225. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
  226. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
  227. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
  228. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
  229. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
  230. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
  231. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +0 -0
  232. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
  233. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
  234. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
  235. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +0 -0
  236. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
  237. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CreatedAppAsset/other.py +0 -0
  238. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/__init__.py +0 -0
  239. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/contract.py +0 -0
  240. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
  241. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
  242. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +0 -0
  243. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
  244. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/__init__.py +0 -0
  245. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/contract.py +0 -0
  246. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.approval.teal +0 -0
  247. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.arc56.json +0 -0
  248. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.clear.teal +0 -0
  249. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.approval.teal +0 -0
  250. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.arc56.json +0 -0
  251. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.clear.teal +0 -0
  252. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/DynamicITxnGroup/verifier.py +0 -0
  253. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
  254. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
  255. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
  256. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
  257. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +0 -0
  258. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
  259. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/__init__.py +0 -0
  260. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
  261. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
  262. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
  263. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +0 -0
  264. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
  265. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/__init__.py +0 -0
  266. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/contract.py +0 -0
  267. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
  268. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
  269. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/__init__.py +0 -0
  270. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
  271. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
  272. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
  273. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
  274. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
  275. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/StateMutations.arc56.json +0 -0
  276. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
  277. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateMutations/statemutations.py +0 -0
  278. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/__init__.py +0 -0
  279. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/contract.py +0 -0
  280. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalMapContract.approval.teal +0 -0
  281. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalMapContract.arc56.json +0 -0
  282. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalMapContract.clear.teal +0 -0
  283. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
  284. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
  285. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +0 -0
  286. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
  287. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
  288. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
  289. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +0 -0
  290. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
  291. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalMapContract.approval.teal +0 -0
  292. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalMapContract.arc56.json +0 -0
  293. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalMapContract.clear.teal +0 -0
  294. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
  295. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
  296. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +0 -0
  297. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
  298. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
  299. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
  300. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
  301. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
  302. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
  303. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +0 -0
  304. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
  305. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
  306. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
  307. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +0 -0
  308. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
  309. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
  310. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
  311. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +0 -0
  312. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
  313. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
  314. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
  315. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +0 -0
  316. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
  317. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
  318. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
  319. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +0 -0
  320. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
  321. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
  322. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
  323. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +0 -0
  324. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
  325. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
  326. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
  327. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +0 -0
  328. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
  329. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
  330. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
  331. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +0 -0
  332. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
  333. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/__init__.py +0 -0
  334. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/contract.py +0 -0
  335. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/data/TuplesContract.approval.teal +0 -0
  336. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/data/TuplesContract.arc32.json +0 -0
  337. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/data/TuplesContract.arc56.json +0 -0
  338. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/Tuples/data/TuplesContract.clear.teal +0 -0
  339. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/artifacts/__init__.py +0 -0
  340. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/avm12/__init__.py +0 -0
  341. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/avm12/conftest.py +0 -0
  342. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/avm12/test_avm12.py +0 -0
  343. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/contexts/__init__.py +0 -0
  344. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/dynamic_itxn_group/__init__.py +0 -0
  345. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/dynamic_itxn_group/test_dynamic_itxn_group.py +0 -0
  346. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/__init__.py +0 -0
  347. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_asset.py +0 -0
  348. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_box.py +0 -0
  349. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_box_map.py +0 -0
  350. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_box_ref.py +0 -0
  351. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_contract.py +0 -0
  352. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_uenumerate.py +0 -0
  353. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/models/test_urange.py +0 -0
  354. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/__init__.py +0 -0
  355. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/conftest.py +0 -0
  356. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/test_biguint.py +0 -0
  357. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/test_bytes.py +0 -0
  358. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/test_fixed_bytes.py +0 -0
  359. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/test_string.py +0 -0
  360. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/primitives/test_uint64.py +0 -0
  361. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/__init__.py +0 -0
  362. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/conftest.py +0 -0
  363. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/test_global_map.py +0 -0
  364. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/test_global_state.py +0 -0
  365. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/test_local_map.py +0 -0
  366. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/test_local_state.py +0 -0
  367. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/state/test_mutations.py +0 -0
  368. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/test_miscellaneous_op.py +0 -0
  369. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/util.py +0 -0
  370. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/utilities/__init__.py +0 -0
  371. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/utilities/conftest.py +0 -0
  372. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/utilities/test_size_of.py +0 -0
  373. {algorand_python_testing-1.2.0b6 → algorand_python_testing-1.2.0b8}/tests/value_generators/__init__.py +0 -0
@@ -1,4 +1,8 @@
1
1
  # CHANGELOG
2
+ ## v1.2.0-beta.8 (2026-04-09)
3
+
4
+ ## v1.2.0-beta.7 (2026-04-09)
5
+
2
6
  ## v1.2.0-beta.6 (2026-04-07)
3
7
 
4
8
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algorand-python-testing
3
- Version: 1.2.0b6
3
+ Version: 1.2.0b8
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,11 +15,11 @@ 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: algokit-utils>=5.0.0b1
18
19
  Requires-Dist: algorand-python>=3
19
20
  Requires-Dist: coincurve>=19.0.1
20
21
  Requires-Dist: ecdsa>=0.17.0
21
22
  Requires-Dist: pycryptodomex<4,>=3.6.0
22
- Requires-Dist: pynacl<2,>=1.4.0
23
23
  Description-Content-Type: text/markdown
24
24
 
25
25
  <div align="center">
@@ -1,7 +1,6 @@
1
1
  from collections.abc import Generator
2
2
 
3
3
  import algopy
4
- import algosdk
5
4
  import pytest
6
5
  from algopy_testing import AlgopyTestContext, algopy_testing_context
7
6
 
@@ -21,8 +20,8 @@ def test_seller_receives_payment(context: AlgopyTestContext) -> None:
21
20
  context.any.txn.payment(
22
21
  fee=algopy.UInt64(500),
23
22
  first_valid=algopy.UInt64(1000),
24
- close_remainder_to=algopy.Account(algosdk.constants.ZERO_ADDRESS),
25
- rekey_to=algopy.Account(algosdk.constants.ZERO_ADDRESS),
23
+ close_remainder_to=algopy.Account(),
24
+ rekey_to=algopy.Account(),
26
25
  receiver=algopy.Account(
27
26
  "6ZHGHH5Z5CTPCF5WCESXMGRSVK7QJETR63M3NY5FJCUYDHO57VTCMJOBGY"
28
27
  ),
@@ -1,7 +1,6 @@
1
1
  from collections.abc import Generator
2
2
 
3
3
  import algopy
4
- import algosdk
5
4
  import pytest
6
5
  from algopy_testing import AlgopyTestContext, algopy_testing_context
7
6
 
@@ -81,8 +80,8 @@ def test_claim_poa(
81
80
  opt_in_txn = context.any.txn.asset_transfer(
82
81
  sender=context.default_sender,
83
82
  asset_receiver=context.default_sender,
84
- asset_close_to=algopy.Account(algosdk.constants.ZERO_ADDRESS),
85
- rekey_to=algopy.Account(algosdk.constants.ZERO_ADDRESS),
83
+ asset_close_to=algopy.Account(),
84
+ rekey_to=algopy.Account(),
86
85
  xfer_asset=dummy_poa,
87
86
  fee=algopy.UInt64(0),
88
87
  asset_amount=algopy.UInt64(0),
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "algorand-python-testing"
7
- version = "1.2.0-beta.6"
7
+ version = "1.2.0-beta.8"
8
8
  description = 'Algorand Python testing library'
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -21,16 +21,11 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.13",
22
22
  ]
23
23
  dependencies = [
24
- # ==========================================================================
25
- # Below is used for implementing algopy crypto ops matching AVM.
26
- # Versions pinned for compatibility with py-algorand-sdk pre reqs
27
- # https://github.com/algorand/py-algorand-sdk/blob/master/setup.py
28
- # ==========================================================================
29
24
  "pycryptodomex>=3.6.0,<4",
30
- "pynacl>=1.4.0,<2",
31
25
  "ecdsa>=0.17.0",
32
26
  "coincurve>=19.0.1",
33
- "algorand-python>=3",
27
+ "algorand-python>=3",
28
+ "algokit-utils>=5.0.0b1",
34
29
  ]
35
30
 
36
31
  [project.urls]
@@ -50,12 +45,10 @@ type = "virtual"
50
45
  path = ".venv"
51
46
  python = "3.12"
52
47
  dependencies = [
53
- "puyapy>=5.7.1",
48
+ "puyapy>=5.8.0",
54
49
  "pytest>=7.4",
55
50
  "pytest-mock>=3.10.0",
56
51
  "pytest-xdist[psutil]>=3.3",
57
- "py-algorand-sdk>=2.4.0",
58
- "algokit-utils>=4.0.0",
59
52
  "pytest-cov>=4.1.0",
60
53
  "prettytable>=3.9.0",
61
54
  "mypy==1.19.1",
@@ -130,9 +123,7 @@ dependencies = [
130
123
  "pytest-mock>=3.10.0",
131
124
  "pytest-xdist[psutil]>=3.3",
132
125
  "pytest-cov>=4.1.0",
133
- "py-algorand-sdk>=2.4.0",
134
- "algokit-utils>=4.0.0",
135
- "puyapy>=5.7.1",
126
+ "puyapy>=5.8.0",
136
127
  ]
137
128
 
138
129
  [tool.hatch.envs.test.scripts]
@@ -157,7 +148,6 @@ dependencies = [
157
148
  "sphinx-mermaid",
158
149
  "ipykernel",
159
150
  "pytest",
160
- "py-algorand-sdk",
161
151
  ]
162
152
  # environment has algopy_testing included as an editable dependency
163
153
  # however it also includes the package dependencies
@@ -183,12 +173,9 @@ post-install-commands = [
183
173
  "hatch run examples:reload_algopy_testing",
184
174
  ]
185
175
  dependencies = [
186
- "algorand-python>=3",
187
176
  "pytest>=7.4",
188
177
  "pytest-mock>=3.10.0",
189
178
  "pytest-xdist[psutil]>=3.3",
190
- "py-algorand-sdk>=2.4.0",
191
- "algokit-utils>=4.0.0",
192
179
  "pytest-cov>=4.1.0",
193
180
  "mypy==1.19.1",
194
181
  ]
@@ -276,7 +263,7 @@ ignore = [
276
263
  "RET503", # false negatives when involving typing.Never, covered by mypy anyway
277
264
  "RET504",
278
265
  "RET505", # stylistic choices for readability
279
- "S101", # allow asserts
266
+ "S101", # allow asserts
280
267
  "C901", # allow >10 args in a method
281
268
  "N805", # allow using `cls` as a firstparameter name
282
269
  ]
@@ -317,15 +304,13 @@ builtins-ignorelist = ["id"]
317
304
  [tool.mypy]
318
305
  python_version = "3.12"
319
306
  strict = true
320
- untyped_calls_exclude = [
321
- "algosdk",
322
- ]
323
307
  files = ["src", "tests", "examples"]
324
308
  exclude = ["tests/artifacts"]
325
309
 
326
310
  [[tool.mypy.overrides]]
327
311
  module = [
328
312
  "tests.artifacts.*",
313
+ "rich.*",
329
314
  ]
330
315
  follow_imports = "skip"
331
316
 
@@ -6,7 +6,7 @@ import functools
6
6
  import types
7
7
  import typing
8
8
 
9
- import algosdk
9
+ from algokit_utils.common import ZERO_ADDRESS, public_key_from_address
10
10
  from Cryptodome.Hash import SHA512
11
11
  from typing_extensions import deprecated
12
12
 
@@ -751,11 +751,11 @@ class _AddressTypeInfo(_StaticArrayTypeInfo):
751
751
  class Address(StaticArray[Byte, typing.Literal[32]]):
752
752
  _type_info = _AddressTypeInfo()
753
753
 
754
- def __init__(self, value: Account | str | algopy.Bytes = algosdk.constants.ZERO_ADDRESS):
754
+ def __init__(self, value: Account | str | algopy.Bytes = ZERO_ADDRESS):
755
755
  super().__init__()
756
756
  if isinstance(value, str):
757
757
  try:
758
- bytes_value = algosdk.encoding.decode_address(value)
758
+ bytes_value = public_key_from_address(value)
759
759
  except Exception as e:
760
760
  raise ValueError(f"cannot encode the following address: {value!r}") from e
761
761
  elif isinstance(value, Account):
@@ -773,7 +773,7 @@ class Address(StaticArray[Byte, typing.Literal[32]]):
773
773
 
774
774
  def __bool__(self) -> bool:
775
775
  # """Returns `True` if not equal to the zero address"""
776
- zero_bytes: bytes = algosdk.encoding.decode_address(algosdk.constants.ZERO_ADDRESS)
776
+ zero_bytes: bytes = public_key_from_address(ZERO_ADDRESS)
777
777
  return self.bytes != zero_bytes
778
778
 
779
779
  def __eq__(self, other: Address | Account | str) -> bool: # type: ignore[override]
@@ -782,7 +782,7 @@ class Address(StaticArray[Byte, typing.Literal[32]]):
782
782
  if isinstance(other, Address | Account):
783
783
  return self.bytes == other.bytes
784
784
  elif isinstance(other, str):
785
- other_bytes: bytes = algosdk.encoding.decode_address(other)
785
+ other_bytes: bytes = public_key_from_address(other)
786
786
  return self.bytes == other_bytes
787
787
  else:
788
788
  return NotImplemented
@@ -28,3 +28,5 @@ ALWAYS_APPROVE_TEAL_PROGRAM = (
28
28
  b"\x09" # pragma version 9
29
29
  b"\x81\x01" # pushint 1
30
30
  )
31
+
32
+ LOGIC_DATA_PREFIX = b"ProgData"
@@ -2,9 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  import typing
4
4
 
5
- import algosdk
6
-
7
5
  from _algopy_testing.context_helpers import LedgerContext, TransactionContext
6
+ from _algopy_testing.utils import generate_random_account
8
7
  from _algopy_testing.value_generators import AlgopyValueGenerator
9
8
 
10
9
  if typing.TYPE_CHECKING:
@@ -33,9 +32,7 @@ class AlgopyTestContext:
33
32
  ) -> None:
34
33
  import algopy
35
34
 
36
- self._default_sender = algopy.Account(
37
- default_sender or algosdk.account.generate_account()[1]
38
- )
35
+ self._default_sender = algopy.Account(default_sender or generate_random_account().addr)
39
36
  self._template_vars: dict[str, typing.Any] = template_vars or {}
40
37
 
41
38
  self._active_lsig_args: Sequence[algopy.Bytes] = ()
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import typing
4
4
  from collections import defaultdict
5
5
 
6
- import algosdk.constants
6
+ from algokit_utils.common import ZERO_ADDRESS
7
7
 
8
8
  from _algopy_testing.constants import MAX_BOX_SIZE
9
9
  from _algopy_testing.models.account import Account
@@ -374,9 +374,9 @@ class LedgerContext:
374
374
  timestamp: algopy.UInt64 | int,
375
375
  bonus: algopy.UInt64 | int = 0,
376
376
  branch: algopy.Bytes | bytes = b"",
377
- fee_sink: algopy.Account | str = algosdk.constants.ZERO_ADDRESS,
377
+ fee_sink: algopy.Account | str = ZERO_ADDRESS,
378
378
  fees_collected: algopy.UInt64 | int = 0,
379
- proposer: algopy.Account | str = algosdk.constants.ZERO_ADDRESS,
379
+ proposer: algopy.Account | str = ZERO_ADDRESS,
380
380
  proposer_payout: algopy.UInt64 | int = 0,
381
381
  protocol: algopy.Bytes | bytes = b"",
382
382
  txn_counter: algopy.UInt64 | int = 0,
@@ -4,7 +4,7 @@ import contextlib
4
4
  import time
5
5
  import typing
6
6
 
7
- import algosdk
7
+ from algokit_utils.transactions import MAX_TRANSACTION_GROUP_SIZE
8
8
 
9
9
  from _algopy_testing import gtxn
10
10
  from _algopy_testing.decorators.arc4 import (
@@ -229,9 +229,9 @@ class TransactionGroup:
229
229
  if not all(isinstance(txn, gtxn.TransactionBase) for txn in txns):
230
230
  raise ValueError("All transactions must be instances of TransactionBase")
231
231
 
232
- if len(txns) > algosdk.constants.TX_GROUP_LIMIT:
232
+ if len(txns) > MAX_TRANSACTION_GROUP_SIZE:
233
233
  raise ValueError(
234
- f"Transaction group can have at most {algosdk.constants.TX_GROUP_LIMIT} "
234
+ f"Transaction group can have at most {MAX_TRANSACTION_GROUP_SIZE} "
235
235
  "transactions, as per AVM limits."
236
236
  )
237
237
 
@@ -6,7 +6,7 @@ import inspect
6
6
  import types
7
7
  import typing
8
8
 
9
- import algosdk
9
+ from algokit_utils.applications.abi import Arc56Method
10
10
 
11
11
  import _algopy_testing
12
12
  from _algopy_testing.constants import ALWAYS_APPROVE_TEAL_PROGRAM, ARC4_RETURN_PREFIX
@@ -217,7 +217,7 @@ def create_abimethod_txns(
217
217
  contract_app = lazy_context.ledger.get_app(app_id)
218
218
  txn_fields = get_active_txn_fields(contract_app, allow_actions)
219
219
 
220
- method = algosdk.abi.Method.from_signature(arc4_signature)
220
+ method = Arc56Method.from_signature(arc4_signature)
221
221
  method_selector = Bytes(method.get_selector())
222
222
  txn_arrays = _extract_arrays_from_args(
223
223
  args,
@@ -337,18 +337,11 @@ def _generate_arc4_signature_from_fn(
337
337
  fn: typing.Callable[_P, _R], arc4_name: str, resource_encoding: _ResourceEncoding
338
338
  ) -> str:
339
339
  annotations = inspect.get_annotations(fn, eval_str=True).copy()
340
- returns = algosdk.abi.Returns(
341
- _type_to_arc4(annotations.pop("return"), resource_encoding, "output")
342
- )
343
- method = algosdk.abi.Method(
344
- name=arc4_name,
345
- args=[
346
- algosdk.abi.Argument(_type_to_arc4(a, resource_encoding, "input"))
347
- for a in annotations.values()
348
- ],
349
- returns=returns,
350
- )
351
- return method.get_signature()
340
+ returns = _type_to_arc4(annotations.pop("return"), resource_encoding, "output")
341
+
342
+ args = ",".join([_type_to_arc4(a, resource_encoding, "input") for a in annotations.values()])
343
+
344
+ return f"{arc4_name}({args}){returns}"
352
345
 
353
346
 
354
347
  def _type_to_arc4( # noqa: PLR0912 PLR0911
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import typing
4
4
 
5
- from algosdk import constants
5
+ from algokit_utils.transact import TransactionType as BaseTransactionType
6
6
 
7
7
  from _algopy_testing.primitives import UInt64
8
8
 
@@ -73,17 +73,17 @@ class TransactionType(_EnumLike):
73
73
  def txn_name(self) -> str:
74
74
  match self:
75
75
  case self.Payment:
76
- return constants.PAYMENT_TXN
76
+ return BaseTransactionType.Payment.value
77
77
  case self.KeyRegistration:
78
- return constants.KEYREG_TXN
78
+ return BaseTransactionType.KeyRegistration.value
79
79
  case self.AssetConfig:
80
- return constants.ASSETCONFIG_TXN
80
+ return BaseTransactionType.AssetConfig.value
81
81
  case self.AssetTransfer:
82
- return constants.ASSETTRANSFER_TXN
82
+ return BaseTransactionType.AssetTransfer.value
83
83
  case self.AssetFreeze:
84
- return constants.ASSETFREEZE_TXN
84
+ return BaseTransactionType.AssetFreeze.value
85
85
  case self.ApplicationCall:
86
- return constants.APPCALL_TXN
86
+ return BaseTransactionType.AppCall.value
87
87
  case _:
88
88
  raise ValueError("unexpected transaction type")
89
89
 
@@ -4,7 +4,7 @@ import logging
4
4
  import typing
5
5
  from copy import deepcopy
6
6
 
7
- import algosdk
7
+ from algokit_utils.transactions import MAX_TRANSACTION_GROUP_SIZE
8
8
 
9
9
  from _algopy_testing.context_helpers import lazy_context
10
10
  from _algopy_testing.enums import TransactionType
@@ -168,7 +168,7 @@ class ApplicationCall(_BaseInnerTransactionFields[ApplicationCallInnerTransactio
168
168
  def submit_txns(
169
169
  *transactions: _BaseInnerTransactionFields[_TResult_co],
170
170
  ) -> tuple[_BaseInnerTransactionResult, ...]:
171
- if len(transactions) > algosdk.constants.TX_GROUP_LIMIT:
171
+ if len(transactions) > MAX_TRANSACTION_GROUP_SIZE:
172
172
  raise ValueError("Cannot submit more than 16 inner transactions at once")
173
173
 
174
174
  results = tuple(_get_itxn_result(tx) for tx in transactions)
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import dataclasses
4
4
  import typing
5
5
 
6
- import algosdk
6
+ from algokit_utils.common import ZERO_ADDRESS, address_from_public_key, public_key_from_address
7
7
 
8
8
  from _algopy_testing.constants import DEFAULT_ACCOUNT_MIN_BALANCE
9
9
  from _algopy_testing.primitives import Bytes, UInt64
@@ -79,12 +79,12 @@ class AccountContextData:
79
79
 
80
80
 
81
81
  class Account(BytesBacked):
82
- def __init__(self, value: str | Bytes = algosdk.constants.ZERO_ADDRESS, /):
82
+ def __init__(self, value: str | Bytes = ZERO_ADDRESS, /):
83
83
  if not isinstance(value, str | Bytes):
84
84
  raise TypeError("Invalid value for Account")
85
85
 
86
86
  self._public_key: bytes = (
87
- algosdk.encoding.decode_address(value) if isinstance(value, str) else value.value
87
+ public_key_from_address(value) if isinstance(value, str) else value.value
88
88
  )
89
89
 
90
90
  @property
@@ -126,7 +126,7 @@ class Account(BytesBacked):
126
126
 
127
127
  @property
128
128
  def public_key(self) -> str:
129
- return algosdk.encoding.encode_address(self._public_key) # type: ignore[no-any-return]
129
+ return address_from_public_key(self._public_key)
130
130
 
131
131
  def validate(self) -> None:
132
132
  pass
@@ -151,9 +151,7 @@ class Account(BytesBacked):
151
151
  return NotImplemented
152
152
 
153
153
  def __bool__(self) -> bool:
154
- return bool(self._public_key) and self._public_key != algosdk.encoding.decode_address(
155
- algosdk.constants.ZERO_ADDRESS
156
- )
154
+ return bool(self._public_key) and self._public_key != public_key_from_address(ZERO_ADDRESS)
157
155
 
158
156
  def __hash__(self) -> int:
159
157
  return hash(self._public_key)
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import typing
4
4
 
5
- import algosdk.logic
5
+ from algokit_utils.common import get_application_address
6
6
 
7
7
  from _algopy_testing.primitives import UInt64
8
8
  from _algopy_testing.protocols import UInt64Backed
@@ -63,7 +63,7 @@ class Application(UInt64Backed):
63
63
  def address(self) -> algopy.Account:
64
64
  from _algopy_testing.models import Account
65
65
 
66
- address = algosdk.logic.get_application_address(self._id)
66
+ address = get_application_address(self._id)
67
67
  return Account(address)
68
68
 
69
69
  @property
@@ -3,12 +3,12 @@ from __future__ import annotations
3
3
  import enum
4
4
  import hashlib
5
5
  import typing
6
- from collections.abc import Sequence
7
6
 
8
- import algosdk
9
7
  import coincurve
10
8
  import nacl.exceptions
11
9
  import nacl.signing
10
+ from algokit_utils.common import public_key_from_address
11
+ from algokit_utils.transact import LogicSigAccount
12
12
  from Cryptodome.Hash import SHA512, keccak
13
13
  from ecdsa import ( # type: ignore # noqa: PGH003
14
14
  BadSignatureError,
@@ -17,11 +17,15 @@ from ecdsa import ( # type: ignore # noqa: PGH003
17
17
  VerifyingKey,
18
18
  )
19
19
 
20
+ from _algopy_testing.constants import LOGIC_DATA_PREFIX
20
21
  from _algopy_testing.context_helpers import lazy_context
21
22
  from _algopy_testing.enums import OnCompleteAction
22
23
  from _algopy_testing.primitives import Bytes, UInt64
23
24
  from _algopy_testing.utils import as_bytes, raise_mocked_function_error
24
25
 
26
+ if typing.TYPE_CHECKING:
27
+ from collections.abc import Sequence
28
+
25
29
 
26
30
  class ECDSA(enum.Enum):
27
31
  Secp256k1 = 0
@@ -76,7 +80,7 @@ def ed25519verify(a: Bytes | bytes, b: Bytes | bytes, c: Bytes | bytes, /) -> bo
76
80
  txn = lazy_context.active_group.active_txn
77
81
 
78
82
  program_pages = typing.cast(
79
- Sequence[Bytes],
83
+ "Sequence[Bytes]",
80
84
  (
81
85
  txn.fields["clear_state_program"]
82
86
  if txn.on_completion == OnCompleteAction.ClearState
@@ -85,9 +89,9 @@ def ed25519verify(a: Bytes | bytes, b: Bytes | bytes, c: Bytes | bytes, /) -> bo
85
89
  )
86
90
  program_bytes = b"".join(map(as_bytes, program_pages))
87
91
 
88
- decoded_address = algosdk.encoding.decode_address(algosdk.logic.address(program_bytes))
92
+ decoded_address = public_key_from_address(LogicSigAccount(logic=program_bytes).address)
89
93
  address_bytes = as_bytes(decoded_address)
90
- a = algosdk.constants.logic_data_prefix + address_bytes + a
94
+ a = LOGIC_DATA_PREFIX + address_bytes + a
91
95
  return ed25519verify_bare(a, b, c)
92
96
 
93
97
 
@@ -195,7 +199,6 @@ class EC(enum.StrEnum):
195
199
 
196
200
 
197
201
  class _MockedMember:
198
-
199
202
  def __set_name__(self, owner: type, name: str) -> None:
200
203
  self.name = f"{owner.__name__}.{name}"
201
204
 
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import typing
4
4
  from typing import TypedDict, TypeVar
5
5
 
6
- import algosdk
6
+ from algokit_utils.common import ZERO_ADDRESS, get_application_address
7
7
 
8
8
  from _algopy_testing.context_helpers import lazy_context
9
9
  from _algopy_testing.models import Account
@@ -45,7 +45,7 @@ class _Global:
45
45
 
46
46
  @property
47
47
  def current_application_address(self) -> algopy.Account:
48
- app_address = algosdk.logic.get_application_address(int(self.current_application_id.id))
48
+ app_address = get_application_address(int(self.current_application_id.id))
49
49
  return Account(app_address)
50
50
 
51
51
  @property
@@ -58,7 +58,7 @@ class _Global:
58
58
 
59
59
  @property
60
60
  def caller_application_address(self) -> algopy.Account:
61
- app_address = algosdk.logic.get_application_address(int(self.caller_application_id))
61
+ app_address = get_application_address(int(self.caller_application_id))
62
62
  return Account(app_address)
63
63
 
64
64
  @property
@@ -104,7 +104,7 @@ class _Global:
104
104
  try:
105
105
  return self._fields["zero_address"]
106
106
  except KeyError:
107
- return Account(algosdk.constants.ZERO_ADDRESS)
107
+ return Account(ZERO_ADDRESS)
108
108
 
109
109
  def __getattr__(self, name: str) -> typing.Any:
110
110
  try:
@@ -5,7 +5,9 @@ import types
5
5
  import typing
6
6
  from typing import TYPE_CHECKING
7
7
 
8
- import algosdk
8
+ from algokit_utils import AddressWithSigners, AlgorandClient, ClientManager
9
+ from algokit_utils.accounts import AccountManager
10
+ from algokit_utils.common import MIN_TXN_FEE, ZERO_ADDRESS, public_key_from_address
9
11
 
10
12
  import _algopy_testing
11
13
  from _algopy_testing.constants import (
@@ -60,6 +62,14 @@ def generate_random_bytes32() -> bytes:
60
62
  return secrets.token_bytes(32)
61
63
 
62
64
 
65
+ def generate_random_account() -> AddressWithSigners:
66
+ """Generate a new random Algorand account and return its address."""
67
+ configs = ClientManager.get_config_from_environment_or_localnet()
68
+ client_manager = ClientManager(configs, AlgorandClient(configs))
69
+ acc = AccountManager(client_manager).random()
70
+ return acc
71
+
72
+
63
73
  def as_int(value: object, *, max: int | None) -> int: # noqa: A002
64
74
  match value:
65
75
  case int(int_value):
@@ -157,17 +167,24 @@ def check_type(value: object, typ: type | types.UnionType) -> None:
157
167
 
158
168
 
159
169
  def assert_address_is_valid(address: str) -> None:
160
- assert algosdk.encoding.is_valid_address(address), "Invalid Algorand address supplied!"
170
+ def is_valid_algorand_address(address: str) -> bool:
171
+ try:
172
+ public_key_from_address(address)
173
+ except: # noqa: E722
174
+ return False
175
+ return True
176
+
177
+ assert is_valid_algorand_address(address), "Invalid Algorand address supplied!"
161
178
 
162
179
 
163
180
  def get_default_global_fields() -> GlobalFields:
164
181
  import algopy
165
182
 
166
183
  return {
167
- "min_txn_fee": algopy.UInt64(algosdk.constants.MIN_TXN_FEE),
184
+ "min_txn_fee": algopy.UInt64(MIN_TXN_FEE),
168
185
  "min_balance": algopy.UInt64(DEFAULT_ACCOUNT_MIN_BALANCE),
169
186
  "max_txn_life": algopy.UInt64(DEFAULT_MAX_TXN_LIFE),
170
- "zero_address": algopy.Account(algosdk.constants.ZERO_ADDRESS),
187
+ "zero_address": algopy.Account(ZERO_ADDRESS),
171
188
  "caller_application_id": algopy.UInt64(),
172
189
  "asset_create_min_balance": algopy.UInt64(DEFAULT_ASSET_CREATE_MIN_BALANCE),
173
190
  "asset_opt_in_min_balance": algopy.UInt64(DEFAULT_ASSET_OPT_IN_MIN_BALANCE),
@@ -4,11 +4,9 @@ import secrets
4
4
  import string
5
5
  import typing
6
6
 
7
- import algosdk
8
-
9
7
  from _algopy_testing import arc4
10
8
  from _algopy_testing.constants import MAX_UINT8, MAX_UINT16, MAX_UINT32, MAX_UINT64, MAX_UINT512
11
- from _algopy_testing.utils import generate_random_int
9
+ from _algopy_testing.utils import generate_random_account, generate_random_int
12
10
 
13
11
  if typing.TYPE_CHECKING:
14
12
  import algopy
@@ -23,7 +21,8 @@ class ARC4ValueGenerator:
23
21
  :returns: A new, random Algorand address.
24
22
  """
25
23
 
26
- return arc4.Address(algosdk.account.generate_account()[1])
24
+ address = generate_random_account().addr
25
+ return arc4.Address(address)
27
26
 
28
27
  def uint8(self, min_value: int = 0, max_value: int = MAX_UINT8) -> algopy.arc4.UInt8:
29
28
  """Generate a random UInt8 within the specified range.
@@ -5,7 +5,7 @@ import string
5
5
  import typing
6
6
  from collections import ChainMap
7
7
 
8
- import algosdk
8
+ from algokit_utils.common import ZERO_ADDRESS
9
9
 
10
10
  import _algopy_testing
11
11
  from _algopy_testing.constants import (
@@ -18,7 +18,7 @@ from _algopy_testing.context_helpers import lazy_context
18
18
  from _algopy_testing.models.account import AccountFields
19
19
  from _algopy_testing.models.application import ApplicationContextData, ApplicationFields
20
20
  from _algopy_testing.models.asset import AssetFields
21
- from _algopy_testing.utils import generate_random_int
21
+ from _algopy_testing.utils import generate_random_account, generate_random_int
22
22
 
23
23
  if typing.TYPE_CHECKING:
24
24
  import algopy
@@ -92,7 +92,7 @@ class AVMValueGenerator:
92
92
  raise AttributeError(f"Invalid field '{key}' for Account")
93
93
 
94
94
  ledger = lazy_context.ledger
95
- new_account_address = address or algosdk.account.generate_account()[1]
95
+ new_account_address = address or generate_random_account().addr
96
96
  new_account = algopy.Account(new_account_address)
97
97
  # defaultdict of account_data ensures we get a new initialized account
98
98
  account_data = lazy_context.get_account_data(new_account_address)
@@ -129,11 +129,11 @@ class AVMValueGenerator:
129
129
  "name": lazy_context.any.bytes(32),
130
130
  "url": lazy_context.any.bytes(10),
131
131
  "metadata_hash": lazy_context.any.bytes(32),
132
- "manager": algopy.Account(algosdk.constants.ZERO_ADDRESS),
133
- "freeze": algopy.Account(algosdk.constants.ZERO_ADDRESS),
134
- "clawback": algopy.Account(algosdk.constants.ZERO_ADDRESS),
132
+ "manager": algopy.Account(ZERO_ADDRESS),
133
+ "freeze": algopy.Account(ZERO_ADDRESS),
134
+ "clawback": algopy.Account(ZERO_ADDRESS),
135
135
  "creator": lazy_context.value.default_sender,
136
- "reserve": algopy.Account(algosdk.constants.ZERO_ADDRESS),
136
+ "reserve": algopy.Account(ZERO_ADDRESS),
137
137
  }
138
138
  merged_fields = dict(ChainMap(asset_fields, default_asset_fields)) # type: ignore[arg-type]
139
139
  lazy_context.ledger._asset_data[int(new_asset.id)] = AssetFields(**merged_fields) # type: ignore[typeddict-item]