algorand-python-testing 1.2.0b1__tar.gz → 1.2.0b2__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.
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/CHANGELOG.md +6 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/PKG-INFO +1 -1
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/coverage.md +1 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/index.md +4 -4
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/concepts.md +2 -2
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/contract-testing.md +5 -5
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/subroutines.md +3 -1
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/transactions.md +2 -2
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/marketplace/contract.py +0 -3
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/proof_of_attendance/contract.py +13 -13
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/simple_voting/contract.py +0 -4
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/pyproject.toml +1 -1
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/__init__.py +5 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/__init__.py +5 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_abi_call.py +2 -2
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +45 -45
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +1 -1
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/static_size.py +0 -1
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Contains/contract.py +0 -5
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Contains/data/MyContract.approval.teal +12 -15
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_contract.py +1 -3
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.coveragerc +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.editorconfig +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/dependabot.yml +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/pull_request_template.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/workflows/cd.yaml +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/workflows/ci.yaml +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.github/workflows/gh-pages.yaml +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.gitignore +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.pre-commit-config.yaml +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.vscode/extensions.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.vscode/launch.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/.vscode/settings.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/CONTRIBUTING.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/LICENSE +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/README.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/Makefile +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/_static/custom.css +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/algopy.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/api.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/conf.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/examples.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/faq.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/make.bat +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/arc4-types.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/avm-types.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/index.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/opcodes.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/signature-testing.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/state-management.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/README.md +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/auction/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/auction/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/auction/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/htlc_logicsig/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/htlc_logicsig/signature.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/htlc_logicsig/test_signature.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/marketplace/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/marketplace/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/proof_of_attendance/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/proof_of_attendance/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/scratch_storage/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/scratch_storage/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/scratch_storage/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/simple_voting/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/simple_voting/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/zk_whitelist/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/zk_whitelist/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/zk_whitelist/test_contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/scripts/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/scripts/check_stubs_cov.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/scripts/refresh_test_artifacts.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/scripts/validate_examples.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/arc4.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/compiled.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/constants.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/context.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/context_helpers/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/context_helpers/txn_context.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/decorators/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/decorators/arc4.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/decorators/subroutine.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/enums.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/gtxn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/itxn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/itxn_loader.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/account.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/application.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/asset.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/logicsig.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/template_variable.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/txn_fields.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/mutable.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/block.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/constants.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/crypto.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/global_values.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/itxn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/misc.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/pure.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/op/txn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/array.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/biguint.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/bytes.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/fixed_bytes.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/string.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/primitives/uint64.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/protocols.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/py.typed +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/serialize.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/state/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/state/box.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/state/global_state.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/state/local_state.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/state/utils.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/utilities/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/utilities/budget.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/utilities/log.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/utilities/size_of.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/utils.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/value_generators/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/value_generators/arc4.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/value_generators/avm.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/value_generators/txn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/arc4.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/gtxn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/itxn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/op.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy/py.typed +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy_testing/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/algopy_testing/py.typed +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/templates/.macros.j2 +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/templates/.release_notes.md.j2 +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/templates/CHANGELOG.md.j2 +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_address.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_arc4_method_signature.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_bool.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_dynamic_array.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_dynamic_bytes.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_emit.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_static_array.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_string.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_struct.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_tuple.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_ufixednxm.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_uintn.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/Contract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/Contract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/Contract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV0.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV0.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV0.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV1.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV1.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/AVM12/data/ContractV1.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/Contract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/immutable.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Arrays/uint64.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/data/BoxContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Contains/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CreatedAppAsset/other.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/StateMutations.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateMutations/statemutations.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/contract.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/data/TuplesContract.approval.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/data/TuplesContract.arc32.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/data/TuplesContract.arc56.json +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/Tuples/data/TuplesContract.clear.teal +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/artifacts/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/avm12/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/avm12/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/avm12/test_avm12.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/common.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/contexts/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_asset.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_box.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_box_map.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_box_ref.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_uenumerate.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/models/test_urange.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/test_biguint.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/test_bytes.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/test_fixed_bytes.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/test_string.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/primitives/test_uint64.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/state/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/state/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/state/test_global_state.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/state/test_local_state.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/state/test_mutations.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/test_array.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/test_context.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/test_miscellaneous_op.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/test_op.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/util.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/utilities/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/utilities/conftest.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/utilities/test_log.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/utilities/test_size_of.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/value_generators/__init__.py +0 -0
- {algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/value_generators/test_avm.py +0 -0
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
|
+
## v1.2.0-beta.2 (2025-12-08)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add algopy.public alias for algopy.arc4.abimethod decorator ([`32a2787`](https://github.com/algorandfoundation/algorand-python-testing/commit/32a27877a30f03e5330aa1bdb7a4fadbea543529))
|
|
7
|
+
|
|
2
8
|
## v1.2.0-beta.1 (2025-12-05)
|
|
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.
|
|
3
|
+
Version: 1.2.0b2
|
|
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
|
|
@@ -40,6 +40,7 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
|
|
|
40
40
|
| algopy.ensure_budget | Emulated |
|
|
41
41
|
| algopy.log | Emulated |
|
|
42
42
|
| algopy.logicsig | Emulated |
|
|
43
|
+
| algopy.public | Emulated |
|
|
43
44
|
| algopy.size_of | Emulated |
|
|
44
45
|
| algopy.subroutine | Native |
|
|
45
46
|
| algopy.uenumerate | Native |
|
|
@@ -62,7 +62,7 @@ class VotingContract(algopy.ARC4Contract):
|
|
|
62
62
|
)
|
|
63
63
|
self.voted = algopy.LocalState(algopy.UInt64, key="voted", description="Tracks if an account has voted")
|
|
64
64
|
|
|
65
|
-
@
|
|
65
|
+
@algopy.public
|
|
66
66
|
def set_topic(self, topic: arc4.String) -> None:
|
|
67
67
|
self.topic.value = topic.bytes
|
|
68
68
|
|
|
@@ -79,7 +79,7 @@ class VotingContract(algopy.ARC4Contract):
|
|
|
79
79
|
self.voted[algopy.Txn.sender] = algopy.UInt64(1)
|
|
80
80
|
return arc4.Bool(True)
|
|
81
81
|
|
|
82
|
-
@
|
|
82
|
+
@algopy.public(readonly=True)
|
|
83
83
|
def get_votes(self) -> arc4.UInt64:
|
|
84
84
|
return arc4.UInt64(self.votes.value)
|
|
85
85
|
|
|
@@ -141,9 +141,9 @@ This example demonstrates key aspects of testing with `algorand-python-testing`
|
|
|
141
141
|
1. ARC4 Contract Features:
|
|
142
142
|
|
|
143
143
|
- Use of `algopy.ARC4Contract` as the base class for the contract.
|
|
144
|
-
- ABI methods defined using the `@arc4.abimethod
|
|
144
|
+
- ABI methods defined using the `@arc4.abimethod`, or its alias `@algopy.public`, decorator.
|
|
145
145
|
- Use of ARC4-specific types like `arc4.String`, `arc4.Bool`, and `arc4.UInt64`.
|
|
146
|
-
- Readonly method annotation with `@arc4.abimethod(readonly=True)
|
|
146
|
+
- Readonly method annotation with `@arc4.abimethod(readonly=True)` or `@algopy.public(readonly=True)` .
|
|
147
147
|
|
|
148
148
|
2. Testing ARC4 Contracts:
|
|
149
149
|
|
{algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/docs/testing-guide/concepts.md
RENAMED
|
@@ -61,5 +61,5 @@ For a full list of all public `algopy` types and their corresponding implementat
|
|
|
61
61
|
|
|
62
62
|
## Data Validation
|
|
63
63
|
|
|
64
|
-
Algorand Python and the puya compiler have functionality to perform validation of transaction inputs via the `--validate-abi-args`, `--validate-abi-return` CLI arguments, `arc4.abimethod(validate_encoding=...)` decorator and `.validate()` methods.
|
|
65
|
-
The Algorand Python Testing library does
|
|
64
|
+
Algorand Python and the puya compiler have functionality to perform validation of transaction inputs via the `--validate-abi-args`, `--validate-abi-return` CLI arguments, `arc4.abimethod(validate_encoding=...)` decorator (or its alias, `algopy.public`) and `.validate()` methods.
|
|
65
|
+
The Algorand Python Testing library does _NOT_ implement this validation behaviour, as you should test invalid inputs using an integrated test against a real Algorand network.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Smart Contract Testing
|
|
2
2
|
|
|
3
|
-
This guide provides an overview of how to test smart contracts using the Algorand Python SDK (`algopy`). It covers the basics of testing `ARC4Contract` and `Contract` classes, focusing on the `abimethod` and `
|
|
3
|
+
This guide provides an overview of how to test smart contracts using the Algorand Python SDK (`algopy`). It covers the basics of testing `ARC4Contract` and `Contract` classes, focusing on the `baremethod`, `abimethod` and `public` (an alias of `abimethod`) decorators.
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -24,7 +24,7 @@ context = ctx_manager.__enter__()
|
|
|
24
24
|
|
|
25
25
|
Subclasses of `algopy.ARC4Contract` are **required** to be instantiated with an active test context. As part of instantiation, the test context will automatically create a matching `algopy.Application` object instance.
|
|
26
26
|
|
|
27
|
-
Within the class implementation, methods decorated with `algopy.arc4.abimethod` and `algopy.arc4.baremethod` will automatically assemble an `algopy.gtxn.ApplicationCallTransaction` to emulate the AVM application call. This behaviour can be overridden by setting the transaction group manually as part of test setup; this is done via implicit invocation of the `algopy_testing.context.any_application()` _value generator_ (refer to the [API](../api.md) for more details).
|
|
27
|
+
Within the class implementation, methods decorated with `algopy.arc4.abimethod` (or its alias, `algopy.public`) and `algopy.arc4.baremethod` will automatically assemble an `algopy.gtxn.ApplicationCallTransaction` to emulate the AVM application call. This behaviour can be overridden by setting the transaction group manually as part of test setup; this is done via implicit invocation of the `algopy_testing.context.any_application()` _value generator_ (refer to the [API](../api.md) for more details).
|
|
28
28
|
|
|
29
29
|
```{testcode}
|
|
30
30
|
class SimpleVotingContract(algopy.ARC4Contract):
|
|
@@ -42,14 +42,14 @@ class SimpleVotingContract(algopy.ARC4Contract):
|
|
|
42
42
|
self.topic.value = initial_topic
|
|
43
43
|
self.votes.value = algopy.UInt64(0)
|
|
44
44
|
|
|
45
|
-
@algopy.
|
|
45
|
+
@algopy.public
|
|
46
46
|
def vote(self) -> algopy.UInt64:
|
|
47
47
|
assert self.voted[algopy.Txn.sender] == algopy.UInt64(0), "Account has already voted"
|
|
48
48
|
self.votes.value += algopy.UInt64(1)
|
|
49
49
|
self.voted[algopy.Txn.sender] = algopy.UInt64(1)
|
|
50
50
|
return self.votes.value
|
|
51
51
|
|
|
52
|
-
@algopy.
|
|
52
|
+
@algopy.public(readonly=True)
|
|
53
53
|
def get_votes(self) -> algopy.UInt64:
|
|
54
54
|
return self.votes.value
|
|
55
55
|
|
|
@@ -74,7 +74,7 @@ assert contract.topic.value == initial_topic
|
|
|
74
74
|
assert contract.votes.value == algopy.UInt64(0)
|
|
75
75
|
|
|
76
76
|
# Act - Vote
|
|
77
|
-
# The method `.vote()` is decorated with `algopy.arc4.abimethod`, which means it will assemble a transaction to emulate the AVM application call
|
|
77
|
+
# The method `.vote()` is decorated with `algopy.public`, an alias of `algopy.arc4.abimethod`, which means it will assemble a transaction to emulate the AVM application call
|
|
78
78
|
result = contract.vote()
|
|
79
79
|
|
|
80
80
|
# Assert - you can access the corresponding auto generated application call transaction via test context
|
|
@@ -18,6 +18,8 @@ context = ctx_manager.__enter__()
|
|
|
18
18
|
|
|
19
19
|
The `@algopy.subroutine` decorator exposes contract methods for isolated testing within the Algorand Python Testing framework. This enables focused validation of core business logic without the overhead of full application deployment and execution.
|
|
20
20
|
|
|
21
|
+
`@algopy.subroutine` decorator is optional for the methods in a contract which are not callable externally.
|
|
22
|
+
|
|
21
23
|
## Usage
|
|
22
24
|
|
|
23
25
|
1. Decorate internal methods with `@algopy.subroutine`:
|
|
@@ -26,7 +28,7 @@ The `@algopy.subroutine` decorator exposes contract methods for isolated testing
|
|
|
26
28
|
from algopy import subroutine, UInt64
|
|
27
29
|
|
|
28
30
|
class MyContract:
|
|
29
|
-
@subroutine
|
|
31
|
+
@subroutine # optional
|
|
30
32
|
def calculate_value(self, input: UInt64) -> UInt64:
|
|
31
33
|
return input * UInt64(2)
|
|
32
34
|
```
|
|
@@ -143,7 +143,7 @@ When testing smart contracts, to stay consistent with AVM, the framework _does n
|
|
|
143
143
|
|
|
144
144
|
```{testcode}
|
|
145
145
|
class MyContract(algopy.ARC4Contract):
|
|
146
|
-
@algopy.
|
|
146
|
+
@algopy.public
|
|
147
147
|
def pay_via_itxn(self, asset: algopy.Asset) -> None:
|
|
148
148
|
algopy.itxn.Payment(
|
|
149
149
|
receiver=algopy.Txn.sender,
|
|
@@ -180,7 +180,7 @@ first_payment_txn = first_itxn_group.payment(0)
|
|
|
180
180
|
|
|
181
181
|
In this example, we define a contract method `pay_via_itxn` that creates and submits an inner payment transaction. The test context automatically captures and stores the inner transactions submitted by the contract method.
|
|
182
182
|
|
|
183
|
-
Note that we don't need to wrap the execution in a `create_group` context manager because the method is decorated with `@algopy.arc4.abimethod`, which automatically creates a transaction group for the method. The `create_group` context manager is only needed when you want to create more complex transaction groups or patch transaction fields for various transaction-related opcodes in AVM.
|
|
183
|
+
Note that we don't need to wrap the execution in a `create_group` context manager because the method is decorated with `@algopy.public`, an alias of `@algopy.arc4.abimethod`, which automatically creates a transaction group for the method. The `create_group` context manager is only needed when you want to create more complex transaction groups or patch transaction fields for various transaction-related opcodes in AVM.
|
|
184
184
|
|
|
185
185
|
To access the submitted inner transactions:
|
|
186
186
|
|
{algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/examples/marketplace/contract.py
RENAMED
|
@@ -9,7 +9,6 @@ from algopy import (
|
|
|
9
9
|
gtxn,
|
|
10
10
|
itxn,
|
|
11
11
|
op,
|
|
12
|
-
subroutine,
|
|
13
12
|
)
|
|
14
13
|
from algopy.arc4 import abimethod
|
|
15
14
|
|
|
@@ -32,7 +31,6 @@ class DigitalMarketplace(ARC4Contract):
|
|
|
32
31
|
def __init__(self) -> None:
|
|
33
32
|
self.listings = BoxMap(ListingKey, ListingValue)
|
|
34
33
|
|
|
35
|
-
@subroutine
|
|
36
34
|
def listings_box_mbr(self) -> UInt64:
|
|
37
35
|
return (
|
|
38
36
|
2_500
|
|
@@ -55,7 +53,6 @@ class DigitalMarketplace(ARC4Contract):
|
|
|
55
53
|
* 400
|
|
56
54
|
)
|
|
57
55
|
|
|
58
|
-
@subroutine
|
|
59
56
|
def quantity_price(self, quantity: UInt64, price: UInt64, asset_decimals: UInt64) -> UInt64:
|
|
60
57
|
amount_not_scaled_high, amount_not_scaled_low = op.mulw(price, quantity)
|
|
61
58
|
scaling_factor_high, scaling_factor_low = op.expw(10, asset_decimals)
|
|
@@ -8,12 +8,12 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
8
8
|
self.total_attendees = algopy.UInt64(0)
|
|
9
9
|
self.box_map = algopy.BoxMap(algopy.Bytes, algopy.UInt64)
|
|
10
10
|
|
|
11
|
-
@algopy.
|
|
11
|
+
@algopy.public(create="require")
|
|
12
12
|
def init(self, max_attendees: algopy.UInt64) -> None:
|
|
13
13
|
assert algopy.Txn.sender == algopy.Global.creator_address, "Only creator can initialize"
|
|
14
14
|
self.max_attendees = max_attendees
|
|
15
15
|
|
|
16
|
-
@algopy.
|
|
16
|
+
@algopy.public()
|
|
17
17
|
def confirm_attendance(self) -> None:
|
|
18
18
|
assert self.total_attendees < self.max_attendees, "Max attendees reached"
|
|
19
19
|
|
|
@@ -25,7 +25,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
25
25
|
|
|
26
26
|
algopy.op.Box.put(algopy.Txn.sender.bytes, algopy.op.itob(minted_asset.id))
|
|
27
27
|
|
|
28
|
-
@algopy.
|
|
28
|
+
@algopy.public()
|
|
29
29
|
def confirm_attendance_with_box(self) -> None:
|
|
30
30
|
assert self.total_attendees < self.max_attendees, "Max attendees reached"
|
|
31
31
|
|
|
@@ -38,7 +38,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
38
38
|
|
|
39
39
|
box.value = minted_asset.id
|
|
40
40
|
|
|
41
|
-
@algopy.
|
|
41
|
+
@algopy.public()
|
|
42
42
|
def confirm_attendance_with_box_ref(self) -> None:
|
|
43
43
|
assert self.total_attendees < self.max_attendees, "Max attendees reached"
|
|
44
44
|
|
|
@@ -51,7 +51,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
51
51
|
|
|
52
52
|
box_ref.value = algopy.op.itob(minted_asset.id)
|
|
53
53
|
|
|
54
|
-
@algopy.
|
|
54
|
+
@algopy.public()
|
|
55
55
|
def confirm_attendance_with_box_map(self) -> None:
|
|
56
56
|
assert self.total_attendees < self.max_attendees, "Max attendees reached"
|
|
57
57
|
|
|
@@ -63,33 +63,33 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
63
63
|
|
|
64
64
|
self.box_map[algopy.Txn.sender.bytes] = minted_asset.id
|
|
65
65
|
|
|
66
|
-
@algopy.
|
|
66
|
+
@algopy.public(readonly=True)
|
|
67
67
|
def get_poa_id(self) -> algopy.UInt64:
|
|
68
68
|
poa_id, exists = algopy.op.Box.get(algopy.Txn.sender.bytes)
|
|
69
69
|
assert exists, "POA not found"
|
|
70
70
|
return algopy.op.btoi(poa_id)
|
|
71
71
|
|
|
72
|
-
@algopy.
|
|
72
|
+
@algopy.public(readonly=True)
|
|
73
73
|
def get_poa_id_with_box(self) -> algopy.UInt64:
|
|
74
74
|
box = algopy.Box(algopy.UInt64, key=algopy.Txn.sender.bytes)
|
|
75
75
|
poa_id, exists = box.maybe()
|
|
76
76
|
assert exists, "POA not found"
|
|
77
77
|
return poa_id
|
|
78
78
|
|
|
79
|
-
@algopy.
|
|
79
|
+
@algopy.public(readonly=True)
|
|
80
80
|
def get_poa_id_with_box_ref(self) -> algopy.UInt64:
|
|
81
81
|
box_ref = algopy.Box(algopy.Bytes, key=algopy.Txn.sender.bytes)
|
|
82
82
|
poa_id, exists = box_ref.maybe()
|
|
83
83
|
assert exists, "POA not found"
|
|
84
84
|
return algopy.op.btoi(poa_id)
|
|
85
85
|
|
|
86
|
-
@algopy.
|
|
86
|
+
@algopy.public(readonly=True)
|
|
87
87
|
def get_poa_id_with_box_map(self) -> algopy.UInt64:
|
|
88
88
|
poa_id, exists = self.box_map.maybe(algopy.Txn.sender.bytes)
|
|
89
89
|
assert exists, "POA not found"
|
|
90
90
|
return poa_id
|
|
91
91
|
|
|
92
|
-
@algopy.
|
|
92
|
+
@algopy.public()
|
|
93
93
|
def claim_poa(self, opt_in_txn: algopy.gtxn.AssetTransferTransaction) -> None:
|
|
94
94
|
poa_id, exists = algopy.op.Box.get(algopy.Txn.sender.bytes)
|
|
95
95
|
assert exists, "POA not found, attendance validation failed!"
|
|
@@ -108,7 +108,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
108
108
|
algopy.op.btoi(poa_id),
|
|
109
109
|
)
|
|
110
110
|
|
|
111
|
-
@algopy.
|
|
111
|
+
@algopy.public()
|
|
112
112
|
def claim_poa_with_box(self, opt_in_txn: algopy.gtxn.AssetTransferTransaction) -> None:
|
|
113
113
|
box = algopy.Box(algopy.UInt64, key=algopy.Txn.sender.bytes)
|
|
114
114
|
poa_id, exists = box.maybe()
|
|
@@ -128,7 +128,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
128
128
|
poa_id,
|
|
129
129
|
)
|
|
130
130
|
|
|
131
|
-
@algopy.
|
|
131
|
+
@algopy.public()
|
|
132
132
|
def claim_poa_with_box_ref(self, opt_in_txn: algopy.gtxn.AssetTransferTransaction) -> None:
|
|
133
133
|
box_ref = algopy.Box(algopy.Bytes, key=algopy.Txn.sender.bytes)
|
|
134
134
|
poa_id, exists = box_ref.maybe()
|
|
@@ -148,7 +148,7 @@ class ProofOfAttendance(algopy.ARC4Contract):
|
|
|
148
148
|
algopy.op.btoi(poa_id),
|
|
149
149
|
)
|
|
150
150
|
|
|
151
|
-
@algopy.
|
|
151
|
+
@algopy.public()
|
|
152
152
|
def claim_poa_with_box_map(self, opt_in_txn: algopy.gtxn.AssetTransferTransaction) -> None:
|
|
153
153
|
poa_id, exists = self.box_map.maybe(algopy.Txn.sender.bytes)
|
|
154
154
|
assert exists, "POA not found, attendance validation failed!"
|
|
@@ -8,7 +8,6 @@ from algopy import (
|
|
|
8
8
|
Txn,
|
|
9
9
|
UInt64,
|
|
10
10
|
op,
|
|
11
|
-
subroutine,
|
|
12
11
|
)
|
|
13
12
|
|
|
14
13
|
VOTE_PRICE = 10_000
|
|
@@ -24,11 +23,9 @@ class VotingContract(Contract):
|
|
|
24
23
|
)
|
|
25
24
|
self.voted = LocalState(UInt64, key="voted", description="Tracks if an account has voted")
|
|
26
25
|
|
|
27
|
-
@subroutine
|
|
28
26
|
def set_topic(self, topic: Bytes) -> None:
|
|
29
27
|
self.topic.value = topic
|
|
30
28
|
|
|
31
|
-
@subroutine
|
|
32
29
|
def vote(self, voter: Account) -> bool:
|
|
33
30
|
assert op.Global.group_size == UInt64(2)
|
|
34
31
|
assert op.GTxn.amount(1) == UInt64(VOTE_PRICE)
|
|
@@ -40,7 +37,6 @@ class VotingContract(Contract):
|
|
|
40
37
|
self.voted[voter] = UInt64(1)
|
|
41
38
|
return True
|
|
42
39
|
|
|
43
|
-
@subroutine
|
|
44
40
|
def get_votes(self) -> UInt64:
|
|
45
41
|
return self.votes.value
|
|
46
42
|
|
{algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/src/_algopy_testing/__init__.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# ruff: noqa: I001
|
|
1
2
|
from _algopy_testing import arc4, gtxn, itxn
|
|
2
3
|
from _algopy_testing.context import AlgopyTestContext
|
|
3
4
|
from _algopy_testing.context_helpers.context_storage import algopy_testing_context
|
|
@@ -24,6 +25,9 @@ from _algopy_testing.state import Box, BoxMap, BoxRef, GlobalState, LocalState
|
|
|
24
25
|
from _algopy_testing.value_generators.arc4 import ARC4ValueGenerator
|
|
25
26
|
from _algopy_testing.value_generators.avm import AVMValueGenerator
|
|
26
27
|
from _algopy_testing.value_generators.txn import TxnValueGenerator
|
|
28
|
+
from _algopy_testing.decorators.arc4 import (
|
|
29
|
+
abimethod as public,
|
|
30
|
+
)
|
|
27
31
|
|
|
28
32
|
__all__ = [
|
|
29
33
|
"ARC4Contract",
|
|
@@ -60,6 +64,7 @@ __all__ = [
|
|
|
60
64
|
"gtxn",
|
|
61
65
|
"itxn",
|
|
62
66
|
"logicsig",
|
|
67
|
+
"public",
|
|
63
68
|
"subroutine",
|
|
64
69
|
"uenumerate",
|
|
65
70
|
"urange",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# ruff: noqa: I001
|
|
1
2
|
from _algopy_testing.compiled import (
|
|
2
3
|
CompiledContract,
|
|
3
4
|
CompiledLogicSig,
|
|
@@ -33,6 +34,9 @@ from _algopy_testing.state import Box, BoxMap, BoxRef, GlobalState, LocalState
|
|
|
33
34
|
from _algopy_testing.utilities import OpUpFeeSource, ensure_budget, log, size_of
|
|
34
35
|
|
|
35
36
|
from . import arc4, gtxn, itxn, op
|
|
37
|
+
from _algopy_testing.decorators.arc4 import (
|
|
38
|
+
abimethod as public,
|
|
39
|
+
)
|
|
36
40
|
|
|
37
41
|
__all__ = [
|
|
38
42
|
"ARC4Contract",
|
|
@@ -76,6 +80,7 @@ __all__ = [
|
|
|
76
80
|
"log",
|
|
77
81
|
"logicsig",
|
|
78
82
|
"op",
|
|
83
|
+
"public",
|
|
79
84
|
"size_of",
|
|
80
85
|
"subroutine",
|
|
81
86
|
"uenumerate",
|
{algorand_python_testing-1.2.0b1 → algorand_python_testing-1.2.0b2}/tests/arc4/test_abi_call.py
RENAMED
|
@@ -4,12 +4,12 @@ from collections.abc import Generator
|
|
|
4
4
|
import pytest
|
|
5
5
|
from _algopy_testing import AlgopyTestContext, algopy_testing_context
|
|
6
6
|
from _algopy_testing.itxn import ApplicationCallInnerTransaction
|
|
7
|
-
from algopy import ARC4Contract, arc4
|
|
7
|
+
from algopy import ARC4Contract, arc4, public
|
|
8
8
|
from pytest_mock import MockerFixture
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class Logger(ARC4Contract):
|
|
12
|
-
@
|
|
12
|
+
@public
|
|
13
13
|
def echo(self, value: arc4.String) -> arc4.String:
|
|
14
14
|
return "echo: " + value
|
|
15
15
|
|