algorand-python-testing 1.2.0b7__tar.gz → 1.2.0b9__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 (382) hide show
  1. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/CHANGELOG.md +8 -0
  2. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/PKG-INFO +2 -2
  3. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/htlc_logicsig/test_signature.py +2 -3
  4. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/proof_of_attendance/test_contract.py +2 -3
  5. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/pyproject.toml +5 -20
  6. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/arc4.py +5 -5
  7. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/constants.py +2 -0
  8. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/context.py +19 -13
  9. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/context_helpers/ledger_context.py +3 -3
  10. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/context_helpers/txn_context.py +3 -3
  11. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/decorators/arc4.py +7 -14
  12. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/enums.py +7 -7
  13. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/itxn.py +2 -2
  14. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/account.py +5 -7
  15. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/application.py +2 -2
  16. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/logicsig.py +13 -5
  17. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/crypto.py +9 -6
  18. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/global_values.py +4 -4
  19. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/misc.py +1 -1
  20. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/utils.py +21 -4
  21. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/value_generators/arc4.py +3 -4
  22. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/value_generators/avm.py +7 -7
  23. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_address.py +19 -18
  24. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_arc4_method_signature.py +31 -44
  25. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_dynamic_array.py +1 -1
  26. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_dynamic_bytes.py +2 -2
  27. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_emit.py +2 -4
  28. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_static_array.py +1 -1
  29. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_struct.py +1 -1
  30. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_tuple.py +1 -1
  31. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_ufixednxm.py +15 -7
  32. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_uintn.py +1 -1
  33. algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature/data/args_complex.teal +715 -0
  34. algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature/data/args_complex_no_validation.teal +664 -0
  35. algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature/data/args_simple.teal +92 -0
  36. algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature/lsig_args_complex.py +269 -0
  37. algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature/lsig_args_simple.py +24 -0
  38. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/common.py +31 -41
  39. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/conftest.py +1 -1
  40. algorand_python_testing-1.2.0b9/tests/logic_signature/test_lsig_args_complex.py +92 -0
  41. algorand_python_testing-1.2.0b9/tests/logic_signature/test_lsig_args_simple.py +30 -0
  42. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/test_array.py +2 -2
  43. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/test_context.py +2 -2
  44. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/test_op.py +27 -25
  45. algorand_python_testing-1.2.0b9/tests/utilities/__init__.py +0 -0
  46. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/utilities/test_log.py +2 -4
  47. algorand_python_testing-1.2.0b9/tests/value_generators/__init__.py +0 -0
  48. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/value_generators/test_avm.py +2 -3
  49. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.coveragerc +0 -0
  50. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.editorconfig +0 -0
  51. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  52. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  53. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/dependabot.yml +0 -0
  54. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/pull_request_template.md +0 -0
  55. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/workflows/cd.yaml +0 -0
  56. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/workflows/ci.yaml +0 -0
  57. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.github/workflows/gh-pages.yaml +0 -0
  58. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.gitignore +0 -0
  59. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.pre-commit-config.yaml +0 -0
  60. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.vscode/extensions.json +0 -0
  61. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.vscode/launch.json +0 -0
  62. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/.vscode/settings.json +0 -0
  63. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/CONTRIBUTING.md +0 -0
  64. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/LICENSE +0 -0
  65. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/README.md +0 -0
  66. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/Makefile +0 -0
  67. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/__init__.py +0 -0
  68. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/_static/custom.css +0 -0
  69. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/algopy.md +0 -0
  70. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/api.md +0 -0
  71. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/conf.py +0 -0
  72. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/coverage.md +0 -0
  73. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/examples.md +0 -0
  74. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/faq.md +0 -0
  75. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/index.md +0 -0
  76. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/make.bat +0 -0
  77. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/arc4-types.md +0 -0
  78. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/avm-types.md +0 -0
  79. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/concepts.md +0 -0
  80. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/contract-testing.md +0 -0
  81. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/index.md +0 -0
  82. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/opcodes.md +0 -0
  83. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/signature-testing.md +0 -0
  84. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/state-management.md +0 -0
  85. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/subroutines.md +0 -0
  86. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/docs/testing-guide/transactions.md +0 -0
  87. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/README.md +0 -0
  88. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/__init__.py +0 -0
  89. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/auction/__init__.py +0 -0
  90. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/auction/contract.py +0 -0
  91. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/auction/test_contract.py +0 -0
  92. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/htlc_logicsig/__init__.py +0 -0
  93. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/htlc_logicsig/signature.py +0 -0
  94. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/marketplace/__init__.py +0 -0
  95. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/marketplace/contract.py +0 -0
  96. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/marketplace/test_contract.py +0 -0
  97. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/proof_of_attendance/__init__.py +0 -0
  98. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/proof_of_attendance/contract.py +0 -0
  99. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/scratch_storage/__init__.py +0 -0
  100. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/scratch_storage/contract.py +0 -0
  101. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/scratch_storage/test_contract.py +0 -0
  102. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/simple_voting/__init__.py +0 -0
  103. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/simple_voting/contract.py +0 -0
  104. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/simple_voting/test_contract.py +0 -0
  105. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/zk_whitelist/__init__.py +0 -0
  106. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/zk_whitelist/contract.py +0 -0
  107. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/examples/zk_whitelist/test_contract.py +0 -0
  108. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/scripts/__init__.py +0 -0
  109. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/scripts/check_stubs_cov.py +0 -0
  110. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/scripts/refresh_test_artifacts.py +0 -0
  111. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/scripts/validate_examples.py +0 -0
  112. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/__init__.py +0 -0
  113. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/compiled.py +0 -0
  114. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/context_helpers/__init__.py +0 -0
  115. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
  116. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/decorators/__init__.py +0 -0
  117. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/decorators/subroutine.py +0 -0
  118. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/gtxn.py +0 -0
  119. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/itxn_loader.py +0 -0
  120. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/__init__.py +0 -0
  121. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/asset.py +0 -0
  122. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/contract.py +0 -0
  123. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/template_variable.py +0 -0
  124. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/txn_fields.py +0 -0
  125. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
  126. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/mutable.py +0 -0
  127. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/__init__.py +0 -0
  128. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/block.py +0 -0
  129. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/constants.py +0 -0
  130. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/itxn.py +0 -0
  131. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/pure.py +0 -0
  132. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/op/txn.py +0 -0
  133. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/__init__.py +0 -0
  134. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/array.py +0 -0
  135. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/biguint.py +0 -0
  136. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/bytes.py +0 -0
  137. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/fixed_bytes.py +0 -0
  138. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/string.py +0 -0
  139. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/primitives/uint64.py +0 -0
  140. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/protocols.py +0 -0
  141. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/py.typed +0 -0
  142. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/serialize.py +0 -0
  143. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/__init__.py +0 -0
  144. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/box.py +0 -0
  145. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/global_map.py +0 -0
  146. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/global_state.py +0 -0
  147. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/local_map.py +0 -0
  148. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/local_state.py +0 -0
  149. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/state/utils.py +0 -0
  150. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/utilities/__init__.py +0 -0
  151. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/utilities/budget.py +0 -0
  152. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/utilities/log.py +0 -0
  153. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/utilities/size_of.py +0 -0
  154. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/value_generators/__init__.py +0 -0
  155. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/_algopy_testing/value_generators/txn.py +0 -0
  156. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/__init__.py +0 -0
  157. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/arc4.py +0 -0
  158. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/gtxn.py +0 -0
  159. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/itxn.py +0 -0
  160. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/op.py +0 -0
  161. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy/py.typed +0 -0
  162. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy_testing/__init__.py +0 -0
  163. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/src/algopy_testing/py.typed +0 -0
  164. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/templates/.macros.j2 +0 -0
  165. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/templates/.release_notes.md.j2 +0 -0
  166. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/templates/CHANGELOG.md.j2 +0 -0
  167. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/__init__.py +0 -0
  168. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/__init__.py +0 -0
  169. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/conftest.py +0 -0
  170. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_abi_call.py +0 -0
  171. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_bool.py +0 -0
  172. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/arc4/test_string.py +0 -0
  173. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/__init__.py +0 -0
  174. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/contract.py +0 -0
  175. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/Contract.approval.teal +0 -0
  176. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/Contract.arc56.json +0 -0
  177. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/Contract.clear.teal +0 -0
  178. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV0.approval.teal +0 -0
  179. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV0.arc56.json +0 -0
  180. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV0.clear.teal +0 -0
  181. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV1.approval.teal +0 -0
  182. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV1.arc56.json +0 -0
  183. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/AVM12/data/ContractV1.clear.teal +0 -0
  184. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
  185. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
  186. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
  187. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
  188. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +0 -0
  189. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
  190. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
  191. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
  192. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
  193. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
  194. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +0 -0
  195. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
  196. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
  197. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
  198. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
  199. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
  200. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +0 -0
  201. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
  202. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/__init__.py +0 -0
  203. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
  204. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
  205. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/Contract.arc56.json +0 -0
  206. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
  207. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +0 -0
  208. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +0 -0
  209. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +0 -0
  210. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
  211. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
  212. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +0 -0
  213. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
  214. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +0 -0
  215. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +0 -0
  216. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
  217. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -0
  218. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
  219. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +0 -0
  220. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
  221. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/immutable.py +0 -0
  222. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/static_size.py +0 -0
  223. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Arrays/uint64.py +0 -0
  224. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/__init__.py +0 -0
  225. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/contract.py +0 -0
  226. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
  227. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
  228. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/data/BoxContract.arc56.json +0 -0
  229. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
  230. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Contains/__init__.py +0 -0
  231. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Contains/contract.py +0 -0
  232. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
  233. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
  234. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
  235. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
  236. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
  237. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
  238. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +0 -0
  239. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
  240. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
  241. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
  242. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +0 -0
  243. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
  244. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CreatedAppAsset/other.py +0 -0
  245. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/__init__.py +0 -0
  246. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/contract.py +0 -0
  247. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
  248. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
  249. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +0 -0
  250. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
  251. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/__init__.py +0 -0
  252. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/contract.py +0 -0
  253. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.approval.teal +0 -0
  254. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.arc56.json +0 -0
  255. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.clear.teal +0 -0
  256. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.approval.teal +0 -0
  257. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.arc56.json +0 -0
  258. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/data/VerifierContract.clear.teal +0 -0
  259. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/DynamicITxnGroup/verifier.py +0 -0
  260. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
  261. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
  262. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
  263. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
  264. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +0 -0
  265. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
  266. {algorand_python_testing-1.2.0b7/tests/artifacts/MiscellaneousOps → algorand_python_testing-1.2.0b9/tests/artifacts/LogicSignature}/__init__.py +0 -0
  267. {algorand_python_testing-1.2.0b7/tests/artifacts/PrimitiveOps → algorand_python_testing-1.2.0b9/tests/artifacts/MiscellaneousOps}/__init__.py +0 -0
  268. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
  269. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
  270. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
  271. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +0 -0
  272. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
  273. {algorand_python_testing-1.2.0b7/tests/artifacts/StateMutations → algorand_python_testing-1.2.0b9/tests/artifacts/PrimitiveOps}/__init__.py +0 -0
  274. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/PrimitiveOps/contract.py +0 -0
  275. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
  276. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
  277. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +0 -0
  278. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
  279. {algorand_python_testing-1.2.0b7/tests/artifacts/StateOps → algorand_python_testing-1.2.0b9/tests/artifacts/StateMutations}/__init__.py +0 -0
  280. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
  281. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
  282. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
  283. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
  284. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
  285. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/StateMutations.arc56.json +0 -0
  286. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
  287. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateMutations/statemutations.py +0 -0
  288. {algorand_python_testing-1.2.0b7/tests/artifacts/Tuples → algorand_python_testing-1.2.0b9/tests/artifacts/StateOps}/__init__.py +0 -0
  289. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/contract.py +0 -0
  290. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalMapContract.approval.teal +0 -0
  291. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalMapContract.arc56.json +0 -0
  292. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalMapContract.clear.teal +0 -0
  293. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
  294. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
  295. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +0 -0
  296. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
  297. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
  298. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
  299. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +0 -0
  300. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
  301. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalMapContract.approval.teal +0 -0
  302. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalMapContract.arc56.json +0 -0
  303. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalMapContract.clear.teal +0 -0
  304. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
  305. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
  306. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +0 -0
  307. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
  308. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
  309. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
  310. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
  311. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
  312. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
  313. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +0 -0
  314. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
  315. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
  316. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
  317. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +0 -0
  318. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
  319. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
  320. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
  321. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +0 -0
  322. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
  323. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
  324. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
  325. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +0 -0
  326. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
  327. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
  328. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
  329. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +0 -0
  330. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
  331. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
  332. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
  333. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +0 -0
  334. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
  335. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
  336. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
  337. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +0 -0
  338. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
  339. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
  340. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
  341. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +0 -0
  342. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
  343. {algorand_python_testing-1.2.0b7/tests/artifacts → algorand_python_testing-1.2.0b9/tests/artifacts/Tuples}/__init__.py +0 -0
  344. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Tuples/contract.py +0 -0
  345. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Tuples/data/TuplesContract.approval.teal +0 -0
  346. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Tuples/data/TuplesContract.arc32.json +0 -0
  347. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Tuples/data/TuplesContract.arc56.json +0 -0
  348. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/artifacts/Tuples/data/TuplesContract.clear.teal +0 -0
  349. {algorand_python_testing-1.2.0b7/tests/avm12 → algorand_python_testing-1.2.0b9/tests/artifacts}/__init__.py +0 -0
  350. {algorand_python_testing-1.2.0b7/tests/contexts → algorand_python_testing-1.2.0b9/tests/avm12}/__init__.py +0 -0
  351. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/avm12/conftest.py +0 -0
  352. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/avm12/test_avm12.py +0 -0
  353. {algorand_python_testing-1.2.0b7/tests/dynamic_itxn_group → algorand_python_testing-1.2.0b9/tests/contexts}/__init__.py +0 -0
  354. {algorand_python_testing-1.2.0b7/tests/models → algorand_python_testing-1.2.0b9/tests/dynamic_itxn_group}/__init__.py +0 -0
  355. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/dynamic_itxn_group/test_dynamic_itxn_group.py +0 -0
  356. {algorand_python_testing-1.2.0b7/tests/primitives → algorand_python_testing-1.2.0b9/tests/logic_signature}/__init__.py +0 -0
  357. {algorand_python_testing-1.2.0b7/tests/state → algorand_python_testing-1.2.0b9/tests/models}/__init__.py +0 -0
  358. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_asset.py +0 -0
  359. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_box.py +0 -0
  360. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_box_map.py +0 -0
  361. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_box_ref.py +0 -0
  362. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_contract.py +0 -0
  363. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_uenumerate.py +0 -0
  364. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/models/test_urange.py +0 -0
  365. {algorand_python_testing-1.2.0b7/tests/utilities → algorand_python_testing-1.2.0b9/tests/primitives}/__init__.py +0 -0
  366. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/conftest.py +0 -0
  367. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/test_biguint.py +0 -0
  368. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/test_bytes.py +0 -0
  369. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/test_fixed_bytes.py +0 -0
  370. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/test_string.py +0 -0
  371. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/primitives/test_uint64.py +0 -0
  372. {algorand_python_testing-1.2.0b7/tests/value_generators → algorand_python_testing-1.2.0b9/tests/state}/__init__.py +0 -0
  373. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/conftest.py +0 -0
  374. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/test_global_map.py +0 -0
  375. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/test_global_state.py +0 -0
  376. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/test_local_map.py +0 -0
  377. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/test_local_state.py +0 -0
  378. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/state/test_mutations.py +0 -0
  379. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/test_miscellaneous_op.py +0 -0
  380. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/util.py +0 -0
  381. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/utilities/conftest.py +0 -0
  382. {algorand_python_testing-1.2.0b7 → algorand_python_testing-1.2.0b9}/tests/utilities/test_size_of.py +0 -0
@@ -1,4 +1,12 @@
1
1
  # CHANGELOG
2
+ ## v1.2.0-beta.9 (2026-04-10)
3
+
4
+ ### Features
5
+
6
+ * add arguments to logicsig ([`74ac11e`](https://github.com/algorandfoundation/algorand-python-testing/commit/74ac11e74af79cf50c9b64de74221ef8f8d5bae4))
7
+
8
+ ## v1.2.0-beta.8 (2026-04-09)
9
+
2
10
  ## v1.2.0-beta.7 (2026-04-09)
3
11
 
4
12
  ## v1.2.0-beta.6 (2026-04-07)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algorand-python-testing
3
- Version: 1.2.0b7
3
+ Version: 1.2.0b9
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.7"
7
+ version = "1.2.0-beta.9"
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]
@@ -54,8 +49,6 @@ dependencies = [
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,8 +123,6 @@ 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
126
  "puyapy>=5.8.0",
136
127
  ]
137
128
 
@@ -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"
@@ -1,15 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import inspect
3
4
  import typing
4
5
 
5
- import algosdk
6
-
7
6
  from _algopy_testing.context_helpers import LedgerContext, TransactionContext
7
+ from _algopy_testing.state.utils import cast_to_bytes
8
+ from _algopy_testing.utils import generate_random_account
8
9
  from _algopy_testing.value_generators import AlgopyValueGenerator
9
10
 
10
11
  if typing.TYPE_CHECKING:
11
- from collections.abc import Sequence
12
-
13
12
  import algopy
14
13
 
15
14
 
@@ -33,12 +32,10 @@ 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
- self._active_lsig_args: Sequence[algopy.Bytes] = ()
38
+ self._active_lsig_args = list[bytes]()
42
39
  self._ledger_context = LedgerContext()
43
40
  self._txn_context = TransactionContext()
44
41
  self._value_generator = AlgopyValueGenerator()
@@ -87,14 +84,23 @@ class AlgopyTestContext:
87
84
  """
88
85
  self._template_vars[name] = value
89
86
 
90
- def execute_logicsig(self, lsig: algopy.LogicSig, *args: algopy.Bytes) -> bool | algopy.UInt64:
91
- """Execute a logic signature using provided args."""
87
+ def execute_logicsig(
88
+ self, lsig: algopy.LogicSig, /, *args: typing.Any
89
+ ) -> bool | algopy.UInt64:
90
+ """Execute a logic signature.
92
91
 
93
- self._active_lsig_args = args
92
+ If the logicsig's wrapped function accepts parameters, args are passed directly.
93
+ args are also available via algopy.op.arg().
94
+ """
95
+ sig = inspect.signature(lsig.func)
96
+ self._active_lsig_args = [cast_to_bytes(a) for a in args]
94
97
  try:
95
- return lsig.func()
98
+ if sig.parameters:
99
+ return lsig.func(*args)
100
+ else:
101
+ return lsig.func()
96
102
  finally:
97
- self._active_lsig_args = ()
103
+ self._active_lsig_args = []
98
104
 
99
105
  def clear_transaction_context(self) -> None:
100
106
  """Clear the transaction context."""
@@ -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
@@ -9,25 +9,33 @@ if typing.TYPE_CHECKING:
9
9
  import algopy
10
10
 
11
11
 
12
+ _P = typing.ParamSpec("_P")
13
+
14
+
12
15
  class LogicSig:
13
16
  """A logic signature."""
14
17
 
15
- def __init__(self, func: Callable[[], bool | algopy.UInt64], name: str):
18
+ def __init__(self, func: Callable[..., bool | algopy.UInt64], name: str):
16
19
  self.func = func
17
20
  self.name = name
18
21
 
19
22
 
20
23
  @typing.overload
21
- def logicsig(sub: Callable[[], bool | algopy.UInt64], /) -> LogicSig: ...
24
+ def logicsig(sub: Callable[_P, bool | algopy.UInt64], /) -> LogicSig: ...
22
25
 
23
26
 
24
27
  @typing.overload
25
- def logicsig(*, name: str) -> Callable[[Callable[[], bool | algopy.UInt64]], LogicSig]: ...
28
+ def logicsig(
29
+ *, name: str, **kwargs: typing.Any
30
+ ) -> Callable[[Callable[_P, bool | algopy.UInt64]], LogicSig]: ...
26
31
 
27
32
 
28
33
  def logicsig(
29
- sub: Callable[[], bool | algopy.UInt64] | None = None, *, name: str | None = None
30
- ) -> algopy.LogicSig | Callable[[Callable[[], bool | algopy.UInt64]], LogicSig]:
34
+ sub: Callable[_P, bool | algopy.UInt64] | None = None,
35
+ *,
36
+ name: str | None = None,
37
+ **_kwargs: typing.Any,
38
+ ) -> algopy.LogicSig | Callable[[Callable[_P, bool | algopy.UInt64]], LogicSig]:
31
39
  """Decorator to indicate a function is a logic signature."""
32
40
  if sub is None:
33
41
  return functools.partial(
@@ -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:
@@ -504,7 +504,7 @@ AppGlobal = _AppGlobal()
504
504
 
505
505
 
506
506
  def arg(a: UInt64 | int, /) -> Bytes:
507
- return lazy_context.value._active_lsig_args[int(a)]
507
+ return Bytes(lazy_context.value._active_lsig_args[int(a)])
508
508
 
509
509
 
510
510
  class Box: