├── src └── algokit │ ├── py.typed │ ├── core │ ├── __init__.py │ ├── _vendor │ │ ├── __init__.py │ │ └── auth0 │ │ │ ├── __init__.py │ │ │ └── authentication │ │ │ └── __init__.py │ ├── tasks │ │ ├── __init__.py │ │ └── mint │ │ │ └── __init__.py │ └── config_commands │ │ └── __init__.py │ ├── cli │ ├── tasks │ │ └── __init__.py │ ├── tui │ │ ├── __init__.py │ │ └── init │ │ │ ├── __init__.py │ │ │ └── screens │ │ │ └── __init__.py │ ├── common │ │ ├── __init__.py │ │ └── constants.py │ ├── compilers │ │ └── __init__.py │ └── config.py │ ├── resources │ └── distribution-method │ └── __main__.py ├── tests ├── goal │ ├── __init__.py │ ├── test_goal.test_goal_start_without_docker_engine_running.approved.txt │ ├── test_goal.test_goal_start_without_docker.approved.txt │ ├── test_goal.test_goal_compose_outdated.approved.txt │ ├── test_goal.test_goal_help.approved.txt │ ├── test_goal.test_goal_simple_args_without_file_error.approved.txt │ ├── test_goal.test_goal_no_args.approved.txt │ ├── test_goal.test_goal_simple_args.approved.txt │ ├── test_goal.test_goal_simple_args_on_named_localnet.approved.txt │ ├── test_goal.test_goal_console.approved.txt │ ├── test_goal.test_goal_console_failed.approved.txt │ ├── test_goal.test_goal_simple_args_with_input_file.approved.txt │ ├── test_goal.test_goal_simple_args_with_output_file.approved.txt │ ├── test_goal.test_goal_complex_args.approved.txt │ ├── test_goal.test_goal_simple_args_with_input_output_files.approved.txt │ ├── test_goal.test_goal_simple_args_with_input_output_files_with_dot_convention_name.approved.txt │ └── test_goal.test_goal_simple_args_with_multiple_input_output_files.approved.txt ├── init │ ├── __init__.py │ ├── example │ │ ├── __init__.py │ │ ├── test_example.test_example_command_tui_select_nothing.approved.txt │ │ ├── test_example.test_example_command_with_valid_id.approved.txt │ │ ├── test_example.test_example_command_tui_select_valid.approved.txt │ │ ├── test_example.test_example_command_with_valid_id_source_not_exist.approved.txt │ │ ├── test_example.test_example_command_tui_select_valid_but_source_missing.approved.txt │ │ ├── test_example.test_example_command_list_option.approved.txt │ │ ├── test_example.test_example_command_with_invalid_id.approved.txt │ │ └── test_example.test_example_command_help.approved.txt │ ├── test_init.test_init_wizard_v2_github_folder_no_workspace.approved.txt │ ├── test_init.test_init_wizard_v2_github_folder_with_workspace.approved.txt │ ├── copier-helloworld.bundle │ ├── test_init.test_init_missing_git.approved.txt │ ├── test_init.test_init_template_url_and_template_name.approved.txt │ ├── test_init.test_init_invalid_template_url.approved.txt │ ├── test_init.test_invalid_name.approved.txt │ ├── test_init.test_init_no_community_template.approved.txt │ ├── test_init.test_init_blessed_template_url_get_community_warning.approved.txt │ ├── test_init.test_init_existing_filename_same_as_folder_name.approved.txt │ └── test_init.test_init_do_not_use_existing_folder.approved.txt ├── tasks │ ├── __init__.py │ ├── test_transfer.test_transfer_no_option.approved.txt │ ├── TestIpfsLogout.test_ipfs_logout.approved.txt │ ├── test_transfer.test_transfer_invalid_sender_accoount.approved.txt │ ├── TestIpfsLogin.test_ipfs_login_exists.approved.txt │ ├── test_send_transaction.test_file_decoding_no_txn_error.approved.txt │ ├── test_transfer.test_transfer_failed.approved.txt │ ├── TestAddAlias.test_wallet_add_invalid_address.approved.txt │ ├── test_mint.test_mint_token_generic_error.approved.txt │ ├── TestAddAlias.test_wallet_add_alias_generic_error.approved.txt │ ├── test_send_transaction.test_mutually_exclusive_options.approved.txt │ ├── test_sign_transaction.test_mutually_exclusive_options.approved.txt │ ├── TestGetAlias.test_wallet_get_alias_not_found.approved.txt │ ├── test_vanity_address.test_vanity_address_invalid_keyword.approved.txt │ ├── TestRemoveAlias.test_wallet_remove_alias_not_found.approved.txt │ ├── TestGetAlias.test_wallet_get_alias_successful.approved.txt │ ├── TestRemoveAlias.test_wallet_remove_alias_generic_error.approved.txt │ ├── TestResetAliases.test_wallet_reset_aliases_not_found.approved.txt │ ├── test_transfer.test_transfer_invalid_sender_account.approved.txt │ ├── test_sign_transaction.test_file_decoding_errors.approved.txt │ ├── test_vanity_address.test_vanity_address_invalid_input_on_alias.approved.txt │ ├── test_transfer.test_transfer_algo_from_alias_successful.approved.txt │ ├── test_transfer.test_transfer_asset_from_alias_successful.approved.txt │ ├── TestAddAlias.test_wallet_add_alias_limit_error.approved.txt │ ├── test_transfer.test_transfer_no_args.approved.txt │ ├── test_vanity_address.test_vanity_address_invalid_input_on_file.approved.txt │ ├── TestAddAlias.test_wallet_add_address_successful.approved.txt │ ├── TestIpfsUpload.test_ipfs_upload_successful.approved.txt │ ├── test_asset.test_opt_in_no_args.approved.txt │ ├── test_transfer.test_transfer_no_amount.approved.txt │ ├── TestResetAliases.test_wallet_reset_aliases_successful.approved.txt │ ├── test_asset.test_opt_out_no_args.approved.txt │ ├── TestListAliases.test_wallet_list_aliases_not_found.approved.txt │ ├── test_mint.test_mint_token_no_pinata_jwt_error.approved.txt │ ├── TestAddAlias.test_wallet_add_alias_exists.approved.txt │ ├── TestResetAliases.test_wallet_reset_aliases_generic_error.approved.txt │ ├── TestRemoveAlias.test_wallet_remove_alias_successful.approved.txt │ ├── test_vanity_address.test_vanity_address_no_options.approved.txt │ ├── test_send_transaction.test_decoding_error.approved.txt │ ├── test_transfer.test_transfer_algo_successful.approved.txt │ ├── test_nfd_lookup.test_nfd_lookup_by_domain_success.approved.txt │ ├── test_transfer.test_transfer_on_mainnet.approved.txt │ ├── test_transfer.test_transfer_on_testnet.approved.txt │ ├── test_send_transaction.test_send_atomic_txn_group_successful.approved.txt │ ├── test_transfer.test_transfer_invalid_receiver_account.approved.txt │ ├── TestIpfsLogin.test_ipfs_login_successful.approved.txt │ ├── test_transfer.test_transfer_algo_from_address_successful.approved.txt │ ├── test_transfer.test_transfer_asset_from_address_successful.approved.txt │ ├── test_asset.test_opt_in_to_assets_from_account_address_failed.approved.txt │ ├── test_asset.test_opt_out_assets_from_account_address_failed.approved.txt │ ├── test_mint.test_mint_token_acfg_token_metadata_mismatch.approved.txt │ ├── test_nfd_lookup.test_nfd_lookup_by_address_success.approved.txt │ ├── test_send_transaction.test_send_from_transaction_successful.approved.txt │ ├── TestAddAlias.test_wallet_add_account_successful.approved.txt │ ├── test_asset.test_opt_in_of_assets_from_account_alias_successful.approved.txt │ ├── test_transfer.test_transfer_asset_from_address_to_alias_successful.approved.txt │ ├── test_asset.test_opt_in_invalid_network.approved.txt │ ├── test_asset.test_opt_out_of_assets_from_account_alias_successful.approved.txt │ ├── TestIpfsUpload.test_ipfs_upload_http_error.approved.txt │ ├── test_asset.test_opt_out_invalid_network.approved.txt │ ├── TestListAliases.test_wallet_list_aliases_successful.approved.txt │ ├── test_asset.test_opt_in_to_assets_from_account_address_successful.approved.txt │ ├── test_asset.test_opt_out_of_assets_from_account_address_successful.approved.txt │ ├── test_asset.test_opt_out_of_all_assets_from_account_address_successful.approved.txt │ ├── test_mint.test_mint_token_pinata_error.approved.txt │ ├── test_sign_transaction.test_transaction_decoding_errors.approved.txt │ ├── TestAddAlias.test_wallet_add_alias_mnemonic_differs.approved.txt │ ├── test_analyze.test_analyze_error_no_pipx.approved.txt │ ├── test_analyze.test_analyze_abort_disclaimer.approved.txt │ ├── test_analyze.test_analyze_skipping_tmpl_vars.approved.txt │ ├── test_analyze.test_analyze_diff_flag_missing_old_report.approved.txt │ ├── test_analyze.test_analyze_error_in_tealer.approved.txt │ └── test_analyze.test_exclude_vulnerabilities.approved.txt ├── utils │ ├── __init__.py │ ├── which_mock.py │ └── app_dir_mock.py ├── compile │ ├── __init__.py │ ├── test_python.test_compile_py_help.approved.txt │ ├── test_python.test_puyapy_is_installed_in_project.approved.txt │ ├── test_python.test_puyapy_is_installed_globally.approved.txt │ ├── test_typescript.test_compile_py_help.approved.txt │ ├── test_typescript.test_puyats_is_installed_in_project.approved.txt │ ├── test_typescript.test_puyats_is_not_installed_anywhere.approved.txt │ ├── test_typescript.test_specificed_puyats_version_is_not_installed.approved.txt │ ├── test_python.test_puyapy_is_not_installed_anywhere.approved.txt │ ├── test_python.test_specificed_puyapy_version_is_not_installed.approved.txt │ └── test_typescript.test_puyats_is_installed_globally.approved.txt ├── config │ ├── __init__.py │ ├── test_package_managers.test_py_package_manager_set_uv.approved.txt │ ├── test_package_managers.test_js_package_manager_set_npm.approved.txt │ ├── test_package_managers.test_js_package_manager_set_pnpm.approved.txt │ ├── test_package_managers.test_py_package_manager_set_poetry.approved.txt │ ├── test_package_managers.test_py_package_manager_help.approved.txt │ ├── test_package_managers.test_js_package_manager_help.approved.txt │ ├── test_package_managers.test_js_package_manager_invalid_argument.approved.txt │ └── test_package_managers.test_py_package_manager_invalid_argument.approved.txt ├── doctor │ ├── __init__.py │ └── test_doctor.test_doctor_help.approved.txt ├── explore │ ├── __init__.py │ ├── test_explore.test_explore.localnet.approved.txt │ ├── test_explore.test_explore.mainnet.approved.txt │ └── test_explore.test_explore.testnet.approved.txt ├── generate │ ├── __init__.py │ ├── test_generate_client.test_generate_no_options.approved.txt │ ├── test_generate_client.test_npx_missing.approved.txt │ ├── test_generate_client.test_generate_client_no_app_spec_found.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_command_no_git_valid_generator.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_command_missing_git_valid_generator.approved.txt │ ├── test_generate_client.test_generate_client_output_path_is_dir.approved.txt │ ├── test_generate_client.test_pipx_missing.approved.txt │ ├── test_generate_client.test_generate_help.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_run.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_no_toml.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_no_description.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_invalid_path.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_run_with_python_path.approved.txt │ ├── test_generate_custom_generate_commands.test_generate_custom_generate_commands_invalid_generic_generator.approved.txt │ ├── test_generate_client.test_python_generator_is_installed_in_project.approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_in_project[linux].approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_in_project[macOS].approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_in_project[windows].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--o client.ts-client.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--o client.ts-client.ts].approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_globally[linux].approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_globally[macOS].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--o client.py --language typescript-client.py].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--o client.py --language typescript-client.py].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux---output {contract_name}.ts-HelloWorldApp.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--l typescript-HelloWorldAppClient.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--o client.ts -pn --mode minimal-client.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS---output {contract_name}.ts-HelloWorldApp.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--l typescript-HelloWorldAppClient.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--o client.ts -pn --mode minimal-client.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[windows--o client.ts-client.ts].approved.txt │ ├── test_generate_client.test_npx_failed[linux].approved.txt │ ├── test_generate_client.test_npx_failed[macOS].approved.txt │ ├── test_generate_client.test_generate_client_typescript[linux--l typescript -v 2.6.0-HelloWorldAppClient.ts].approved.txt │ ├── test_generate_client.test_generate_client_typescript[macOS--l typescript -v 2.6.0-HelloWorldAppClient.ts].approved.txt │ ├── test_generate_client.test_typescript_generator_is_installed_globally[windows].approved.txt │ ├── test_generate_client.test_generate_client_typescript[windows--o client.py --language typescript-client.py].approved.txt │ ├── test_generate_client.test_python_generator_is_installed_globally.approved.txt │ ├── test_generate_client.test_generate_client_typescript[windows---output {contract_name}.ts-HelloWorldApp.ts].approved.txt │ └── test_generate_client.test_generate_client_typescript[windows--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt ├── localnet │ ├── __init__.py │ ├── test_localnet_reset.test_localnet_reset_without_docker.approved.txt │ ├── test_localnet_start.test_localnet_start_without_docker.approved.txt │ ├── test_localnet_status.test_localnet_status_without_docker.approved.txt │ ├── test_localnet_stop.test_localnet_stop_without_docker.approved.txt │ ├── test_localnet.py │ ├── test_localnet_start.test_localnet_start_with_old_docker_compose_version.approved.txt │ ├── test_localnet_stop.test_localnet_stop_without_docker_compose.approved.txt │ ├── test_localnet_reset.test_localnet_reset_without_docker_compose.approved.txt │ ├── test_localnet_start.test_localnet_start_without_docker_compose.approved.txt │ ├── test_localnet_status.test_localnet_status_without_docker_compose.approved.txt │ ├── test_sandbox.test_get_config_json.approved.txt │ ├── test_localnet_codespace.test_install_gh_not_installed_failed_install.approved.txt │ ├── test_localnet_stop.test_localnet_stop_without_docker_engine_running.approved.txt │ ├── test_localnet_reset.test_localnet_reset_without_docker_engine_running.approved.txt │ ├── test_localnet_start.test_localnet_start_without_docker_engine_running.approved.txt │ ├── test_localnet_status.test_localnet_status_without_docker_engine_running.approved.txt │ ├── test_localnet_codespace.test_install_gh_unix.approved.txt │ ├── test_localnet_stop.test_localnet_stop_no_existing_definition.approved.txt │ ├── test_localnet_codespace.test_install_gh_windows.approved.txt │ ├── test_localnet_stop.test_localnet_stop_failure.approved.txt │ ├── test_localnet_stop.test_localnet_stop.approved.txt │ ├── test_localnet_stop.test_localnet_stop_with_name.approved.txt │ └── test_localnet.test_localnet_help.approved.txt ├── project │ ├── __init__.py │ ├── deploy │ │ ├── __init__.py │ │ ├── test_deploy.test_deploy_windows_command_not_found.approved.txt │ │ ├── test_deploy.test_algokit_config_empty_array.approved.txt │ │ ├── test_deploy.test_deploy_shutil_command_not_found.approved.txt │ │ ├── test_deploy.test_algokit_env_name_missing.approved.txt │ │ ├── test_deploy.test_ci_flag_interactivity_mode_via_cli.approved.txt │ │ ├── test_deploy.test_ci_flag_interactivity_mode_via_env.approved.txt │ │ ├── test_deploy.test_command_not_found_and_no_config.approved.txt │ │ ├── test_deploy.test_algokit_config_invalid_syntax.approved.txt │ │ ├── test_deploy.test_secrets_prompting_via_stdin.approved.txt │ │ ├── test_deploy.test_algokit_deploy_only_base_deploy_config.approved.txt │ │ ├── test_deploy.test_deploy_with_extra_args.approved.txt │ │ ├── test_deploy.test_command_splitting_from_config.approved.txt │ │ ├── test_deploy.test_algokit_config_name_no_base.approved.txt │ │ ├── test_deploy.test_algokit_config_name_overrides.approved.txt │ │ ├── test_deploy.test_command_without_splitting_from_config.approved.txt │ │ ├── test_deploy.test_algokit_env_and_name_correct_set.approved.txt │ │ ├── test_deploy.test_command_invocation_and_command_splitting.approved.txt │ │ ├── test_deploy.test_deploy_dispenser_alias.deployer.approved.txt │ │ ├── test_deploy.test_deploy_dispenser_alias.dispenser.approved.txt │ │ ├── test_deploy.test_command_not_executable.approved.txt │ │ ├── test_deploy.test_command_bad_exit_code.approved.txt │ │ └── test_deploy.test_deploy_custom_project_dir.approved.txt │ ├── run │ │ ├── __init__.py │ │ ├── test_run.test_run_command_from_workspace_filtered_no_project.approved.txt │ │ ├── test_run.test_run_command_from_workspace_success.approved.txt │ │ ├── test_run.test_list_all_commands_in_workspace.approved.txt │ │ ├── test_run.test_run_command_from_workspace_filtered.approved.txt │ │ ├── test_run.test_run_command_from_workspace_with_extra_args.approved.txt │ │ ├── test_run.test_run_command_from_standalone.approved.txt │ │ ├── test_run.test_run_command_from_workspace_with_extra_args_and_project_filter.approved.txt │ │ ├── test_run.test_run_command_from_standalone_resolution_error.approved.txt │ │ ├── test_run.test_run_command_from_standalone_with_extra_args.approved.txt │ │ ├── test_run.test_run_command_from_standalone_pass_env.approved.txt │ │ ├── test_run.test_run_command_from_workspace_sequential_success.approved.txt │ │ ├── test_run.test_run_command_help_works_without_path_resolution.approved.txt │ │ ├── test_run.test_run_command_from_workspace_resolution_error.approved.txt │ │ ├── test_run.test_run_command_from_standalone_execution_error.approved.txt │ │ └── test_run.test_run_command_from_workspace_execution_error.approved.txt │ ├── bootstrap │ │ ├── __init__.py │ │ ├── test_bootstrap_env.test_bootstrap_network_prefixed_env_dotenv_exists.approved.txt │ │ ├── test_bootstrap_package_manager_selection.test_smart_defaults_when_no_user_preference.approved.txt │ │ ├── test_bootstrap_package_manager_selection.test_interactive_prompt_fallback_with_preference_saving.approved.txt │ │ ├── test_bootstrap_package_manager_selection.test_project_override_takes_precedence_over_user_preference.approved.txt │ │ ├── test_bootstrap.py │ │ ├── test_bootstrap_env.test_bootstrap_env_dotenv_exists.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.approved.txt │ │ ├── test_bootstrap_all.test_bootstrap_all_algokit_min_version.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_env_no_files.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.localnet.approved.txt │ │ ├── test_bootstrap_pnpm.test_bootstrap_pnpm_without_package_file.approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_package_file[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_package_file[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_package_file[windows].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[windows].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_happy_path[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_happy_path[macOS].approved.txt │ │ ├── test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[linux].approved.txt │ │ ├── test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_happy_path[windows].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[windows].approved.txt │ │ ├── test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[windows].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[windows].approved.txt │ │ ├── test_bootstrap_pnpm.test_bootstrap_pnpm_ci_mode_without_lock_file.approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm[linux].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm[macOS].approved.txt │ │ ├── test_bootstrap_npm.test_bootstrap_npm_without_npm[windows].approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.template.approved.txt │ │ ├── test_bootstrap_uv.test_bootstrap_uv_user_declines_install.approved.txt │ │ ├── test_bootstrap_all.test_bootstrap_all_empty.approved.txt │ │ ├── test_bootstrap_uv.test_bootstrap_uv_happy_path.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.localnet.template.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_env_dotenv_missing_template_exists.approved.txt │ │ ├── test_bootstrap_poetry.test_bootstrap_poetry_with_poetry.approved.txt │ │ ├── test_bootstrap_all.test_bootstrap_all_algokit_min_version_ignore_error.approved.txt │ │ ├── test_bootstrap_uv.test_bootstrap_uv_poetry_project_migration_declined.approved.txt │ │ ├── test_bootstrap_env.test_bootstrap_env_dotenv_with_values.approved.txt │ │ ├── test_bootstrap_poetry.test_bootstrap_poetry_without_poetry_failed_install.approved.txt │ │ ├── test_bootstrap_poetry.test_bootstrap_poetry_without_poetry.approved.txt │ │ └── test_bootstrap_poetry.test_bootstrap_poetry_without_poetry_or_pipx_path_or_pipx_module.approved.txt │ ├── link │ │ ├── test_link.test_link_command_by_name_success.approved.txt │ │ ├── test_link.test_link_command_empty_folder.approved.txt │ │ ├── test_link.test_link_command_name_not_found.approved.txt │ │ ├── test_link.test_list_command_from_workspace_success.approved.txt │ │ ├── test_link.test_link_command_multiple_names_success.approved.txt │ │ ├── test_link.test_link_command_all_success.approved.txt │ │ ├── test_link.test_link_command_multiple_names_no_specs_success.approved.txt │ │ └── test_link.test_link_runtime_error.approved.txt │ └── list │ │ ├── test_list.test_run_command_from_workspace_success.approved.txt │ │ ├── test_list.test_list_command_no_args.approved.txt │ │ └── test_list.test_list_command_from_empty_folder.approved.txt ├── completions │ ├── __init__.py │ ├── test_completions.test_completions_subcommands_with_unsupported_shell_fails_gracefully.install.approved.txt │ ├── test_completions.test_completions_subcommands_with_unsupported_shell_fails_gracefully.uninstall.approved.txt │ ├── test_completions.test_completions_uninstall_is_idempotent.approved.txt │ ├── test_completions.test_completions_subcommands_with_unknown_shell_fails_gracefully.install.approved.txt │ ├── test_completions.test_completions_subcommands_with_unknown_shell_fails_gracefully.uninstall.approved.txt │ ├── test_completions.test_completions_uninstall_handles_no_profile.approved.txt │ ├── test_completions.test_completions_help.approved.txt │ ├── test_completions.test_completions_install_handles_unsupported_bash_gracefully.approved.txt │ ├── test_completions.test_completions_uninstalls_correctly.zsh.approved.txt │ ├── test_completions.test_completions_uninstalls_correctly.bash.approved.txt │ ├── test_completions.test_completions_install_is_idempotent.approved.txt │ ├── test_completions.test_completions_install_handles_no_profile.approved.txt │ ├── test_completions.test_completions_install_handles_config_outside_home.approved.txt │ ├── test_completions.test_completions_installs_correctly_with_detected_shell.approved.txt │ ├── test_completions.test_completions_installs_correctly_with_specified_shell.zsh.approved.txt │ ├── test_completions.test_completions_installs_correctly_with_specified_shell.bash.approved.txt │ ├── test_completions.test_completions_subcommands_help.install.approved.txt │ └── test_completions.test_completions_subcommands_help.uninstall.approved.txt ├── version_check │ ├── __init__.py │ ├── test_version_check.test_version_check_enable_version_check.approved.txt │ ├── test_version_check.test_version_check_disable_version_check.approved.txt │ ├── test_version_check.test_version_check_respects_skip_option.approved.txt │ ├── test_version_check.test_version_check_respects_disable_config.approved.txt │ ├── test_version_check.test_version_check_uses_cache.approved.txt │ ├── test_version_check.test_version_check_queries_github_when_no_cache.approved.txt │ └── test_version_check.test_version_check_queries_github_when_cache_out_of_date.approved.txt ├── dispenser │ ├── TestLoginCommand.test_login_command_already_logged_in.approved.txt │ ├── TestLogoutCommand.test_logout_command_already_logged_out.approved.txt │ ├── TestFundCommand.test_fund_command_alias_invalid.approved.txt │ ├── TestFundCommand.test_fund_command_not_authenticated.approved.txt │ ├── TestLimitCommand.test_limit_command_not_authenticated.approved.txt │ ├── TestRefundCommand.test_refund_command_not_authenticated.approved.txt │ ├── TestFundCommand.test_fund_command_address_invalid.approved.txt │ ├── TestFundCommand.test_fund_command_http_error.approved.txt │ ├── TestLogoutCommand.test_logout_command_revoke_exception.approved.txt │ ├── TestLimitCommand.test_limit_command_http_error.approved.txt │ ├── TestLimitCommand.test_limit_command_success.False.True.approved.txt │ ├── TestRefundCommand.test_refund_command_success.False.approved.txt │ ├── TestFundCommand.test_fund_command_invalid_args.approved.txt │ ├── TestLimitCommand.test_limit_command_success.False.False.approved.txt │ ├── TestRefundCommand.test_refund_command_http_error.approved.txt │ ├── TestRefundCommand.test_refund_command_invalid_args.approved.txt │ ├── TestLogoutCommand.test_logout_command_success.approved.txt │ ├── TestRefundCommand.test_refund_command_success.True.approved.txt │ ├── TestLimitCommand.test_limit_command_success.True.True.approved.txt │ ├── TestLimitCommand.test_limit_command_success.True.False.approved.txt │ ├── TestLoginCommand.test_login_command_expired_token_refresh.True.approved.txt │ ├── TestFundCommand.test_fund_command_from_alias_successful.approved.txt │ ├── TestFundCommand.test_fund_command_success.False.False.approved.txt │ ├── TestLoginCommand.test_login_command_expired_token_refresh.False.approved.txt │ ├── TestFundCommand.test_fund_command_success.False.True.approved.txt │ ├── TestFundCommand.test_fund_command_success.True.False.approved.txt │ ├── TestLoginCommand.test_login_command_success_user.approved.txt │ ├── TestFundCommand.test_fund_command_success.True.True.approved.txt │ ├── TestLoginCommand.test_login_command_success_ci.file.None.approved.txt │ ├── TestLoginCommand.test_login_command_success_ci.file.custom_file.txt.approved.txt │ ├── TestLoginCommand.test_login_command_cancelled_timeout.approved.txt │ └── TestLoginCommand.test_login_command_success_ci.stdout.None.approved.txt ├── __init__.py └── test_root.py ├── .gitattributes ├── poetry.toml ├── .github ├── pull_request_template.md ├── dependabot.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── pr.yaml │ └── clear-caches.yaml ├── docs ├── sphinx │ ├── index.rst │ └── conf.py ├── imgs │ ├── banner.png │ ├── localnet.png │ ├── algokit-map.png │ ├── algokitartifacts.png │ ├── algokitcodetour.png │ ├── algokitplayground.png │ └── algokit-intro-video-thumbnail.jpg ├── architecture-decisions │ ├── lifecycle.jpg │ └── assets │ │ ├── 2024-01-13_native_binaries │ │ ├── image_1.png │ │ └── image_2.png │ │ └── 2023-06-06_frontend-templates │ │ ├── scenario_1.jpg │ │ ├── scenario_2.jpg │ │ └── modular_templates.jpg ├── tutorials │ └── smart-contracts.md └── features │ └── explore.md ├── scripts ├── winget │ ├── installer │ │ └── assets │ │ │ ├── Square44x44Logo.png │ │ │ ├── Square70x70Logo.png │ │ │ ├── Square150x150Logo.png │ │ │ ├── Square44x44Logo.targetsize-44.png │ │ │ └── Square44x44Logo.targetsize-44_altform-unplated.png │ └── update-package.ps1 ├── package_windows.bat └── package_mac.sh ├── .editorconfig ├── .vscode ├── extensions.json └── launch.json └── entitlements.xml /src/algokit/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/goal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/init/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/compile/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/doctor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/explore/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/generate/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/localnet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/cli/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/cli/tui/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/completions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/init/example/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/deploy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/run/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/version_check/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /src/algokit/cli/common/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/cli/compilers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/cli/tui/init/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/_vendor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/bootstrap/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/_vendor/auth0/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/tasks/mint/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/resources/distribution-method: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/cli/tui/init/screens/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/algokit/core/config_commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /poetry.toml: -------------------------------------------------------------------------------- 1 | [virtualenvs] 2 | in-project = true 3 | -------------------------------------------------------------------------------- /src/algokit/core/_vendor/auth0/authentication/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_no_option.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tasks/TestIpfsLogout.test_ipfs_logout.approved.txt: -------------------------------------------------------------------------------- 1 | Logout successful 2 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_invalid_sender_accoount.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_wizard_v2_github_folder_no_workspace.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_wizard_v2_github_folder_with_workspace.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_tui_select_nothing.approved.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | Fixes # 2 | 3 | ## Proposed Changes 4 | 5 | - 6 | - 7 | - 8 | -------------------------------------------------------------------------------- /docs/sphinx/index.rst: -------------------------------------------------------------------------------- 1 | .. click:: algokit.cli:algokit 2 | :prog: algokit 3 | :nested: full 4 | -------------------------------------------------------------------------------- /tests/tasks/TestIpfsLogin.test_ipfs_login_exists.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: You are already logged in! 2 | -------------------------------------------------------------------------------- /docs/imgs/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/banner.png -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_network_prefixed_env_dotenv_exists.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/imgs/localnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/localnet.png -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_already_logged_in.approved.txt: -------------------------------------------------------------------------------- 1 | You are already logged in 2 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_with_valid_id.approved.txt: -------------------------------------------------------------------------------- 1 | Created example react-vite 2 | -------------------------------------------------------------------------------- /docs/imgs/algokit-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/algokit-map.png -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_py_package_manager_set_uv.approved.txt: -------------------------------------------------------------------------------- 1 | Python package manager set to `uv` 2 | -------------------------------------------------------------------------------- /tests/dispenser/TestLogoutCommand.test_logout_command_already_logged_out.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: Already logged out 2 | -------------------------------------------------------------------------------- /tests/tasks/test_send_transaction.test_file_decoding_no_txn_error.approved.txt: -------------------------------------------------------------------------------- 1 | Error: No valid transactions found! 2 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_js_package_manager_set_npm.approved.txt: -------------------------------------------------------------------------------- 1 | JavaScript package manager set to `npm` 2 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_package_manager_selection.test_smart_defaults_when_no_user_preference.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_by_name_success.approved.txt: -------------------------------------------------------------------------------- 1 | 1/1: Finished processing contract_project_3 2 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_failed.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: dummy error 2 | Error: Failed to perform transfer 3 | -------------------------------------------------------------------------------- /docs/imgs/algokitartifacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/algokitartifacts.png -------------------------------------------------------------------------------- /docs/imgs/algokitcodetour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/algokitcodetour.png -------------------------------------------------------------------------------- /docs/imgs/algokitplayground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/algokitplayground.png -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_js_package_manager_set_pnpm.approved.txt: -------------------------------------------------------------------------------- 1 | JavaScript package manager set to `pnpm` 2 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_py_package_manager_set_poetry.approved.txt: -------------------------------------------------------------------------------- 1 | Python package manager set to `poetry` 2 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_tui_select_valid.approved.txt: -------------------------------------------------------------------------------- 1 | Created example python-smart-contract 2 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_empty_folder.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: No .algokit.toml config found. Skipping... 2 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_invalid_address.approved.txt: -------------------------------------------------------------------------------- 1 | Error: `invalid_address` is an invalid account address 2 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_with_valid_id_source_not_exist.approved.txt: -------------------------------------------------------------------------------- 1 | Example react-vite not found 2 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_package_manager_selection.test_interactive_prompt_fallback_with_preference_saving.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_name_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: No contract_project_13 found. Skipping... 2 | -------------------------------------------------------------------------------- /tests/tasks/test_mint.test_mint_token_generic_error.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_enable_version_check.approved.txt: -------------------------------------------------------------------------------- 1 | 📡 Resuming check for new versions 2 | -------------------------------------------------------------------------------- /tests/init/copier-helloworld.bundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/tests/init/copier-helloworld.bundle -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_package_manager_selection.test_project_override_takes_precedence_over_user_preference.approved.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_disable_version_check.approved.txt: -------------------------------------------------------------------------------- 1 | 🚫 Will stop checking for new versions 2 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_alias_generic_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | Error: Failed to add alias 3 | -------------------------------------------------------------------------------- /docs/architecture-decisions/lifecycle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/lifecycle.jpg -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_tui_select_valid_but_source_missing.approved.txt: -------------------------------------------------------------------------------- 1 | Example python-smart-contract not found 2 | -------------------------------------------------------------------------------- /docs/imgs/algokit-intro-video-thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/imgs/algokit-intro-video-thumbnail.jpg -------------------------------------------------------------------------------- /src/algokit/__main__.py: -------------------------------------------------------------------------------- 1 | from multiprocessing import freeze_support 2 | 3 | from algokit.cli import algokit 4 | 5 | freeze_support() 6 | algokit() 7 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_alias_invalid.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `abc` does not exist 2 | Error: Alias `abc` alias does not exist. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_send_transaction.test_mutually_exclusive_options.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Illegal usage: 'file' is mutually exclusive with transaction. 2 | -------------------------------------------------------------------------------- /tests/tasks/test_sign_transaction.test_mutually_exclusive_options.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Illegal usage: 'file' is mutually exclusive with transaction. 2 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_not_authenticated.approved.txt: -------------------------------------------------------------------------------- 1 | ERROR: Please login first by running `algokit dispenser login` command 2 | -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_not_authenticated.approved.txt: -------------------------------------------------------------------------------- 1 | ERROR: Please login first by running `algokit dispenser login` command 2 | -------------------------------------------------------------------------------- /tests/tasks/TestGetAlias.test_wallet_get_alias_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | Error: Alias `test_alias` does not exist. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_vanity_address.test_vanity_address_invalid_keyword.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Invalid KEYWORD. Allowed: uppercase letters A-Z and numbers 2-7. 2 | -------------------------------------------------------------------------------- /tests/dispenser/TestRefundCommand.test_refund_command_not_authenticated.approved.txt: -------------------------------------------------------------------------------- 1 | ERROR: Please login first by running `algokit dispenser login` command 2 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_list_command_from_workspace_success.approved.txt: -------------------------------------------------------------------------------- 1 | ✅ 1/1: Exported typed clients from contract_project_3 typed clients to dist 2 | -------------------------------------------------------------------------------- /tests/tasks/TestRemoveAlias.test_wallet_remove_alias_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | Error: Alias `test_alias` does not exist. 3 | -------------------------------------------------------------------------------- /scripts/winget/installer/assets/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/scripts/winget/installer/assets/Square44x44Logo.png -------------------------------------------------------------------------------- /scripts/winget/installer/assets/Square70x70Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/scripts/winget/installer/assets/Square70x70Logo.png -------------------------------------------------------------------------------- /tests/tasks/TestGetAlias.test_wallet_get_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Address for alias `test_alias`: LAAX2VEIRZKS33PUIJOASGEO2V57TBJTXSRY4WTFPAA3OD72FUTKFMGMSM 2 | -------------------------------------------------------------------------------- /tests/tasks/TestRemoveAlias.test_wallet_remove_alias_generic_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | Error: Alias `test_alias` does not exist. 3 | -------------------------------------------------------------------------------- /scripts/winget/installer/assets/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/scripts/winget/installer/assets/Square150x150Logo.png -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_with_unsupported_shell_fails_gracefully.install.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: pwsh is not a supported shell. 😢 2 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_with_unsupported_shell_fails_gracefully.uninstall.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: pwsh is not a supported shell. 😢 2 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_no_options.approved.txt: -------------------------------------------------------------------------------- 1 | Error: One of --language or --output is required to determine the client language to generate 2 | -------------------------------------------------------------------------------- /tests/tasks/TestResetAliases.test_wallet_reset_aliases_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Failed to get alias keys from keyring 2 | Warning: No aliases available to reset. 3 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_multiple_names_success.approved.txt: -------------------------------------------------------------------------------- 1 | 1/2: Finished processing contract_project_3 2 | 2/2: Finished processing contract_project_5 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_invalid_sender_account.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `invalid-address` does not exist 2 | Error: Alias `invalid-address` alias does not exist. 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_address_invalid.approved.txt: -------------------------------------------------------------------------------- 1 | Error: `TZXGUW6DZ27OBB4QSGZKTYFEABCO3R7XWAXECEV73DTF3VOBNNJNAHZJJY` is an invalid account address 2 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_http_error.approved.txt: -------------------------------------------------------------------------------- 1 | ERROR: Error: Limit exceeded. Try again in ~4.0 hours if your request doesn't exceed the daily limit. 2 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_list_option.approved.txt: -------------------------------------------------------------------------------- 1 | Available examples: 2 | react-vite - React Vite 3 | python-smart-contract - Python Smart Contract 4 | -------------------------------------------------------------------------------- /tests/tasks/test_sign_transaction.test_file_decoding_errors.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Error: No valid transactions found! 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root=true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | insert_final_newline = true 8 | 9 | [*.py] 10 | indent_size = 4 11 | -------------------------------------------------------------------------------- /tests/dispenser/TestLogoutCommand.test_logout_command_revoke_exception.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Error logging out An unexpected error occurred: Error response 2 | Error: Error logging out 3 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_with_invalid_id.approved.txt: -------------------------------------------------------------------------------- 1 | Example nonexistent not found 2 | Available example ids: 3 | react-vite 4 | python-smart-contract 5 | -------------------------------------------------------------------------------- /tests/tasks/test_vanity_address.test_vanity_address_invalid_input_on_alias.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Please provide an alias using the '--alias' option when the output is set to 'alias'. 2 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_missing_git.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Git not found; please install git and add to path. 2 | See https://github.com/git-guides/install-git for more information. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_algo_from_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Successfully performed transfer. See details at https://explore.algokit.io/localnet/transaction/dummy_txid 2 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_asset_from_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Successfully performed transfer. See details at https://explore.algokit.io/localnet/transaction/dummy_txid 2 | -------------------------------------------------------------------------------- /scripts/winget/installer/assets/Square44x44Logo.targetsize-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/scripts/winget/installer/assets/Square44x44Logo.targetsize-44.png -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_alias_limit_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | DEBUG: Failed to add alias to keyring 3 | Error: Reached the max of 50 aliases. 4 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_no_args.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task transfer [OPTIONS] 2 | Try 'algokit task transfer -h' for help. 3 | 4 | Error: Missing option '--sender' / '-s'. 5 | -------------------------------------------------------------------------------- /tests/tasks/test_vanity_address.test_vanity_address_invalid_input_on_file.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Please provide an output filename using the '--file-path' option when the output is set to 'file'. 2 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: `test_alias` does not exist 2 | DEBUG: Failed to get alias keys from keyring 3 | Alias 'test_alias' added successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/TestIpfsUpload.test_ipfs_upload_successful.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 200 OK" 2 | File uploaded successfully! 3 | CID: test 4 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_in_no_args.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task opt-in [OPTIONS] ASSET_IDS... 2 | Try 'algokit task opt-in -h' for help. 3 | 4 | Error: Missing argument 'ASSET_IDS...'. 5 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_no_amount.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task transfer [OPTIONS] 2 | Try 'algokit task transfer -h' for help. 3 | 4 | Error: Missing option '--amount' / '-a'. 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_http_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Error processing dispenser API request: Unable to process limit request 2 | ERROR: Error: Unable to process limit request 3 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_filtered_no_project.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | WARNING: Missing projects: contract_project2. Proceeding with available ones. 3 | -------------------------------------------------------------------------------- /tests/tasks/TestResetAliases.test_wallet_reset_aliases_successful.approved.txt: -------------------------------------------------------------------------------- 1 | 🚨 This is a destructive action that will clear all aliases. Are you sure? (y, n) [n]: y 2 | All aliases have been cleared. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_no_args.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task opt-out [OPTIONS] [ASSET_IDS]... 2 | Try 'algokit task opt-out -h' for help. 3 | 4 | Error: Missing option '--account' / '-a'. 5 | -------------------------------------------------------------------------------- /docs/architecture-decisions/assets/2024-01-13_native_binaries/image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/assets/2024-01-13_native_binaries/image_1.png -------------------------------------------------------------------------------- /docs/architecture-decisions/assets/2024-01-13_native_binaries/image_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/assets/2024-01-13_native_binaries/image_2.png -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_success.False.True.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: GET https://snapshottest.dispenser.com/fund/0/limit "HTTP/1.1 200 OK" 2 | Remaining daily fund limit: 1.0 Algo 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestRefundCommand.test_refund_command_success.False.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://snapshottest.dispenser.com/refund "HTTP/1.1 200 OK" 2 | Successfully processed refund transaction 3 | -------------------------------------------------------------------------------- /tests/tasks/TestListAliases.test_wallet_list_aliases_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Failed to get alias keys from keyring 2 | You don't have any aliases stored yet. Create one using `algokit task wallet add`. 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_invalid_args.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit dispenser fund [OPTIONS] 2 | Try 'algokit dispenser fund -h' for help. 3 | 4 | Error: Missing option '--receiver' / '-r'. 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_success.False.False.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: GET https://snapshottest.dispenser.com/fund/0/limit "HTTP/1.1 200 OK" 2 | Remaining daily fund limit: 1000000 μAlgo 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestRefundCommand.test_refund_command_http_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Error processing dispenser API request: Transaction was already processed 2 | ERROR: Error: Transaction was already processed 3 | -------------------------------------------------------------------------------- /tests/tasks/test_mint.test_mint_token_no_pinata_jwt_error.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Error: You are not logged in! Please login using `algokit task ipfs login`. 3 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_uninstall_is_idempotent.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Removing source script {home}/.config/algokit/.algokit-completions.bash 2 | AlgoKit completions not installed for bash 🤔 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestRefundCommand.test_refund_command_invalid_args.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit dispenser refund [OPTIONS] 2 | Try 'algokit dispenser refund -h' for help. 3 | 4 | Error: Missing option '--txID' / '-t'. 5 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_alias_exists.approved.txt: -------------------------------------------------------------------------------- 1 | Alias 'test_alias' already exists. Overwrite? (y, n) [n]: y 2 | DEBUG: Failed to get alias keys from keyring 3 | Alias 'test_alias' added successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/TestResetAliases.test_wallet_reset_aliases_generic_error.approved.txt: -------------------------------------------------------------------------------- 1 | 🚨 This is a destructive action that will clear all aliases. Are you sure? (y, n) [n]: y 2 | Error: Failed to remove alias test_alias_1 3 | -------------------------------------------------------------------------------- /docs/architecture-decisions/assets/2023-06-06_frontend-templates/scenario_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/assets/2023-06-06_frontend-templates/scenario_1.jpg -------------------------------------------------------------------------------- /docs/architecture-decisions/assets/2023-06-06_frontend-templates/scenario_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/assets/2023-06-06_frontend-templates/scenario_2.jpg -------------------------------------------------------------------------------- /tests/dispenser/TestLogoutCommand.test_logout_command_success.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/revoke "HTTP/1.1 200 OK" 2 | DEBUG: Token revoked successfully 3 | Logout successful 4 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_success.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ contract_project: 'hello' command in progress... 3 | ✅ contract_project: 'command_a' executed successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/TestRemoveAlias.test_wallet_remove_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | 🚨 This is a destructive action that will remove the `test_alias` alias. Are you sure? (y, n) [n]: y 2 | Alias `test_alias` removed successfully. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_vanity_address.test_vanity_address_no_options.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task vanity-address [OPTIONS] KEYWORD 2 | Try 'algokit task vanity-address -h' for help. 3 | 4 | Error: Missing argument 'KEYWORD'. 5 | -------------------------------------------------------------------------------- /scripts/winget/installer/assets/Square44x44Logo.targetsize-44_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/scripts/winget/installer/assets/Square44x44Logo.targetsize-44_altform-unplated.png -------------------------------------------------------------------------------- /tests/project/run/test_run.test_list_all_commands_in_workspace.approved.txt: -------------------------------------------------------------------------------- 1 | ℹ️ Project: contract_project, Command name: hello, Command(s): command_a 2 | ℹ️ Project: frontend_project, Command name: hello, Command(s): command_b 3 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_filtered.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ contract_project: 'hello' command in progress... 3 | ✅ contract_project: 'command_a' executed successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/test_send_transaction.test_decoding_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: argument of type 'int' is not iterable 2 | Error: Failed to decode transaction! If you are intending to send multiple transactions use `--file` instead. 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_algo_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://testnet.algoexplorer.io/tx/dummy_txid 3 | -------------------------------------------------------------------------------- /docs/architecture-decisions/assets/2023-06-06_frontend-templates/modular_templates.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/algokit-cli/HEAD/docs/architecture-decisions/assets/2023-06-06_frontend-templates/modular_templates.jpg -------------------------------------------------------------------------------- /tests/tasks/test_nfd_lookup.test_nfd_lookup_by_domain_success.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: GET https://api.nf.domains/nfd/dummy.algo?view=brief&poll=false "HTTP/1.1 200 OK" 2 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 | -------------------------------------------------------------------------------- /tests/explore/test_explore.test_explore.localnet.approved.txt: -------------------------------------------------------------------------------- 1 | Opening localnet explorer in your default browser 2 | URL: https://explore.algokit.io/localnet 3 | ---- 4 | launch args: 5 | ---- 6 | call('https://explore.algokit.io/localnet') 7 | -------------------------------------------------------------------------------- /tests/explore/test_explore.test_explore.mainnet.approved.txt: -------------------------------------------------------------------------------- 1 | Opening mainnet explorer in your default browser 2 | URL: https://explore.algokit.io/mainnet 3 | ---- 4 | launch args: 5 | ---- 6 | call('https://explore.algokit.io/mainnet') 7 | -------------------------------------------------------------------------------- /tests/explore/test_explore.test_explore.testnet.approved.txt: -------------------------------------------------------------------------------- 1 | Opening testnet explorer in your default browser 2 | URL: https://explore.algokit.io/testnet 3 | ---- 4 | launch args: 5 | ---- 6 | call('https://explore.algokit.io/testnet') 7 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_on_mainnet.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://explore.algokit.io/mainnet/transaction/dummy_txid 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_on_testnet.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://explore.algokit.io/testnet/transaction/dummy_txid 3 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_with_extra_args.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ contract_project: 'hello' command in progress... 3 | ✅ contract_project: 'echo Hello extra args' executed successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/test_send_transaction.test_send_atomic_txn_group_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Transaction group successfully sent with txid: dummy_tx_id 2 | Check transaction group status at: https://explore.algokit.io/localnet/transaction/dummy_tx_id 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_invalid_receiver_account.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | DEBUG: `invalid-address` does not exist 3 | Error: Alias `invalid-address` alias does not exist. 4 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_start_without_docker_engine_running.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker version' in '{current_working_directory}' 2 | DEBUG: docker: STDOUT 3 | DEBUG: docker: STDERR 4 | Error: docker engine isn't running; please start it. 5 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_standalone.approved.txt: -------------------------------------------------------------------------------- 1 | Running `hello` command in {current_working_directory}... 2 | Command Executed: 'command_a' 3 | Output: STDOUT 4 | STDERR 5 | ✅ contract_project: 'command_a' executed successfully. 6 | -------------------------------------------------------------------------------- /tests/tasks/TestIpfsLogin.test_ipfs_login_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Follow the instructions on https://docs.pinata.cloud/docs/getting-started to create an account and obtain a JWT. 2 | Enter pinata JWT: 3 | Repeat for confirmation: 4 | Login successful 5 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_with_unknown_shell_fails_gracefully.install.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Could not determine current shell 2 | WARNING: Could not determine current shell. Try specifying a supported shell with --shell 3 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_with_unknown_shell_fails_gracefully.uninstall.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Could not determine current shell 2 | WARNING: Could not determine current shell. Try specifying a supported shell with --shell 3 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_uninstall_handles_no_profile.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Removing source script {home}/.config/algokit/.algokit-completions.bash 2 | DEBUG: {home}/.bashrc not found 3 | AlgoKit completions not installed for bash 🤔 4 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_reset.test_localnet_reset_without_docker.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | Error: Container engine not found; please install Docker or Podman and add to path. 3 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_start.test_localnet_start_without_docker.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | Error: Container engine not found; please install Docker or Podman and add to path. 3 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_status.test_localnet_status_without_docker.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | Error: Container engine not found; please install Docker or Podman and add to path. 3 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_without_docker.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | Error: Container engine not found; please install Docker or Podman and add to path. 3 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_all_success.approved.txt: -------------------------------------------------------------------------------- 1 | 1/4: Finished processing contract_project_2 2 | 2/4: Finished processing contract_project_3 3 | 3/4: Finished processing contract_project_4 4 | 4/4: Finished processing contract_project_5 5 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_algo_from_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://explore.algokit.io/localnet/transaction/dummy_txid 3 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_asset_from_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://explore.algokit.io/localnet/transaction/dummy_txid 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestRefundCommand.test_refund_command_success.True.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Using CI access token over keyring credentials 2 | HTTP Request: POST https://snapshottest.dispenser.com/refund "HTTP/1.1 200 OK" 3 | Successfully processed refund transaction 4 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_start_without_docker.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker version' in '{current_working_directory}' 2 | Error: docker not found; please install docker and add to path. 3 | See https://www.docker.com/get-started/ for more information. 4 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_with_extra_args_and_project_filter.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ contract_project: 'hello' command in progress... 3 | ✅ contract_project: 'command_a extra args' executed successfully. 4 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_in_to_assets_from_account_address_failed.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Performing opt-in. This may take a few seconds... 3 | DEBUG: dummy error 4 | Error: Failed to perform opt-in 5 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_assets_from_account_address_failed.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Performing opt-out. This may take a few seconds... 3 | DEBUG: dummy error 4 | Error: Failed to perform opt-out. 5 | -------------------------------------------------------------------------------- /tests/tasks/test_mint.test_mint_token_acfg_token_metadata_mismatch.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | DEBUG: Token name in metadata JSON must match CLI argument providing token name! 3 | Error: Failed to mint the asset! 4 | -------------------------------------------------------------------------------- /tests/tasks/test_nfd_lookup.test_nfd_lookup_by_address_success.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: GET https://api.nf.domains/nfd/lookup?address=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&view=thumbnail&allowUnverified=false "HTTP/1.1 200 OK" 2 | dummy.algo 3 | -------------------------------------------------------------------------------- /tests/tasks/test_send_transaction.test_send_from_transaction_successful.approved.txt: -------------------------------------------------------------------------------- 1 | 2 | Sending transaction 1/1 3 | Transaction successfully sent with txid: dummy_tx_id 4 | Check transaction status at: https://explore.algokit.io/localnet/transaction/dummy_tx_id 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_success.True.True.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Using CI access token over keyring credentials 2 | HTTP Request: GET https://snapshottest.dispenser.com/fund/0/limit "HTTP/1.1 200 OK" 3 | Remaining daily fund limit: 1.0 Algo 4 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_account_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | DEBUG: `test_alias` does not exist 3 | DEBUG: Failed to get alias keys from keyring 4 | Alias 'test_alias' added successfully. 5 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_in_of_assets_from_account_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Performing opt-in. This may take a few seconds... 2 | Successfully performed opt-in. 3 | Check opt-in status for asset 123 at: https://explore.algokit.io/localnet/asset/dummy_txn_id 4 | -------------------------------------------------------------------------------- /tests/tasks/test_transfer.test_transfer_asset_from_address_to_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Successfully performed transfer. See details at https://explore.algokit.io/localnet/transaction/dummy_txid 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestLimitCommand.test_limit_command_success.True.False.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Using CI access token over keyring credentials 2 | HTTP Request: GET https://snapshottest.dispenser.com/fund/0/limit "HTTP/1.1 200 OK" 3 | Remaining daily fund limit: 1000000 μAlgo 4 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_py_package_manager_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit config py-package-manager [OPTIONS] [[poetry|uv]] 2 | 3 | Set the default Python package manager for use by AlgoKit CLI. 4 | 5 | Options: 6 | -h, --help Show this message and exit. 7 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_expired_token_refresh.True.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Access token is expired. Attempting to refresh the token... 2 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 3 | You are already logged in 4 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_npx_missing.approved.txt: -------------------------------------------------------------------------------- 1 | Error: Unable to find npx install so that the `@algorandfoundation/algokit-client-generator` can be run; please install npx via https://www.npmjs.com/package/npx and then try `algokit generate client ...` again. 2 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_standalone_resolution_error.approved.txt: -------------------------------------------------------------------------------- 1 | Running `hello` command in {current_working_directory}... 2 | ERROR: 'hello' failed executing: 'failthiscommand' 3 | Error: Failed to resolve command path, 'failthiscommand' wasn't found 4 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_in_invalid_network.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task opt-in [OPTIONS] ASSET_IDS... 2 | Try 'algokit task opt-in -h' for help. 3 | 4 | Error: Invalid value for '-n' / '--network': 'invalid-network' is not one of 'localnet', 'testnet', 'mainnet'. 5 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_of_assets_from_account_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Performing opt-out. This may take a few seconds... 2 | Successfully performed opt-out. 3 | Check opt-in status for asset 123 at: https://explore.algokit.io/localnet/transaction/dummy_txn_id 4 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_js_package_manager_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit config js-package-manager [OPTIONS] [[npm|pnpm]] 2 | 3 | Set the default JavaScript package manager for use by AlgoKit CLI. 4 | 5 | Options: 6 | -h, --help Show this message and exit. 7 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_from_alias_successful.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://snapshottest.dispenser.com/fund/0 "HTTP/1.1 200 OK" 2 | Successfully funded 1000000 μAlgo. Browse transaction at https://explore.algokit.io/testnet/transaction/dummy_tx_id 3 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_success.False.False.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://snapshottest.dispenser.com/fund/0 "HTTP/1.1 200 OK" 2 | Successfully funded 1000000 μAlgo. Browse transaction at https://explore.algokit.io/testnet/transaction/dummy_tx_id 3 | -------------------------------------------------------------------------------- /tests/tasks/TestIpfsUpload.test_ipfs_upload_http_error.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 500 Internal Server Error" 2 | DEBUG: Pinata error: 500. {"ok":false,"cid":"test"} 3 | Error: PinataInternalServerError('Pinata error: 500') 4 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_invalid_network.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit task opt-out [OPTIONS] [ASSET_IDS]... 2 | Try 'algokit task opt-out -h' for help. 3 | 4 | Error: Invalid value for '-n' / '--network': 'invalid-network' is not one of 'localnet', 'testnet', 'mainnet'. 5 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_template_url_and_template_name.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | Error: Cannot specify both --template and --template-url 4 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet.py: -------------------------------------------------------------------------------- 1 | from approvaltests import verify 2 | 3 | from tests.utils.click_invoker import invoke 4 | 5 | 6 | def test_localnet_help() -> None: 7 | result = invoke("localnet -h") 8 | 9 | assert result.exit_code == 0 10 | verify(result.output) 11 | -------------------------------------------------------------------------------- /tests/compile/test_python.test_compile_py_help.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry run puyapy --version' in '{current_working_directory}' 2 | DEBUG: poetry: puyapy 1.0.0 3 | DEBUG: Running 'poetry run puyapy -h' in '{current_working_directory}' 4 | DEBUG: poetry: Puyapy help 5 | Puyapy help 6 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_expired_token_refresh.False.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Access token is expired. Attempting to refresh the token... 2 | WARNING: Failed to refresh the access token. Please authenticate first before proceeding with this command. 3 | Login successful 4 | -------------------------------------------------------------------------------- /docs/tutorials/smart-contracts.md: -------------------------------------------------------------------------------- 1 | # Smart Contract Tutorial 2 | 3 | _TODO_ 4 | 5 | [mental model image] 6 | 7 | - Lifecycle 8 | - Deploy-time immutability and permanence controls 9 | - Deployment automation 10 | - ... 11 | 12 | ## Next steps 13 | 14 | - Read the architecture decision 15 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit completions [OPTIONS] COMMAND [ARGS]... 2 | 3 | Options: 4 | -h, --help Show this message and exit. 5 | 6 | Commands: 7 | install Install shell completions 8 | uninstall Uninstall shell completions 9 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_install_handles_unsupported_bash_gracefully.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Failed to generate completion source. Shell completion is not supported for Bash versions older than 4.4. 2 | ERROR: Shell completion is not supported for Bash versions older than 4.4. 3 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_standalone_with_extra_args.approved.txt: -------------------------------------------------------------------------------- 1 | Running `hello` command in {current_working_directory}... 2 | Command Executed: 'echo Hello' 3 | Output: STDOUT 4 | STDERR 5 | Extra Args: 'extra args' 6 | ✅ contract_project: 'echo Hello' executed successfully. 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "esbenp.prettier-vscode", 4 | "ms-python.python", 5 | "ms-python.vscode-pylance", 6 | "charliermarsh.ruff", 7 | "tamasfe.even-better-toml", 8 | "editorconfig.editorconfig", 9 | "matangover.mypy" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | def get_combined_verify_output(stdout: str, additional_name: str, additional_output: str) -> str: 2 | """Simple way to get output combined from two sources so that approval testing still works""" 3 | return f"""{stdout}---- 4 | {additional_name}: 5 | ---- 6 | {additional_output}""" 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap.py: -------------------------------------------------------------------------------- 1 | from tests.utils.approvals import verify 2 | from tests.utils.click_invoker import invoke 3 | 4 | 5 | def test_bootstrap_help() -> None: 6 | result = invoke("project bootstrap -h") 7 | 8 | assert result.exit_code == 0 9 | verify(result.output) 10 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_no_app_spec_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'poetry show algokit-client-generator --tree' in '{current_working_directory}' 3 | DEBUG: poetry: STDOUT 4 | DEBUG: poetry: STDERR 5 | Error: No app specs found 6 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_standalone_pass_env.approved.txt: -------------------------------------------------------------------------------- 1 | Running `hello` command in {current_working_directory}... 2 | Command Executed: ' print_env.py' 3 | Output: Hello World from env variable! 4 | 5 | ✅ contract_project: ' print_env.py' executed successfully. 6 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_uninstalls_correctly.zsh.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Removing source script {home}/.config/algokit/.algokit-completions.zsh 2 | DEBUG: Completion source found in {home}/.zshrc 3 | DEBUG: Removing completion source found in {home}/.zshrc 4 | AlgoKit completions uninstalled for zsh 🎉 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_success.False.True.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Converted algos to microAlgos: 1000000 2 | HTTP Request: POST https://snapshottest.dispenser.com/fund/0 "HTTP/1.1 200 OK" 3 | Successfully funded 1.0 Algo. Browse transaction at https://explore.algokit.io/testnet/transaction/dummy_tx_id 4 | -------------------------------------------------------------------------------- /scripts/package_windows.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | pyinstaller --clean --onedir --hidden-import jinja2_ansible_filters --hidden-import multiformats_config --copy-metadata algokit --name algokit --noconfirm src/algokit/__main__.py --add-data ./misc/multiformats_config;multiformats_config/ --add-data ./src/algokit/resources;algokit/resources/ 3 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_uninstalls_correctly.bash.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Removing source script {home}/.config/algokit/.algokit-completions.bash 2 | DEBUG: Completion source found in {home}/.bashrc 3 | DEBUG: Removing completion source found in {home}/.bashrc 4 | AlgoKit completions uninstalled for bash 🎉 5 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_invalid_template_url.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | ERROR: Couldn't parse repo URL https://www.google.com. Try prefixing it with git+ ? 4 | 🛑 Bailing out... 👋 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_success.True.False.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Using CI access token over keyring credentials 2 | HTTP Request: POST https://snapshottest.dispenser.com/fund/0 "HTTP/1.1 200 OK" 3 | Successfully funded 1000000 μAlgo. Browse transaction at https://explore.algokit.io/testnet/transaction/dummy_tx_id 4 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_start.test_localnet_start_with_old_docker_compose_version.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.2.1"} 3 | Error: Minimum compose version supported: v2.5.0, installed = v2.2.1 4 | Please update your compose install 5 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_without_docker_compose.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: STDOUT 3 | DEBUG: docker: STDERR 4 | Error: Container engine compose not found; please install Docker Compose or Podman Compose and add to path. 5 | -------------------------------------------------------------------------------- /tests/tasks/TestListAliases.test_wallet_list_aliases_successful.approved.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "alias": "test_alias_1", 4 | "address": "test_address_1", 5 | "has_private_key": false 6 | }, 7 | { 8 | "alias": "test_alias_2", 9 | "address": "test_address_2", 10 | "has_private_key": true 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_in_to_assets_from_account_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Performing opt-in. This may take a few seconds... 3 | Successfully performed opt-in. 4 | Check opt-in status for asset 123 at: https://explore.algokit.io/localnet/asset/dummy_txn_id 5 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_reset.test_localnet_reset_without_docker_compose.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: STDOUT 3 | DEBUG: docker: STDERR 4 | Error: Container engine compose not found; please install Docker Compose or Podman Compose and add to path. 5 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_start.test_localnet_start_without_docker_compose.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: STDOUT 3 | DEBUG: docker: STDERR 4 | Error: Container engine compose not found; please install Docker Compose or Podman Compose and add to path. 5 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_status.test_localnet_status_without_docker_compose.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: STDOUT 3 | DEBUG: docker: STDERR 4 | Error: Container engine compose not found; please install Docker Compose or Podman Compose and add to path. 5 | -------------------------------------------------------------------------------- /tests/compile/test_python.test_puyapy_is_installed_in_project.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry run puyapy --version' in '{current_working_directory}' 2 | DEBUG: poetry: puyapy 1.0.0 3 | DEBUG: Running 'poetry run puyapy {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 4 | DEBUG: poetry: Done 5 | Done 6 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_js_package_manager_invalid_argument.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit config js-package-manager [OPTIONS] [[npm|pnpm]] 2 | Try 'algokit config js-package-manager -h' for help. 3 | 4 | Error: Invalid value for '[[npm|pnpm]]': 'invalid' is not one of , . 5 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_command_no_git_valid_generator.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | Error: Git not found; please install git and add to path. 3 | See https://github.com/git-guides/install-git for more information. 4 | -------------------------------------------------------------------------------- /tests/localnet/test_sandbox.test_get_config_json.approved.txt: -------------------------------------------------------------------------------- 1 | { 2 | "GossipFanout": 1, 3 | "EndpointAddress": "0.0.0.0:8080", 4 | "DNSBootstrapID": "", 5 | "IncomingConnectionsLimit": 0, 6 | "Archival": true, 7 | "isIndexerActive": false, 8 | "EnableDeveloperAPI": true, 9 | "EnablePrivateNetworkAccessHeader": true 10 | } 11 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_sequential_success.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ contract_project: 'hello' command in progress... 3 | ✅ contract_project: 'command_a' executed successfully. 4 | ⏳ frontend_project: 'hello' command in progress... 5 | ✅ frontend_project: 'command_b' executed successfully. 6 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_of_assets_from_account_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Performing opt-out. This may take a few seconds... 3 | Successfully performed opt-out. 4 | Check opt-in status for asset 123 at: https://explore.algokit.io/localnet/transaction/dummy_txn_id 5 | -------------------------------------------------------------------------------- /tests/config/test_package_managers.test_py_package_manager_invalid_argument.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit config py-package-manager [OPTIONS] [[poetry|uv]] 2 | Try 'algokit config py-package-manager -h' for help. 3 | 4 | Error: Invalid value for '[[poetry|uv]]': 'invalid' is not one of , . 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_success_user.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/device/code "HTTP/1.1 200 OK" 2 | Navigate to: https://example.com/device 3 | Confirm code: user_code 4 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 5 | Login successful 6 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_command_missing_git_valid_generator.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | Error: Git not found; please install git and add to path. 3 | See https://github.com/git-guides/install-git for more information. 4 | -------------------------------------------------------------------------------- /tests/tasks/test_asset.test_opt_out_of_all_assets_from_account_address_successful.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Performing opt-out. This may take a few seconds... 3 | Successfully performed opt-out. 4 | Check opt-in status for asset 123 at: https://explore.algokit.io/localnet/transaction/dummy_txn_id 5 | -------------------------------------------------------------------------------- /tests/tasks/test_mint.test_mint_token_pinata_error.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Uploading image to pinata... 3 | HTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 403 Forbidden" 4 | DEBUG: Pinata error: 403. {"ok":false} 5 | Error: PinataForbiddenError('Pinata error: 403') 6 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_codespace.test_install_gh_not_installed_failed_install.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'gh --version' in '{current_working_directory}' 2 | Installing gh... 3 | ERROR: Failed to automatically install gh cli: Failed to install gh 4 | ERROR: Please install `gh cli` manually by following official documentation at https://cli.github.com/ 5 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_respects_skip_option.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "pip" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | commit-message: 8 | prefix: "chore(deps)" 9 | groups: 10 | all: 11 | patterns: 12 | - "*" 13 | update-types: 14 | - "minor" 15 | - "patch" 16 | -------------------------------------------------------------------------------- /tests/tasks/test_sign_transaction.test_transaction_decoding_errors.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | DEBUG: Invalid base64-encoded string: number of data characters (5) cannot be 1 more than a multiple of 4 3 | Error: Failed to decode transaction! If you are intending to sign multiple transactions use `--file` instead. 4 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_windows_command_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Deploying from project directory: {current_working_directory} 2 | DEBUG: Loading deploy command from project config 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | Error: Failed to parse command 'command_a': Command not found: command_a 5 | -------------------------------------------------------------------------------- /tests/dispenser/TestFundCommand.test_fund_command_success.True.True.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Converted algos to microAlgos: 1000000 2 | DEBUG: Using CI access token over keyring credentials 3 | HTTP Request: POST https://snapshottest.dispenser.com/fund/0 "HTTP/1.1 200 OK" 4 | Successfully funded 1.0 Algo. Browse transaction at https://explore.algokit.io/testnet/transaction/dummy_tx_id 5 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_output_path_is_dir.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'poetry show algokit-client-generator --tree' in '{current_working_directory}' 3 | DEBUG: poetry: STDOUT 4 | DEBUG: poetry: STDERR 5 | ERROR: Could not output to hello_world_app.py as it already exists and is a directory 6 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_help_works_without_path_resolution.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit project run [OPTIONS] COMMAND [ARGS]... 2 | 3 | Define custom commands and manage their execution in you projects. 4 | 5 | Options: 6 | -h, --help Show this message and exit. 7 | 8 | Commands: 9 | hello Run all "hello" commands in the workspace project. 10 | -------------------------------------------------------------------------------- /tests/test_root.py: -------------------------------------------------------------------------------- 1 | from approvaltests import verify 2 | 3 | from tests.utils.click_invoker import invoke 4 | 5 | 6 | def test_help() -> None: 7 | result = invoke("-h") 8 | 9 | assert result.exit_code == 0 10 | verify(result.output) 11 | 12 | 13 | def test_version() -> None: 14 | result = invoke("--version") 15 | 16 | assert result.exit_code == 0 17 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_install_is_idempotent.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {home}/.config/algokit/.algokit-completions.bash 2 | {home}/.bashrc already contains completion source 🤔 3 | Restart shell or run `. ~/.bashrc` to enable completions 4 | ---- 5 | profile: 6 | ---- 7 | # ORIGINAL END OF FILE 8 | . ~/.config/algokit/.algokit-completions.bash 9 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_resolution_error.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ frontend_project: 'hello' command in progress... 3 | ERROR: 'hello' failed executing: 'failthiscommand' 4 | ERROR: ❌ frontend_project: Failed to resolve command path, 'failthiscommand' wasn't found 5 | Error: failed to execute 'hello' command in 'frontend_project' 6 | -------------------------------------------------------------------------------- /tests/tasks/TestAddAlias.test_wallet_add_alias_mnemonic_differs.approved.txt: -------------------------------------------------------------------------------- 1 | Enter the mnemonic phrase (25 words separated by whitespace): 2 | Warning: Address from the mnemonic doesn't match the provided address. It won't work unless the account has been rekeyed. 3 | DEBUG: `test_alias` does not exist 4 | DEBUG: Failed to get alias keys from keyring 5 | Alias 'test_alias' added successfully. 6 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_respects_disable_config.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Version prompt disabled 2 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 3 | DEBUG: poetry: Poetry (version 99.99.99) 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_without_docker_engine_running.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | Error: Container engine isn't running; please start it. 7 | -------------------------------------------------------------------------------- /entitlements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-jit 6 | 7 | com.apple.security.cs.allow-unsigned-executable-memory 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_reset.test_localnet_reset_without_docker_engine_running.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | Error: Container engine isn't running; please start it. 7 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_start.test_localnet_start_without_docker_engine_running.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | Error: Container engine isn't running; please start it. 7 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_status.test_localnet_status_without_docker_engine_running.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | Error: Container engine isn't running; please start it. 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_env_dotenv_exists.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | .env already exists; skipping bootstrap of .env 6 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_install_handles_no_profile.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {home}/.config/algokit/.algokit-completions.bash 2 | DEBUG: Appending completion source to {home}/.bashrc 3 | AlgoKit completions installed for bash 🎉 4 | Restart shell or run `. ~/.bashrc` to enable completions 5 | ---- 6 | profile: 7 | ---- 8 | . ~/.config/algokit/.algokit-completions.bash 9 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_command_multiple_names_no_specs_success.approved.txt: -------------------------------------------------------------------------------- 1 | WARNING: No application.json | *.arc32.json | *.arc56.json files found in /projects/project3. Skipping... 2 | 1/2: Finished processing contract_project_3 3 | WARNING: No application.json | *.arc32.json | *.arc56.json files found in /projects/project5. Skipping... 4 | 2/2: Finished processing contract_project_5 5 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | .env already exists; skipping bootstrap of .env 6 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_analyze_error_no_pipx.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: No such file or directory: tealer 3 | Tealer not found; attempting to install it... 4 | Error: Unable to find pipx install so that `tealer` static analyzer can be installed; please install pipx via https://pypa.github.io/pipx/ and then try `algokit task analyze ...` again. 5 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_standalone_execution_error.approved.txt: -------------------------------------------------------------------------------- 1 | Running `hello` command in {current_working_directory}... 2 | ERROR: 3 | ····················· project run 'hello' command output: ······················ 4 | Traceback (most recent call last): 5 | File "", line 1, in 6 | Exception 7 | 8 | Error: 'hello' failed executing ' -c raise Exception()' with exit code = 1 9 | -------------------------------------------------------------------------------- /tests/compile/test_python.test_puyapy_is_installed_globally.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry run puyapy --version' in '{current_working_directory}' 2 | DEBUG: poetry: Puyapy not found 3 | DEBUG: Running 'puyapy --version' in '{current_working_directory}' 4 | DEBUG: puyapy: puyapy 1.0.0 5 | DEBUG: Running 'puyapy {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 6 | DEBUG: puyapy: Done 7 | Done 8 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_all.test_bootstrap_all_algokit_min_version.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | Error: This template requires AlgoKit version 999.99.99 or higher, but you have AlgoKit version {current_version}. Please update AlgoKit. 5 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_env_no_files.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | No .env or .env.{network_name}.template files found; nothing to do here, skipping bootstrap. 6 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.localnet.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | .env.localnet already exists; skipping bootstrap of .env.localnet 6 | -------------------------------------------------------------------------------- /tests/compile/test_typescript.test_compile_py_help.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 2 | DEBUG: npm: STDOUT 3 | DEBUG: npm: STDERR 4 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 5 | DEBUG: npm: STDOUT 6 | DEBUG: npm: STDERR 7 | DEBUG: Running 'npx -y @algorandfoundation/puya-ts -h' in '{current_working_directory}' 8 | DEBUG: npx: PuyaTs help 9 | PuyaTs help 10 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_install_handles_config_outside_home.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {config}/algokit/.algokit-completions.bash 2 | DEBUG: Appending completion source to {home}/.bashrc 3 | AlgoKit completions installed for bash 🎉 4 | Restart shell or run `. ~/.bashrc` to enable completions 5 | ---- 6 | profile: 7 | ---- 8 | # ORIGINAL END OF FILE 9 | . {config}/algokit/.algokit-completions.bash 10 | -------------------------------------------------------------------------------- /tests/project/link/test_link.test_link_runtime_error.approved.txt: -------------------------------------------------------------------------------- 1 | ERROR: Couldn't parse contract name from /private/var/folders/t6/57q65mk543l7xw6_bdgx1bmc0000gn/T/pytest-of-aorumbayev/pytest-353/cwd5/algokit_project/projects/project3/dist/application.json 2 | Error: Couldn't parse contract name from /private/var/folders/t6/57q65mk543l7xw6_bdgx1bmc0000gn/T/pytest-of-aorumbayev/pytest-353/cwd5/algokit_project/projects/project3/dist/application.json 3 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_installs_correctly_with_detected_shell.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {home}/.config/algokit/.algokit-completions.bash 2 | DEBUG: Appending completion source to {home}/.bashrc 3 | AlgoKit completions installed for bash 🎉 4 | Restart shell or run `. ~/.bashrc` to enable completions 5 | ---- 6 | profile: 7 | ---- 8 | # ORIGINAL END OF FILE 9 | . ~/.config/algokit/.algokit-completions.bash 10 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_installs_correctly_with_specified_shell.zsh.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {home}/.config/algokit/.algokit-completions.zsh 2 | DEBUG: Appending completion source to {home}/.zshrc 3 | AlgoKit completions installed for zsh 🎉 4 | Restart shell or run `. ~/.zshrc` to enable completions 5 | ---- 6 | profile: 7 | ---- 8 | # ORIGINAL END OF FILE 9 | . ~/.config/algokit/.algokit-completions.zsh 10 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_installs_correctly_with_specified_shell.bash.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Writing source script {home}/.config/algokit/.algokit-completions.bash 2 | DEBUG: Appending completion source to {home}/.bashrc 3 | AlgoKit completions installed for bash 🎉 4 | Restart shell or run `. ~/.bashrc` to enable completions 5 | ---- 6 | profile: 7 | ---- 8 | # ORIGINAL END OF FILE 9 | . ~/.config/algokit/.algokit-completions.bash 10 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_pipx_missing.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'poetry show algokit-client-generator --tree' in '{current_working_directory}' 3 | DEBUG: poetry: STDOUT 4 | DEBUG: poetry: STDERR 5 | Error: Unable to find pipx install so that the `algokit-client-generator` can be run; please install pipx via https://pypa.github.io/pipx/ and then try `algokit generate client ...` again. 6 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_compose_outdated.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | Error: LocalNet definition is out of date; please run `algokit localnet reset` first! 7 | -------------------------------------------------------------------------------- /tests/init/test_init.test_invalid_name.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | Usage: algokit init [OPTIONS] COMMAND [ARGS]... 4 | Try 'algokit init -h' for help. 5 | 6 | Error: Invalid value for '--name' / '-n': Invalid directory name. Ensure it's a mix of letters, numbers, dashes, periods, and/or underscores, and not already used. 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_pnpm.test_bootstrap_pnpm_without_package_file.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of pnpm 6 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_package_file[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_package_file[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_package_file[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/utils/which_mock.py: -------------------------------------------------------------------------------- 1 | class WhichMock: 2 | def __init__(self) -> None: 3 | self.paths: dict[str, str] = {} 4 | 5 | def add(self, cmd: str, path: str | None = None) -> str: 6 | path = path or f"/bin/{cmd}" 7 | self.paths[cmd] = path 8 | return path 9 | 10 | def remove(self, cmd: str) -> None: 11 | self.paths.pop(cmd, None) 12 | 13 | def which(self, cmd: str) -> str | None: 14 | return self.paths.get(cmd) 15 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_success_ci.file.None.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/device/code "HTTP/1.1 200 OK" 2 | Navigate to: https://example.com/device 3 | Confirm code: user_code 4 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 5 | WARNING: Your CI access token has been saved to `algokit_ci_token.txt`. 6 | Please ensure you keep this file safe or remove after copying the token! 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm_and_package_file[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | {current_working_directory}/package.json doesn't exist; nothing to do here, skipping bootstrap of npm 7 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_success_ci.file.custom_file.txt.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/device/code "HTTP/1.1 200 OK" 2 | Navigate to: https://example.com/device 3 | Confirm code: user_code 4 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 5 | WARNING: Your CI access token has been saved to `custom_file.txt`. 6 | Please ensure you keep this file safe or remove after copying the token! 7 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_help.install.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit completions install [OPTIONS] 2 | 3 | Install shell completions, this command will attempt to update the interactive 4 | profile script for the current shell to support algokit completions. To 5 | specify a specific shell use --shell. 6 | 7 | Options: 8 | --shell [bash|zsh] Specify shell to install algokit completions for. 9 | -h, --help Show this message and exit. 10 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_help.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 4 | 5 | Generate code for an Algorand project. 6 | 7 | Options: 8 | -h, --help Show this message and exit. 9 | 10 | Commands: 11 | client Create a typed ApplicationClient from an ARC-32/56 application.json 12 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_analyze_abort_disclaimer.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: tealer: 0.1.2 3 | Warning: This task uses `tealer` to suggest improvements for your TEAL programs, but remember to always test your smart contracts code, follow modern software engineering practices and use the guidelines for smart contract development. This should not be used as a substitute for an actual audit. Do you understand? [Y/n]: n 4 | Aborted! 5 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_no_community_template.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | WARNING: Community templates have not been reviewed, and can execute arbitrary code. 4 | Please inspect the template repository, and pay particular attention to the values of _tasks, _migrations and _jinja_extensions in copier.yml 5 | ? Continue anyway? (y/N) 6 | 🛑 Bailing out... 👋 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_happy_path[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm install' in '{current_working_directory}' 8 | npm: STDOUT 9 | npm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_happy_path[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm install' in '{current_working_directory}' 8 | npm: STDOUT 9 | npm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing pnpm dependencies 7 | DEBUG: Running 'pnpm install' in '{current_working_directory}' 8 | pnpm: STDOUT 9 | pnpm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing pnpm dependencies 7 | DEBUG: Running 'pnpm install' in '{current_working_directory}' 8 | pnpm: STDOUT 9 | pnpm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm ci' in '{current_working_directory}' 8 | npm: STDOUT 9 | npm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm ci' in '{current_working_directory}' 8 | npm: STDOUT 9 | npm: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_happy_path[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm.cmd install' in '{current_working_directory}' 8 | npm.cmd: STDOUT 9 | npm.cmd: STDERR 10 | -------------------------------------------------------------------------------- /tests/doctor/test_doctor.test_doctor_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit doctor [OPTIONS] 2 | 3 | Diagnose potential environment issues that may affect AlgoKit. 4 | 5 | Will search the system for AlgoKit dependencies and show their versions, as 6 | well as identifying any potential issues. 7 | 8 | Options: 9 | -c, --copy-to-clipboard Copy the contents of the doctor message (in Markdown 10 | format) in your clipboard. 11 | -h, --help Show this message and exit. 12 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_run.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | You are about to run a generator. Please make sure it's from a trusted source (for example, official AlgoKit Templates). Do you want to proceed? [y/N]: y 3 | DEBUG: Running generator in {current_working_directory}/smart_contract 4 | Generator {current_working_directory}/smart_contract executed successfully 5 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_blessed_template_url_get_community_warning.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | WARNING: Community templates have not been reviewed, and can execute arbitrary code. 4 | Please inspect the template repository, and pay particular attention to the values of _tasks, _migrations and _jinja_extensions in copier.yml 5 | ? Continue anyway? (y/N) 6 | 🛑 Bailing out... 👋 7 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_with_lock_file[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm.cmd ci' in '{current_working_directory}' 8 | npm.cmd: STDOUT 9 | npm.cmd: STDERR 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_pnpm.test_bootstrap_pnpm_happy_path[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing pnpm dependencies 7 | DEBUG: Running 'pnpm.cmd install' in '{current_working_directory}' 8 | pnpm.cmd: STDOUT 9 | pnpm.cmd: STDERR 10 | -------------------------------------------------------------------------------- /tests/completions/test_completions.test_completions_subcommands_help.uninstall.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit completions uninstall [OPTIONS] 2 | 3 | Uninstall shell completions, this command will attempt to update the 4 | interactive profile script for the current shell to remove any algokit 5 | completions that have been added. To specify a specific shell use --shell. 6 | 7 | Options: 8 | --shell [bash|zsh] Specify shell to install algokit completions for. 9 | -h, --help Show this message and exit. 10 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 3 | 4 | Generate code for an Algorand project. 5 | 6 | Options: 7 | -h, --help Show this message and exit. 8 | 9 | Commands: 10 | client Create a typed ApplicationClient from an ARC-32/56... 11 | smart-contract Generates a new smart contract 12 | -------------------------------------------------------------------------------- /tests/compile/test_typescript.test_puyats_is_installed_in_project.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 2 | DEBUG: npm: └── @algorandfoundation/puya-ts@1.0.0 3 | DEBUG: Running 'npx @algorandfoundation/puya-ts --version' in '{current_working_directory}' 4 | DEBUG: npx: puya-ts 1.0.0 5 | DEBUG: Running 'npx @algorandfoundation/puya-ts {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 6 | DEBUG: npx: Compilation successful 7 | Compilation successful 8 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit goal [OPTIONS] [GOAL_ARGS]... 2 | 3 | Run the Algorand goal CLI against the AlgoKit LocalNet. 4 | 5 | Look at https://dev.algorand.co/algokit/algokit-cli/goal for more information. 6 | 7 | Options: 8 | --console Open a Bash console so you can execute multiple goal commands 9 | and/or interact with a filesystem. 10 | --interactive Force running the goal command in interactive mode. 11 | -h, --help Show this message and exit. 12 | -------------------------------------------------------------------------------- /tests/project/list/test_list.test_run_command_from_workspace_success.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | ℹ️ project1 3 | ℹ️ project2 4 | ℹ️ project3 5 | ℹ️ project4 6 | ℹ️ project5 7 | ℹ️ project6 8 | ℹ️ project7 9 | ℹ️ project8 10 | ℹ️ project9 11 | ℹ️ project10 12 | ℹ️ project11 13 | ℹ️ project12 14 | ℹ️ project13 15 | ℹ️ project14 16 | ℹ️ project15 17 | ℹ️ project16 18 | ℹ️ project17 19 | ℹ️ project18 20 | ℹ️ project19 21 | ℹ️ project20 22 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_cancelled_timeout.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/device/code "HTTP/1.1 200 OK" 2 | Navigate to: https://example.com/device 3 | Confirm code: user_code 4 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 5 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 6 | WARNING: Authentication cancelled. Timeout reached after 5 minutes of inactivity. 7 | Error: Error obtaining auth token 8 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_no_toml.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 4 | 5 | Generate code for an Algorand project. 6 | 7 | Options: 8 | -h, --help Show this message and exit. 9 | 10 | Commands: 11 | client Create a typed ApplicationClient from an ARC-32/56 application.json 12 | -------------------------------------------------------------------------------- /tests/compile/test_typescript.test_puyats_is_not_installed_anywhere.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 2 | DEBUG: npm: STDOUT 3 | DEBUG: npm: STDERR 4 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 5 | DEBUG: npm: STDOUT 6 | DEBUG: npm: STDERR 7 | DEBUG: Running 'npx -y @algorandfoundation/puya-ts {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 8 | DEBUG: npx: Compilation successful 9 | Compilation successful 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | Error: Cannot run `npm ci` because `package-lock.json` is missing. Please run `npm install` instead and commit it to your source control. 8 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | Error: Cannot run `npm ci` because `package-lock.json` is missing. Please run `npm install` instead and commit it to your source control. 8 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_ci_mode_without_lock_file[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | Error: Cannot run `npm ci` because `package-lock.json` is missing. Please run `npm install` instead and commit it to your source control. 8 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_pnpm.test_bootstrap_pnpm_ci_mode_without_lock_file.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | Installing pnpm dependencies 6 | Error: Cannot run in CI mode because `pnpm-lock.yaml` is missing. Please run `pnpm install` to generate the lockfile and commit it to your source control. 7 | -------------------------------------------------------------------------------- /tests/project/run/test_run.test_run_command_from_workspace_execution_error.approved.txt: -------------------------------------------------------------------------------- 1 | Running commands sequentially. 2 | ⏳ frontend_project: 'hello' command in progress... 3 | ERROR: 4 | ····················· project run 'hello' command output: ······················ 5 | Traceback (most recent call last): 6 | File "", line 1, in 7 | Exception 8 | 9 | ERROR: ❌ frontend_project: 'hello' failed executing ' -c raise Exception()' with exit code = 1 10 | Error: failed to execute 'hello' command in 'frontend_project' 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F41C Bug report" 3 | about: Report a reproducible bug. 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | --- 8 | 9 | ### Subject of the issue 10 | 11 | 12 | 13 | ### Your environment 14 | 15 | 19 | 20 | ### Steps to reproduce 21 | 22 | 1. 23 | 2. 24 | 25 | ### Expected behaviour 26 | 27 | ### Actual behaviour 28 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_uses_cache.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: 1234.56.78 found in cache {app_state}/last-version-check 2 | You are using AlgoKit version {current_version}, however version 1234.56.78 is available. Please update using the tool used to install AlgoKit. 3 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 4 | DEBUG: poetry: Poetry (version 99.99.99) 5 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 6 | DEBUG: No .algokit.toml file found in the project directory. 7 | -------------------------------------------------------------------------------- /tests/compile/test_typescript.test_specificed_puyats_version_is_not_installed.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 2 | DEBUG: npm: └── @algorandfoundation/puya-ts@1.0.0 3 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 4 | DEBUG: npm: └── @algorandfoundation/puya-ts@1.0.0 5 | DEBUG: Running 'npx -y @algorandfoundation/puya-ts@1.1.0 {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 6 | DEBUG: npx: Compilation successful 7 | Compilation successful 8 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_no_description.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 3 | 4 | Generate code for an Algorand project. 5 | 6 | Options: 7 | -h, --help Show this message and exit. 8 | 9 | Commands: 10 | client Create a typed ApplicationClient from an ARC-32/56... 11 | smart-contract Generator command description is not supplied. 12 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_config_empty_array.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Error: No generic deploy command specified in '.algokit.toml' file. 8 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_shutil_command_not_found.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Error: Failed to resolve command path, 'command_a' wasn't found 8 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_invalid_path.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | WARNING: Path 'invalidpath' for generator 'smart_contract' does not exist, skipping 3 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 4 | 5 | Generate code for an Algorand project. 6 | 7 | Options: 8 | -h, --help Show this message and exit. 9 | 10 | Commands: 11 | client Create a typed ApplicationClient from an ARC-32/56 application.json 12 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm install' in '{current_working_directory}' 8 | Error: Failed to run `npm install` for {current_working_directory}/package.json. Is npm installed and available on PATH? 9 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm install' in '{current_working_directory}' 8 | Error: Failed to run `npm install` for {current_working_directory}/package.json. Is npm installed and available on PATH? 9 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_valid_generator_run_with_python_path.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | You are about to run a generator. Please make sure it's from a trusted source (for example, official AlgoKit Templates). Do you want to proceed? [y/N]: y 3 | DEBUG: Running generator in {current_working_directory}/dummy_template 4 | No git tags found in template; using HEAD as ref 5 | Generator {current_working_directory}/dummy_template executed successfully 6 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_npm.test_bootstrap_npm_without_npm[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | Installing npm dependencies 7 | DEBUG: Running 'npm.cmd install' in '{current_working_directory}' 8 | Error: Failed to run `npm.cmd install` for {current_working_directory}/package.json. Is npm installed and available on PATH? 9 | -------------------------------------------------------------------------------- /tests/init/example/test_example.test_example_command_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit init example [OPTIONS] [EXAMPLE_ID] 2 | 3 | Initialize a new project from an example template. 4 | 5 | Allows you to quickly create a new project by copying one of the official 6 | AlgoKit example templates. If no example ID is provided, launches an 7 | interactive selector to choose from available examples. The example will be 8 | copied to a new directory in your current location. 9 | 10 | Options: 11 | -l, --list List all available examples 12 | -h, --help Show this message and exit. 13 | -------------------------------------------------------------------------------- /tests/dispenser/TestLoginCommand.test_login_command_success_ci.stdout.None.approved.txt: -------------------------------------------------------------------------------- 1 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/device/code "HTTP/1.1 200 OK" 2 | Navigate to: https://example.com/device 3 | Confirm code: user_code 4 | HTTP Request: POST https://dispenser-prod.eu.auth0.com/oauth/token "HTTP/1.1 200 OK" 5 | 6 | ALGOKIT_DISPENSER_ACCESS_TOKEN (valid for 30 days): 7 | 8 | access_token 9 | 10 | WARNING: Your CI access token has been printed to stdout. 11 | Please ensure you keep this token safe! 12 | If needed, clear your terminal history after copying the token! 13 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_analyze_skipping_tmpl_vars.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: tealer: 0.1.2 3 | Warning: This task uses `tealer` to suggest improvements for your TEAL programs, but remember to always test your smart contracts code, follow modern software engineering practices and use the guidelines for smart contract development. This should not be used as a substitute for an actual audit. Do you understand? [Y/n]: y 4 | Warning: Skipping {current_working_directory}/dummy.teal due to template variables. Substitute them before scanning. 5 | -------------------------------------------------------------------------------- /tests/compile/test_python.test_puyapy_is_not_installed_anywhere.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry run puyapy --version' in '{current_working_directory}' 2 | DEBUG: poetry: Puyapy not found 3 | DEBUG: Running 'puyapy --version' in '{current_working_directory}' 4 | DEBUG: puyapy: Puyapy not found 5 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 6 | DEBUG: pipx: 1.0.0 7 | DEBUG: Running 'pipx run --spec=puyapy puyapy {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 8 | DEBUG: pipx: STDOUT 9 | DEBUG: pipx: STDERR 10 | STDOUT 11 | STDERR 12 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_without_file_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | ERROR: approval.teal does not exist. 9 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_codespace.test_install_gh_unix.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'gh --version' in '{current_working_directory}' 2 | Installing gh... 3 | HTTP Request: GET https://webi.sh/gh "HTTP/1.1 200 OK" 4 | DEBUG: Running 'bash --version' in '{current_working_directory}' 5 | DEBUG: bash: GNU bash, version 3.2.57(1)-release 6 | DEBUG: Running 'bash {cwd}/webi_dummy_installer.sh' in '{current_working_directory}' 7 | DEBUG: bash: installed gh! 8 | gh installed successfully! 9 | WARNING: Restart your terminal to activate the `gh` CLI and re-run `algokit localnet codespace` to get started... 10 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.template.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: {current_working_directory}/.env doesn't exist yet 6 | DEBUG: {current_working_directory}/.env.template exists 7 | Copying {current_working_directory}/.env.template to {current_working_directory}/.env and prompting for empty values 8 | -------------------------------------------------------------------------------- /tests/compile/test_python.test_specificed_puyapy_version_is_not_installed.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry run puyapy --version' in '{current_working_directory}' 2 | DEBUG: poetry: puyapy 1.0.0 3 | DEBUG: Running 'puyapy --version' in '{current_working_directory}' 4 | DEBUG: puyapy: Puyapy not found 5 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 6 | DEBUG: pipx: 1.0.0 7 | DEBUG: Running 'pipx run --spec=puyapy==1.1.0 puyapy {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 8 | DEBUG: pipx: STDOUT 9 | DEBUG: pipx: STDERR 10 | STDOUT 11 | STDERR 12 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_uv.test_bootstrap_uv_user_declines_install.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Running 'uv --version' in '{current_working_directory}' 7 | UV not found; attempting to install it... 8 | Error: Unable to install uv; please install uv manually via https://github.com/astral-sh/uv and try `algokit project bootstrap uv` again. 9 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_all.test_bootstrap_all_empty.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 6 | DEBUG: No .algokit.toml file found in the project directory. 7 | DEBUG: Checking {current_working_directory} for bootstrapping needs 8 | Finished bootstrapping {current_working_directory} 9 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_no_existing_definition.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | DEBUG: Running 'docker compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 7 | DEBUG: docker: [{"Name": "algokit_sandbox", "Status": "running", "ConfigFiles": "{app_config}/sandbox/docker-compose.yml"}] 8 | DEBUG: The sandbox directory does not exist yet; creating it 9 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_analyze_diff_flag_missing_old_report.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: tealer: 0.1.2 3 | Warning: This task uses `tealer` to suggest improvements for your TEAL programs, but remember to always test your smart contracts code, follow modern software engineering practices and use the guidelines for smart contract development. This should not be used as a substitute for an actual audit. Do you understand? [Y/n]: y 4 | Unable to provide the diff since {current_working_directory}/dummy.teal report is missing. Please run the task without the --diff flag first. 5 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_uv.test_bootstrap_uv_happy_path.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Running 'uv --version' in '{current_working_directory}' 7 | DEBUG: uv: STDOUT 8 | DEBUG: uv: STDERR 9 | Installing Python dependencies and setting up Python virtual environment via UV 10 | DEBUG: Running 'uv sync' in '{current_working_directory}' 11 | uv: STDOUT 12 | uv: STDERR 13 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_analyze_error_in_tealer.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: tealer: 0.1.2 3 | Warning: This task uses `tealer` to suggest improvements for your TEAL programs, but remember to always test your smart contracts code, follow modern software engineering practices and use the guidelines for smart contract development. This should not be used as a substitute for an actual audit. Do you understand? [Y/n]: y 4 | An error occurred while analyzing {current_working_directory}/dummy.teal. Please make sure the files supplied are valid TEAL code before trying again. 5 | Aborted! 6 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_network_prefixed_envs..env.localnet.template.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: {current_working_directory}/.env.localnet doesn't exist yet 6 | DEBUG: {current_working_directory}/.env.localnet.template exists 7 | Copying {current_working_directory}/.env.localnet.template to {current_working_directory}/.env.localnet and prompting for empty values 8 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_env_name_missing.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Using deploy command: /bin/command_a 8 | Loading deployment environment variables... 9 | Error: No such file: {current_working_directory}/.env.customnet 10 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_codespace.test_install_gh_windows.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'gh --version' in '{current_working_directory}' 2 | Installing gh... 3 | HTTP Request: GET https://webi.ms/gh "HTTP/1.1 200 OK" 4 | DEBUG: Running 'powershell -command (Get-Variable PSVersionTable -ValueOnly).PSVersion' in '{current_working_directory}' 5 | DEBUG: powershell: PowerShell 7.2.1 6 | DEBUG: Running 'powershell -File {dummy_script_path}' in '{current_working_directory}' 7 | DEBUG: powershell: installed gh! 8 | gh installed successfully! 9 | WARNING: Restart your terminal to activate the `gh` CLI and re-run `algokit localnet codespace` to get started... 10 | -------------------------------------------------------------------------------- /tests/compile/test_typescript.test_puyats_is_installed_globally.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 2 | DEBUG: npm: STDOUT 3 | DEBUG: npm: STDERR 4 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 5 | DEBUG: npm: └── @algorandfoundation/puya-ts@1.0.0 6 | DEBUG: Running 'npx @algorandfoundation/puya-ts --version' in '{current_working_directory}' 7 | DEBUG: npx: puya-ts 1.0.0 8 | DEBUG: Running 'npx @algorandfoundation/puya-ts {current_working_directory}/tests/compile/dummy_contract.py' in '{current_working_directory}' 9 | DEBUG: npx: Compilation successful 10 | Compilation successful 11 | -------------------------------------------------------------------------------- /tests/generate/test_generate_custom_generate_commands.test_generate_custom_generate_commands_invalid_generic_generator.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: Invalid generator configuration key "description" of value "invalid", skipping 3 | DEBUG: Invalid generator configuration key "path" of value "invalid", skipping 4 | Usage: algokit generate [OPTIONS] COMMAND [ARGS]... 5 | 6 | Generate code for an Algorand project. 7 | 8 | Options: 9 | -h, --help Show this message and exit. 10 | 11 | Commands: 12 | client Create a typed ApplicationClient from an ARC-32/56 application.json 13 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_existing_filename_same_as_folder_name.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | WARNING: Community templates have not been reviewed, and can execute arbitrary code. 4 | Please inspect the template repository, and pay particular attention to the values of _tasks, _migrations and _jinja_extensions in copier.yml 5 | DEBUG: template source = {test_parent_directory}/copier-helloworld.bundle 6 | ERROR: A file with the same name already exists in the current directory. Please use a different name. 7 | 🛑 Bailing out... 👋 8 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_env_dotenv_missing_template_exists.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: {current_working_directory}/.env doesn't exist yet 6 | DEBUG: {current_working_directory}/.env.template exists 7 | Copying {current_working_directory}/.env.template to {current_working_directory}/.env and prompting for empty values 8 | ---- 9 | .env: 10 | ---- 11 | env_template_contents 12 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_ci_flag_interactivity_mode_via_cli.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | Error: Error: missing DEPLOYER_MNEMONIC environment variable 11 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_ci_flag_interactivity_mode_via_env.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | Error: Error: missing DEPLOYER_MNEMONIC environment variable 11 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_poetry.test_bootstrap_poetry_with_poetry.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 7 | DEBUG: poetry: STDOUT 8 | DEBUG: poetry: STDERR 9 | Installing Python dependencies and setting up Python virtual environment via Poetry 10 | DEBUG: Running 'poetry install' in '{current_working_directory}' 11 | poetry: STDOUT 12 | poetry: STDERR 13 | -------------------------------------------------------------------------------- /tests/project/list/test_list.test_list_command_no_args.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: Attempting to load project config from /.algokit.toml 6 | DEBUG: No .algokit.toml file found in the project directory. 7 | DEBUG: Attempting to load project config from /.algokit.toml 8 | DEBUG: No .algokit.toml file found in the project directory. 9 | WARNING: No AlgoKit workspace found. Check [project.type] definition at .algokit.toml 10 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_not_found_and_no_config.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Deploying from project directory: {current_working_directory} 7 | DEBUG: Loading deploy command from project config 8 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 9 | DEBUG: No .algokit.toml file found in the project directory. 10 | Error: Failed to resolve command path, 'gm' wasn't found 11 | -------------------------------------------------------------------------------- /tests/project/list/test_list.test_list_command_from_empty_folder.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: Attempting to load project config from /.algokit.toml 6 | DEBUG: No .algokit.toml file found in the project directory. 7 | DEBUG: Attempting to load project config from /.algokit.toml 8 | DEBUG: No .algokit.toml file found in the project directory. 9 | WARNING: No AlgoKit workspace found. Check [project.type] definition at .algokit.toml 10 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_no_args.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal' in '{current_working_directory}' 9 | STDOUT 10 | STDERR 11 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_python_generator_is_installed_in_project.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'poetry show algokit-client-generator --tree' in '{current_working_directory}' 3 | DEBUG: poetry: algokit-client-generator 1.1.2 Algorand typed client Generator 4 | DEBUG: poetry: └── algokit-utils 2.2.1 5 | Generating Python client code for application specified in {current_working_directory}/application.json and writing to client.py 6 | DEBUG: Running 'poetry run algokitgen-py -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 7 | DEBUG: poetry: STDOUT 8 | DEBUG: poetry: STDERR 9 | STDOUT 10 | STDERR 11 | -------------------------------------------------------------------------------- /tests/init/test_init.test_init_do_not_use_existing_folder.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 2 | DEBUG: No .algokit.toml file found in the project directory. 3 | WARNING: Community templates have not been reviewed, and can execute arbitrary code. 4 | Please inspect the template repository, and pay particular attention to the values of _tasks, _migrations and _jinja_extensions in copier.yml 5 | DEBUG: template source = {test_parent_directory}/copier-helloworld.bundle 6 | WARNING: Re-using existing directory, this is not recommended because if project generation fails, then we can't automatically cleanup. 7 | ? Continue anyway? (y/N) 8 | 🛑 Bailing out... 👋 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F514 Feature Request" 3 | about: Suggestions for how we can improve the algorand platform. 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | --- 8 | 9 | ## Problem 10 | 11 | 12 | 13 | ## Solution 14 | 15 | 16 | 17 | ### Proposal 18 | 19 | 20 | 21 | ### Pros and Cons 22 | 23 | 24 | 25 | ## Dependencies 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal account list' in '{current_working_directory}' 9 | STDOUT 10 | STDERR 11 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_all.test_bootstrap_all_algokit_min_version_ignore_error.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | WARNING: This template requires AlgoKit version 999.99.99 or higher, but you have AlgoKit version {current_version}. Please update AlgoKit. 5 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 6 | DEBUG: Checking {current_working_directory} for bootstrapping needs 7 | DEBUG: Skipping {current_working_directory}/.algokit.toml 8 | Finished bootstrapping {current_working_directory} 9 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_uv.test_bootstrap_uv_poetry_project_migration_declined.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Running 'uv --version' in '{current_working_directory}' 7 | DEBUG: uv: STDOUT 8 | DEBUG: uv: STDERR 9 | Error: This project is configured to use Poetry. Please use `algokit project bootstrap poetry`, set poetry as default package manager via `algokit config py-package-manager`, or modify your pyproject.toml to be compatible with UV. 10 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_queries_github_when_no_cache.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: {app_state}/last-version-check inaccessible 2 | HTTP Request: GET https://api.github.com/repos/algorandfoundation/algokit-cli/releases/latest "HTTP/1.1 200 OK" 3 | DEBUG: Latest version tag: v{new_version} 4 | You are using AlgoKit version {current_version}, however version {new_version} is available. Please update using the tool used to install AlgoKit. 5 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 6 | DEBUG: poetry: Poetry (version 99.99.99) 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | DEBUG: No .algokit.toml file found in the project directory. 9 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_on_named_localnet.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal account list' in '{current_working_directory}' 9 | STDOUT 10 | STDERR 11 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_failure.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | DEBUG: Running 'docker compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 7 | DEBUG: docker: [{"Name": "algokit_sandbox", "Status": "running", "ConfigFiles": "{app_config}/sandbox/docker-compose.yml"}] 8 | Stopping AlgoKit LocalNet now... 9 | DEBUG: Running 'docker compose stop' in '{app_config}/sandbox' 10 | docker: STDOUT 11 | docker: STDERR 12 | Error: Failed to stop LocalNet 13 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_config_invalid_syntax.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Error parsing .algokit.toml file: Invalid statement (at line 1, column 1) 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | DEBUG: Error parsing .algokit.toml file: Invalid statement (at line 1, column 1) 9 | Error: No generic deploy command specified in '.algokit.toml' file. 10 | -------------------------------------------------------------------------------- /tests/version_check/test_version_check.test_version_check_queries_github_when_cache_out_of_date.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: 1234.56.78 found in cache {app_state}/last-version-check 2 | HTTP Request: GET https://api.github.com/repos/algorandfoundation/algokit-cli/releases/latest "HTTP/1.1 200 OK" 3 | DEBUG: Latest version tag: v{new_version} 4 | You are using AlgoKit version {current_version}, however version {new_version} is available. Please update using the tool used to install AlgoKit. 5 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 6 | DEBUG: poetry: Poetry (version 99.99.99) 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | DEBUG: No .algokit.toml file found in the project directory. 9 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_in_project[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: /Users/user/my-project 4 | DEBUG: npm: ├── test@1.2.3 5 | DEBUG: npm: └── @algorandfoundation/algokit-client-generator@1.1.2 6 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 7 | DEBUG: Running 'npx @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 8 | DEBUG: npx: STDOUT 9 | DEBUG: npx: STDERR 10 | STDOUT 11 | STDERR 12 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_in_project[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: /Users/user/my-project 4 | DEBUG: npm: ├── test@1.2.3 5 | DEBUG: npm: └── @algorandfoundation/algokit-client-generator@1.1.2 6 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 7 | DEBUG: Running 'npx @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 8 | DEBUG: npx: STDOUT 9 | DEBUG: npx: STDERR 10 | STDOUT 11 | STDERR 12 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_console.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | Opening Bash console on the algod node; execute `exit` to return to original console 9 | DEBUG: Running '{container_engine} exec -it -w /root algokit_sandbox_algod bash' in '{current_working_directory}' 10 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_console_failed.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | Opening Bash console on the algod node; execute `exit` to return to original console 9 | DEBUG: Running '{container_engine} exec -it -w /root algokit_sandbox_algod bash' in '{current_working_directory}' 10 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_with_input_file.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal clerk group /root/goal_mount/transactions.txt' in '{current_working_directory}' 9 | File compiled 10 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_with_output_file.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal account dump -o /root/goal_mount/balance_record.json' in '{current_working_directory}' 9 | File compiled 10 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | DEBUG: Running 'docker compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 7 | DEBUG: docker: [{"Name": "algokit_sandbox", "Status": "running", "ConfigFiles": "{app_config}/sandbox/docker-compose.yml"}] 8 | Stopping AlgoKit LocalNet now... 9 | DEBUG: Running 'docker compose stop' in '{app_config}/sandbox' 10 | docker: STDOUT 11 | docker: STDERR 12 | LocalNet Stopped; execute `algokit localnet start` to start it again. 13 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_secrets_prompting_via_stdin.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | Deploying smart contracts from AlgoKit compliant repository 🚀 11 | DEBUG: Running '/bin/command_a' in '{current_working_directory}' 12 | /bin/command_a: picked base deploy command 13 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_in_project[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: /Users/user/my-project 4 | DEBUG: npm.cmd: ├── test@1.2.3 5 | DEBUG: npm.cmd: └── @algorandfoundation/algokit-client-generator@1.1.2 6 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 7 | DEBUG: Running 'npx.cmd @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 8 | DEBUG: npx.cmd: STDOUT 9 | DEBUG: npx.cmd: STDERR 10 | STDOUT 11 | STDERR 12 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_complex_args.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal account export -a RKTAZY2ZLKUJBHDVVA3KKHEDK7PRVGIGOZAUUIZBNK2OEP6KQGEXKKUYUY' in '{current_working_directory}' 9 | STDOUT 10 | STDERR 11 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_deploy_only_base_deploy_config.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | Deploying smart contracts from AlgoKit compliant repository 🚀 11 | DEBUG: Running '/bin/command_a' in '{current_working_directory}' 12 | /bin/command_a: picked base deploy command 13 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet_stop.test_localnet_stop_with_name.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'docker compose version --format json' in '{current_working_directory}' 2 | DEBUG: docker: {"version": "v2.5.0"} 3 | DEBUG: Running 'docker version' in '{current_working_directory}' 4 | DEBUG: docker: STDOUT 5 | DEBUG: docker: STDERR 6 | DEBUG: Running 'docker compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 7 | DEBUG: docker: [{"Name": "algokit_sandbox_test", "Status": "running", "ConfigFiles": "{app_config}/sandbox_test/docker-compose.yml"}] 8 | Stopping AlgoKit LocalNet now... 9 | DEBUG: Running 'docker compose stop' in '{app_config}/sandbox_test' 10 | docker: STDOUT 11 | docker: STDERR 12 | LocalNet Stopped; execute `algokit localnet start` to start it again. 13 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_with_input_output_files.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal clerk compile /root/goal_mount/approval.teal -o /root/goal_mount/approval.compiled' in '{current_working_directory}' 9 | File compiled 10 | -------------------------------------------------------------------------------- /scripts/package_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CMD="pyinstaller --clean --onedir --hidden-import jinja2_ansible_filters --hidden-import multiformats_config --copy-metadata algokit --name algokit --noconfirm src/algokit/__main__.py --add-data './misc/multiformats_config/multibase-table.json:multiformats_config/' --add-data './misc/multiformats_config/multicodec-table.json:multiformats_config/' --add-data './src/algokit/resources:algokit/resources/'" 4 | 5 | if [ ! -z "$APPLE_BUNDLE_ID" ]; then 6 | CMD="$CMD --osx-bundle-identifier \"$APPLE_BUNDLE_ID\"" 7 | fi 8 | 9 | if [ ! -z "$APPLE_CERT_ID" ]; then 10 | CMD="$CMD --codesign-identity \"$APPLE_CERT_ID\"" 11 | fi 12 | 13 | if [ -f "./entitlements.xml" ]; then 14 | CMD="$CMD --osx-entitlements-file './entitlements.xml'" 15 | fi 16 | 17 | eval $CMD 18 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_with_extra_args.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a --arg1 value1 --arg2 value2 9 | Loading deployment environment variables... 10 | Deploying smart contracts from AlgoKit compliant repository 🚀 11 | DEBUG: Running '/bin/command_a --arg1 value1 --arg2 value2' in '{current_working_directory}' 12 | /bin/command_a: command executed 13 | -------------------------------------------------------------------------------- /docs/sphinx/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # For the full list of built-in configuration values, see the documentation: 4 | # https://www.sphinx-doc.org/en/master/usage/configuration.html 5 | 6 | # -- Project information ----------------------------------------------------- 7 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information 8 | 9 | project = "AlgoKit" 10 | copyright = "2023, Algorand Foundation" 11 | author = "Algorand Foundation" 12 | 13 | # -- General configuration --------------------------------------------------- 14 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration 15 | 16 | extensions = ["sphinx_click"] 17 | 18 | exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] 19 | smartquotes = False 20 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_with_input_output_files_with_dot_convention_name.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal clerk compile /root/goal_mount/contract.approval.teal -o /root/goal_mount/approval.compiled' in '{current_working_directory}' 9 | File compiled 10 | -------------------------------------------------------------------------------- /tests/localnet/test_localnet.test_localnet_help.approved.txt: -------------------------------------------------------------------------------- 1 | Usage: algokit localnet [OPTIONS] COMMAND [ARGS]... 2 | 3 | Options: 4 | -h, --help Show this message and exit. 5 | 6 | Commands: 7 | codespace Manage the AlgoKit LocalNet in GitHub Codespaces. 8 | config Configure the container engine for AlgoKit LocalNet. 9 | console Run the Algorand goal CLI against the AlgoKit LocalNet via a Bash 10 | console so you can execute multiple goal commands and/or interact 11 | with a filesystem. 12 | explore Explore the AlgoKit LocalNet using lora. 13 | logs See the output of the Docker containers. 14 | reset Reset the AlgoKit LocalNet. 15 | start Start the AlgoKit LocalNet. 16 | status Check the status of the AlgoKit LocalNet. 17 | stop Stop the AlgoKit LocalNet. 18 | -------------------------------------------------------------------------------- /tests/goal/test_goal.test_goal_simple_args_with_multiple_input_output_files.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running '{container_engine} version' in '{current_working_directory}' 2 | DEBUG: {container_engine}: STDOUT 3 | DEBUG: {container_engine}: STDERR 4 | DEBUG: Running '{container_engine} compose ls --format json --filter name=algokit_sandbox*' in '{current_working_directory}' 5 | DEBUG: {container_engine}: [] 6 | DEBUG: Running '{container_engine} compose ps algod --format json' in '{app_config}/sandbox' 7 | DEBUG: {container_engine}: [{"Name": "algokit_sandbox_algod", "State": "running"}] 8 | DEBUG: Running '{container_engine} exec --interactive --workdir /root algokit_sandbox_algod goal clerk compile /root/goal_mount/approval1.teal /root/goal_mount/approval2.teal -o /root/goal_mount/approval.compiled' in '{current_working_directory}' 9 | File compiled 10 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_splitting_from_config.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Using deploy command: -c print(' test_command_invocation ') 8 | Loading deployment environment variables... 9 | Deploying smart contracts from AlgoKit compliant repository 🚀 10 | DEBUG: Running ' -c print(' test_command_invocation ')' in '{current_working_directory}' 11 | : test_command_invocation 12 | -------------------------------------------------------------------------------- /.github/workflows/pr.yaml: -------------------------------------------------------------------------------- 1 | name: Codebase validation 2 | 3 | on: 4 | pull_request: 5 | paths-ignore: 6 | - "README.md" 7 | 8 | schedule: 9 | - cron: "0 8 * * 1" # Each monday 8 AM UTC 10 | 11 | concurrency: 12 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} 13 | cancel-in-progress: true 14 | 15 | jobs: 16 | pr-check: 17 | name: Check Python 18 | uses: ./.github/workflows/check-python.yaml 19 | 20 | pr-build: 21 | name: Build & Test Python 22 | needs: pr-check 23 | uses: ./.github/workflows/build-python.yaml 24 | 25 | pr-binaries-build: 26 | name: Build & Test Binaries 27 | needs: pr-check 28 | uses: ./.github/workflows/build-binaries.yaml 29 | with: 30 | production_release: "false" 31 | python_version: "3.12" 32 | secrets: inherit 33 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_config_name_no_base.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | DEBUG: Using default environment config for algod and indexer for network localnet 11 | Deploying smart contracts from AlgoKit compliant repository 🚀 12 | DEBUG: Running '/bin/command_a' in '{current_working_directory}' 13 | /bin/command_a: picked localnet 14 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_config_name_overrides.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_c 9 | Loading deployment environment variables... 10 | DEBUG: Using default environment config for algod and indexer for network testnet 11 | Deploying smart contracts from AlgoKit compliant repository 🚀 12 | DEBUG: Running '/bin/command_c' in '{current_working_directory}' 13 | /bin/command_c: picked testnet 14 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_without_splitting_from_config.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Using deploy command: -c print(' test_command_invocation ') 8 | Loading deployment environment variables... 9 | Deploying smart contracts from AlgoKit compliant repository 🚀 10 | DEBUG: Running ' -c print(' test_command_invocation ')' in '{current_working_directory}' 11 | : test_command_invocation 12 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_algokit_env_and_name_correct_set.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_b 9 | Loading deployment environment variables... 10 | DEBUG: Using default environment config for algod and indexer for network localnet 11 | Deploying smart contracts from AlgoKit compliant repository 🚀 12 | DEBUG: Running '/bin/command_b' in '{current_working_directory}' 13 | /bin/command_b: picked localnet 14 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_invocation_and_command_splitting.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: Deploying from project directory: {current_working_directory} 5 | DEBUG: Loading deploy command from project config 6 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 7 | Using deploy command: -c print(' test_command_invocation ') 8 | Loading deployment environment variables... 9 | Deploying smart contracts from AlgoKit compliant repository 🚀 10 | DEBUG: Running ' -c print(' test_command_invocation ')' in '{current_working_directory}' 11 | : test_command_invocation 12 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_dispenser_alias.deployer.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | DEBUG: Loaded deployer alias mnemonic as DEPLOYER_MNEMONIC environment variable 11 | Deploying smart contracts from AlgoKit compliant repository 🚀 12 | DEBUG: Running '/bin/command_a' in '{current_working_directory}' 13 | /bin/command_a: STDOUT 14 | /bin/command_a: STDERR 15 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_dispenser_alias.dispenser.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: Deploying from project directory: {current_working_directory} 6 | DEBUG: Loading deploy command from project config 7 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 8 | Using deploy command: /bin/command_a 9 | Loading deployment environment variables... 10 | DEBUG: Loaded dispenser alias mnemonic as DISPENSER_MNEMONIC environment variable 11 | Deploying smart contracts from AlgoKit compliant repository 🚀 12 | DEBUG: Running '/bin/command_a' in '{current_working_directory}' 13 | /bin/command_a: STDOUT 14 | /bin/command_a: STDERR 15 | -------------------------------------------------------------------------------- /tests/tasks/test_analyze.test_exclude_vulnerabilities.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'tealer --version' in '{current_working_directory}' 2 | DEBUG: tealer: 0.1.2 3 | Warning: This task uses `tealer` to suggest improvements for your TEAL programs, but remember to always test your smart contracts code, follow modern software engineering practices and use the guidelines for smart contract development. This should not be used as a substitute for an actual audit. Do you understand? [Y/n]: y 4 | DEBUG: Running 'tealer --json {current_working_directory}/dummy_report.json detect --contracts {current_working_directory}/dummy.teal --exclude is-deletable, missing-fee-check, rekey-to' in '{current_working_directory}' 5 | DEBUG: tealer: Reading contract from file: "{current_working_directory}/dummy.teal" 6 | DEBUG: tealer: json output is written to {current_working_directory}/dummy_report.json 7 | -------------------------------------------------------------------------------- /.github/workflows/clear-caches.yaml: -------------------------------------------------------------------------------- 1 | name: Clear Repository Caches 2 | 3 | on: 4 | schedule: 5 | # Run every 5 days at 2 AM UTC 6 | - cron: "0 2 */5 * *" 7 | workflow_dispatch: # Allow manual trigger 8 | 9 | permissions: 10 | actions: write 11 | 12 | jobs: 13 | clear-caches: 14 | name: Clear Repository Caches 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout repository 18 | uses: actions/checkout@v4 19 | 20 | - name: Clear all repository caches 21 | env: 22 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 23 | run: | 24 | echo "🧹 Starting cache cleanup process..." 25 | if gh cache delete --all --succeed-on-no-caches; then 26 | echo "🎉 Cache cleanup completed!" 27 | else 28 | echo "❌ Failed to clear caches" 29 | exit 1 30 | fi 31 | -------------------------------------------------------------------------------- /src/algokit/cli/config.py: -------------------------------------------------------------------------------- 1 | import click 2 | 3 | from algokit.core.config_commands.container_engine import container_engine_configuration_command 4 | from algokit.core.config_commands.js_package_manager import js_package_manager_configuration_command 5 | from algokit.core.config_commands.py_package_manager import py_package_manager_configuration_command 6 | from algokit.core.config_commands.version_prompt import version_prompt_configuration_command 7 | 8 | 9 | @click.group("config", short_help="Configure AlgoKit settings.") 10 | def config_group() -> None: 11 | """Configure settings used by AlgoKit""" 12 | 13 | 14 | config_group.add_command(version_prompt_configuration_command) 15 | config_group.add_command(container_engine_configuration_command) 16 | config_group.add_command(js_package_manager_configuration_command) 17 | config_group.add_command(py_package_manager_configuration_command) 18 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_env.test_bootstrap_env_dotenv_with_values.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: Poetry (version 99.99.99) 3 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 4 | DEBUG: No .algokit.toml file found in the project directory. 5 | DEBUG: {current_working_directory}/.env doesn't exist yet 6 | DEBUG: {current_working_directory}/.env.template exists 7 | Copying {current_working_directory}/.env.template to {current_working_directory}/.env and prompting for empty values 8 | ---- 9 | .env: 10 | ---- 11 | 12 | TOKEN_1=123 13 | # comment for token 2 - you should enter a valid value 14 | # another comment 15 | TOKEN_2_WITH_MULTI_LINES_COMMENT=test 16 | TOKEN_3=test value with spaces 17 | 18 | TOKEN_4_WITH_NO_EQUALS_SIGN 19 | # another comment 20 | TOKEN_5_SPECIAL_CHAR=* 21 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_not_executable.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Deploying from project directory: {current_working_directory} 7 | DEBUG: Loading deploy command from project config 8 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 9 | DEBUG: No .algokit.toml file found in the project directory. 10 | Using deploy command: /bin/gm 11 | Loading deployment environment variables... 12 | Deploying smart contracts from AlgoKit compliant repository 🚀 13 | DEBUG: Running '/bin/gm' in '{current_working_directory}' 14 | Error: Failed to execute deploy command '/bin/gm', permission denied 15 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_command_bad_exit_code.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Deploying from project directory: {current_working_directory} 7 | DEBUG: Loading deploy command from project config 8 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 9 | DEBUG: No .algokit.toml file found in the project directory. 10 | Using deploy command: /bin/gm 11 | Loading deployment environment variables... 12 | Deploying smart contracts from AlgoKit compliant repository 🚀 13 | DEBUG: Running '/bin/gm' in '{current_working_directory}' 14 | /bin/gm: it is not morning 15 | Error: Deployment command exited with error code = -1 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--o client.ts-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--o client.ts-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Python: Module", 9 | "type": "debugpy", 10 | "cwd": "${workspaceFolder}", 11 | "request": "launch", 12 | "module": "debug", 13 | "justMyCode": false, 14 | "console": "integratedTerminal" 15 | }, 16 | { 17 | "name": "Python: Debug Pytest", 18 | "type": "debugpy", 19 | "request": "launch", 20 | "program": "${file}", 21 | "purpose": ["debug-test"], 22 | "console": "integratedTerminal", 23 | "justMyCode": false, 24 | "env": { 25 | "PYTHONPATH": "${workspaceFolder}/src", 26 | "PYTEST_ADDOPTS": "--no-cov" 27 | } 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_globally[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: /Users/user/.nvm/versions/node/v20.11.0/lib 8 | DEBUG: npm: ├── test@1.2.3 9 | DEBUG: npm: └── @algorandfoundation/algokit-client-generator@1.1.2 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_globally[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: /Users/user/.nvm/versions/node/v20.11.0/lib 8 | DEBUG: npm: ├── test@1.2.3 9 | DEBUG: npm: └── @algorandfoundation/algokit-client-generator@1.1.2 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_poetry.test_bootstrap_poetry_without_poetry_failed_install.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 3 | DEBUG: No .algokit.toml file found in the project directory. 4 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 5 | Poetry not found; attempting to install it... 6 | ? We couldn't find `poetry`; can we install it for you via pipx so we can install Python dependencies? (Y/n) 7 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 8 | DEBUG: pipx: STDOUT 9 | DEBUG: pipx: STDERR 10 | DEBUG: Running 'pipx install poetry' in '{current_working_directory}' 11 | DEBUG: pipx: STDOUT 12 | DEBUG: pipx: STDERR 13 | Error: Unable to install poetry via pipx; please install poetry manually via https://python-poetry.org/docs/ and try `algokit project bootstrap poetry` again. 14 | -------------------------------------------------------------------------------- /tests/project/deploy/test_deploy.test_deploy_custom_project_dir.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: poetry: STDOUT 3 | DEBUG: poetry: STDERR 4 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 5 | DEBUG: No .algokit.toml file found in the project directory. 6 | DEBUG: Deploying from project directory: {current_working_directory}/custom_folder 7 | DEBUG: Loading deploy command from project config 8 | DEBUG: Attempting to load project config from {current_working_directory}/custom_folder/.algokit.toml 9 | Using deploy command: /bin/command_a 10 | Loading deployment environment variables... 11 | DEBUG: Using default environment config for algod and indexer for network testnet 12 | Deploying smart contracts from AlgoKit compliant repository 🚀 13 | DEBUG: Running '/bin/command_a' in '{current_working_directory}/custom_folder' 14 | /bin/command_a: picked base deploy command 15 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--o client.py --language typescript-client.py].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--o client.py --language typescript-client.py].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /src/algokit/cli/common/constants.py: -------------------------------------------------------------------------------- 1 | # Common constants, variables and enums used by the CLI. 2 | 3 | from enum import Enum 4 | 5 | 6 | # >= Py 3.11, there is a built-in StrEnum, however, 7 | # we still support older versions of Python. 8 | # Hence, a custom implementation for now. 9 | class StringEnum(str, Enum): 10 | def __str__(self) -> str: 11 | return str(self.value) 12 | 13 | @classmethod 14 | def to_list(cls) -> list[str]: 15 | return [member.value for member in cls] 16 | 17 | 18 | class ExplorerEntityType(StringEnum): 19 | """ 20 | Used to indicate type of entity when used with `get_explorer_url` function. 21 | """ 22 | 23 | TRANSACTION = "transaction" 24 | ASSET = "asset" 25 | ADDRESS = "account" 26 | 27 | 28 | class AlgorandNetwork(StringEnum): 29 | """ 30 | Used to indicate the Algorand network. 31 | """ 32 | 33 | LOCALNET = "localnet" 34 | TESTNET = "testnet" 35 | MAINNET = "mainnet" 36 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_poetry.test_bootstrap_poetry_without_poetry.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 3 | DEBUG: No .algokit.toml file found in the project directory. 4 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 5 | Poetry not found; attempting to install it... 6 | ? We couldn't find `poetry`; can we install it for you via pipx so we can install Python dependencies? (Y/n) 7 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 8 | DEBUG: pipx: STDOUT 9 | DEBUG: pipx: STDERR 10 | DEBUG: Running 'pipx install poetry' in '{current_working_directory}' 11 | DEBUG: pipx: STDOUT 12 | DEBUG: pipx: STDERR 13 | Installing Python dependencies and setting up Python virtual environment via Poetry 14 | DEBUG: Running 'poetry install' in '{current_working_directory}' 15 | poetry: STDOUT 16 | poetry: STDERR 17 | -------------------------------------------------------------------------------- /docs/features/explore.md: -------------------------------------------------------------------------------- 1 | # AlgoKit explore 2 | 3 | AlgoKit provides a quick shortcut to [explore](../cli/index.md#explore) various Algorand networks using [lora](https://lora.algokit.io/) including [AlgoKit LocalNet](./localnet.md)! 4 | 5 | ## LocalNet 6 | 7 | The following three commands are all equivalent and will open lora pointing to the local [AlgoKit LocalNet](./localnet.md) instance: 8 | 9 | - `algokit explore` 10 | - `algokit explore localnet` 11 | - `algokit localnet explore` 12 | 13 | ## Testnet 14 | 15 | `algokit explore testnet` will open lora pointing to TestNet via the [node](https://algonode.io/api/). 16 | 17 | ## Mainnet 18 | 19 | `algokit explore mainnet` will open lora pointing to MainNet via the [node](https://algonode.io/api/). 20 | 21 | To learn more about the `algokit explore` command, please refer to [explore](../cli/index.md#explore) in the AlgoKit CLI reference documentation. 22 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux---output {contract_name}.ts-HelloWorldApp.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldApp.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o HelloWorldApp.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--l typescript-HelloWorldAppClient.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldAppClient.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o HelloWorldAppClient.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@3.0.0 generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--o client.ts -pn --mode minimal-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts -pn --mode minimal' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS---output {contract_name}.ts-HelloWorldApp.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldApp.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o HelloWorldApp.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--l typescript-HelloWorldAppClient.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldAppClient.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o HelloWorldAppClient.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@3.0.0 generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--o client.ts -pn --mode minimal-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts -pn --mode minimal' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[windows--o client.ts-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: STDOUT 4 | DEBUG: npm.cmd: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm.cmd --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm.cmd: STDOUT 8 | DEBUG: npm.cmd: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx.cmd --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx.cmd: STDOUT 13 | DEBUG: npx.cmd: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_npx_failed[linux].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | Client generation failed for {current_working_directory}/application.json. 17 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_npx_failed[macOS].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | Client generation failed for {current_working_directory}/application.json. 17 | -------------------------------------------------------------------------------- /tests/utils/app_dir_mock.py: -------------------------------------------------------------------------------- 1 | import dataclasses 2 | from pathlib import Path 3 | 4 | from pytest_mock import MockerFixture 5 | 6 | 7 | @dataclasses.dataclass 8 | class AppDirs: 9 | app_config_dir: Path 10 | app_state_dir: Path 11 | 12 | 13 | def tmp_app_dir(mocker: MockerFixture, tmp_path: Path) -> AppDirs: 14 | app_config_dir = tmp_path / "config" 15 | app_config_dir.mkdir() 16 | mocker.patch("algokit.core.sandbox.get_app_config_dir").return_value = app_config_dir 17 | mocker.patch("algokit.core.config_commands.js_package_manager.get_app_config_dir").return_value = app_config_dir 18 | mocker.patch("algokit.core.config_commands.py_package_manager.get_app_config_dir").return_value = app_config_dir 19 | 20 | app_state_dir = tmp_path / "state" 21 | app_state_dir.mkdir() 22 | mocker.patch("algokit.core.sandbox.get_app_state_dir").return_value = app_state_dir 23 | 24 | return AppDirs(app_config_dir=app_config_dir, app_state_dir=app_state_dir) 25 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[linux--l typescript -v 2.6.0-HelloWorldAppClient.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldAppClient.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@2.6.0 generate -a {current_working_directory}/application.json -o HelloWorldAppClient.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[macOS--l typescript -v 2.6.0-HelloWorldAppClient.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm: STDOUT 4 | DEBUG: npm: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm: STDOUT 8 | DEBUG: npm: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldAppClient.ts 11 | DEBUG: Running 'npx --yes @algorandfoundation/algokit-client-generator@2.6.0 generate -a {current_working_directory}/application.json -o HelloWorldAppClient.ts' in '{current_working_directory}' 12 | DEBUG: npx: STDOUT 13 | DEBUG: npx: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_typescript_generator_is_installed_globally[windows].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: STDOUT 4 | DEBUG: npm.cmd: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm.cmd --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm.cmd: /Users/user/.nvm/versions/node/v20.11.0/lib 8 | DEBUG: npm.cmd: ├── test@1.2.3 9 | DEBUG: npm.cmd: └── @algorandfoundation/algokit-client-generator@1.1.2 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx.cmd @algorandfoundation/algokit-client-generator generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx.cmd: STDOUT 13 | DEBUG: npx.cmd: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[windows--o client.py --language typescript-client.py].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: STDOUT 4 | DEBUG: npm.cmd: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm.cmd --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm.cmd: STDOUT 8 | DEBUG: npm.cmd: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.py 11 | DEBUG: Running 'npx.cmd --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 12 | DEBUG: npx.cmd: STDOUT 13 | DEBUG: npx.cmd: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_python_generator_is_installed_globally.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'poetry show algokit-client-generator --tree' in '{current_working_directory}' 3 | DEBUG: poetry: STDOUT 4 | DEBUG: poetry: STDERR 5 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 6 | DEBUG: pipx: STDOUT 7 | DEBUG: pipx: STDERR 8 | DEBUG: Searching for globally installed client generator 9 | DEBUG: Running 'pipx list --short' in '{current_working_directory}' 10 | DEBUG: pipx: algokit 1.13.0 11 | DEBUG: pipx: poetry 1.6.1 12 | DEBUG: pipx: algokit-client-generator 1.1.2 13 | Generating Python client code for application specified in {current_working_directory}/application.json and writing to client.py 14 | DEBUG: Running 'algokitgen-py -a {current_working_directory}/application.json -o client.py' in '{current_working_directory}' 15 | DEBUG: algokitgen-py: STDOUT 16 | DEBUG: algokitgen-py: STDERR 17 | STDOUT 18 | STDERR 19 | -------------------------------------------------------------------------------- /tests/project/bootstrap/test_bootstrap_poetry.test_bootstrap_poetry_without_poetry_or_pipx_path_or_pipx_module.approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 2 | DEBUG: Attempting to load project config from {current_working_directory}/.algokit.toml 3 | DEBUG: No .algokit.toml file found in the project directory. 4 | DEBUG: Running 'poetry --version' in '{current_working_directory}' 5 | Poetry not found; attempting to install it... 6 | ? We couldn't find `poetry`; can we install it for you via pipx so we can install Python dependencies? (Y/n) 7 | DEBUG: Running 'pipx --version' in '{current_working_directory}' 8 | DEBUG: Running '{python_base_executable} -m pipx --version' in '{current_working_directory}' 9 | DEBUG: {python_base_executable}: STDOUT 10 | DEBUG: {python_base_executable}: STDERR 11 | Error: Unable to find pipx install so that poetry can be installed; please install pipx via https://pypa.github.io/pipx/ and then try `algokit project bootstrap poetry` again. 12 | -------------------------------------------------------------------------------- /scripts/winget/update-package.ps1: -------------------------------------------------------------------------------- 1 | Param( 2 | [Parameter(Mandatory = $true)] 3 | [String] 4 | $releaseVersion 5 | ) 6 | 7 | Function ThrowOnNonZeroExit { 8 | Param( [String]$Message ) 9 | If ($LastExitCode -ne 0) { 10 | Throw $Message 11 | } 12 | } 13 | 14 | $wingetPackage = 'AlgorandFoundation.AlgoKit' 15 | $release = Invoke-RestMethod -uri "https://api.github.com/repos/algorandfoundation/algokit-cli/releases/tags/v$releaseVersion" 16 | $installerUrl = $release | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match '-windows_x64-winget\.msix$' | Select -ExpandProperty browser_download_url 17 | 18 | $wingetDir = New-Item -Force -ItemType Directory -Path .\build\winget 19 | $wingetExecutable = "$wingetDir\wingetcreate.exe" 20 | Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile $wingetExecutable 21 | & $wingetExecutable update $wingetPackage -s -v $releaseVersion -u "$installerUrl" -t "$env:WINGET_GITHUB_TOKEN" 22 | ThrowOnNonZeroExit "Failed to update winget package" 23 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[windows---output {contract_name}.ts-HelloWorldApp.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: STDOUT 4 | DEBUG: npm.cmd: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm.cmd --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm.cmd: STDOUT 8 | DEBUG: npm.cmd: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to HelloWorldApp.ts 11 | DEBUG: Running 'npx.cmd --yes @algorandfoundation/algokit-client-generator@latest generate -a {current_working_directory}/application.json -o HelloWorldApp.ts' in '{current_working_directory}' 12 | DEBUG: npx.cmd: STDOUT 13 | DEBUG: npx.cmd: STDERR 14 | STDOUT 15 | STDERR 16 | -------------------------------------------------------------------------------- /tests/generate/test_generate_client.test_generate_client_typescript[windows--o client.ts --language typescript --version 3.0.0-client.ts].approved.txt: -------------------------------------------------------------------------------- 1 | DEBUG: Searching for project installed client generator 2 | DEBUG: Running 'npm.cmd ls --no-unicode' in '{current_working_directory}' 3 | DEBUG: npm.cmd: STDOUT 4 | DEBUG: npm.cmd: STDERR 5 | DEBUG: Searching for globally installed client generator 6 | DEBUG: Running 'npm.cmd --global ls --no-unicode' in '{current_working_directory}' 7 | DEBUG: npm.cmd: STDOUT 8 | DEBUG: npm.cmd: STDERR 9 | DEBUG: No matching installed client generator found, run client generator via npx 10 | Generating TypeScript client code for application specified in {current_working_directory}/application.json and writing to client.ts 11 | DEBUG: Running 'npx.cmd --yes @algorandfoundation/algokit-client-generator@3.0.0 generate -a {current_working_directory}/application.json -o client.ts' in '{current_working_directory}' 12 | DEBUG: npx.cmd: STDOUT 13 | DEBUG: npx.cmd: STDERR 14 | STDOUT 15 | STDERR 16 | --------------------------------------------------------------------------------