This is page 5 of 93. Use http://codebase.md/goplausible/algorand-mcp?lines=true&page={x} to view the full context. # Directory Structure ``` ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── llms-install.md ├── llms.txt ├── package.json ├── packages │ ├── client │ │ ├── .env.example │ │ ├── package.json │ │ ├── README.md │ │ ├── src │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ └── LocalWallet.ts │ │ └── tsconfig.json │ └── server │ ├── .env.example │ ├── API specs │ │ ├── algod_api.json │ │ ├── indexer_api.json │ │ ├── mcp.json │ │ ├── nfd_api.json │ │ ├── ultrade_api.json │ │ ├── vestige_api.json │ │ └── vestige_free_api.json │ ├── Dockerfile │ ├── jest.config.js │ ├── package.json │ ├── README.md │ ├── smithery.yaml │ ├── src │ │ ├── algorand-client.ts │ │ ├── env.ts │ │ ├── index.ts │ │ ├── resources │ │ │ ├── index.ts │ │ │ ├── knowledge │ │ │ │ ├── ARCs.txt │ │ │ │ ├── developers-algokit-architecture-decisions.txt │ │ │ │ ├── developers-algokit-cli.txt │ │ │ │ ├── developers-algokit-utils-python.txt │ │ │ │ ├── developers-algokit-utils-typescript.txt │ │ │ │ ├── developers-clis.txt │ │ │ │ ├── developers-details.txt │ │ │ │ ├── developers-liquid-auth.txt │ │ │ │ ├── developers-nodes.txt │ │ │ │ ├── developers-puya.txt │ │ │ │ ├── developers-python.txt │ │ │ │ ├── developers-sdks-js.txt │ │ │ │ ├── developers-sdks-python.txt │ │ │ │ ├── developers-tealscript.txt │ │ │ │ ├── developers.txt │ │ │ │ ├── index.ts │ │ │ │ ├── taxonomy │ │ │ │ │ ├── algokit-cli:README.md │ │ │ │ │ ├── algokit:cli:algokit.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md │ │ │ │ │ ├── algokit:cli:articles:output_stability.md │ │ │ │ │ ├── algokit:cli:cli:index.md │ │ │ │ │ ├── algokit:cli:features:compile.md │ │ │ │ │ ├── algokit:cli:features:completions.md │ │ │ │ │ ├── algokit:cli:features:config.md │ │ │ │ │ ├── algokit:cli:features:dispenser.md │ │ │ │ │ ├── algokit:cli:features:doctor.md │ │ │ │ │ ├── algokit:cli:features:explore.md │ │ │ │ │ ├── algokit:cli:features:generate.md │ │ │ │ │ ├── algokit:cli:features:goal.md │ │ │ │ │ ├── algokit:cli:features:init.md │ │ │ │ │ ├── algokit:cli:features:localnet.md │ │ │ │ │ ├── algokit:cli:features:project:bootstrap.md │ │ │ │ │ ├── algokit:cli:features:project:deploy.md │ │ │ │ │ ├── algokit:cli:features:project:link.md │ │ │ │ │ ├── algokit:cli:features:project:list.md │ │ │ │ │ ├── algokit:cli:features:project:run.md │ │ │ │ │ ├── algokit:cli:features:project.md │ │ │ │ │ ├── algokit:cli:features:tasks:analyze.md │ │ │ │ │ ├── algokit:cli:features:tasks:ipfs.md │ │ │ │ │ ├── algokit:cli:features:tasks:mint.md │ │ │ │ │ ├── algokit:cli:features:tasks:nfd.md │ │ │ │ │ ├── algokit:cli:features:tasks:opt.md │ │ │ │ │ ├── algokit:cli:features:tasks:send.md │ │ │ │ │ ├── algokit:cli:features:tasks:sign.md │ │ │ │ │ ├── algokit:cli:features:tasks:transfer.md │ │ │ │ │ ├── algokit:cli:features:tasks:vanity_address.md │ │ │ │ │ ├── algokit:cli:features:tasks:wallet.md │ │ │ │ │ ├── algokit:cli:features:tasks.md │ │ │ │ │ ├── algokit:cli:tutorials:algokit-template.md │ │ │ │ │ ├── algokit:cli:tutorials:intro.md │ │ │ │ │ ├── algokit:cli:tutorials:smart-contracts.md │ │ │ │ │ ├── algokit:docs:testnet_api.md │ │ │ │ │ ├── algokit:lora:README.md │ │ │ │ │ ├── algokit:README.md │ │ │ │ │ ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:markdown:index.md │ │ │ │ │ ├── algokit:utils:python:README.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:source:index.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:account.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:algorand-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:amount.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:asset.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:debugging.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:event-emitter.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:indexer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:testing.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction-composer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:typed-app-clients.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TestLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_config.Config.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_arc56.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_deployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_composer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_config.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_debugging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_expand.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logic_error.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_network_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transaction.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transfer.md │ │ │ │ │ ├── algokit:utils:typescript:code:README.md │ │ │ │ │ ├── algokit:utils:typescript:README.md │ │ │ │ │ ├── algokit:utils:typescript:v7-migration.md │ │ │ │ │ ├── algokit:utils:typescript:v8-migration.md │ │ │ │ │ ├── ARCs:ARC-template.md │ │ │ │ │ ├── ARCs:assets:arc-0012:README.md │ │ │ │ │ ├── ARCs:assets:arc-0034:TemplateForm.md │ │ │ │ │ ├── ARCs:assets:arc-0062:README.md │ │ │ │ │ ├── ARCs:pages:nfts.md │ │ │ │ │ ├── ARCs:pages:wallets.md │ │ │ │ │ ├── ARCs:README.md │ │ │ │ │ ├── ARCs:specs:arc-0000.md │ │ │ │ │ ├── ARCs:specs:arc-0001.md │ │ │ │ │ ├── ARCs:specs:arc-0002.md │ │ │ │ │ ├── ARCs:specs:arc-0003.md │ │ │ │ │ ├── ARCs:specs:arc-0004.md │ │ │ │ │ ├── ARCs:specs:arc-0005.md │ │ │ │ │ ├── ARCs:specs:arc-0006.md │ │ │ │ │ ├── ARCs:specs:arc-0007.md │ │ │ │ │ ├── ARCs:specs:arc-0008.md │ │ │ │ │ ├── ARCs:specs:arc-0009.md │ │ │ │ │ ├── ARCs:specs:arc-0010.md │ │ │ │ │ ├── ARCs:specs:arc-0011.md │ │ │ │ │ ├── ARCs:specs:arc-0012.md │ │ │ │ │ ├── ARCs:specs:arc-0015.md │ │ │ │ │ ├── ARCs:specs:arc-0016.md │ │ │ │ │ ├── ARCs:specs:arc-0018.md │ │ │ │ │ ├── ARCs:specs:arc-0019.md │ │ │ │ │ ├── ARCs:specs:arc-0020.md │ │ │ │ │ ├── ARCs:specs:arc-0021.md │ │ │ │ │ ├── ARCs:specs:arc-0022.md │ │ │ │ │ ├── ARCs:specs:arc-0023.md │ │ │ │ │ ├── ARCs:specs:arc-0025.md │ │ │ │ │ ├── ARCs:specs:arc-0026.md │ │ │ │ │ ├── ARCs:specs:arc-0028.md │ │ │ │ │ ├── ARCs:specs:arc-0032.md │ │ │ │ │ ├── ARCs:specs:arc-0033.md │ │ │ │ │ ├── ARCs:specs:arc-0034.md │ │ │ │ │ ├── ARCs:specs:arc-0035.md │ │ │ │ │ ├── ARCs:specs:arc-0036.md │ │ │ │ │ ├── ARCs:specs:arc-0042.md │ │ │ │ │ ├── ARCs:specs:arc-0047.md │ │ │ │ │ ├── ARCs:specs:arc-0048.md │ │ │ │ │ ├── ARCs:specs:arc-0049.md │ │ │ │ │ ├── ARCs:specs:arc-0054.md │ │ │ │ │ ├── ARCs:specs:arc-0055.md │ │ │ │ │ ├── ARCs:specs:arc-0056.md │ │ │ │ │ ├── ARCs:specs:arc-0059.md │ │ │ │ │ ├── ARCs:specs:arc-0062.md │ │ │ │ │ ├── ARCs:specs:arc-0065.md │ │ │ │ │ ├── ARCs:specs:arc-0069.md │ │ │ │ │ ├── ARCs:specs:arc-0072.md │ │ │ │ │ ├── ARCs:specs:arc-0073.md │ │ │ │ │ ├── ARCs:specs:arc-0074.md │ │ │ │ │ ├── ARCs:specs:arc-0076.md │ │ │ │ │ ├── ARCs:specs:arc-0078.md │ │ │ │ │ ├── ARCs:specs:arc-0079.md │ │ │ │ │ ├── ARCs:specs:arc-0200.md │ │ │ │ │ ├── clis_index.md │ │ │ │ │ ├── developer:docs:about.md │ │ │ │ │ ├── developer:docs:clis:algokey:algokey.md │ │ │ │ │ ├── developer:docs:clis:algokey:generate.md │ │ │ │ │ ├── developer:docs:clis:algokey:import.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:append-auth-addr.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:multisig.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:info.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:part.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:reparent.md │ │ │ │ │ ├── developer:docs:clis:algokey:sign.md │ │ │ │ │ ├── developer:docs:clis:conduit:conduit.md │ │ │ │ │ ├── developer:docs:clis:conduit:init.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:exporters.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:importers.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:list.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:processors.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:diagcfg.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:metric.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:endpoint.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:name.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:telemetry.md │ │ │ │ │ ├── developer:docs:clis:goal:node:restart.md │ │ │ │ │ ├── developer:docs:clis:goal:node:start.md │ │ │ │ │ ├── developer:docs:clis:goal:node:status.md │ │ │ │ │ ├── developer:docs:clis:goal:node:stop.md │ │ │ │ │ ├── developer:docs:clis:goal:node:wait.md │ │ │ │ │ ├── developer:docs:clis:goal:protocols.md │ │ │ │ │ ├── developer:docs:clis:goal:report.md │ │ │ │ │ ├── developer:docs:clis:goal:version.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:list.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:new.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:wallet.md │ │ │ │ │ ├── developer:docs:clis:indexer:api-config.md │ │ │ │ │ ├── developer:docs:clis:indexer:daemon.md │ │ │ │ │ ├── developer:docs:clis:indexer:indexer.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:util.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:validator.md │ │ │ │ │ ├── developer:docs:clis:kmd.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:debug.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:remote.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:tealdbg.md │ │ │ │ │ ├── developer:docs:details:accounts:create.md │ │ │ │ │ ├── developer:docs:details:accounts:index.md │ │ │ │ │ ├── developer:docs:details:accounts:rekey.md │ │ │ │ │ ├── developer:docs:details:algorand_consensus.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:betanet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:index.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:mainnet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:testnet.md │ │ │ │ │ ├── developer:docs:details:asa.md │ │ │ │ │ ├── developer:docs:details:atc.md │ │ │ │ │ ├── developer:docs:details:atomic_transfers.md │ │ │ │ │ ├── developer:docs:details:conduit.md │ │ │ │ │ ├── developer:docs:details:crust.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:jsonspec.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:specification.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:ABI:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:create.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:state.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:txs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:debugging.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:beaker.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:pyteal.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:python.md │ │ │ │ │ ├── developer:docs:details:encoding.md │ │ │ │ │ ├── developer:docs:details:ethereum_to_algorand.md │ │ │ │ │ ├── developer:docs:details:index.md │ │ │ │ │ ├── developer:docs:details:indexer.md │ │ │ │ │ ├── developer:docs:details:parameter_tables.md │ │ │ │ │ ├── developer:docs:details:stateproofs:index.md │ │ │ │ │ ├── developer:docs:details:stateproofs:light_client.md │ │ │ │ │ ├── developer:docs:details:technical_faq.md │ │ │ │ │ ├── developer:docs:details:transactions:index.md │ │ │ │ │ ├── developer:docs:details:transactions:offline_transactions.md │ │ │ │ │ ├── developer:docs:details:transactions:payment_prompts.md │ │ │ │ │ ├── developer:docs:details:transactions:signatures.md │ │ │ │ │ ├── developer:docs:details:transactions:transactions.md │ │ │ │ │ ├── developer:docs:details:useful_resources.md │ │ │ │ │ ├── developer:docs:get-started:algokit.md │ │ │ │ │ ├── developer:docs:get-started:basics:what_is_blockchain.md │ │ │ │ │ ├── developer:docs:get-started:basics:whats_a_dapp.md │ │ │ │ │ ├── developer:docs:get-started:basics:where_to_start.md │ │ │ │ │ ├── developer:docs:get-started:basics:why_algorand.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:ft.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:nft.md │ │ │ │ │ ├── developer:docs:index.md │ │ │ │ │ ├── developer:docs:rest-apis:algod.md │ │ │ │ │ ├── developer:docs:rest-apis:indexer.md │ │ │ │ │ ├── developer:docs:rest-apis:kmd.md │ │ │ │ │ ├── developer:docs:rest-apis:restendpoints.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:catchup.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:switch_networks.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:generate_keys.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:index.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:offline.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:online.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:renew.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:artifacts.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:config.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:relay.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:telemetry-config.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:indexer.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:install.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:node-troubleshooting.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:types.md │ │ │ │ │ ├── developer:docs:sdks:go:index.md │ │ │ │ │ ├── developer:docs:sdks:index.md │ │ │ │ │ ├── developer:docs:sdks:java:index.md │ │ │ │ │ ├── developer:docs:sdks:javascript:index.md │ │ │ │ │ ├── developer:docs:sdks:python:index.md │ │ │ │ │ ├── developer:python:code:example:accounts.md │ │ │ │ │ ├── developer:python:code:example:arc4_types.md │ │ │ │ │ ├── developer:python:code:example:assets.md │ │ │ │ │ ├── developer:python:code:example:box_storage.md │ │ │ │ │ ├── developer:python:code:example:control_flow.md │ │ │ │ │ ├── developer:python:code:example:crypto:merkle_tree.md │ │ │ │ │ ├── developer:python:code:example:defi:amm.md │ │ │ │ │ ├── developer:python:code:example:defi:auction.md │ │ │ │ │ ├── developer:python:code:example:defi:htlc_logicsig.md │ │ │ │ │ ├── developer:python:code:example:defi:marketplace.md │ │ │ │ │ ├── developer:python:code:example:events:arc28_events.md │ │ │ │ │ ├── developer:python:code:example:global_storage.md │ │ │ │ │ ├── developer:python:code:example:governance:simple_voting.md │ │ │ │ │ ├── developer:python:code:example:hello_world.md │ │ │ │ │ ├── developer:python:code:example:inner_transactions.md │ │ │ │ │ ├── developer:python:code:example:local_storage.md │ │ │ │ │ ├── developer:python:code:example:nft:proof_of_attendance.md │ │ │ │ │ ├── developer:python:code:example:privacy:zk_whitelist.md │ │ │ │ │ ├── developer:python:code:example:scratch_storage.md │ │ │ │ │ ├── developer:python:code:example:self_payment.md │ │ │ │ │ ├── developer:python:code:example:struct_in_box.md │ │ │ │ │ ├── developer:python:code:example:subsidize_app_call.md │ │ │ │ │ ├── developer:python:code:example:transactions.md │ │ │ │ │ ├── developer:python:code:example:utility:calculator.md │ │ │ │ │ ├── devportal-code-examples:projects:python-contract-examples:README.md │ │ │ │ │ ├── devportal-code-examples:README.md │ │ │ │ │ ├── docs:.walletconnect:index.md │ │ │ │ │ ├── docs:.walletconnect:walletconnect-schema.md │ │ │ │ │ ├── docs:README.md │ │ │ │ │ ├── docs:scripts:example_tracker:example_list.md │ │ │ │ │ ├── docs:scripts:README.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── liquid_auth_index.md │ │ │ │ │ ├── liquid-auth:ARCHITECTURE.md │ │ │ │ │ ├── liquid-auth:decisions:1-Service-Authentication.md │ │ │ │ │ ├── liquid-auth:decisions:2-Bidirectional-Communication.md │ │ │ │ │ ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md │ │ │ │ │ ├── liquid-auth:decisions:4-Fido-Extension.md │ │ │ │ │ ├── liquid-auth:decisions:README.md │ │ │ │ │ ├── liquid-auth:docs:architecture.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:authenticate.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:register.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:authentication.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:example.md │ │ │ │ │ ├── liquid-auth:docs:introduction.md │ │ │ │ │ ├── liquid-auth:docs:README.md │ │ │ │ │ ├── liquid-auth:docs:server:environment-variables.md │ │ │ │ │ ├── liquid-auth:docs:server:integrations.md │ │ │ │ │ ├── liquid-auth:docs:server:introduction.md │ │ │ │ │ ├── liquid-auth:docs:server:running-locally.md │ │ │ │ │ ├── liquid-auth:README.md │ │ │ │ │ ├── liquid-auth:SEQUENCE.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md │ │ │ │ │ ├── liquid-auth:sites:express-dapp:README.md │ │ │ │ │ ├── liquid-auth:VISION.md │ │ │ │ │ ├── puya_index.md │ │ │ │ │ ├── puya:docs:algopy_testing:index.md │ │ │ │ │ ├── puya:docs:api-algopy.arc4.md │ │ │ │ │ ├── puya:docs:api-algopy.gtxn.md │ │ │ │ │ ├── puya:docs:api-algopy.itxn.md │ │ │ │ │ ├── puya:docs:api-algopy.md │ │ │ │ │ ├── puya:docs:api-algopy.op.md │ │ │ │ │ ├── puya:docs:api.md │ │ │ │ │ ├── puya:docs:compiler.md │ │ │ │ │ ├── puya:docs:index.md │ │ │ │ │ ├── puya:docs:language-guide.md │ │ │ │ │ ├── puya:docs:lg-arc28.md │ │ │ │ │ ├── puya:docs:lg-arc4.md │ │ │ │ │ ├── puya:docs:lg-builtins.md │ │ │ │ │ ├── puya:docs:lg-calling-apps.md │ │ │ │ │ ├── puya:docs:lg-compile.md │ │ │ │ │ ├── puya:docs:lg-control.md │ │ │ │ │ ├── puya:docs:lg-errors.md │ │ │ │ │ ├── puya:docs:lg-logs.md │ │ │ │ │ ├── puya:docs:lg-modules.md │ │ │ │ │ ├── puya:docs:lg-opcode-budget.md │ │ │ │ │ ├── puya:docs:lg-ops.md │ │ │ │ │ ├── puya:docs:lg-storage.md │ │ │ │ │ ├── puya:docs:lg-structure.md │ │ │ │ │ ├── puya:docs:lg-transactions.md │ │ │ │ │ ├── puya:docs:lg-types.md │ │ │ │ │ ├── puya:docs:lg-unsupported-python-features.md │ │ │ │ │ ├── puya:docs:principles.md │ │ │ │ │ ├── puya:examples:auction:README.md │ │ │ │ │ ├── puya:python:testing:docs:algopy.md │ │ │ │ │ ├── puya:python:testing:docs:api.md │ │ │ │ │ ├── puya:python:testing:docs:coverage.md │ │ │ │ │ ├── puya:python:testing:docs:examples.md │ │ │ │ │ ├── puya:python:testing:docs:faq.md │ │ │ │ │ ├── puya:python:testing:docs:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:arc4-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:avm-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:concepts.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:contract-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:opcodes.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:signature-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:state-management.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:subroutines.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:transactions.md │ │ │ │ │ ├── puya:python:testing:examples:README.md │ │ │ │ │ ├── puya:python:testing:README.md │ │ │ │ │ ├── puya:README.md │ │ │ │ │ ├── puya:src:puya:ARCHITECTURE.md │ │ │ │ │ ├── puya:src:puyapy:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:awst_build:README.md │ │ │ │ │ ├── puya:stubs:README.md │ │ │ │ │ ├── puya:tests:test_expected_output:README.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md │ │ │ │ │ ├── puya:typescript:docs:README.md │ │ │ │ │ ├── puya:typescript:packages:algo-ts:readme.md │ │ │ │ │ ├── puya:typescript:README.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIAddressType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayDynamicType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayStaticType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIBoolType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIByteType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIContract.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIInterface.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIMethod.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIStringType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABITupleType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUfixedType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUintType.md │ │ │ │ │ ├── SDKs:javascript:classes:Algodv2.md │ │ │ │ │ ├── SDKs:javascript:classes:AtomicTransactionComposer.md │ │ │ │ │ ├── SDKs:javascript:classes:DryrunResult.md │ │ │ │ │ ├── SDKs:javascript:classes:Indexer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Block.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockRewards.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HashFactory.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HealthCheck.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofFields.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Transaction.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:Kmd.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSig.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BuildVersion.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.CompileResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunSource.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.KvDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ScratchChange.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Version.md │ │ │ │ │ ├── SDKs:javascript:classes:SourceMap.md │ │ │ │ │ ├── SDKs:javascript:classes:Transaction.md │ │ │ │ │ ├── SDKs:javascript:enums:ABIReferenceType.md │ │ │ │ │ ├── SDKs:javascript:enums:ABITransactionType.md │ │ │ │ │ ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md │ │ │ │ │ ├── SDKs:javascript:enums:IntDecoding.md │ │ │ │ │ ├── SDKs:javascript:enums:OnApplicationComplete.md │ │ │ │ │ ├── SDKs:javascript:enums:TransactionType.md │ │ │ │ │ ├── SDKs:javascript:examples:README.md │ │ │ │ │ ├── SDKs:javascript:FAQ.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworks.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIInterfaceParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodArgParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIResult.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Account.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Address.md │ │ │ │ │ ├── SDKs:javascript:interfaces:AlgodTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClient.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientError.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:CustomTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedAssetParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedBoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedMultisig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSubsig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:IndexerTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:KMDTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:MultisigMetadata.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SuggestedParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionWithSigner.md │ │ │ │ │ ├── SDKs:javascript:modules:indexerModels.md │ │ │ │ │ ├── SDKs:javascript:modules:modelsv2.md │ │ │ │ │ ├── SDKs:javascript:modules.md │ │ │ │ │ ├── SDKs:javascript:README.md │ │ │ │ │ ├── SDKs:python:algosdk:v2client:harness:README.md │ │ │ │ │ ├── SDKs:python:examples:README.md │ │ │ │ │ ├── SDKs:python:README.md │ │ │ │ │ ├── tealscript:examples_amm_README.md │ │ │ │ │ ├── tealscript:examples_auction_README.md │ │ │ │ │ ├── tealscript:examples_big_box_README.md │ │ │ │ │ ├── tealscript:examples_itxns_README.md │ │ │ │ │ ├── tealscript:examples_lsig_with_app_README.md │ │ │ │ │ ├── tealscript:examples_reti_README.md │ │ │ │ │ ├── tealscript:FEATURES.md │ │ │ │ │ ├── tealscript:guides_atomic_txn.md │ │ │ │ │ ├── tealscript:guides_features.md │ │ │ │ │ ├── tealscript:guides_getting_started.md │ │ │ │ │ ├── tealscript:guides_inner_transactions.md │ │ │ │ │ ├── tealscript:guides_lifecycle.md │ │ │ │ │ ├── tealscript:guides_math.md │ │ │ │ │ ├── tealscript:guides_methods.md │ │ │ │ │ ├── tealscript:guides_multiple_contracts.md │ │ │ │ │ ├── tealscript:guides_pyteal.md │ │ │ │ │ ├── tealscript:guides_storage.md │ │ │ │ │ ├── tealscript:guides_Supported Types_arrays.md │ │ │ │ │ ├── tealscript:guides_Supported Types_numbers.md │ │ │ │ │ ├── TEALScript:README.md │ │ │ │ │ ├── tealscript:tests_test_package_README.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0001-intro.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0002-init.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0003-contract.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0004-artifacts.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0005-hello.md │ │ │ │ │ └── tealscript:tutorials_Hello World_0006-test.md │ │ │ │ └── taxonomy-categories │ │ │ │ ├── algokit-utils.json │ │ │ │ ├── algokit.json │ │ │ │ ├── arcs.json │ │ │ │ ├── clis.json │ │ │ │ ├── details.json │ │ │ │ ├── developers.json │ │ │ │ ├── liquid-auth.json │ │ │ │ ├── nodes.json │ │ │ │ ├── puya.json │ │ │ │ ├── python.json │ │ │ │ ├── sdks.json │ │ │ │ └── tealscript.json │ │ │ └── wallet │ │ │ └── index.ts │ │ ├── tools │ │ │ ├── accountManager.ts │ │ │ ├── algodManager.ts │ │ │ ├── apiManager │ │ │ │ ├── algod │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── example │ │ │ │ │ ├── get-balance.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── nfd │ │ │ │ │ └── index.ts │ │ │ │ ├── tinyman │ │ │ │ │ ├── analytics.ts │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── liquidity.ts │ │ │ │ │ ├── opt_in.ts │ │ │ │ │ ├── pool.ts │ │ │ │ │ ├── remove_liquidity.ts │ │ │ │ │ └── swap.ts │ │ │ │ ├── ultrade │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── market.ts │ │ │ │ │ ├── system.ts │ │ │ │ │ └── wallet.ts │ │ │ │ └── vestige │ │ │ │ ├── assets.ts │ │ │ │ ├── balances.ts │ │ │ │ ├── index.ts │ │ │ │ ├── networks.ts │ │ │ │ ├── notes.ts │ │ │ │ ├── pools.ts │ │ │ │ ├── protocols.ts │ │ │ │ ├── swaps.ts │ │ │ │ └── vaults.ts │ │ │ ├── arc26Manager.ts │ │ │ ├── index.ts │ │ │ ├── knowledgeManager.ts │ │ │ ├── transactionManager │ │ │ │ ├── accountTransactions.ts │ │ │ │ ├── appTransactions │ │ │ │ │ ├── callTxn.ts │ │ │ │ │ ├── clearTxn.ts │ │ │ │ │ ├── closeOutTxn.ts │ │ │ │ │ ├── createTxn.ts │ │ │ │ │ ├── deleteTxn.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── optInTxn.ts │ │ │ │ │ ├── test │ │ │ │ │ │ ├── counter_approval.teal │ │ │ │ │ │ ├── counter_clear.teal │ │ │ │ │ │ ├── storage_test_approval_v2.teal │ │ │ │ │ │ ├── storage_test_approval.teal │ │ │ │ │ │ └── storage_test_clear.teal │ │ │ │ │ ├── types.ts │ │ │ │ │ └── updateTxn.ts │ │ │ │ ├── assetTransactions.ts │ │ │ │ ├── generalTransaction.ts │ │ │ │ └── index.ts │ │ │ └── utilityManager.ts │ │ ├── types.ts │ │ └── utils │ │ └── responseProcessor.ts │ ├── tests │ │ ├── resources │ │ │ ├── algod │ │ │ │ ├── account.test.ts │ │ │ │ ├── application.test.ts │ │ │ │ ├── asset.test.ts │ │ │ │ └── transaction.test.ts │ │ │ └── indexer │ │ │ ├── account.test.ts │ │ │ ├── application.test.ts │ │ │ ├── asset.test.ts │ │ │ └── transaction.test.ts │ │ └── tools │ │ ├── accountManager.test.ts │ │ ├── algodManager.test.ts │ │ ├── apiManager │ │ │ └── example │ │ │ └── get-balance.test.ts │ │ ├── transactionManager │ │ │ ├── accountTransactionManager.test.ts │ │ │ ├── appTransactionManager.test.ts │ │ │ ├── assetTransactionManager.test.ts │ │ │ ├── generalTransactionManager.test.ts │ │ │ └── transactionManager.test.ts │ │ └── utilityManager.test.ts │ └── tsconfig.json ├── README.md ├── rename_files.sh └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/developers-sdks-python.txt: -------------------------------------------------------------------------------- ``` 1 | SDKs:python:algosdk:v2client:harness:README.md 2 | SDKs:python:index.rst 3 | SDKs:python:algosdk:index.rst 4 | SDKs:python:algosdk:box_reference.rst 5 | SDKs:python:algosdk:transaction.rst 6 | SDKs:python:algosdk:atomic_transaction_composer.rst 7 | SDKs:python:algosdk:wallet.rst 8 | SDKs:python:algosdk:encoding.rst 9 | SDKs:python:algosdk:account.rst 10 | SDKs:python:algosdk:kmd.rst 11 | SDKs:python:algosdk:dryrun_results.rst 12 | SDKs:python:algosdk:source_map.rst 13 | SDKs:python:algosdk:abi:index.rst 14 | SDKs:python:algosdk:abi:bool_type.rst 15 | SDKs:python:algosdk:abi:string_type.rst 16 | SDKs:python:algosdk:abi:transaction.rst 17 | SDKs:python:algosdk:abi:reference.rst 18 | SDKs:python:algosdk:abi:method.rst 19 | SDKs:python:algosdk:abi:byte_type.rst 20 | SDKs:python:algosdk:abi:address_type.rst 21 | SDKs:python:algosdk:abi:uint_type.rst 22 | SDKs:python:algosdk:abi:interface.rst 23 | SDKs:python:algosdk:abi:array_static_type.rst 24 | SDKs:python:algosdk:abi:contract.rst 25 | SDKs:python:algosdk:abi:tuple_type.rst 26 | SDKs:python:algosdk:abi:base_type.rst 27 | SDKs:python:algosdk:abi:array_dynamic_type.rst 28 | SDKs:python:algosdk:abi:ufixed_type.rst 29 | SDKs:python:algosdk:mnemonic.rst 30 | SDKs:python:algosdk:constants.rst 31 | SDKs:python:algosdk:error.rst 32 | SDKs:python:algosdk:v2client:index.rst 33 | SDKs:python:algosdk:v2client:algod.rst 34 | SDKs:python:algosdk:v2client:indexer.rst 35 | SDKs:python:algosdk:logic.rst 36 | SDKs:python:algosdk:auction.rst 37 | SDKs:python:algosdk:wordlist.rst 38 | SDKs:python:algosdk:util.rst 39 | SDKs:python:README.md 40 | SDKs:python:examples:README.md 41 | specs:README.md 42 | specs:dev:partkey.md 43 | specs:dev:crypto.md 44 | specs:dev:abft.md 45 | specs:dev:README.md 46 | specs:dev:ledger.md 47 | specs:dev:TEAL_opcodes.md 48 | specs:dev:TEAL.md 49 | specs:overview:README.md ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/developers-algokit-utils-python.txt: -------------------------------------------------------------------------------- ``` 1 | algokit:utils:python:markdown:capabilities:app-client.md 2 | algokit:utils:python:markdown:capabilities:transfer.md 3 | algokit:utils:python:markdown:capabilities:debugger.md 4 | algokit:utils:python:markdown:capabilities:account.md 5 | algokit:utils:python:markdown:capabilities:app-deploy.md 6 | algokit:utils:python:markdown:capabilities:dispenser-client.md 7 | algokit:utils:python:markdown:capabilities:client.md 8 | algokit:utils:python:markdown:index.md 9 | algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md 10 | algokit:utils:python:source:capabilities:app-client.md 11 | algokit:utils:python:source:capabilities:transfer.md 12 | algokit:utils:python:source:capabilities:debugger.md 13 | algokit:utils:python:source:capabilities:account.md 14 | algokit:utils:python:source:capabilities:app-deploy.md 15 | algokit:utils:python:source:capabilities:dispenser-client.md 16 | algokit:utils:python:source:capabilities:client.md 17 | algokit:utils:python:source:index.md 18 | algokit:utils:python:README.md 19 | developer:docs:details:algokit:utils:py:capabilities:app-client.md 20 | developer:docs:details:algokit:utils:py:capabilities:transfer.md 21 | developer:docs:details:algokit:utils:py:capabilities:debugger.md 22 | developer:docs:details:algokit:utils:py:capabilities:account.md 23 | developer:docs:details:algokit:utils:py:capabilities:app-deploy.md 24 | developer:docs:details:algokit:utils:py:capabilities:dispenser-client.md 25 | developer:docs:details:algokit:utils:py:capabilities:debugging.md 26 | developer:docs:details:algokit:utils:py:capabilities:client.md 27 | developer:docs:details:algokit:utils:py:index.md 28 | developer:docs:details:algokit:utils:py:client_generator.md 29 | developer:docs:details:algokit:utils:py:apidocs.md 30 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit Tasks 2 | 3 | AlgoKit Tasks are a collection of handy tasks that can be used to perform various operations on Algorand blockchain. 4 | 5 | ## Features 6 | 7 | - [Wallet Aliasing](./tasks/wallet.md) - Manage your Algorand addresses and accounts effortlessly with the AlgoKit Wallet feature. This feature allows you to create short aliases for your addresses and accounts on AlgoKit CLI. 8 | - [Vanity Address Generation](./tasks/vanity_address.md) - Generate vanity addresses for your Algorand accounts with the AlgoKit Vanity feature. This feature allows you to generate Algorand addresses which contains a specific keyword of your choice. 9 | - [Transfer Assets or Algos](./tasks/transfer.md) - Transfer Algos or Assets from one account to another with the AlgoKit Transfer feature. This feature allows you to transfer Algos or Assets from one account to another on Algorand blockchain. 10 | - [Opt-(in|out) Assets](./tasks/opt.md) - Opt-in or opt-out of Algorand Asset(s). Supports single or multiple assets. 11 | - [Signing transactions](./tasks/sign.md) - Sign goal clerk compatible Algorand transactions. 12 | - [Sending transactions](./tasks/send.md) - Send signed goal clerk compatible Algorand transactions. 13 | - [NFD lookups](./tasks/nfd.md) - Perform a lookup via NFD domain or address, returning the associated address or domain respectively using the AlgoKit CLI. 14 | - [IPFS uploads](./tasks/ipfs.md) - Upload files to IPFS. 15 | - [Asset minting](./tasks/mint.md) - Mint new fungible or non-fungible assets on Algorand. 16 | - [Analyze TEAL code](./tasks/analyze.md) - Analyze TEAL code using [`tealer`](https://github.com/crytic/tealer) integration for common vulnerabilities. 17 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:subroutines.md: -------------------------------------------------------------------------------- ```markdown 1 | # Subroutines 2 | 3 | Subroutines allow direct testing of internal contract logic without full application calls. 4 | 5 | ```{testsetup} 6 | import algopy 7 | import algopy_testing 8 | from algopy_testing import algopy_testing_context 9 | 10 | # Create the context manager for snippets below 11 | ctx_manager = algopy_testing_context() 12 | 13 | # Enter the context 14 | context = ctx_manager.__enter__() 15 | ``` 16 | 17 | ## Overview 18 | 19 | The `@algopy.subroutine` decorator exposes contract methods for isolated testing within the Algorand Python Testing framework. This enables focused validation of core business logic without the overhead of full application deployment and execution. 20 | 21 | ## Usage 22 | 23 | 1. Decorate internal methods with `@algopy.subroutine`: 24 | 25 | ```{testcode} 26 | from algopy import subroutine, UInt64 27 | 28 | class MyContract: 29 | @subroutine 30 | def calculate_value(self, input: UInt64) -> UInt64: 31 | return input * UInt64(2) 32 | ``` 33 | 34 | 2. Test the subroutine directly: 35 | 36 | ```{testcode} 37 | def test_calculate_value(context: algopy_testing.AlgopyTestContext): 38 | contract = MyContract() 39 | result = contract.calculate_value(UInt64(5)) 40 | assert result == UInt64(10) 41 | ``` 42 | 43 | ## Benefits 44 | 45 | - Faster test execution 46 | - Simplified debugging 47 | - Focused unit testing of core logic 48 | 49 | ## Best Practices 50 | 51 | - Use subroutines for complex internal calculations 52 | - Prefer writing `pure` subroutines in ARC4Contract classes 53 | - Combine with full application tests for comprehensive coverage 54 | - Maintain realistic input and output types (e.g., `UInt64`, `Bytes`) 55 | 56 | ## Example 57 | 58 | For a complete example, see the `simple_voting` contract in the [examples](../examples.md) section. 59 | 60 | ```{testcleanup} 61 | ctx_manager.__exit__(None, None, None) 62 | ``` 63 | ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/indexer/index.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { accountTools, handleAccountTools } from './account.js'; 2 | import { applicationTools, handleApplicationTools } from './application.js'; 3 | import { assetTools, handleAssetTools } from './asset.js'; 4 | import { transactionTools, handleTransactionTools } from './transaction.js'; 5 | import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; 6 | 7 | // Combine all indexer tools 8 | export const indexerTools = [ 9 | ...accountTools, 10 | ...applicationTools, 11 | ...assetTools, 12 | ...transactionTools 13 | ]; 14 | 15 | // Handle all indexer API tools 16 | export async function handleIndexerTools(name: string, args: any): Promise<any> { 17 | const toolArgs = { ...args, name }; 18 | 19 | // Transaction tools (including account transactions) 20 | if (name === 'api_indexer_lookup_transaction_by_id' || 21 | name === 'api_indexer_lookup_account_transactions' || 22 | name.startsWith('api_indexer_search_for_transaction')) { 23 | return handleTransactionTools(toolArgs); 24 | } 25 | 26 | // Account tools (excluding account transactions) 27 | if ((name.startsWith('api_indexer_lookup_account_') && 28 | name !== 'api_indexer_lookup_account_transactions') || 29 | name === 'api_indexer_search_for_accounts') { 30 | return handleAccountTools(toolArgs); 31 | } 32 | 33 | // Application tools 34 | if (name.startsWith('api_indexer_lookup_application') || 35 | name.startsWith('api_indexer_search_for_application')) { 36 | return handleApplicationTools(toolArgs); 37 | } 38 | 39 | // Asset tools 40 | if (name.startsWith('api_indexer_lookup_asset') || 41 | name.startsWith('api_indexer_search_for_asset')) { 42 | return handleAssetTools(toolArgs); 43 | } 44 | 45 | throw new McpError( 46 | ErrorCode.MethodNotFound, 47 | `Unknown tool: ${name}` 48 | ); 49 | } 50 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/transaction](../modules/types_transaction.md) / SendParams 2 | 3 | # Interface: SendParams 4 | 5 | [types/transaction](../modules/types_transaction.md).SendParams 6 | 7 | Parameters to configure transaction sending. 8 | 9 | ## Hierarchy 10 | 11 | - **`SendParams`** 12 | 13 | ↳ [`AtomicTransactionComposerToSend`](types_transaction.AtomicTransactionComposerToSend.md) 14 | 15 | ## Table of contents 16 | 17 | ### Properties 18 | 19 | - [maxRoundsToWaitForConfirmation](types_transaction.SendParams.md#maxroundstowaitforconfirmation) 20 | - [populateAppCallResources](types_transaction.SendParams.md#populateappcallresources) 21 | - [suppressLog](types_transaction.SendParams.md#suppresslog) 22 | 23 | ## Properties 24 | 25 | ### maxRoundsToWaitForConfirmation 26 | 27 | • `Optional` **maxRoundsToWaitForConfirmation**: `number` 28 | 29 | The number of rounds to wait for confirmation. By default until the latest lastValid has past. 30 | 31 | #### Defined in 32 | 33 | [src/types/transaction.ts:136](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L136) 34 | 35 | ___ 36 | 37 | ### populateAppCallResources 38 | 39 | • `Optional` **populateAppCallResources**: `boolean` 40 | 41 | Whether to use simulate to automatically populate app call resources in the txn objects. Defaults to `Config.populateAppCallResources`. 42 | 43 | #### Defined in 44 | 45 | [src/types/transaction.ts:140](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L140) 46 | 47 | ___ 48 | 49 | ### suppressLog 50 | 51 | • `Optional` **suppressLog**: `boolean` 52 | 53 | Whether to suppress log messages from transaction send, default: do not suppress. 54 | 55 | #### Defined in 56 | 57 | [src/types/transaction.ts:138](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L138) 58 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/logic-error](../modules/types_logic_error.md) / LogicErrorDetails 2 | 3 | # Interface: LogicErrorDetails 4 | 5 | [types/logic-error](../modules/types_logic_error.md).LogicErrorDetails 6 | 7 | Details about a smart contract logic error 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [desc](types_logic_error.LogicErrorDetails.md#desc) 14 | - [msg](types_logic_error.LogicErrorDetails.md#msg) 15 | - [pc](types_logic_error.LogicErrorDetails.md#pc) 16 | - [traces](types_logic_error.LogicErrorDetails.md#traces) 17 | - [txId](types_logic_error.LogicErrorDetails.md#txid) 18 | 19 | ## Properties 20 | 21 | ### desc 22 | 23 | • **desc**: `string` 24 | 25 | The full error description 26 | 27 | #### Defined in 28 | 29 | [src/types/logic-error.ts:14](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L14) 30 | 31 | ___ 32 | 33 | ### msg 34 | 35 | • **msg**: `string` 36 | 37 | The error message 38 | 39 | #### Defined in 40 | 41 | [src/types/logic-error.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L12) 42 | 43 | ___ 44 | 45 | ### pc 46 | 47 | • **pc**: `number` 48 | 49 | The program counter where the error was 50 | 51 | #### Defined in 52 | 53 | [src/types/logic-error.ts:10](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L10) 54 | 55 | ___ 56 | 57 | ### traces 58 | 59 | • **traces**: `Record`\<`string`, `unknown`\>[] 60 | 61 | Any trace information included in the error 62 | 63 | #### Defined in 64 | 65 | [src/types/logic-error.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L16) 66 | 67 | ___ 68 | 69 | ### txId 70 | 71 | • **txId**: `string` 72 | 73 | The ID of the transaction with the logic error 74 | 75 | #### Defined in 76 | 77 | [src/types/logic-error.ts:8](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L8) 78 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app](../modules/types_app.md) / AppDeployMetadata 2 | 3 | # Interface: AppDeployMetadata 4 | 5 | [types/app](../modules/types_app.md).AppDeployMetadata 6 | 7 | The payload of the metadata to add to the transaction note when deploying an app, noting it will be prefixed with `APP_DEPLOY_NOTE_PREFIX`. 8 | 9 | ## Hierarchy 10 | 11 | - **`AppDeployMetadata`** 12 | 13 | ↳ [`AppMetadata`](types_app_deployer.AppMetadata.md) 14 | 15 | ↳ [`AppMetadata`](types_app.AppMetadata.md) 16 | 17 | ## Table of contents 18 | 19 | ### Properties 20 | 21 | - [deletable](types_app.AppDeployMetadata.md#deletable) 22 | - [name](types_app.AppDeployMetadata.md#name) 23 | - [updatable](types_app.AppDeployMetadata.md#updatable) 24 | - [version](types_app.AppDeployMetadata.md#version) 25 | 26 | ## Properties 27 | 28 | ### deletable 29 | 30 | • `Optional` **deletable**: `boolean` 31 | 32 | Whether or not the app is deletable / permanent / unspecified 33 | 34 | #### Defined in 35 | 36 | [src/types/app.ts:253](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L253) 37 | 38 | ___ 39 | 40 | ### name 41 | 42 | • **name**: `string` 43 | 44 | The unique name identifier of the app within the creator account 45 | 46 | #### Defined in 47 | 48 | [src/types/app.ts:249](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L249) 49 | 50 | ___ 51 | 52 | ### updatable 53 | 54 | • `Optional` **updatable**: `boolean` 55 | 56 | Whether or not the app is updatable / immutable / unspecified 57 | 58 | #### Defined in 59 | 60 | [src/types/app.ts:255](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L255) 61 | 62 | ___ 63 | 64 | ### version 65 | 66 | • **version**: `string` 67 | 68 | The version of app that is / will be deployed 69 | 70 | #### Defined in 71 | 72 | [src/types/app.ts:251](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L251) 73 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:README.md: -------------------------------------------------------------------------------- ```markdown 1 | # ARCs: Algorand Requests for Comments 2 | 3 | ## Mission 4 | This repository serves to provide a location for the proposal and discussion of ARCs. 5 | 6 | To know an ARC's status, please refer to https://arc.algorand.foundation/. 7 | 8 | ## Status 9 | Please consider anything which is not published on https://github.com/algorandfoundation/ARCs as a working paper. 10 | 11 | And please consider anything published at https://github.com/algorandfoundation/ARCs with a status of "draft" as an incomplete draft. 12 | 13 | We recommend only using ARCs with the status "Final", "Living" or "Last Call". 14 | 15 | ## Process 16 | Before submitting a new ARC, please have a look at [ARC-0](ARCs/arc-0000.md). 17 | 18 | ## Validation 19 | 20 | Pull requests in this repository must pass automated validation checks: 21 | 22 | * HTML formatting and broken links are checked using [html-proofer](https://rubygems.org/gems/html-proofer). 23 | 24 | * ARC front matter and formatting are [checked](https://github.com/algorandfoundation/ARCs/blob/master/.github/workflows/auto-merge-bot.yml) using [ARC Validator](https://github.com/algorandfoundation/arcw). 25 | 26 | To install `arcw` and validate the ARCs repository: 27 | 28 | > You will need [Rust/cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) 29 | 30 | ```console 31 | git clone [email protected]:algorandfoundation/arcw.git 32 | cargo install --path=arcw arcw 33 | arcw Path-to-ARCs-Folder/ARCs/ARCs/arc-xxxx.md 34 | ``` 35 | 36 | 37 | Here is a dedicated part on the [forum](https://forum.algorand.org/c/arc/19) to talk about ARCs. 38 | 39 | To discuss ARCs ideas, see the open [Pull Requests](https://github.com/algorandfoundation/ARCs/pulls) of this repository. 40 | 41 | To discuss ARC drafts, use the corresponding issue in the [issue tracker](https://github.com/algorandfoundation/ARCs/issues). 42 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/testing](../modules/types_testing.md) / LogSnapshotConfig 2 | 3 | # Interface: LogSnapshotConfig 4 | 5 | [types/testing](../modules/types_testing.md).LogSnapshotConfig 6 | 7 | Configuration for preparing a captured log snapshot. 8 | This helps ensure that the provided configuration items won't appear 9 | with random values in the log snapshot, but rather will get substituted with predictable ids. 10 | 11 | ## Table of contents 12 | 13 | ### Properties 14 | 15 | - [accounts](types_testing.LogSnapshotConfig.md#accounts) 16 | - [apps](types_testing.LogSnapshotConfig.md#apps) 17 | - [transactions](types_testing.LogSnapshotConfig.md#transactions) 18 | 19 | ## Properties 20 | 21 | ### accounts 22 | 23 | • `Optional` **accounts**: (`string` \| [`MultisigAccount`](../classes/types_account.MultisigAccount.md) \| `default` \| [`SigningAccount`](../classes/types_account.SigningAccount.md) \| `Address` \| [`TransactionSignerAccount`](types_account.TransactionSignerAccount.md) \| `LogicSigAccount`)[] 24 | 25 | Any accounts/addresses to replace the address for predictably 26 | 27 | #### Defined in 28 | 29 | [src/types/testing.ts:98](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L98) 30 | 31 | ___ 32 | 33 | ### apps 34 | 35 | • `Optional` **apps**: (`string` \| `number` \| `bigint`)[] 36 | 37 | Any app IDs to replace predictably 38 | 39 | #### Defined in 40 | 41 | [src/types/testing.ts:100](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L100) 42 | 43 | ___ 44 | 45 | ### transactions 46 | 47 | • `Optional` **transactions**: (`string` \| `Transaction`)[] 48 | 49 | Any transaction IDs or transactions to replace the ID for predictably 50 | 51 | #### Defined in 52 | 53 | [src/types/testing.ts:96](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L96) 54 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:signature-testing.md: -------------------------------------------------------------------------------- ```markdown 1 | # Smart Signature Testing 2 | 3 | Test Algorand smart signatures (LogicSigs) with ease using the Algorand Python Testing framework. 4 | 5 | ```{testsetup} 6 | import algopy 7 | from algopy_testing import algopy_testing_context 8 | 9 | # Create the context manager for snippets below 10 | ctx_manager = algopy_testing_context() 11 | 12 | # Enter the context 13 | context = ctx_manager.__enter__() 14 | ``` 15 | 16 | ## Define a LogicSig 17 | 18 | Use the `@logicsig` decorator to create a LogicSig: 19 | 20 | ```{testcode} 21 | from algopy import logicsig, Account, Txn, Global, UInt64, Bytes 22 | 23 | @logicsig 24 | def hashed_time_locked_lsig() -> bool: 25 | # LogicSig code here 26 | return True # Approve transaction 27 | ``` 28 | 29 | ## Execute and Test 30 | 31 | Use `AlgopyTestContext.execute_logicsig()` to run and verify LogicSigs: 32 | 33 | ```{testcode} 34 | with context.txn.create_group([ 35 | context.any.txn.payment(), 36 | ]): 37 | result = context.execute_logicsig(hashed_time_locked_lsig, algopy.Bytes(b"secret")) 38 | 39 | assert result is True 40 | ``` 41 | 42 | `execute_logicsig()` returns a boolean: 43 | 44 | - `True`: Transaction approved 45 | - `False`: Transaction rejected 46 | 47 | ## Pass Arguments 48 | 49 | Provide arguments to LogicSigs using `execute_logicsig()`: 50 | 51 | ```{testcode} 52 | result = context.execute_logicsig(hashed_time_locked_lsig, algopy.Bytes(b"secret")) 53 | ``` 54 | 55 | Access arguments in the LogicSig with `algopy.op.arg()` opcode: 56 | 57 | ```{testcode} 58 | @logicsig 59 | def hashed_time_locked_lsig() -> bool: 60 | secret = algopy.op.arg(0) 61 | expected_hash = algopy.op.sha256(algopy.Bytes(b"secret")) 62 | return algopy.op.sha256(secret) == expected_hash 63 | 64 | # Example usage 65 | secret = algopy.Bytes(b"secret") 66 | assert context.execute_logicsig(hashed_time_locked_lsig, secret) 67 | ``` 68 | 69 | For more details on available operations, see the [coverage](../coverage.md). 70 | 71 | ```{testcleanup} 72 | ctx_manager.__exit__(None, None, None) 73 | ``` 74 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / ResolveAppById 2 | 3 | # Interface: ResolveAppById 4 | 5 | [types/app-client](../modules/types_app_client.md).ResolveAppById 6 | 7 | Configuration to resolve app by ID 8 | 9 | ## Hierarchy 10 | 11 | - [`ResolveAppByIdBase`](types_app_client.ResolveAppByIdBase.md) 12 | 13 | ↳ **`ResolveAppById`** 14 | 15 | ## Table of contents 16 | 17 | ### Properties 18 | 19 | - [id](types_app_client.ResolveAppById.md#id) 20 | - [name](types_app_client.ResolveAppById.md#name) 21 | - [resolveBy](types_app_client.ResolveAppById.md#resolveby) 22 | 23 | ## Properties 24 | 25 | ### id 26 | 27 | • **id**: `number` \| `bigint` 28 | 29 | The id of an existing app to call using this client, or 0 if the app hasn't been created yet 30 | 31 | #### Inherited from 32 | 33 | [ResolveAppByIdBase](types_app_client.ResolveAppByIdBase.md).[id](types_app_client.ResolveAppByIdBase.md#id) 34 | 35 | #### Defined in 36 | 37 | [src/types/app-client.ts:112](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L112) 38 | 39 | ___ 40 | 41 | ### name 42 | 43 | • `Optional` **name**: `string` 44 | 45 | The optional name to use to mark the app when deploying `ApplicationClient.deploy` (default: uses the name in the ABI contract) 46 | 47 | #### Inherited from 48 | 49 | [ResolveAppByIdBase](types_app_client.ResolveAppByIdBase.md).[name](types_app_client.ResolveAppByIdBase.md#name) 50 | 51 | #### Defined in 52 | 53 | [src/types/app-client.ts:114](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L114) 54 | 55 | ___ 56 | 57 | ### resolveBy 58 | 59 | • **resolveBy**: ``"id"`` 60 | 61 | How the app ID is resolved, either by `'id'` or `'creatorAndName'`; must be `'creatorAndName'` if you want to use `deploy` 62 | 63 | #### Defined in 64 | 65 | [src/types/app-client.ts:119](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L119) 66 | ``` -------------------------------------------------------------------------------- /packages/server/src/tools/transactionManager/index.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; 2 | import { AccountTransactionManager, accountTransactionTools } from './accountTransactions.js'; 3 | import { AssetTransactionManager, assetTransactionTools } from './assetTransactions.js'; 4 | import { AppTransactionManager, appTransactionTools } from './appTransactions/index.js'; 5 | import { GeneralTransactionManager, generalTransactionTools } from './generalTransaction.js'; 6 | 7 | // Combine all transaction tools 8 | export const transactionTools = [ 9 | ...accountTransactionTools, 10 | ...assetTransactionTools, 11 | ...appTransactionTools, 12 | ...generalTransactionTools 13 | ]; 14 | 15 | export class TransactionManager { 16 | // Tool handlers 17 | static async handleTool(name: string, args: Record<string, unknown>) { 18 | // Account transactions 19 | if (name.startsWith('make_payment_') || name.startsWith('make_keyreg_')) { 20 | return AccountTransactionManager.handleTool(name, args); 21 | } 22 | 23 | // Asset transactions 24 | if (name.startsWith('make_asset_')) { 25 | return AssetTransactionManager.handleTool(name, args); 26 | } 27 | 28 | // Application transactions 29 | if (name.startsWith('make_app_')) { 30 | return AppTransactionManager.handleTool(name, args); 31 | } 32 | 33 | // General transactions 34 | if (name === 'assign_group_id' || 35 | name === 'sign_transaction' || 36 | name === 'sign_bytes' || 37 | name === 'encode_obj' || 38 | name === 'decode_obj') { 39 | return GeneralTransactionManager.handleTool(name, args); 40 | } 41 | 42 | throw new McpError( 43 | ErrorCode.MethodNotFound, 44 | `Unknown transaction tool: ${name}` 45 | ); 46 | } 47 | } 48 | 49 | // Re-export all transaction managers 50 | export { 51 | AccountTransactionManager, 52 | AssetTransactionManager, 53 | AppTransactionManager, 54 | GeneralTransactionManager 55 | }; 56 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/testing](../modules/types_testing.md) / GetTestAccountParams 2 | 3 | # Interface: GetTestAccountParams 4 | 5 | [types/testing](../modules/types_testing.md).GetTestAccountParams 6 | 7 | Parameters for the `getTestAccount` function. 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [accountGetter](types_testing.GetTestAccountParams.md#accountgetter) 14 | - [initialFunds](types_testing.GetTestAccountParams.md#initialfunds) 15 | - [suppressLog](types_testing.GetTestAccountParams.md#suppresslog) 16 | 17 | ## Properties 18 | 19 | ### accountGetter 20 | 21 | • `Optional` **accountGetter**: (`algorand`: [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md)) => `Promise`\<`default`\> 22 | 23 | Optional override for how to get a test account; this allows you to retrieve accounts from a known or cached list of accounts. 24 | 25 | #### Type declaration 26 | 27 | ▸ (`algorand`): `Promise`\<`default`\> 28 | 29 | ##### Parameters 30 | 31 | | Name | Type | 32 | | :------ | :------ | 33 | | `algorand` | [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md) | 34 | 35 | ##### Returns 36 | 37 | `Promise`\<`default`\> 38 | 39 | #### Defined in 40 | 41 | [src/types/testing.ts:48](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L48) 42 | 43 | ___ 44 | 45 | ### initialFunds 46 | 47 | • **initialFunds**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) 48 | 49 | Initial funds to ensure the account has 50 | 51 | #### Defined in 52 | 53 | [src/types/testing.ts:44](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L44) 54 | 55 | ___ 56 | 57 | ### suppressLog 58 | 59 | • `Optional` **suppressLog**: `boolean` 60 | 61 | Whether to suppress the log (which includes a mnemonic) or not (default: do not suppress the log) 62 | 63 | #### Defined in 64 | 65 | [src/types/testing.ts:46](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L46) 66 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/developers-algokit-architecture-decisions.txt: -------------------------------------------------------------------------------- ``` 1 | algokit:cli:architecture-decisions:2024-01-13_native_binaries.md 2 | algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md 3 | algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md 4 | algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md 5 | algokit:cli:architecture-decisions:2023-01-11_brew_install.md 6 | algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md 7 | algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md 8 | algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md 9 | algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md 10 | algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md 11 | algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md 12 | developer:docs:details:algokit:architecture-decisions:2024-01-13_native_binaries.md 13 | developer:docs:details:algokit:architecture-decisions:2023-07-19_advanced_generate_command.md 14 | developer:docs:details:algokit:architecture-decisions:2022-11-22_beaker-testing-strategy.md 15 | developer:docs:details:algokit:architecture-decisions:2023-01-11_brew_install.md 16 | developer:docs:details:algokit:architecture-decisions:2024-01-31_binary_distribution.md 17 | developer:docs:details:algokit:architecture-decisions:2023-01-12_smart-contract-deployment.md 18 | developer:docs:details:algokit:architecture-decisions:2023-06-06_frontend-templates.md 19 | developer:docs:details:algokit:architecture-decisions:2023-01-11_beaker_productionisation_review.md 20 | developer:docs:details:algokit:architecture-decisions:2022-11-14_sandbox-approach.md 21 | developer:docs:details:algokit:architecture-decisions:2024-01-23_init-wizard-v2.md 22 | puya:docs:architecture-decisions:2024-12-10_arrays.md 23 | puya:docs:architecture-decisions:2024-05-22_teal-compilation.md ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / FundAppAccountParams 2 | 3 | # Interface: FundAppAccountParams 4 | 5 | [types/app-client](../modules/types_app_client.md).FundAppAccountParams 6 | 7 | Parameters for funding an app account 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [amount](types_app_client.FundAppAccountParams.md#amount) 14 | - [note](types_app_client.FundAppAccountParams.md#note) 15 | - [sendParams](types_app_client.FundAppAccountParams.md#sendparams) 16 | - [sender](types_app_client.FundAppAccountParams.md#sender) 17 | 18 | ## Properties 19 | 20 | ### amount 21 | 22 | • **amount**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) 23 | 24 | #### Defined in 25 | 26 | [src/types/app-client.ts:251](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L251) 27 | 28 | ___ 29 | 30 | ### note 31 | 32 | • `Optional` **note**: [`TransactionNote`](../modules/types_transaction.md#transactionnote) 33 | 34 | The transaction note for the smart contract call 35 | 36 | #### Defined in 37 | 38 | [src/types/app-client.ts:255](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L255) 39 | 40 | ___ 41 | 42 | ### sendParams 43 | 44 | • `Optional` **sendParams**: [`SendTransactionParams`](types_transaction.SendTransactionParams.md) 45 | 46 | Parameters to control transaction sending 47 | 48 | #### Defined in 49 | 50 | [src/types/app-client.ts:257](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L257) 51 | 52 | ___ 53 | 54 | ### sender 55 | 56 | • `Optional` **sender**: [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) 57 | 58 | The optional sender to send the transaction from, will use the application client's default sender by default if specified 59 | 60 | #### Defined in 61 | 62 | [src/types/app-client.ts:253](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L253) 63 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:interfaces:EncodedAssetParams.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / EncodedAssetParams 2 | 3 | # Interface: EncodedAssetParams 4 | 5 | Interfaces for the encoded transaction object. Every property is labelled with its associated Transaction type property 6 | 7 | ## Table of contents 8 | 9 | ### Properties 10 | 11 | - [am](EncodedAssetParams.md#am) 12 | - [an](EncodedAssetParams.md#an) 13 | - [au](EncodedAssetParams.md#au) 14 | - [c](EncodedAssetParams.md#c) 15 | - [dc](EncodedAssetParams.md#dc) 16 | - [df](EncodedAssetParams.md#df) 17 | - [f](EncodedAssetParams.md#f) 18 | - [m](EncodedAssetParams.md#m) 19 | - [r](EncodedAssetParams.md#r) 20 | - [t](EncodedAssetParams.md#t) 21 | - [un](EncodedAssetParams.md#un) 22 | 23 | ## Properties 24 | 25 | ### am 26 | 27 | • `Optional` **am**: `Buffer` 28 | 29 | assetMetadataHash 30 | 31 | #### Defined in 32 | 33 | types/transactions/encoded.ts:61 34 | 35 | ___ 36 | 37 | ### an 38 | 39 | • `Optional` **an**: `string` 40 | 41 | assetName 42 | 43 | #### Defined in 44 | 45 | types/transactions/encoded.ts:46 46 | 47 | ___ 48 | 49 | ### au 50 | 51 | • `Optional` **au**: `string` 52 | 53 | assetURL 54 | 55 | #### Defined in 56 | 57 | types/transactions/encoded.ts:56 58 | 59 | ___ 60 | 61 | ### c 62 | 63 | • `Optional` **c**: `Buffer` 64 | 65 | assetClawback 66 | 67 | #### Defined in 68 | 69 | types/transactions/encoded.ts:41 70 | 71 | ___ 72 | 73 | ### dc 74 | 75 | • **dc**: `number` 76 | 77 | assetDecimals 78 | 79 | #### Defined in 80 | 81 | types/transactions/encoded.ts:21 82 | 83 | ___ 84 | 85 | ### df 86 | 87 | • **df**: `boolean` 88 | 89 | assetDefaultFrozen 90 | 91 | #### Defined in 92 | 93 | types/transactions/encoded.ts:16 94 | 95 | ___ 96 | 97 | ### f 98 | 99 | • `Optional` **f**: `Buffer` 100 | 101 | assetFreeze 102 | 103 | #### Defined in 104 | 105 | types/transactions/encoded.ts:36 106 | 107 | ___ 108 | 109 | ### m 110 | 111 | • `Optional` **m**: `Buffer` 112 | 113 | assetManager 114 | 115 | #### Defined in 116 | 117 | types/transactions/encoded.ts:26 118 | 119 | ___ 120 | 121 | ### r 122 | 123 | • `Optional` **r**: `Buffer` 124 | 125 | assetReserve 126 | 127 | #### Defined in 128 | 129 | types/transactions/encoded.ts:31 130 | 131 | ___ 132 | 133 | ### t 134 | 135 | • **t**: `number` \| `bigint` 136 | 137 | assetTotal 138 | 139 | #### Defined in 140 | 141 | types/transactions/encoded.ts:11 142 | 143 | ___ 144 | 145 | ### un 146 | 147 | • `Optional` **un**: `string` 148 | 149 | assetUnitName 150 | 151 | #### Defined in 152 | 153 | types/transactions/encoded.ts:51 154 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/index.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; 2 | import { walletResources } from './wallet/index.js'; 3 | import { knowledgeResources } from './knowledge/index.js'; 4 | 5 | // Resource handler type 6 | type ResourceHandler = (uri: string) => Promise<{ 7 | contents: Array<{ 8 | uri: string; 9 | mimeType: string; 10 | text: string; 11 | }>; 12 | }>; 13 | 14 | // Resource module interface 15 | interface ResourceModule { 16 | canHandle: (uri: string) => boolean; 17 | handle: ResourceHandler; 18 | getResourceDefinitions: () => Array<{ 19 | uri: string; 20 | name: string; 21 | description: string; 22 | schema?: any; 23 | }>; 24 | } 25 | 26 | // Resource modules registry 27 | const resourceModules: ResourceModule[] = [ 28 | walletResources, 29 | knowledgeResources 30 | ]; 31 | 32 | export class ResourceManager { 33 | // Get all resource definitions from all modules 34 | static get resources() { 35 | return resourceModules.flatMap(module => module.getResourceDefinitions()); 36 | } 37 | 38 | // Get schemas for all resources 39 | static get schemas() { 40 | return this.resources.reduce((acc, resource) => ({ 41 | ...acc, 42 | [resource.uri]: resource.schema 43 | }), {} as Record<string, any>); 44 | } 45 | 46 | // Handle resource request 47 | static async handleResource(uri: string) { 48 | // Find module that can handle this URI 49 | const module = resourceModules.find(m => m.canHandle(uri)); 50 | 51 | if (!module) { 52 | throw new McpError( 53 | ErrorCode.InvalidRequest, 54 | `No module found to handle resource: ${uri}` 55 | ); 56 | } 57 | 58 | try { 59 | return await module.handle(uri); 60 | } catch (error: unknown) { 61 | if (error instanceof McpError) { 62 | throw error; 63 | } 64 | const message = error instanceof Error ? error.message : 'Unknown error'; 65 | throw new McpError( 66 | ErrorCode.InternalError, 67 | `Failed to handle resource: ${message}` 68 | ); 69 | } 70 | } 71 | } 72 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-ops.md: -------------------------------------------------------------------------------- ```markdown 1 | # AVM operations 2 | 3 | Algorand Python allows you to do express [every op code the AVM has available](https://developer.algorand.org/docs/get-details/dapps/avm/teal/specification/#operations) apart from ops that manipulate the stack (to avoid conflicts with the compiler), and `log` (to avoid confusion with the superior [Algorand Python log function](./lg-logs.md)). These ops are exposed via the [`algopy.op`](#algopy.op) submodule. 4 | We generally recommend importing this entire submodule so you can use intellisense to discover the available methods: 5 | 6 | ```python 7 | from algopy import UInt64, op, subroutine 8 | 9 | @subroutine 10 | def sqrt_16() -> UInt64: 11 | return op.sqrt(16) 12 | ``` 13 | 14 | All ops are typed using Algorand Python types and have correct static type representations. 15 | 16 | Many ops have higher-order functionality that Algorand Python exposes and would limit the need to reach for the underlying ops. For instance, there is first-class support for local and global storage so there is little need to use the likes of `app_local_get` et. al. But they are still exposed just in case you want to do something that Algorand Python's abstractions don't support. 17 | 18 | ## Txn 19 | 20 | The `Txn` opcodes are so commonly used they have been exposed directly in the `algopy` module and can be easily imported to make it terser to access: 21 | 22 | ```python 23 | from algopy import subroutine, Txn 24 | 25 | @subroutine 26 | def has_no_app_args() -> bool: 27 | return Txn.num_app_args == 0 28 | ``` 29 | 30 | ## Global 31 | 32 | The `Global` opcodes are so commonly used they have been exposed directly in the `algopy` module and can be easily imported to make it terser to access: 33 | 34 | ```python 35 | from algopy import subroutine, Global, Txn 36 | 37 | @subroutine 38 | def only_allow_creator() -> None: 39 | assert Txn.sender == Global.creator_address, "Only the contract creator can perform this operation" 40 | ``` 41 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:ABIContract.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIContract 2 | 3 | # Class: ABIContract 4 | 5 | ## Table of contents 6 | 7 | ### Constructors 8 | 9 | - [constructor](ABIContract.md#constructor) 10 | 11 | ### Properties 12 | 13 | - [description](ABIContract.md#description) 14 | - [events](ABIContract.md#events) 15 | - [methods](ABIContract.md#methods) 16 | - [name](ABIContract.md#name) 17 | - [networks](ABIContract.md#networks) 18 | 19 | ### Methods 20 | 21 | - [getMethodByName](ABIContract.md#getmethodbyname) 22 | - [toJSON](ABIContract.md#tojson) 23 | 24 | ## Constructors 25 | 26 | ### constructor 27 | 28 | • **new ABIContract**(`params`) 29 | 30 | #### Parameters 31 | 32 | | Name | Type | 33 | | :------ | :------ | 34 | | `params` | [`ABIContractParams`](../interfaces/ABIContractParams.md) | 35 | 36 | #### Defined in 37 | 38 | abi/contract.ts:28 39 | 40 | ## Properties 41 | 42 | ### description 43 | 44 | • `Optional` `Readonly` **description**: `string` 45 | 46 | #### Defined in 47 | 48 | abi/contract.ts:22 49 | 50 | ___ 51 | 52 | ### events 53 | 54 | • `Optional` `Readonly` **events**: `ARC28Event`[] 55 | 56 | [ARC-28](https://arc.algorand.foundation/ARCs/arc-0028) events that MAY be emitted by this contract 57 | 58 | #### Defined in 59 | 60 | abi/contract.ts:26 61 | 62 | ___ 63 | 64 | ### methods 65 | 66 | • `Readonly` **methods**: [`ABIMethod`](ABIMethod.md)[] 67 | 68 | #### Defined in 69 | 70 | abi/contract.ts:24 71 | 72 | ___ 73 | 74 | ### name 75 | 76 | • `Readonly` **name**: `string` 77 | 78 | #### Defined in 79 | 80 | abi/contract.ts:21 81 | 82 | ___ 83 | 84 | ### networks 85 | 86 | • `Readonly` **networks**: [`ABIContractNetworks`](../interfaces/ABIContractNetworks.md) 87 | 88 | #### Defined in 89 | 90 | abi/contract.ts:23 91 | 92 | ## Methods 93 | 94 | ### getMethodByName 95 | 96 | ▸ **getMethodByName**(`name`): [`ABIMethod`](ABIMethod.md) 97 | 98 | #### Parameters 99 | 100 | | Name | Type | 101 | | :------ | :------ | 102 | | `name` | `string` | 103 | 104 | #### Returns 105 | 106 | [`ABIMethod`](ABIMethod.md) 107 | 108 | #### Defined in 109 | 110 | abi/contract.ts:54 111 | 112 | ___ 113 | 114 | ### toJSON 115 | 116 | ▸ **toJSON**(): [`ABIContractParams`](../interfaces/ABIContractParams.md) 117 | 118 | #### Returns 119 | 120 | [`ABIContractParams`](../interfaces/ABIContractParams.md) 121 | 122 | #### Defined in 123 | 124 | abi/contract.ts:44 125 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:analyze.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit Task Analyze 2 | 3 | The `analyze` task is a command-line utility that analyzes TEAL programs for common vulnerabilities using [Tealer](https://github.com/crytic/tealer) integration. It allows you to detect a range of common vulnerabilities in code written in TEAL. For full list of vulnerability detectors refer to [Tealer documentation](https://github.com/crytic/tealer?tab=readme-ov-file#detectors). 4 | 5 | ## Usage 6 | 7 | ```bash 8 | algokit task analyze INPUT_PATHS [OPTIONS] 9 | ``` 10 | 11 | ### Arguments 12 | 13 | - `INPUT_PATHS`: Paths to the TEAL files or directories containing TEAL files to be analyzed. This argument is required. 14 | 15 | ### Options 16 | 17 | - `-r, --recursive`: Recursively search for all TEAL files within any provided directories. 18 | - `--force`: Force verification without the disclaimer confirmation prompt. 19 | - `--diff`: Exit with a non-zero code if differences are found between current and last reports. 20 | - `-o, --output OUTPUT_PATH`: Directory path where to store the reports of the static analysis. 21 | - `-e, --exclude DETECTORS`: Exclude specific vulnerabilities from the analysis. Supports multiple exclusions in a single run. 22 | 23 | ## Example 24 | 25 | ```bash 26 | algokit task analyze ./contracts -r --exclude rekey-to --exclude missing-fee-check 27 | ``` 28 | 29 | This command will recursively analyze all TEAL files in the `contracts` directory and exclude the `missing-fee-check` vulnerability from the analysis. 30 | 31 | ## Security considerations 32 | 33 | This task uses [`tealer`](https://github.com/crytic/tealer), a third-party tool, 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](https://developer.algorand.org/docs/get-details/dapps/smart-contracts/guidelines/). This should not be used as a substitute for an actual audit. 34 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:SourceMap.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / SourceMap 2 | 3 | # Class: SourceMap 4 | 5 | ## Table of contents 6 | 7 | ### Constructors 8 | 9 | - [constructor](SourceMap.md#constructor) 10 | 11 | ### Properties 12 | 13 | - [lineToPc](SourceMap.md#linetopc) 14 | - [mappings](SourceMap.md#mappings) 15 | - [names](SourceMap.md#names) 16 | - [pcToLine](SourceMap.md#pctoline) 17 | - [sources](SourceMap.md#sources) 18 | - [version](SourceMap.md#version) 19 | 20 | ### Methods 21 | 22 | - [getLineForPc](SourceMap.md#getlineforpc) 23 | - [getPcsForLine](SourceMap.md#getpcsforline) 24 | 25 | ## Constructors 26 | 27 | ### constructor 28 | 29 | • **new SourceMap**(`«destructured»`) 30 | 31 | #### Parameters 32 | 33 | | Name | Type | 34 | | :------ | :------ | 35 | | `«destructured»` | `Object` | 36 | | › `mappings` | `string` | 37 | | › `names` | `string`[] | 38 | | › `sources` | `string`[] | 39 | | › `version` | `number` | 40 | 41 | #### Defined in 42 | 43 | logic/sourcemap.ts:12 44 | 45 | ## Properties 46 | 47 | ### lineToPc 48 | 49 | • **lineToPc**: `Object` 50 | 51 | #### Index signature 52 | 53 | ▪ [key: `number`]: `number`[] 54 | 55 | #### Defined in 56 | 57 | logic/sourcemap.ts:10 58 | 59 | ___ 60 | 61 | ### mappings 62 | 63 | • **mappings**: `string` 64 | 65 | #### Defined in 66 | 67 | logic/sourcemap.ts:7 68 | 69 | ___ 70 | 71 | ### names 72 | 73 | • **names**: `string`[] 74 | 75 | #### Defined in 76 | 77 | logic/sourcemap.ts:6 78 | 79 | ___ 80 | 81 | ### pcToLine 82 | 83 | • **pcToLine**: `Object` 84 | 85 | #### Index signature 86 | 87 | ▪ [key: `number`]: `number` 88 | 89 | #### Defined in 90 | 91 | logic/sourcemap.ts:9 92 | 93 | ___ 94 | 95 | ### sources 96 | 97 | • **sources**: `string`[] 98 | 99 | #### Defined in 100 | 101 | logic/sourcemap.ts:5 102 | 103 | ___ 104 | 105 | ### version 106 | 107 | • **version**: `number` 108 | 109 | #### Defined in 110 | 111 | logic/sourcemap.ts:4 112 | 113 | ## Methods 114 | 115 | ### getLineForPc 116 | 117 | ▸ **getLineForPc**(`pc`): `number` 118 | 119 | #### Parameters 120 | 121 | | Name | Type | 122 | | :------ | :------ | 123 | | `pc` | `number` | 124 | 125 | #### Returns 126 | 127 | `number` 128 | 129 | #### Defined in 130 | 131 | logic/sourcemap.ts:60 132 | 133 | ___ 134 | 135 | ### getPcsForLine 136 | 137 | ▸ **getPcsForLine**(`line`): `number`[] 138 | 139 | #### Parameters 140 | 141 | | Name | Type | 142 | | :------ | :------ | 143 | | `line` | `number` | 144 | 145 | #### Returns 146 | 147 | `number`[] 148 | 149 | #### Defined in 150 | 151 | logic/sourcemap.ts:64 152 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/network-client](../modules/types_network_client.md) / NetworkDetails 2 | 3 | # Interface: NetworkDetails 4 | 5 | [types/network-client](../modules/types_network_client.md).NetworkDetails 6 | 7 | Details of the current network. 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [genesisHash](types_network_client.NetworkDetails.md#genesishash) 14 | - [genesisId](types_network_client.NetworkDetails.md#genesisid) 15 | - [isLocalNet](types_network_client.NetworkDetails.md#islocalnet) 16 | - [isMainNet](types_network_client.NetworkDetails.md#ismainnet) 17 | - [isTestNet](types_network_client.NetworkDetails.md#istestnet) 18 | 19 | ## Properties 20 | 21 | ### genesisHash 22 | 23 | • **genesisHash**: `string` 24 | 25 | The base64 genesis hash of the current network. 26 | 27 | #### Defined in 28 | 29 | [src/types/network-client.ts:34](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L34) 30 | 31 | ___ 32 | 33 | ### genesisId 34 | 35 | • **genesisId**: `string` 36 | 37 | The genesis ID of the current network. 38 | 39 | #### Defined in 40 | 41 | [src/types/network-client.ts:32](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L32) 42 | 43 | ___ 44 | 45 | ### isLocalNet 46 | 47 | • **isLocalNet**: `boolean` 48 | 49 | Whether or not the network is LocalNet. 50 | 51 | #### Defined in 52 | 53 | [src/types/network-client.ts:30](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L30) 54 | 55 | ___ 56 | 57 | ### isMainNet 58 | 59 | • **isMainNet**: `boolean` 60 | 61 | Whether or not the network is MainNet. 62 | 63 | #### Defined in 64 | 65 | [src/types/network-client.ts:28](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L28) 66 | 67 | ___ 68 | 69 | ### isTestNet 70 | 71 | • **isTestNet**: `boolean` 72 | 73 | Whether or not the network is TestNet. 74 | 75 | #### Defined in 76 | 77 | [src/types/network-client.ts:26](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L26) 78 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:clients:browser:example.md: -------------------------------------------------------------------------------- ```markdown 1 | --- 2 | title: 'Browser: Example' 3 | next: false 4 | --- 5 | 6 | You can check the example in the <a href="https://github.com/algorandfoundation/liquid-auth-js/tree/develop/example" target="blank">GitHub repository</a> for a working browser based application 7 | 8 | 9 | ## Answer Client 10 | A dApp that wants a remote wallet to log into the service and create a peer-to-peer connection. 11 | ```typescript 12 | import { SignalClient } from "@algorandfoundation/liquid-client"; 13 | const client = new SignalClient(window.origin); 14 | 15 | const requestId = SignalClient.generateRequestId() // 12345 16 | 17 | // Wait for the Offer Client to connect 18 | client.peer(requestId, 'offer').then((dc)=>{ 19 | // Handle Peer Messages 20 | dc.onmessage = (event: MessageEvent) => { 21 | console.log(event.data) 22 | } 23 | // Send Messages to Peer 24 | dc.send('Hello World') 25 | }) 26 | 27 | // Generate a QR Code 28 | const qrData = await client.qrCode() 29 | ``` 30 | 31 | ## Offer Client 32 | 33 | The remote browser-based wallet. This could be an extension or hybrid mobile application. 34 | 35 | ```typescript 36 | import * as nacl from 'tweetnacl' 37 | import { SignalClient, toBase64URL } from "@algorandfoundation/liquid-client"; 38 | 39 | const requestId = 12345 // A known request ID from a Answer Client 40 | const origin = "https://example.com" // Some known origin 41 | const address = "encoded-address" // Some known address 42 | const secretKey = new Uint8Array(32) // Some secret key 43 | 44 | // Sign in to the service with a new credential 45 | await client.attestation(async (challenge: Uint8Array) => ({ 46 | type: 'algorand', 47 | requestId, 48 | origin, 49 | address, 50 | signature: toBase64URL(nacl.sign.detached(challenge, secretKey)), 51 | device: 'Demo Web Wallet' 52 | })) 53 | 54 | // Wait for the Answer Client to connect 55 | client.peer(requestId, 'answer').then((dc)=>{ 56 | // Handle Peer Messages 57 | dc.onmessage = (event: MessageEvent) => { 58 | console.log(event.data) 59 | } 60 | // Send Messages to Peer 61 | dc.send('Hello World') 62 | }) 63 | ``` 64 | 65 | ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/example/get-balance.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; 2 | import { ResponseProcessor } from '../../../utils/responseProcessor.js'; 3 | import { algodClient } from '../../../algorand-client.js'; 4 | 5 | /** 6 | * Example tool to demonstrate implementation patterns 7 | * Gets account balance and assets for a given address 8 | * 9 | * @param {Object} args - Tool arguments 10 | * @param {string} args.address - Algorand address to check 11 | * @returns {Promise<Object>} Account balance information including assets 12 | * @throws {McpError} If address is invalid or operation fails 13 | */ 14 | export const getBalanceToolSchema: { type: "object", properties: any, required: string[] } = { 15 | type: "object", 16 | properties: { 17 | address: { 18 | type: 'string', 19 | description: 'Algorand address in standard format (58 characters)' 20 | } 21 | }, 22 | required: ['address'] 23 | }; 24 | 25 | export const getBalanceTool = async (args: { address: string }) => { 26 | try { 27 | // Input validation 28 | if (!args.address) { 29 | throw new McpError( 30 | ErrorCode.InvalidParams, 31 | 'Missing required parameter: address' 32 | ); 33 | } 34 | 35 | if (!/^[A-Z2-7]{58}$/.test(args.address)) { 36 | throw new McpError( 37 | ErrorCode.InvalidParams, 38 | 'Invalid Algorand address format' 39 | ); 40 | } 41 | 42 | // Get account information using Algorand client 43 | const accountInfo = await algodClient.accountInformation(args.address).do(); 44 | 45 | // Return complete response without pagination 46 | return accountInfo; 47 | } catch (error: unknown) { 48 | // Handle specific Algorand API errors 49 | if (error instanceof McpError) { 50 | throw error; 51 | } 52 | 53 | // Format error response 54 | const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; 55 | throw new McpError( 56 | ErrorCode.InternalError, 57 | `Failed to get account balance: ${errorMessage}` 58 | ); 59 | } 60 | }; 61 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/devportal-code-examples:README.md: -------------------------------------------------------------------------------- ```markdown 1 | # Algorand Developer Portal Code Examples 2 | 3 | Welcome to your new AlgoKit project! 4 | 5 | This is your workspace root. A `workspace` in AlgoKit is an orchestrated collection of standalone projects (backends, smart contracts, frontend apps and etc). 6 | 7 | By default, `projects_root_path` parameter is set to `projects`. Which instructs AlgoKit CLI to create a new directory under `projects` directory when new project is instantiated via `algokit init` at the root of the workspace. 8 | 9 | ## Prerequisites 10 | - [Install AlgoKit](https://github.com/algorandfoundation/algokit-cli/tree/main?tab=readme-ov-file#install) 11 | - Install [Docker](https://www.docker.com/products/docker-desktop/) 12 | - Install [Node.JS / npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 13 | 14 | ## Project Setup 15 | - Run `algokit project bootstrap all` from the root of this repository to bootstrap all subprojects under the `projects` folder. 16 | - Open Docker Desktop and then launch AlgoKit localnet by running `algokit localnet start` 17 | 18 | ## Getting Started 19 | 20 | To get started refer to `README.md` files in respective sub-projects in the `projects` directory. 21 | 22 | To learn more about algokit, visit [documentation](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/algokit.md). 23 | 24 | ### GitHub Codespaces 25 | 26 | To get started execute: 27 | 28 | 1. `algokit generate devcontainer` - invoking this command from the root of this repository will create a `devcontainer.json` file with all the configuration needed to run this project in a GitHub codespace. [Run the repository inside a codespace](https://docs.github.com/en/codespaces/getting-started/quickstart) to get started. 29 | 2. `algokit init` - invoke this command inside a github codespace to launch an interactive wizard to guide you through the process of creating a new AlgoKit project 30 | 31 | Powered by [Copier templates](https://copier.readthedocs.io/en/stable/). 32 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/indexer](../modules/types_indexer.md) / ApplicationOnComplete 2 | 3 | # Enumeration: ApplicationOnComplete 4 | 5 | [types/indexer](../modules/types_indexer.md).ApplicationOnComplete 6 | 7 | Defines the what additional actions occur with the transaction https://developer.algorand.org/docs/rest-apis/indexer/#oncompletion 8 | 9 | ## Table of contents 10 | 11 | ### Enumeration Members 12 | 13 | - [clear](types_indexer.ApplicationOnComplete.md#clear) 14 | - [closeout](types_indexer.ApplicationOnComplete.md#closeout) 15 | - [delete](types_indexer.ApplicationOnComplete.md#delete) 16 | - [noop](types_indexer.ApplicationOnComplete.md#noop) 17 | - [optin](types_indexer.ApplicationOnComplete.md#optin) 18 | - [update](types_indexer.ApplicationOnComplete.md#update) 19 | 20 | ## Enumeration Members 21 | 22 | ### clear 23 | 24 | • **clear** = ``"clear"`` 25 | 26 | #### Defined in 27 | 28 | [src/types/indexer.ts:171](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L171) 29 | 30 | ___ 31 | 32 | ### closeout 33 | 34 | • **closeout** = ``"closeout"`` 35 | 36 | #### Defined in 37 | 38 | [src/types/indexer.ts:170](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L170) 39 | 40 | ___ 41 | 42 | ### delete 43 | 44 | • **delete** = ``"delete"`` 45 | 46 | #### Defined in 47 | 48 | [src/types/indexer.ts:173](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L173) 49 | 50 | ___ 51 | 52 | ### noop 53 | 54 | • **noop** = ``"noop"`` 55 | 56 | #### Defined in 57 | 58 | [src/types/indexer.ts:168](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L168) 59 | 60 | ___ 61 | 62 | ### optin 63 | 64 | • **optin** = ``"optin"`` 65 | 66 | #### Defined in 67 | 68 | [src/types/indexer.ts:169](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L169) 69 | 70 | ___ 71 | 72 | ### update 73 | 74 | • **update** = ``"update"`` 75 | 76 | #### Defined in 77 | 78 | [src/types/indexer.ts:172](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/indexer.ts#L172) 79 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app](../modules/types_app.md) / AppStorageSchema 2 | 3 | # Interface: AppStorageSchema 4 | 5 | [types/app](../modules/types_app.md).AppStorageSchema 6 | 7 | Parameters representing the storage schema of an app. 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [extraPages](types_app.AppStorageSchema.md#extrapages) 14 | - [globalByteSlices](types_app.AppStorageSchema.md#globalbyteslices) 15 | - [globalInts](types_app.AppStorageSchema.md#globalints) 16 | - [localByteSlices](types_app.AppStorageSchema.md#localbyteslices) 17 | - [localInts](types_app.AppStorageSchema.md#localints) 18 | 19 | ## Properties 20 | 21 | ### extraPages 22 | 23 | • `Optional` **extraPages**: `number` 24 | 25 | Any extra pages that are needed for the smart contract; if left blank then the right number of pages will be calculated based on the teal code size 26 | 27 | #### Defined in 28 | 29 | [src/types/app.ts:209](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L209) 30 | 31 | ___ 32 | 33 | ### globalByteSlices 34 | 35 | • **globalByteSlices**: `number` 36 | 37 | Restricts number of byte slices in global state 38 | 39 | #### Defined in 40 | 41 | [src/types/app.ts:207](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L207) 42 | 43 | ___ 44 | 45 | ### globalInts 46 | 47 | • **globalInts**: `number` 48 | 49 | Restricts number of ints in global state 50 | 51 | #### Defined in 52 | 53 | [src/types/app.ts:205](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L205) 54 | 55 | ___ 56 | 57 | ### localByteSlices 58 | 59 | • **localByteSlices**: `number` 60 | 61 | Restricts number of byte slices in per-user local state 62 | 63 | #### Defined in 64 | 65 | [src/types/app.ts:203](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L203) 66 | 67 | ___ 68 | 69 | ### localInts 70 | 71 | • **localInts**: `number` 72 | 73 | Restricts number of ints in per-user local state 74 | 75 | #### Defined in 76 | 77 | [src/types/app.ts:201](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L201) 78 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:smartsigs:index.md: -------------------------------------------------------------------------------- ```markdown 1 | title: SmartSig details 2 | 3 | **Algorand Smart Contracts (ASC1)**, provides both smart contracts and smart signatures. The intended use case for the contract will determine the appropriate type to use. Smart signatures are primarily used to delegate signature authority. Smart signatures can also be used as escrow or contract accounts, but in most cases it is preferable to use a [smart contract](../apps/) when an escrow is required. 4 | 5 | Most Algorand transactions are authorized by a [signature from a single account](../../../transactions/signatures.md#single-signatures) or a [multisignature account](../../../transactions/signatures#multisignatures). Algorand’s smart signatures allow for a third type of signature using a **Transaction Execution Approval Language (TEAL)** program, called a **logic signature (LogicSig)**. Smart signatures provide two modes for TEAL logic to operate as a LogicSig, to create a contract account that functions similar to an escrow or to delegate signature authority to another account. These two modes are discussed in detail in [Usage Modes](./modes/). 6 | 7 | These smart signatures can be written in [TEAL](/docs/get-details/dapps/avm/teal/) or in Python using the [PyTeal library](/docs/get-details/dapps/writing-contracts/pyteal). If written in Python the library will return the automatically generated TEAL to be used by either the SDKs or the `goal` command-line tool. 8 | 9 | To learn more about the TEAL language specification see the [TEAL Specification Reference](../../avm/teal/specification.md). To get a high-level understanding of how TEAL is processed see the [TEAL Overview guide](../../avm/teal/). 10 | 11 | To compile and use a TEAL program as a smart signature with `goal`, see [CLI smart signatures](walkthrough). 12 | 13 | To start working with smart signatures with the SDKs, visit the [Interact with smart signatures](../frontend/smartsigs/) section. 14 | 15 | 16 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/testing](../modules/types_testing.md) / AlgorandFixture 2 | 3 | # Interface: AlgorandFixture 4 | 5 | [types/testing](../modules/types_testing.md).AlgorandFixture 6 | 7 | An Algorand automated testing fixture 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [beforeEach](types_testing.AlgorandFixture.md#beforeeach) 14 | 15 | ### Accessors 16 | 17 | - [algorand](types_testing.AlgorandFixture.md#algorand) 18 | - [context](types_testing.AlgorandFixture.md#context) 19 | 20 | ## Properties 21 | 22 | ### beforeEach 23 | 24 | • **beforeEach**: () => `Promise`\<`void`\> 25 | 26 | Testing framework agnostic handler method to run before each test to prepare the `context` for that test. 27 | 28 | #### Type declaration 29 | 30 | ▸ (): `Promise`\<`void`\> 31 | 32 | ##### Returns 33 | 34 | `Promise`\<`void`\> 35 | 36 | #### Defined in 37 | 38 | [src/types/testing.ts:87](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L87) 39 | 40 | ## Accessors 41 | 42 | ### algorand 43 | 44 | • `get` **algorand**(): [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md) 45 | 46 | Retrieve an `AlgorandClient` loaded with the current context, including testAccount and any generated accounts loaded as signers. 47 | 48 | #### Returns 49 | 50 | [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md) 51 | 52 | #### Defined in 53 | 54 | [src/types/testing.ts:82](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L82) 55 | 56 | ___ 57 | 58 | ### context 59 | 60 | • `get` **context**(): [`AlgorandTestAutomationContext`](types_testing.AlgorandTestAutomationContext.md) 61 | 62 | Retrieve the current context. 63 | Useful with destructuring. 64 | 65 | #### Returns 66 | 67 | [`AlgorandTestAutomationContext`](types_testing.AlgorandTestAutomationContext.md) 68 | 69 | **`Example`** 70 | 71 | ```typescript 72 | test('My test', () => { 73 | const {algod, indexer, testAccount, ...} = algorand.context 74 | }) 75 | ``` 76 | 77 | #### Defined in 78 | 79 | [src/types/testing.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L77) 80 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:decisions:4-Fido-Extension.md: -------------------------------------------------------------------------------- ```markdown 1 | # Overview 2 | 3 | Deprecate ARC-31/Arbitrary Auth Message in favor of custom FIDO2 extension 4 | 5 | ## Decisions 6 | 7 | - Remove connect module and endpoints 8 | - Use FIDO2 Attestation/Assertions for device linking 9 | 10 | ## Implementation 11 | 12 | ```mermaid 13 | sequenceDiagram 14 | participant Website 15 | participant Server 16 | participant Wallet 17 | Note over Website, Wallet: Link devices 18 | Website->>Server: Subscribe to 'wss:link' 19 | Website-->>Website: Display QR Connect Request ID 20 | Wallet->>Website: Scan QR Code 21 | Server-->>Wallet: Get Challenge/Options 22 | Wallet->>Server: POST FIDO2 Credential + Liquid Auth Signature 23 | Server-->>Server: Validate Signatures 24 | Server-->>Website: HTTPOnly Session 25 | Server->>Wallet: Ok Response + HTTPOnly Session 26 | Server->>Website: Emit to `wss:link` client 27 | Note over Website, Wallet: Signaling Channels 28 | Website-->>Server: Subscribe to 'wss:offer-description' 29 | Website-->>Server: Subscribe to 'wss:offer-candidate' 30 | Wallet-->>Server: Subscribe to 'wss:answer-description' 31 | Wallet-->>Server: Subscribe to 'wss:answer-candidate' 32 | 33 | Note over Website, Wallet: Peer Offer 34 | Wallet-->>Wallet: On answer-description, set Remote SDP 35 | Wallet-->>Wallet: On answer-candidate, add ICE Candidate 36 | Wallet-->>Wallet: Create Peer Offer & DataChannel 37 | Wallet-->>Server: Emit `wss:offer-description` 38 | Wallet-->>Server: Emit `wss:offer-candidate` 39 | 40 | Note over Website, Wallet: Peer Answer 41 | Website-->>Website: On offer-description, set Remote SDP and create Answer 42 | Website-->>Website: On offer-candidate, add ICE Candidate 43 | Website-->>Server: Emit `wss:answer-description` 44 | Website-->>Server: Emit `wss:answer-candidate` 45 | 46 | Note over Website, Wallet: Data Channel 47 | Website-->>Wallet: On DataChannel, Emit Messages 48 | 49 | ``` 50 | 51 | *Note: It may be possible to handle signaling in a fully decentralized manner in the future. 52 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:nfd.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit Task NFD Lookup 2 | 3 | The AlgoKit NFD Lookup feature allows you to perform a lookup via NFD domain or address, returning the associated address or domain respectively using the AlgoKit CLI. The feature is powered by [NFDomains MainNet API](https://api-docs.nf.domains/). 4 | 5 | ## Usage 6 | 7 | Available commands and possible usage as follows: 8 | 9 | ```bash 10 | $ ~ algokit task nfd-lookup 11 | Usage: algokit task nfd-lookup [OPTIONS] VALUE 12 | 13 | Perform a lookup via NFD domain or address, returning the associated address or domain respectively. 14 | 15 | Options: 16 | -o, --output [full|tiny|address] Output format for NFD API response. Defaults to address|domain resolved. 17 | -h, --help Show this message and exit. 18 | ``` 19 | 20 | ## Options 21 | 22 | - `VALUE`: Specifies the NFD domain or Algorand address to lookup. This argument is required. 23 | - `--output, -o [full|tiny|address]`: Specifies the output format for NFD API response. Defaults to address|domain resolved. 24 | 25 | > When using the `full` and `tiny` output formats, please be aware that these match the [views in get requests of the NFD API](https://api-docs.nf.domains/quick-start#views-in-get-requests). The `address` output format, which is used by default, refers to the respective domain name or address resolved and outputs it as a string (if found). 26 | 27 | ## Example 28 | 29 | To perform a lookup, you can use the nfd-lookup command as follows: 30 | 31 | ```bash 32 | $ algokit task nfd-lookup {NFD_DOMAIN_OR_ALGORAND_ADDRESS} 33 | ``` 34 | 35 | This will perform a lookup and return the associated address or domain. If you want to specify the output format, you can use the --output flag: 36 | 37 | ```bash 38 | $ algokit task nfd-lookup {NFD_DOMAIN_OR_ALGORAND_ADDRESS} --output full 39 | ``` 40 | 41 | If the lookup is successful, the result will be output to the console in a JSON format. 42 | 43 | ## Further Reading 44 | 45 | For in-depth details, visit the [nfd-lookup section](../../cli/index.md#nfd-lookup) in the AlgoKit CLI reference documentation. 46 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:python:source:capabilities:account.md: -------------------------------------------------------------------------------- ```markdown 1 | # Account management 2 | 3 | Account management is one of the core capabilities provided by AlgoKit Utils. It allows you to create mnemonic, idempotent KMD and environment variable injected accounts 4 | that can be used to sign transactions as well as representing a sender address at the same time. 5 | 6 | (account)= 7 | ## `Account` 8 | 9 | Encapsulates a private key with convenience properties for `address`, `signer` and `public_key`. 10 | 11 | There are various methods of obtaining an `Account` instance 12 | 13 | * `get_account`: Returns an `Account` instance with the private key loaded by convention based on the given name identifier: 14 | * from an environment variable containing a mnemonic `{NAME}_MNEMONIC` OR 15 | * loading the account from KMD ny name if it exists (LocalNet only) OR 16 | * creating the account in KMD with associated name (LocalNet only) 17 | 18 | This allows you to have powerful code that will automatically create and fund an account by name locally and when deployed against 19 | TestNet/MainNet will automatically resolve from environment variables 20 | 21 | * `Account.new_account`: Returns a new `Account` using `algosdk.account.generate_account()` 22 | * `Account(private_key)`: Load an existing account from a private key 23 | * `Account(private_key, address)`: Load an existing account from a private key and address, useful for re-keyed accounts 24 | * `get_account_from_mnemonic`: Load an existing account from a mnemonic 25 | * `get_dispenser_account`: Gets a dispenser account that is funded by either: 26 | * Using the LocalNet default account (LocalNet only) OR 27 | * Loading an account from `DISPENSER_MNEMONIC` 28 | 29 | If working with a LocalNet instance, there are some additional functions that rely on a KMD service being exposed: 30 | * `create_kmd_wallet_account`, `get_kmd_wallet_account` or `get_or_create_kmd_wallet_account`: These functions allow retrieving a KMD wallet account by name, 31 | * `get_localnet_default_account`: Gets default localnet account that is funded with algos 32 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:python:markdown:capabilities:account.md: -------------------------------------------------------------------------------- ```markdown 1 | # Account management 2 | 3 | Account management is one of the core capabilities provided by AlgoKit Utils. It allows you to create mnemonic, idempotent KMD and environment variable injected accounts 4 | that can be used to sign transactions as well as representing a sender address at the same time. 5 | 6 | <a id="account"></a> 7 | 8 | ## `Account` 9 | 10 | Encapsulates a private key with convenience properties for `address`, `signer` and `public_key`. 11 | 12 | There are various methods of obtaining an `Account` instance 13 | 14 | * `get_account`: Returns an `Account` instance with the private key loaded by convention based on the given name identifier: 15 | * from an environment variable containing a mnemonic `{NAME}_MNEMONIC` OR 16 | * loading the account from KMD ny name if it exists (LocalNet only) OR 17 | * creating the account in KMD with associated name (LocalNet only) 18 | 19 | This allows you to have powerful code that will automatically create and fund an account by name locally and when deployed against 20 | TestNet/MainNet will automatically resolve from environment variables 21 | * `Account.new_account`: Returns a new `Account` using `algosdk.account.generate_account()` 22 | * `Account(private_key)`: Load an existing account from a private key 23 | * `Account(private_key, address)`: Load an existing account from a private key and address, useful for re-keyed accounts 24 | * `get_account_from_mnemonic`: Load an existing account from a mnemonic 25 | * `get_dispenser_account`: Gets a dispenser account that is funded by either: 26 | * Using the LocalNet default account (LocalNet only) OR 27 | * Loading an account from `DISPENSER_MNEMONIC` 28 | 29 | If working with a LocalNet instance, there are some additional functions that rely on a KMD service being exposed: 30 | 31 | * `create_kmd_wallet_account`, `get_kmd_wallet_account` or `get_or_create_kmd_wallet_account`: These functions allow retrieving a KMD wallet account by name, 32 | * `get_localnet_default_account`: Gets default localnet account that is funded with algos 33 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:tutorials_Hello World_0002-init.md: -------------------------------------------------------------------------------- ```markdown 1 | --- 2 | title: "2. Initializing The Template" 3 | --- 4 | 5 | ## Algokit Init 6 | 7 | To get started, run the following Algokit command to initialize a template: 8 | 9 | ```bash 10 | $ algokit init --template tealscript --name hello_world 11 | ``` 12 | 13 | For this tutorial, I have chosen the name `hello_world` for my project, which will be reflected throughout the rest of this content. If you choose a different name, some parts might be different for you. 14 | 15 | ## Template Layout 16 | 17 | After the init command finishes, you should have the following directory structure: 18 | 19 | ``` 20 | . 21 | ├── README.md 22 | ├── __test__ 23 | │ └── hello_world.test.ts 24 | ├── contracts 25 | │ ├── artifacts 26 | │ │ └── components 27 | │ ├── clients 28 | │ └── hello_world.algo.ts 29 | ├── jest.config.js 30 | ├── package-lock.json 31 | ├── package.json 32 | └── tsconfig.json 33 | ``` 34 | 35 | If you have experience with web development, most of this should look familiar. Below are the key directory and files 36 | 37 | ### __test__/ 38 | #### hello_world.test.ts 39 | 40 | `hello_world.test.ts` is a test for our contract written with Jest. This tutorial won't go too in-depth into testing, but it is a good example on how client-side contract interaction works 41 | 42 | ### contracts/ 43 | 44 | #### hello_world.algo.ts 45 | 46 | `hello_world.algo.ts` is the most important file in the template. This is where our contract logic is defined. You might notice that this file has a `.ts` extension, but also an `.algo.ts`. The `.algo.` is there solely to help tools like ESLint and TypeScript differentiate between regular TypeScript files and TEALScript files. The TEALScript compiler does not require the `.algo.ts` extension but it is highly recommended to use. Any files without `.algo.ts` extension in this template may be mistaken for TypeScript files that should be compiled into JavaScript (instead of TEAL), which may cause errors. 47 | 48 | #### artifacts/ 49 | 50 | `artifacts/` is the directory where all the files generated by the TEALScript compiler and algokit will go. We will go further in-depth on these artifacts in the next step of this tutorial. 51 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:enums:OnApplicationComplete.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / OnApplicationComplete 2 | 3 | # Enumeration: OnApplicationComplete 4 | 5 | Enums for application transactions on-transaction-complete behavior 6 | 7 | ## Table of contents 8 | 9 | ### Enumeration Members 10 | 11 | - [ClearStateOC](OnApplicationComplete.md#clearstateoc) 12 | - [CloseOutOC](OnApplicationComplete.md#closeoutoc) 13 | - [DeleteApplicationOC](OnApplicationComplete.md#deleteapplicationoc) 14 | - [NoOpOC](OnApplicationComplete.md#noopoc) 15 | - [OptInOC](OnApplicationComplete.md#optinoc) 16 | - [UpdateApplicationOC](OnApplicationComplete.md#updateapplicationoc) 17 | 18 | ## Enumeration Members 19 | 20 | ### ClearStateOC 21 | 22 | • **ClearStateOC** = ``3`` 23 | 24 | ClearStateOC is similar to CloseOutOC, but may never fail. This 25 | allows users to reclaim their minimum balance from an application 26 | they no longer wish to opt in to. 27 | 28 | #### Defined in 29 | 30 | types/transactions/base.ts:81 31 | 32 | ___ 33 | 34 | ### CloseOutOC 35 | 36 | • **CloseOutOC** = ``2`` 37 | 38 | CloseOutOC indicates that an application transaction will deallocate 39 | some LocalState for the application from the user's account 40 | 41 | #### Defined in 42 | 43 | types/transactions/base.ts:74 44 | 45 | ___ 46 | 47 | ### DeleteApplicationOC 48 | 49 | • **DeleteApplicationOC** = ``5`` 50 | 51 | DeleteApplicationOC indicates that an application transaction will 52 | delete the AppParams for the application from the creator's balance 53 | record 54 | 55 | #### Defined in 56 | 57 | types/transactions/base.ts:94 58 | 59 | ___ 60 | 61 | ### NoOpOC 62 | 63 | • **NoOpOC** = ``0`` 64 | 65 | NoOpOC indicates that an application transaction will simply call its 66 | ApprovalProgram 67 | 68 | #### Defined in 69 | 70 | types/transactions/base.ts:62 71 | 72 | ___ 73 | 74 | ### OptInOC 75 | 76 | • **OptInOC** = ``1`` 77 | 78 | OptInOC indicates that an application transaction will allocate some 79 | LocalState for the application in the sender's account 80 | 81 | #### Defined in 82 | 83 | types/transactions/base.ts:68 84 | 85 | ___ 86 | 87 | ### UpdateApplicationOC 88 | 89 | • **UpdateApplicationOC** = ``4`` 90 | 91 | UpdateApplicationOC indicates that an application transaction will 92 | update the ApprovalProgram and ClearStateProgram for the application 93 | 94 | #### Defined in 95 | 96 | types/transactions/base.ts:87 97 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-spec](../modules/types_app_spec.md) / CallConfig 2 | 3 | # Interface: CallConfig 4 | 5 | [types/app-spec](../modules/types_app_spec.md).CallConfig 6 | 7 | Call configuration for a method 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [close\_out](types_app_spec.CallConfig.md#close_out) 14 | - [delete\_application](types_app_spec.CallConfig.md#delete_application) 15 | - [no\_op](types_app_spec.CallConfig.md#no_op) 16 | - [opt\_in](types_app_spec.CallConfig.md#opt_in) 17 | - [update\_application](types_app_spec.CallConfig.md#update_application) 18 | 19 | ## Properties 20 | 21 | ### close\_out 22 | 23 | • `Optional` **close\_out**: [`CallConfigValue`](../modules/types_app_spec.md#callconfigvalue) 24 | 25 | Close out call config 26 | 27 | #### Defined in 28 | 29 | [src/types/app-spec.ts:183](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L183) 30 | 31 | ___ 32 | 33 | ### delete\_application 34 | 35 | • `Optional` **delete\_application**: [`CallConfigValue`](../modules/types_app_spec.md#callconfigvalue) 36 | 37 | Delete call config 38 | 39 | #### Defined in 40 | 41 | [src/types/app-spec.ts:187](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L187) 42 | 43 | ___ 44 | 45 | ### no\_op 46 | 47 | • `Optional` **no\_op**: [`CallConfigValue`](../modules/types_app_spec.md#callconfigvalue) 48 | 49 | NoOp call config 50 | 51 | #### Defined in 52 | 53 | [src/types/app-spec.ts:179](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L179) 54 | 55 | ___ 56 | 57 | ### opt\_in 58 | 59 | • `Optional` **opt\_in**: [`CallConfigValue`](../modules/types_app_spec.md#callconfigvalue) 60 | 61 | Opt-in call config 62 | 63 | #### Defined in 64 | 65 | [src/types/app-spec.ts:181](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L181) 66 | 67 | ___ 68 | 69 | ### update\_application 70 | 71 | • `Optional` **update\_application**: [`CallConfigValue`](../modules/types_app_spec.md#callconfigvalue) 72 | 73 | Update call config 74 | 75 | #### Defined in 76 | 77 | [src/types/app-spec.ts:185](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L185) 78 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:get-started:basics:where_to_start.md: -------------------------------------------------------------------------------- ```markdown 1 | title: Where do I start? 2 | 3 | # Smart contracts & dApps 4 | 5 | If you are interested in building an application([dApp](whats_a_dapp.md)) on Algorand, checkout [Algokit](/docs/get-started/algokit), which is a tool for quickly building, testing, and deploying Algorand smart contracts. 6 | 7 | > [Tell me more about Algorand smart contracts!](/docs/get-details/dapps/smart-contracts/) 8 | 9 | 10 | # Tokenization 11 | 12 | This section will walk you through the basics of tokenizing assets on Algorand. We’ll start with showing you how Alice and Bob tokenize their NFT, and then walk through creating fungible tokens. You don’t need to write smart contract code to tokenize assets on Algorand. Assets are a layer-1 primitive, built right into the protocol itself. 13 | 14 | > [I want to learn how to mint NFTs.](/docs/get-started/tokenization/nft/){: target="_blank} 15 | 16 | > [I want to learn how to create fungible tokens.](/docs/get-started/tokenization/ft){: target="_blank} 17 | 18 | ----- 19 | 20 | # Detailed feature documentation 21 | 22 | If you are looking for detailed feature explanations and reference documentation, check out the “Get details” section or just search for what you’re looking for using the search box in the top left corner of the site. 23 | 24 | > [Get all the details on layer-1 features and capabilities.](/docs/get-details/){: target="_blank} 25 | 26 | ----- 27 | 28 | # Developer Blog 29 | 30 | Here you can find code tutorials and prototypes from the Algorand developer community. This is also where big features will be announced. 31 | 32 | > [See the latest articles and code from Algorand and the community.](../../../../blog/){: target="_blank} 33 | 34 | ----- 35 | 36 | # Participate in Algorand Consensus 37 | 38 | Most of this getting started section is targeted towards application developers. If you’re interested in running a MainNet node and participating in Algorand consensus, refer to the "Run a node" section. 39 | 40 | > [I want to run a node.](/docs/run-a-node/setup/types/){: target="_blank} 41 | 42 | > [I want to participate in Algorand consensus.](/docs/run-a-node/participate/){: target="_blank} 43 | 44 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:details:algorand-networks:index.md: -------------------------------------------------------------------------------- ```markdown 1 | title: Overview 2 | 3 | Algorand has three public networks: [**MainNet**](mainnet), [**TestNet**](testnet), and [**BetaNet**](betanet). This section provides details about each of these networks that will help you validate the integrity of your connection to them. 4 | 5 | <center> 6 | **Diagram of the relationship between the three public networks.** 7 | 8 |  9 | 10 | </center> 11 | 12 | Each network page, contains the following information: 13 | 14 | - **What's New** ([M](mainnet#whats-new), [T](testnet#whats-new), [B](betanet#whats-new))- An optional section where new features are highlighted with links to accompanying documentation. 15 | - **Version** ([M](mainnet#version), [T](testnet#version), [B](betanet#version)) - The latest protocol software version. Should match `goal -v` or `GET /versions` [build version](/docs/rest-apis/algod#buildversion). 16 | - **Release Version** ([M](mainnet#release-version), [T](testnet#release-version), [B](betanet#release-version)) - A link to the official release notes where you can view all the latest changes. 17 | - **Genesis ID** ([M](mainnet#genesis-id), [T](testnet#genesis-id), [B](betanet#genesis-id)) - A human-readable identifier for the network. This should not be used as a unique identifier. 18 | - **Genesis Hash** ([M](mainnet#genesis-hash), [T](testnet#genesis-hash), [B](betanet#genesis-hash)) - The unique identifier for the network, present in every transaction. Validate that your transactions match the network you plan to submit them to. 19 | - **FeeSink Address** ([M](mainnet#feesink-address), [T](testnet#feesink-address), [B](betanet#feesink-address)) - Read more about special accounts [here](/docs/get-details/accounts#special-accounts). 20 | - **RewardsPool Address** ([M](mainnet#rewardspool-address), [T](testnet#rewardspool-address), [B](betanet#rewardspool-address)) - Read more about special accounts [here](../accounts#special-accounts). 21 | - **Faucet** ([T](testnet#faucet), [B](betanet#faucet)) - Link to a faucet (TestNet and BetaNet only). 22 | 23 | 24 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:modules:types_debugging.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / types/debugging 2 | 3 | # Module: types/debugging 4 | 5 | ## Table of contents 6 | 7 | ### Interfaces 8 | 9 | - [AVMTracesEventData](../interfaces/types_debugging.AVMTracesEventData.md) 10 | - [TealSourceDebugEventData](../interfaces/types_debugging.TealSourceDebugEventData.md) 11 | - [TealSourcesDebugEventData](../interfaces/types_debugging.TealSourcesDebugEventData.md) 12 | 13 | ### Variables 14 | 15 | - [ALGOKIT\_DIR](types_debugging.md#algokit_dir) 16 | - [DEFAULT\_MAX\_SEARCH\_DEPTH](types_debugging.md#default_max_search_depth) 17 | - [SOURCES\_DIR](types_debugging.md#sources_dir) 18 | - [TEAL\_FILE\_EXT](types_debugging.md#teal_file_ext) 19 | - [TEAL\_SOURCEMAP\_EXT](types_debugging.md#teal_sourcemap_ext) 20 | 21 | ## Variables 22 | 23 | ### ALGOKIT\_DIR 24 | 25 | • `Const` **ALGOKIT\_DIR**: ``".algokit"`` 26 | 27 | The directory name for AlgoKit project related files 28 | 29 | #### Defined in 30 | 31 | [src/types/debugging.ts:9](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/debugging.ts#L9) 32 | 33 | ___ 34 | 35 | ### DEFAULT\_MAX\_SEARCH\_DEPTH 36 | 37 | • `Const` **DEFAULT\_MAX\_SEARCH\_DEPTH**: ``10`` 38 | 39 | The default maximum search depth for file operations 40 | 41 | #### Defined in 42 | 43 | [src/types/debugging.ts:21](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/debugging.ts#L21) 44 | 45 | ___ 46 | 47 | ### SOURCES\_DIR 48 | 49 | • `Const` **SOURCES\_DIR**: ``"sources"`` 50 | 51 | The directory name for debug source files 52 | 53 | #### Defined in 54 | 55 | [src/types/debugging.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/debugging.ts#L12) 56 | 57 | ___ 58 | 59 | ### TEAL\_FILE\_EXT 60 | 61 | • `Const` **TEAL\_FILE\_EXT**: ``".teal"`` 62 | 63 | The file extension for TEAL files 64 | 65 | #### Defined in 66 | 67 | [src/types/debugging.ts:15](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/debugging.ts#L15) 68 | 69 | ___ 70 | 71 | ### TEAL\_SOURCEMAP\_EXT 72 | 73 | • `Const` **TEAL\_SOURCEMAP\_EXT**: ``".teal.map"`` 74 | 75 | The file extension for TEAL source map files 76 | 77 | #### Defined in 78 | 79 | [src/types/debugging.ts:18](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/debugging.ts#L18) 80 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:completions.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit Completions 2 | 3 | AlgoKit supports shell completions for zsh and bash shells, e.g. 4 | 5 | **bash** 6 | 7 | ``` 8 | $ algokit <Press Tab> 9 | bootstrap completions config doctor explore goal init sandbox 10 | ``` 11 | 12 | **zsh** 13 | 14 | ``` 15 | $ ~ algokit <Press Tab> 16 | bootstrap -- Bootstrap AlgoKit project dependencies. 17 | completions -- Install and Uninstall AlgoKit shell integration. 18 | config -- Configure AlgoKit options. 19 | doctor -- Run the Algorand doctor CLI. 20 | explore -- Explore the specified network in the... 21 | goal -- Run the Algorand goal CLI against the AlgoKit Sandbox. 22 | init -- Initializes a new project. 23 | sandbox -- Manage the AlgoKit sandbox. 24 | ``` 25 | 26 | ## Installing 27 | 28 | To setup the completions, AlgoKit provides commands that will modify the current users interactive shell script (`.bashrc`/`.zshrc`). 29 | 30 | > **Note** 31 | > If you would prefer AlgoKit to not modify your interactive shell scripts you can install the completions yourself by following the instructions [here](https://click.palletsprojects.com/en/8.1.x/shell-completion/). 32 | 33 | To [install](../cli/index.md#install) completions for the current shell execute `algokit completions install`. You should see output similar to below: 34 | 35 | ``` 36 | $ ~ algokit completions install 37 | AlgoKit completions installed for zsh 🎉 38 | Restart shell or run `. ~/.zshrc` to enable completions 39 | ``` 40 | 41 | After installing the completions don't forget to restart the shell to begin using them! 42 | 43 | ## Uninstalling 44 | 45 | To [uninstall](../cli/index.md#uninstall) completions for the current shell run `algokit completions uninstall`: 46 | 47 | ``` 48 | $ ~ algokit completions uninstall 49 | AlgoKit completions uninstalled for zsh 🎉 50 | ``` 51 | 52 | ## Shell Option 53 | 54 | To install/uninstall the completions for a specific [shell](../cli/index.md#shell) the `--shell` option can be used e.g. `algokit completions install --shell bash`. 55 | 56 | To learn more about the `algokit completions` command, please refer to [completions](../cli/index.md#completions) in the AlgoKit CLI reference documentation. 57 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-logs.md: -------------------------------------------------------------------------------- ```markdown 1 | # Logging 2 | 3 | Algorand Python provides a [`log` method](./api-algopy.md#algopy.log) that allows you to emit debugging and event information as well as return values from your contracts to the caller. 4 | 5 | This `log` method is a superset of the [AVM `log` method](./lg-ops.md) that adds extra functionality: 6 | 7 | - You can log multiple items rather than a single item 8 | - Items are concatenated together with an optional separator (which defaults to: `""`) 9 | - Items are automatically converted to bytes for you 10 | - Support for: 11 | - `int` literals / module variables (encoded as raw bytes, not ASCII) 12 | - `UInt64` values (encoded as raw bytes, not ASCII) 13 | - `str` literals / module variables (encoded as UTF-8) 14 | - `bytes` literals / module variables (encoded as is) 15 | - `Bytes` values (encoded as is) 16 | - `BytesBacked` values, which includes [`String`](./api-algopy.md#algopy.String), [`BigUInt`](./api-algopy.md#algopy.BigUInt), [`Account`](./api-algopy.md#algopy.Account) and all of the [ARC-4 types](./api-algopy.arc4.md) (encoded as their underlying bytes values) 17 | 18 | Logged values are [available to the calling client](https://developer.algorand.org/docs/rest-apis/algod/#pendingtransactionresponse) and attached to the transaction record stored on the blockchain ledger. 19 | 20 | If you want to emit ARC-28 events in the logs then there is a [purpose-built function for that](./lg-arc28.md). 21 | 22 | Here's an example contract that uses the log method in various ways: 23 | 24 | ```python 25 | from algopy import BigUInt, Bytes, Contract, log, op 26 | 27 | class MyContract(Contract): 28 | def approval_program(self) -> bool: 29 | log(0) 30 | log(b"1") 31 | log("2") 32 | log(op.Txn.num_app_args + 3) 33 | log(Bytes(b"4") if op.Txn.num_app_args else Bytes()) 34 | log( 35 | b"5", 36 | 6, 37 | op.Txn.num_app_args + 7, 38 | BigUInt(8), 39 | Bytes(b"9") if op.Txn.num_app_args else Bytes(), 40 | sep="_", 41 | ) 42 | return True 43 | 44 | def clear_state_program(self) -> bool: 45 | return True 46 | ``` 47 | ```