algorand-python-testing 1.2.0b2__tar.gz → 1.2.0b3__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 (363) hide show
  1. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/CHANGELOG.md +6 -0
  2. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/PKG-INFO +1 -1
  3. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/coverage.md +1 -0
  4. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/transactions.md +69 -0
  5. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/pyproject.toml +1 -1
  6. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/context_helpers/txn_context.py +4 -4
  7. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/itxn.py +11 -0
  8. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/contract.py +63 -0
  9. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.approval.teal +284 -0
  10. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.arc56.json +161 -0
  11. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/VerifierContract.approval.teal +66 -0
  12. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/VerifierContract.arc56.json +90 -0
  13. algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/verifier.py +16 -0
  14. algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +7 -0
  15. algorand_python_testing-1.2.0b3/tests/artifacts/Tuples/data/TuplesContract.clear.teal +7 -0
  16. algorand_python_testing-1.2.0b3/tests/dynamic_itxn_group/test_dynamic_itxn_group.py +67 -0
  17. algorand_python_testing-1.2.0b3/tests/utilities/__init__.py +0 -0
  18. algorand_python_testing-1.2.0b3/tests/value_generators/__init__.py +0 -0
  19. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.coveragerc +0 -0
  20. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.editorconfig +0 -0
  21. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  22. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  23. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/dependabot.yml +0 -0
  24. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/pull_request_template.md +0 -0
  25. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/workflows/cd.yaml +0 -0
  26. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/workflows/ci.yaml +0 -0
  27. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.github/workflows/gh-pages.yaml +0 -0
  28. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.gitignore +0 -0
  29. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.pre-commit-config.yaml +0 -0
  30. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.vscode/extensions.json +0 -0
  31. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.vscode/launch.json +0 -0
  32. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/.vscode/settings.json +0 -0
  33. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/CONTRIBUTING.md +0 -0
  34. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/LICENSE +0 -0
  35. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/README.md +0 -0
  36. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/Makefile +0 -0
  37. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/__init__.py +0 -0
  38. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/_static/custom.css +0 -0
  39. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/algopy.md +0 -0
  40. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/api.md +0 -0
  41. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/conf.py +0 -0
  42. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/examples.md +0 -0
  43. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/faq.md +0 -0
  44. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/index.md +0 -0
  45. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/make.bat +0 -0
  46. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/arc4-types.md +0 -0
  47. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/avm-types.md +0 -0
  48. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/concepts.md +0 -0
  49. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/contract-testing.md +0 -0
  50. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/index.md +0 -0
  51. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/opcodes.md +0 -0
  52. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/signature-testing.md +0 -0
  53. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/state-management.md +0 -0
  54. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/docs/testing-guide/subroutines.md +0 -0
  55. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/README.md +0 -0
  56. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/__init__.py +0 -0
  57. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/auction/__init__.py +0 -0
  58. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/auction/contract.py +0 -0
  59. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/auction/test_contract.py +0 -0
  60. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/htlc_logicsig/__init__.py +0 -0
  61. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/htlc_logicsig/signature.py +0 -0
  62. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/htlc_logicsig/test_signature.py +0 -0
  63. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/marketplace/__init__.py +0 -0
  64. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/marketplace/contract.py +0 -0
  65. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/marketplace/test_contract.py +0 -0
  66. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/proof_of_attendance/__init__.py +0 -0
  67. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/proof_of_attendance/contract.py +0 -0
  68. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/proof_of_attendance/test_contract.py +0 -0
  69. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/scratch_storage/__init__.py +0 -0
  70. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/scratch_storage/contract.py +0 -0
  71. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/scratch_storage/test_contract.py +0 -0
  72. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/simple_voting/__init__.py +0 -0
  73. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/simple_voting/contract.py +0 -0
  74. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/simple_voting/test_contract.py +0 -0
  75. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/zk_whitelist/__init__.py +0 -0
  76. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/zk_whitelist/contract.py +0 -0
  77. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/examples/zk_whitelist/test_contract.py +0 -0
  78. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/scripts/__init__.py +0 -0
  79. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/scripts/check_stubs_cov.py +0 -0
  80. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/scripts/refresh_test_artifacts.py +0 -0
  81. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/scripts/validate_examples.py +0 -0
  82. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/__init__.py +0 -0
  83. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/arc4.py +0 -0
  84. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/compiled.py +0 -0
  85. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/constants.py +0 -0
  86. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/context.py +0 -0
  87. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/context_helpers/__init__.py +0 -0
  88. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
  89. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
  90. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/decorators/__init__.py +0 -0
  91. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/decorators/arc4.py +0 -0
  92. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/decorators/subroutine.py +0 -0
  93. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/enums.py +0 -0
  94. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/gtxn.py +0 -0
  95. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/itxn_loader.py +0 -0
  96. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/__init__.py +0 -0
  97. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/account.py +0 -0
  98. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/application.py +0 -0
  99. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/asset.py +0 -0
  100. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/contract.py +0 -0
  101. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/logicsig.py +0 -0
  102. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/template_variable.py +0 -0
  103. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/txn_fields.py +0 -0
  104. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
  105. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/mutable.py +0 -0
  106. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/__init__.py +0 -0
  107. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/block.py +0 -0
  108. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/constants.py +0 -0
  109. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/crypto.py +0 -0
  110. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/global_values.py +0 -0
  111. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/itxn.py +0 -0
  112. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/misc.py +0 -0
  113. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/pure.py +0 -0
  114. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/op/txn.py +0 -0
  115. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/__init__.py +0 -0
  116. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/array.py +0 -0
  117. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/biguint.py +0 -0
  118. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/bytes.py +0 -0
  119. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/fixed_bytes.py +0 -0
  120. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/string.py +0 -0
  121. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/primitives/uint64.py +0 -0
  122. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/protocols.py +0 -0
  123. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/py.typed +0 -0
  124. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/serialize.py +0 -0
  125. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/state/__init__.py +0 -0
  126. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/state/box.py +0 -0
  127. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/state/global_state.py +0 -0
  128. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/state/local_state.py +0 -0
  129. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/state/utils.py +0 -0
  130. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/utilities/__init__.py +0 -0
  131. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/utilities/budget.py +0 -0
  132. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/utilities/log.py +0 -0
  133. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/utilities/size_of.py +0 -0
  134. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/utils.py +0 -0
  135. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/value_generators/__init__.py +0 -0
  136. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/value_generators/arc4.py +0 -0
  137. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/value_generators/avm.py +0 -0
  138. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/_algopy_testing/value_generators/txn.py +0 -0
  139. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/__init__.py +0 -0
  140. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/arc4.py +0 -0
  141. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/gtxn.py +0 -0
  142. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/itxn.py +0 -0
  143. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/op.py +0 -0
  144. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy/py.typed +0 -0
  145. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy_testing/__init__.py +0 -0
  146. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/src/algopy_testing/py.typed +0 -0
  147. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/templates/.macros.j2 +0 -0
  148. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/templates/.release_notes.md.j2 +0 -0
  149. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/templates/CHANGELOG.md.j2 +0 -0
  150. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/__init__.py +0 -0
  151. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/__init__.py +0 -0
  152. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/conftest.py +0 -0
  153. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_abi_call.py +0 -0
  154. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_address.py +0 -0
  155. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_arc4_method_signature.py +0 -0
  156. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_bool.py +0 -0
  157. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_dynamic_array.py +0 -0
  158. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_dynamic_bytes.py +0 -0
  159. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_emit.py +0 -0
  160. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_static_array.py +0 -0
  161. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_string.py +0 -0
  162. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_struct.py +0 -0
  163. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_tuple.py +0 -0
  164. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_ufixednxm.py +0 -0
  165. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/arc4/test_uintn.py +0 -0
  166. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/__init__.py +0 -0
  167. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/contract.py +0 -0
  168. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/Contract.approval.teal +0 -0
  169. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/Contract.arc56.json +0 -0
  170. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/Contract.clear.teal +0 -0
  171. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV0.approval.teal +0 -0
  172. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV0.arc56.json +0 -0
  173. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV0.clear.teal +0 -0
  174. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV1.approval.teal +0 -0
  175. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV1.arc56.json +0 -0
  176. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/AVM12/data/ContractV1.clear.teal +0 -0
  177. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
  178. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
  179. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
  180. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
  181. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +0 -0
  182. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
  183. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
  184. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
  185. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
  186. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
  187. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +0 -0
  188. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
  189. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
  190. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
  191. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
  192. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
  193. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +0 -0
  194. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
  195. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/__init__.py +0 -0
  196. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
  197. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
  198. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/Contract.arc56.json +0 -0
  199. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
  200. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +0 -0
  201. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +0 -0
  202. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +0 -0
  203. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
  204. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
  205. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +0 -0
  206. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
  207. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +0 -0
  208. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +0 -0
  209. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
  210. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -0
  211. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
  212. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +0 -0
  213. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
  214. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/immutable.py +0 -0
  215. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/static_size.py +0 -0
  216. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Arrays/uint64.py +0 -0
  217. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/__init__.py +0 -0
  218. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/contract.py +0 -0
  219. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
  220. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
  221. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/data/BoxContract.arc56.json +0 -0
  222. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
  223. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Contains/__init__.py +0 -0
  224. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Contains/contract.py +0 -0
  225. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
  226. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
  227. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
  228. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
  229. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
  230. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
  231. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +0 -0
  232. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
  233. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
  234. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
  235. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +0 -0
  236. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
  237. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CreatedAppAsset/other.py +0 -0
  238. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/__init__.py +0 -0
  239. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/contract.py +0 -0
  240. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
  241. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
  242. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +0 -0
  243. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
  244. {algorand_python_testing-1.2.0b2/tests/artifacts/GlobalStateValidator → algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup}/__init__.py +0 -0
  245. /algorand_python_testing-1.2.0b2/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/DynamicItxnGroup.clear.teal +0 -0
  246. /algorand_python_testing-1.2.0b2/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/DynamicITxnGroup/data/VerifierContract.clear.teal +0 -0
  247. {algorand_python_testing-1.2.0b2/tests/artifacts/MiscellaneousOps → algorand_python_testing-1.2.0b3/tests/artifacts/GlobalStateValidator}/__init__.py +0 -0
  248. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
  249. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
  250. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
  251. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +0 -0
  252. /algorand_python_testing-1.2.0b2/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
  253. {algorand_python_testing-1.2.0b2/tests/artifacts/PrimitiveOps → algorand_python_testing-1.2.0b3/tests/artifacts/MiscellaneousOps}/__init__.py +0 -0
  254. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
  255. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
  256. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
  257. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +0 -0
  258. /algorand_python_testing-1.2.0b2/tests/artifacts/StateMutations/data/StateMutations.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
  259. {algorand_python_testing-1.2.0b2/tests/artifacts/StateMutations → algorand_python_testing-1.2.0b3/tests/artifacts/PrimitiveOps}/__init__.py +0 -0
  260. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/PrimitiveOps/contract.py +0 -0
  261. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
  262. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
  263. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +0 -0
  264. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
  265. {algorand_python_testing-1.2.0b2/tests/artifacts/StateOps → algorand_python_testing-1.2.0b3/tests/artifacts/StateMutations}/__init__.py +0 -0
  266. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
  267. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
  268. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
  269. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
  270. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
  271. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/data/StateMutations.arc56.json +0 -0
  272. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
  273. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateMutations/statemutations.py +0 -0
  274. {algorand_python_testing-1.2.0b2/tests/artifacts/Tuples → algorand_python_testing-1.2.0b3/tests/artifacts/StateOps}/__init__.py +0 -0
  275. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/contract.py +0 -0
  276. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
  277. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
  278. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +0 -0
  279. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/LocalStateContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
  280. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
  281. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
  282. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +0 -0
  283. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
  284. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
  285. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
  286. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +0 -0
  287. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
  288. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
  289. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
  290. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
  291. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
  292. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
  293. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +0 -0
  294. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
  295. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
  296. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
  297. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +0 -0
  298. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
  299. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
  300. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
  301. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +0 -0
  302. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
  303. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
  304. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
  305. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +0 -0
  306. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
  307. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
  308. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
  309. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +0 -0
  310. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
  311. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
  312. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
  313. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +0 -0
  314. /algorand_python_testing-1.2.0b2/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
  315. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
  316. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
  317. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +0 -0
  318. /algorand_python_testing-1.2.0b2/tests/artifacts/Tuples/data/TuplesContract.clear.teal → /algorand_python_testing-1.2.0b3/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
  319. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
  320. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
  321. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +0 -0
  322. {algorand_python_testing-1.2.0b2/tests/artifacts → algorand_python_testing-1.2.0b3/tests/artifacts/Tuples}/__init__.py +0 -0
  323. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Tuples/contract.py +0 -0
  324. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Tuples/data/TuplesContract.approval.teal +0 -0
  325. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Tuples/data/TuplesContract.arc32.json +0 -0
  326. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/artifacts/Tuples/data/TuplesContract.arc56.json +0 -0
  327. {algorand_python_testing-1.2.0b2/tests/avm12 → algorand_python_testing-1.2.0b3/tests/artifacts}/__init__.py +0 -0
  328. {algorand_python_testing-1.2.0b2/tests/contexts → algorand_python_testing-1.2.0b3/tests/avm12}/__init__.py +0 -0
  329. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/avm12/conftest.py +0 -0
  330. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/avm12/test_avm12.py +0 -0
  331. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/common.py +0 -0
  332. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/conftest.py +0 -0
  333. {algorand_python_testing-1.2.0b2/tests/models → algorand_python_testing-1.2.0b3/tests/contexts}/__init__.py +0 -0
  334. {algorand_python_testing-1.2.0b2/tests/primitives → algorand_python_testing-1.2.0b3/tests/dynamic_itxn_group}/__init__.py +0 -0
  335. {algorand_python_testing-1.2.0b2/tests/state → algorand_python_testing-1.2.0b3/tests/models}/__init__.py +0 -0
  336. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_asset.py +0 -0
  337. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_box.py +0 -0
  338. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_box_map.py +0 -0
  339. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_box_ref.py +0 -0
  340. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_contract.py +0 -0
  341. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_uenumerate.py +0 -0
  342. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/models/test_urange.py +0 -0
  343. {algorand_python_testing-1.2.0b2/tests/utilities → algorand_python_testing-1.2.0b3/tests/primitives}/__init__.py +0 -0
  344. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/conftest.py +0 -0
  345. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/test_biguint.py +0 -0
  346. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/test_bytes.py +0 -0
  347. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/test_fixed_bytes.py +0 -0
  348. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/test_string.py +0 -0
  349. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/primitives/test_uint64.py +0 -0
  350. {algorand_python_testing-1.2.0b2/tests/value_generators → algorand_python_testing-1.2.0b3/tests/state}/__init__.py +0 -0
  351. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/state/conftest.py +0 -0
  352. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/state/test_global_state.py +0 -0
  353. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/state/test_local_state.py +0 -0
  354. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/state/test_mutations.py +0 -0
  355. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/test_array.py +0 -0
  356. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/test_context.py +0 -0
  357. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/test_miscellaneous_op.py +0 -0
  358. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/test_op.py +0 -0
  359. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/util.py +0 -0
  360. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/utilities/conftest.py +0 -0
  361. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/utilities/test_log.py +0 -0
  362. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/utilities/test_size_of.py +0 -0
  363. {algorand_python_testing-1.2.0b2 → algorand_python_testing-1.2.0b3}/tests/value_generators/test_avm.py +0 -0
@@ -1,4 +1,10 @@
1
1
  # CHANGELOG
2
+ ## v1.2.0-beta.3 (2025-12-08)
3
+
4
+ ### Features
5
+
6
+ * add stage and submit_staged functions to support submitting dynamic number of inner transactions in a group ([`84ad031`](https://github.com/algorandfoundation/algorand-python-testing/commit/84ad03166442dadc10c7c1fe70e4cd07a63600cc))
7
+
2
8
  ## v1.2.0-beta.2 (2025-12-08)
3
9
 
4
10
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algorand-python-testing
3
- Version: 1.2.0b2
3
+ Version: 1.2.0b3
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
@@ -96,6 +96,7 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
96
96
  | algopy.itxn.KeyRegistrationInnerTransaction | Emulated |
97
97
  | algopy.itxn.Payment | Emulated |
98
98
  | algopy.itxn.PaymentInnerTransaction | Emulated |
99
+ | algopy.itxn.submit_staged | Emulated |
99
100
  | algopy.itxn.submit_txns | Emulated |
100
101
  | algopy.op.Base64 | Native |
101
102
  | algopy.op.EC | Native |
@@ -190,6 +190,75 @@ To access the submitted inner transactions:
190
190
 
191
191
  These methods provide type validation and will raise an error if the requested transaction type doesn't match the actual type of the inner transaction.
192
192
 
193
+ ### Submitting a group with dynamic number of inner transactions
194
+
195
+ `algorand-python` supports composing inner transaction groups with a dynamic number of transactions. To use this feature, call the `.stage()` method on inner transaction classes to queue transactions, then call `algopy.itxn.submit_staged()` to submit all staged transactions as a group.
196
+
197
+ The following example demonstrates how to test this functionality using the `algorand-python-testing` package.
198
+
199
+ ```{testcode}
200
+ from algopy import Application, ARC4Contract, Array, Global, arc4, gtxn, itxn, TransactionType, Txn, UInt64, urange
201
+
202
+ class DynamicItxnGroup(ARC4Contract):
203
+ @arc4.abimethod
204
+ def distribute(
205
+ self, addresses: Array[arc4.Address], funds: gtxn.PaymentTransaction, verifier: Application
206
+ ) -> None:
207
+ assert funds.receiver == Global.current_application_address, "Funds must be sent to app"
208
+
209
+ assert addresses.length, "must provide some accounts"
210
+
211
+ share = funds.amount // addresses.length
212
+
213
+ itxn.Payment(amount=share, receiver=addresses[0].native).stage(begin_group=True)
214
+
215
+ for i in urange(1, addresses.length):
216
+ addr = addresses[i]
217
+ itxn.Payment(amount=share, receiver=addr.native).stage()
218
+
219
+ itxn.ApplicationCall(
220
+ app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
221
+ ).stage()
222
+
223
+ itxn.AssetConfig(asset_name="abc").stage()
224
+
225
+ itxn.submit_staged()
226
+
227
+ class VerifierContract(ARC4Contract):
228
+ @arc4.abimethod
229
+ def verify(self) -> None:
230
+ for i in urange(Txn.group_index):
231
+ txn = gtxn.Transaction(i)
232
+ assert txn.type == TransactionType.Payment, "Txn must be pay"
233
+
234
+
235
+ # create contract instaces
236
+ verifier = VerifierContract()
237
+ dynamic_itxn_group = DynamicItxnGroup()
238
+
239
+ # get application id for contract instances
240
+ verifier_app = context.ledger.get_app(verifier)
241
+ dynamic_itxn_group_app = context.ledger.get_app(dynamic_itxn_group)
242
+
243
+ # create test accounts to distribute funds to and initial fund
244
+ addresses = Array([arc4.Address(context.any.account()) for _ in range(3)])
245
+ payment = context.any.txn.payment(
246
+ amount=UInt64(9),
247
+ receiver=dynamic_itxn_group_app.address,
248
+ )
249
+
250
+ # call contract method which creates inner transactions according to number of addresses passed in
251
+ dynamic_itxn_group.distribute(addresses, payment, verifier_app)
252
+
253
+ # get inner transaction group to assert the details
254
+ itxns = context.txn.last_group.get_itxn_group(-1)
255
+ assert len(itxns) == 5
256
+ for i in range(3):
257
+ assert itxns.payment(i).amount == 3
258
+ assert itxns.application_call(3).app_id == verifier_app
259
+ assert itxns.asset_config(4).asset_name == b"abc"
260
+ ```
261
+
193
262
  ## References
194
263
 
195
264
  - [API](../api.md) for more details on the test context manager and inner transactions related methods that perform implicit inner transaction type validation.
@@ -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.2"
7
+ version = "1.2.0-beta.3"
8
8
  description = 'Algorand Python testing library'
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -326,19 +326,19 @@ class TransactionGroup:
326
326
  except ValueError:
327
327
  raise ValueError("Transaction is not part of this group") from None
328
328
 
329
- def _begin_itxn_group(self) -> None:
329
+ def _begin_itxn_group(self, itxn: InnerTransaction | None = None) -> None:
330
330
  if self._constructing_itxn_group:
331
331
  raise RuntimeError("itxn begin without itxn submit")
332
332
 
333
333
  if self.active_txn.on_completion == OnCompleteAction.ClearState:
334
334
  raise RuntimeError("Cannot begin inner transaction group in a clear state call")
335
335
 
336
- self._constructing_itxn_group.append(InnerTransaction())
336
+ self._constructing_itxn_group.append(itxn or InnerTransaction())
337
337
 
338
- def _append_itxn_group(self) -> None:
338
+ def _append_itxn_group(self, itxn: InnerTransaction | None = None) -> None:
339
339
  if not self._constructing_itxn_group:
340
340
  raise RuntimeError("itxn next without itxn begin")
341
- self._constructing_itxn_group.append(InnerTransaction())
341
+ self._constructing_itxn_group.append(itxn or InnerTransaction())
342
342
 
343
343
  def _submit_itxn_group(self) -> None:
344
344
  if not self._constructing_itxn_group:
@@ -33,6 +33,7 @@ __all__ = [
33
33
  "KeyRegistrationInnerTransaction",
34
34
  "Payment",
35
35
  "PaymentInnerTransaction",
36
+ "submit_staged",
36
37
  "submit_txns",
37
38
  ]
38
39
 
@@ -113,6 +114,12 @@ class _BaseInnerTransactionFields(typing.Protocol[_TResult_co]):
113
114
  _narrow_covariant_types(fields)
114
115
  self.fields.update(fields)
115
116
 
117
+ def stage(self, *, begin_group: bool = False) -> None:
118
+ if begin_group:
119
+ lazy_context.active_group._begin_itxn_group(self) # type: ignore[arg-type]
120
+ else:
121
+ lazy_context.active_group._append_itxn_group(self) # type: ignore[arg-type]
122
+
116
123
  def submit(self) -> _TResult_co:
117
124
  result = _get_itxn_result(self)
118
125
  lazy_context.active_group._add_itxn_group([result]) # type: ignore[list-item]
@@ -170,6 +177,10 @@ def submit_txns(
170
177
  return results
171
178
 
172
179
 
180
+ def submit_staged() -> None:
181
+ lazy_context.active_group._submit_itxn_group()
182
+
183
+
173
184
  def _get_itxn_result(
174
185
  itxn: _BaseInnerTransactionFields[_TResult_co],
175
186
  ) -> _BaseInnerTransactionResult:
@@ -0,0 +1,63 @@
1
+ from algopy import (
2
+ Application,
3
+ ARC4Contract,
4
+ Array,
5
+ Global,
6
+ arc4,
7
+ gtxn,
8
+ itxn,
9
+ urange,
10
+ )
11
+
12
+
13
+ class DynamicItxnGroup(ARC4Contract):
14
+ @arc4.abimethod
15
+ def test_firstly(
16
+ self, addresses: Array[arc4.Address], funds: gtxn.PaymentTransaction, verifier: Application
17
+ ) -> None:
18
+ assert funds.receiver == Global.current_application_address, "Funds must be sent to app"
19
+
20
+ assert addresses.length, "must provide some accounts"
21
+
22
+ share = funds.amount // addresses.length
23
+
24
+ itxn.Payment(amount=share, receiver=addresses[0].native).stage(begin_group=True)
25
+
26
+ for i in urange(1, addresses.length):
27
+ addr = addresses[i]
28
+ itxn.Payment(amount=share, receiver=addr.native).stage()
29
+
30
+ itxn.ApplicationCall(
31
+ app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
32
+ ).stage()
33
+
34
+ itxn.AssetConfig(asset_name="abc").stage()
35
+
36
+ itxn.submit_staged()
37
+
38
+ @arc4.abimethod
39
+ def test_looply(
40
+ self,
41
+ addresses: Array[arc4.Address],
42
+ funds: gtxn.PaymentTransaction,
43
+ verifier: Application,
44
+ ) -> None:
45
+ assert funds.receiver == Global.current_application_address, "Funds must be sent to app"
46
+
47
+ assert addresses.length, "must provide some accounts"
48
+
49
+ share = funds.amount // addresses.length
50
+
51
+ is_first = True
52
+ for addr in addresses:
53
+ my_txn = itxn.Payment(amount=share, receiver=addr.native)
54
+ my_txn.stage(begin_group=is_first)
55
+ is_first = False
56
+
57
+ itxn.ApplicationCall(
58
+ app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
59
+ ).stage()
60
+
61
+ itxn.AssetConfig(asset_name="abc").stage()
62
+
63
+ itxn.submit_staged()
@@ -0,0 +1,284 @@
1
+ #pragma version 11
2
+ #pragma typetrack false
3
+
4
+ // algopy.arc4.ARC4Contract.approval_program() -> uint64:
5
+ main:
6
+ intcblock 1 0 32 6
7
+ bytecblock 0x65a9aecc "abc"
8
+ // tests/artifacts/dynamic_itxn_group/contract.py:13
9
+ // class DynamicItxnGroup(ARC4Contract):
10
+ txn NumAppArgs
11
+ bz main___algopy_default_create@9
12
+ txn OnCompletion
13
+ !
14
+ assert
15
+ txn ApplicationID
16
+ assert
17
+ pushbytess 0x17391784 0x3f10aea7 // method "test_firstly(address[],pay,uint64)void", method "test_looply(address[],pay,uint64)void"
18
+ txna ApplicationArgs 0
19
+ match test_firstly test_looply
20
+ err
21
+
22
+ main___algopy_default_create@9:
23
+ txn OnCompletion
24
+ !
25
+ txn ApplicationID
26
+ !
27
+ &&
28
+ return
29
+
30
+
31
+ // tests.artifacts.dynamic_itxn_group.contract.DynamicItxnGroup.test_firstly[routing]() -> void:
32
+ test_firstly:
33
+ // tests/artifacts/dynamic_itxn_group/contract.py:14
34
+ // @arc4.abimethod
35
+ txna ApplicationArgs 1
36
+ txn GroupIndex
37
+ intc_0 // 1
38
+ -
39
+ dup
40
+ gtxns TypeEnum
41
+ intc_0 // pay
42
+ ==
43
+ assert // transaction type is pay
44
+ txna ApplicationArgs 2
45
+ btoi
46
+ cover 2
47
+ // tests/artifacts/dynamic_itxn_group/contract.py:18
48
+ // assert funds.receiver == Global.current_application_address, "Funds must be sent to app"
49
+ dup
50
+ gtxns Receiver
51
+ global CurrentApplicationAddress
52
+ ==
53
+ assert // Funds must be sent to app
54
+ // tests/artifacts/dynamic_itxn_group/contract.py:20
55
+ // assert addresses.length, "must provide some accounts"
56
+ dig 1
57
+ intc_1 // 0
58
+ extract_uint16 // on error: invalid array length header
59
+ dup
60
+ cover 3
61
+ dup
62
+ assert // must provide some accounts
63
+ // tests/artifacts/dynamic_itxn_group/contract.py:22
64
+ // share = funds.amount // addresses.length
65
+ swap
66
+ gtxns Amount
67
+ swap
68
+ /
69
+ dup
70
+ cover 2
71
+ // tests/artifacts/dynamic_itxn_group/contract.py:24
72
+ // itxn.Payment(amount=share, receiver=addresses[0].native).stage(begin_group=True)
73
+ itxn_begin
74
+ dig 1
75
+ extract 2 0
76
+ cover 2
77
+ swap
78
+ extract 2 32
79
+ itxn_field Receiver
80
+ itxn_field Amount
81
+ intc_0 // pay
82
+ itxn_field TypeEnum
83
+ intc_1 // 0
84
+ itxn_field Fee
85
+ // tests/artifacts/dynamic_itxn_group/contract.py:26
86
+ // for i in urange(1, addresses.length):
87
+ intc_0 // 1
88
+
89
+ test_firstly_for_header@2:
90
+ // tests/artifacts/dynamic_itxn_group/contract.py:26
91
+ // for i in urange(1, addresses.length):
92
+ dup
93
+ dig 4
94
+ <
95
+ bz test_firstly_after_for@5
96
+ // tests/artifacts/dynamic_itxn_group/contract.py:27
97
+ // addr = addresses[i]
98
+ dupn 2
99
+ intc_2 // 32
100
+ *
101
+ dig 3
102
+ swap
103
+ intc_2 // 32
104
+ extract3 // on error: index access is out of bounds
105
+ // tests/artifacts/dynamic_itxn_group/contract.py:28
106
+ // itxn.Payment(amount=share, receiver=addr.native).stage()
107
+ itxn_next
108
+ itxn_field Receiver
109
+ dig 3
110
+ itxn_field Amount
111
+ intc_0 // pay
112
+ itxn_field TypeEnum
113
+ intc_1 // 0
114
+ itxn_field Fee
115
+ // tests/artifacts/dynamic_itxn_group/contract.py:26
116
+ // for i in urange(1, addresses.length):
117
+ intc_0 // 1
118
+ +
119
+ bury 1
120
+ b test_firstly_for_header@2
121
+
122
+ test_firstly_after_for@5:
123
+ // tests/artifacts/dynamic_itxn_group/contract.py:30-32
124
+ // itxn.ApplicationCall(
125
+ // app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
126
+ // ).stage()
127
+ itxn_next
128
+ // tests/artifacts/dynamic_itxn_group/contract.py:31
129
+ // app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
130
+ bytec_0 // method "verify()void"
131
+ itxn_field ApplicationArgs
132
+ dig 4
133
+ itxn_field ApplicationID
134
+ // tests/artifacts/dynamic_itxn_group/contract.py:30
135
+ // itxn.ApplicationCall(
136
+ intc_3 // appl
137
+ itxn_field TypeEnum
138
+ intc_1 // 0
139
+ itxn_field Fee
140
+ // tests/artifacts/dynamic_itxn_group/contract.py:34
141
+ // itxn.AssetConfig(asset_name="abc").stage()
142
+ itxn_next
143
+ bytec_1 // "abc"
144
+ itxn_field ConfigAssetName
145
+ pushint 3 // acfg
146
+ itxn_field TypeEnum
147
+ intc_1 // 0
148
+ itxn_field Fee
149
+ // tests/artifacts/dynamic_itxn_group/contract.py:36
150
+ // itxn.submit_staged()
151
+ itxn_submit
152
+ // tests/artifacts/dynamic_itxn_group/contract.py:14
153
+ // @arc4.abimethod
154
+ intc_0 // 1
155
+ return
156
+
157
+
158
+ // tests.artifacts.dynamic_itxn_group.contract.DynamicItxnGroup.test_looply[routing]() -> void:
159
+ test_looply:
160
+ intc_1 // 0
161
+ // tests/artifacts/dynamic_itxn_group/contract.py:38
162
+ // @arc4.abimethod
163
+ txna ApplicationArgs 1
164
+ dup
165
+ txn GroupIndex
166
+ intc_0 // 1
167
+ -
168
+ dup
169
+ gtxns TypeEnum
170
+ intc_0 // pay
171
+ ==
172
+ assert // transaction type is pay
173
+ txna ApplicationArgs 2
174
+ btoi
175
+ cover 2
176
+ // tests/artifacts/dynamic_itxn_group/contract.py:45
177
+ // assert funds.receiver == Global.current_application_address, "Funds must be sent to app"
178
+ dup
179
+ gtxns Receiver
180
+ global CurrentApplicationAddress
181
+ ==
182
+ assert // Funds must be sent to app
183
+ // tests/artifacts/dynamic_itxn_group/contract.py:47
184
+ // assert addresses.length, "must provide some accounts"
185
+ swap
186
+ intc_1 // 0
187
+ extract_uint16 // on error: invalid array length header
188
+ dup
189
+ cover 2
190
+ dup
191
+ assert // must provide some accounts
192
+ // tests/artifacts/dynamic_itxn_group/contract.py:49
193
+ // share = funds.amount // addresses.length
194
+ swap
195
+ gtxns Amount
196
+ swap
197
+ /
198
+ // tests/artifacts/dynamic_itxn_group/contract.py:51
199
+ // is_first = True
200
+ intc_0 // 1
201
+ intc_1 // 0
202
+
203
+ test_looply_for_header@2:
204
+ // tests/artifacts/dynamic_itxn_group/contract.py:52
205
+ // for addr in addresses:
206
+ dup
207
+ dig 4
208
+ <
209
+ bz test_looply_after_for@8
210
+ dig 5
211
+ extract 2 0
212
+ dig 1
213
+ intc_2 // 32
214
+ *
215
+ intc_2 // 32
216
+ extract3 // on error: index access is out of bounds
217
+ bury 7
218
+ // tests/artifacts/dynamic_itxn_group/contract.py:54
219
+ // my_txn.stage(begin_group=is_first)
220
+ dig 1
221
+ bz test_looply_itxn_next@5
222
+ itxn_begin
223
+
224
+ test_looply_after_itxn_begin_next@6:
225
+ dig 6
226
+ itxn_field Receiver
227
+ dig 2
228
+ itxn_field Amount
229
+ // tests/artifacts/dynamic_itxn_group/contract.py:53
230
+ // my_txn = itxn.Payment(amount=share, receiver=addr.native)
231
+ intc_0 // pay
232
+ itxn_field TypeEnum
233
+ intc_1 // 0
234
+ itxn_field Fee
235
+ // tests/artifacts/dynamic_itxn_group/contract.py:55
236
+ // is_first = False
237
+ intc_1 // 0
238
+ bury 2
239
+ dup
240
+ intc_0 // 1
241
+ +
242
+ bury 1
243
+ b test_looply_for_header@2
244
+
245
+ test_looply_itxn_next@5:
246
+ // tests/artifacts/dynamic_itxn_group/contract.py:54
247
+ // my_txn.stage(begin_group=is_first)
248
+ itxn_next
249
+ b test_looply_after_itxn_begin_next@6
250
+
251
+ test_looply_after_for@8:
252
+ // tests/artifacts/dynamic_itxn_group/contract.py:57-59
253
+ // itxn.ApplicationCall(
254
+ // app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
255
+ // ).stage()
256
+ itxn_next
257
+ // tests/artifacts/dynamic_itxn_group/contract.py:58
258
+ // app_id=verifier.id, app_args=(arc4.arc4_signature("verify()void"),)
259
+ bytec_0 // method "verify()void"
260
+ itxn_field ApplicationArgs
261
+ dig 4
262
+ itxn_field ApplicationID
263
+ // tests/artifacts/dynamic_itxn_group/contract.py:57
264
+ // itxn.ApplicationCall(
265
+ intc_3 // appl
266
+ itxn_field TypeEnum
267
+ intc_1 // 0
268
+ itxn_field Fee
269
+ // tests/artifacts/dynamic_itxn_group/contract.py:61
270
+ // itxn.AssetConfig(asset_name="abc").stage()
271
+ itxn_next
272
+ bytec_1 // "abc"
273
+ itxn_field ConfigAssetName
274
+ pushint 3 // acfg
275
+ itxn_field TypeEnum
276
+ intc_1 // 0
277
+ itxn_field Fee
278
+ // tests/artifacts/dynamic_itxn_group/contract.py:63
279
+ // itxn.submit_staged()
280
+ itxn_submit
281
+ // tests/artifacts/dynamic_itxn_group/contract.py:38
282
+ // @arc4.abimethod
283
+ intc_0 // 1
284
+ return