This is page 13 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/taxonomy/SDKs:javascript:classes:modelsv2.BuildVersion.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / BuildVersion 2 | 3 | # Class: BuildVersion 4 | 5 | [modelsv2](../modules/modelsv2.md).BuildVersion 6 | 7 | ## Hierarchy 8 | 9 | - `default` 10 | 11 | ↳ **`BuildVersion`** 12 | 13 | ## Table of contents 14 | 15 | ### Constructors 16 | 17 | - [constructor](modelsv2.BuildVersion.md#constructor) 18 | 19 | ### Properties 20 | 21 | - [attribute\_map](modelsv2.BuildVersion.md#attribute_map) 22 | - [branch](modelsv2.BuildVersion.md#branch) 23 | - [buildNumber](modelsv2.BuildVersion.md#buildnumber) 24 | - [channel](modelsv2.BuildVersion.md#channel) 25 | - [commitHash](modelsv2.BuildVersion.md#commithash) 26 | - [major](modelsv2.BuildVersion.md#major) 27 | - [minor](modelsv2.BuildVersion.md#minor) 28 | 29 | ### Methods 30 | 31 | - [get\_obj\_for\_encoding](modelsv2.BuildVersion.md#get_obj_for_encoding) 32 | - [from\_obj\_for\_encoding](modelsv2.BuildVersion.md#from_obj_for_encoding) 33 | 34 | ## Constructors 35 | 36 | ### constructor 37 | 38 | • **new BuildVersion**(`«destructured»`) 39 | 40 | Creates a new `BuildVersion` object. 41 | 42 | #### Parameters 43 | 44 | | Name | Type | 45 | | :------ | :------ | 46 | | `«destructured»` | `Object` | 47 | | › `branch` | `string` | 48 | | › `buildNumber` | `number` \| `bigint` | 49 | | › `channel` | `string` | 50 | | › `commitHash` | `string` | 51 | | › `major` | `number` \| `bigint` | 52 | | › `minor` | `number` \| `bigint` | 53 | 54 | #### Overrides 55 | 56 | BaseModel.constructor 57 | 58 | #### Defined in 59 | 60 | client/v2/algod/models/types.ts:2443 61 | 62 | ## Properties 63 | 64 | ### attribute\_map 65 | 66 | • **attribute\_map**: `Record`\<`string`, `string`\> 67 | 68 | #### Inherited from 69 | 70 | BaseModel.attribute\_map 71 | 72 | #### Defined in 73 | 74 | client/v2/basemodel.ts:56 75 | 76 | ___ 77 | 78 | ### branch 79 | 80 | • **branch**: `string` 81 | 82 | #### Defined in 83 | 84 | client/v2/algod/models/types.ts:2422 85 | 86 | ___ 87 | 88 | ### buildNumber 89 | 90 | • **buildNumber**: `number` \| `bigint` 91 | 92 | #### Defined in 93 | 94 | client/v2/algod/models/types.ts:2424 95 | 96 | ___ 97 | 98 | ### channel 99 | 100 | • **channel**: `string` 101 | 102 | #### Defined in 103 | 104 | client/v2/algod/models/types.ts:2426 105 | 106 | ___ 107 | 108 | ### commitHash 109 | 110 | • **commitHash**: `string` 111 | 112 | #### Defined in 113 | 114 | client/v2/algod/models/types.ts:2428 115 | 116 | ___ 117 | 118 | ### major 119 | 120 | • **major**: `number` \| `bigint` 121 | 122 | #### Defined in 123 | 124 | client/v2/algod/models/types.ts:2430 125 | 126 | ___ 127 | 128 | ### minor 129 | 130 | • **minor**: `number` \| `bigint` 131 | 132 | #### Defined in 133 | 134 | client/v2/algod/models/types.ts:2432 135 | 136 | ## Methods 137 | 138 | ### get\_obj\_for\_encoding 139 | 140 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 141 | 142 | Get an object ready for encoding to either JSON or msgpack. 143 | 144 | #### Parameters 145 | 146 | | Name | Type | Default value | Description | 147 | | :------ | :------ | :------ | :------ | 148 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 149 | 150 | #### Returns 151 | 152 | `Record`\<`string`, `any`\> 153 | 154 | #### Inherited from 155 | 156 | BaseModel.get\_obj\_for\_encoding 157 | 158 | #### Defined in 159 | 160 | client/v2/basemodel.ts:65 161 | 162 | ___ 163 | 164 | ### from\_obj\_for\_encoding 165 | 166 | ▸ `Static` **from_obj_for_encoding**(`data`): [`BuildVersion`](modelsv2.BuildVersion.md) 167 | 168 | #### Parameters 169 | 170 | | Name | Type | 171 | | :------ | :------ | 172 | | `data` | `Record`\<`string`, `any`\> | 173 | 174 | #### Returns 175 | 176 | [`BuildVersion`](modelsv2.BuildVersion.md) 177 | 178 | #### Defined in 179 | 180 | client/v2/algod/models/types.ts:2477 181 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0009.md: -------------------------------------------------------------------------------- ```markdown 1 | --- 2 | arc: 9 3 | title: Algorand Wallet Algodv2 and Indexer API 4 | description: An API for accessing Algod and Indexer through a user's preferred connection. 5 | author: DanBurton (@DanBurton) 6 | discussions-to: https://github.com/algorandfoundation/ARCs/issues/52 7 | status: Deprecated 8 | type: Standards Track 9 | category: Interface 10 | created: 2021-08-09 11 | --- 12 | 13 | # Algorand Wallet Algodv2 and Indexer API 14 | 15 | ## Abstract 16 | 17 | Functions `getAlgodv2Client` and `getIndexerClient` which return a `BaseHTTPClient` that can be used to construct an `Algodv2Client` and an `IndexerClient` respectively (from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>); 18 | 19 | ## Specification 20 | 21 | ### Interface `GetAlgodv2ClientFunction` 22 | 23 | ```ts 24 | type GetAlgodv2ClientFunction = () => Promise<BaseHTTPClient> 25 | ``` 26 | 27 | Returns a promised `BaseHTTPClient` that can be used to then build an `Algodv2Client`, where `BaseHTTPClient` is an interface matching the interface `algosdk.BaseHTTPClient` from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>). 28 | 29 | ### Interface `GetIndexerClientFunction` 30 | 31 | ```ts 32 | type GetIndexerClientFunction = () => Promise<BaseHTTPClient> 33 | ``` 34 | 35 | Returns a promised `BaseHTTPClient` that can be used to then build an `Indexer`, where `BaseHTTPClient` is an interface matching the interface `algosdk.BaseHTTPClient` from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>). 36 | 37 | ### Security considerations 38 | 39 | The returned `BaseHTTPClient` **SHOULD** filter the queries made to prevent potential attacks and reject (i.e., throw an exception) if this is not satisfied. 40 | A non-exhaustive list of checks is provided below: 41 | * Check that the relative PATH does not contain `..`. 42 | * Check that the only provided headers are the ones used by the SDK (when this ARC was written: `accept` and `content-type`) and their values are the ones provided by the SDK. 43 | 44 | `BaseHTTPClient` **MAY** impose rate limits. 45 | 46 | For higher security, `BaseHTTPClient` **MAY** also check the queries with regards to the OpenAPI specification of the node and the indexer. 47 | 48 | In case the wallet uses an API service that is secret or provided by the user, the wallet **MUST** ensure that the URL of the service and the potential tokens/headers are not leaked to the dApp. 49 | 50 | > Leakage may happen by accidentally including too much information in responses or errors returned by the various methods. For example, if the nodeJS superagent library is used without filtering errors and responses, errors and responses may include the request object, which includes the potentially secret API service URL / secret token headers. 51 | 52 | ## Rationale 53 | 54 | Nontrivial dApps often require the ability to query the network for activity. Algorand dApps written without regard to wallets are likely written using `Algodv2` and `Indexer` from `algosdk`. 55 | This document allows dApps to instantiate `Algodv2` and `Indexer` for a wallet API service, making it easy for JavaScript dApp authors to port their code to work with wallets. 56 | 57 | ## Security Considerations 58 | 59 | None. 60 | 61 | ## Copyright 62 | 63 | Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>. 64 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/algorand-client-interface](../modules/types_algorand_client_interface.md) / AlgorandClientInterface 2 | 3 | # Interface: AlgorandClientInterface 4 | 5 | [types/algorand-client-interface](../modules/types_algorand_client_interface.md).AlgorandClientInterface 6 | 7 | Interface for the bulk of the `AlgorandClient` functionality. 8 | 9 | Used to take a dependency on AlgorandClient without generating a circular dependency. 10 | 11 | ## Implemented by 12 | 13 | - [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md) 14 | 15 | ## Table of contents 16 | 17 | ### Properties 18 | 19 | - [app](types_algorand_client_interface.AlgorandClientInterface.md#app) 20 | - [appDeployer](types_algorand_client_interface.AlgorandClientInterface.md#appdeployer) 21 | - [client](types_algorand_client_interface.AlgorandClientInterface.md#client) 22 | - [createTransaction](types_algorand_client_interface.AlgorandClientInterface.md#createtransaction) 23 | - [send](types_algorand_client_interface.AlgorandClientInterface.md#send) 24 | 25 | ### Methods 26 | 27 | - [newGroup](types_algorand_client_interface.AlgorandClientInterface.md#newgroup) 28 | 29 | ## Properties 30 | 31 | ### app 32 | 33 | • **app**: [`AppManager`](../classes/types_app_manager.AppManager.md) 34 | 35 | #### Defined in 36 | 37 | [src/types/algorand-client-interface.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L16) 38 | 39 | ___ 40 | 41 | ### appDeployer 42 | 43 | • **appDeployer**: [`AppDeployer`](../classes/types_app_deployer.AppDeployer.md) 44 | 45 | #### Defined in 46 | 47 | [src/types/algorand-client-interface.ts:17](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L17) 48 | 49 | ___ 50 | 51 | ### client 52 | 53 | • **client**: `Object` 54 | 55 | #### Type declaration 56 | 57 | | Name | Type | 58 | | :------ | :------ | 59 | | `algod` | `AlgodClient` | 60 | | `indexer?` | `IndexerClient` | 61 | | `isLocalNet` | () => `Promise`\<`boolean`\> | 62 | | `isMainNet` | () => `Promise`\<`boolean`\> | 63 | | `isTestNet` | () => `Promise`\<`boolean`\> | 64 | | `network` | () => `Promise`\<[`NetworkDetails`](types_network_client.NetworkDetails.md)\> | 65 | 66 | #### Defined in 67 | 68 | [src/types/algorand-client-interface.ts:21](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L21) 69 | 70 | ___ 71 | 72 | ### createTransaction 73 | 74 | • **createTransaction**: [`AlgorandClientTransactionCreator`](../classes/types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md) 75 | 76 | #### Defined in 77 | 78 | [src/types/algorand-client-interface.ts:19](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L19) 79 | 80 | ___ 81 | 82 | ### send 83 | 84 | • **send**: [`AlgorandClientTransactionSender`](../classes/types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md) 85 | 86 | #### Defined in 87 | 88 | [src/types/algorand-client-interface.ts:18](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L18) 89 | 90 | ## Methods 91 | 92 | ### newGroup 93 | 94 | ▸ **newGroup**(): [`TransactionComposer`](../classes/types_composer.TransactionComposer.md) 95 | 96 | #### Returns 97 | 98 | [`TransactionComposer`](../classes/types_composer.TransactionComposer.md) 99 | 100 | #### Defined in 101 | 102 | [src/types/algorand-client-interface.ts:20](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L20) 103 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionAssetConfig 2 | 3 | # Class: TransactionAssetConfig 4 | 5 | [indexerModels](../modules/indexerModels.md).TransactionAssetConfig 6 | 7 | Fields for asset allocation, re-configuration, and destruction. 8 | A zero value for asset-id indicates asset creation. 9 | A zero value for the params indicates asset destruction. 10 | Definition: 11 | data/transactions/asset.go : AssetConfigTxnFields 12 | 13 | ## Hierarchy 14 | 15 | - `default` 16 | 17 | ↳ **`TransactionAssetConfig`** 18 | 19 | ## Table of contents 20 | 21 | ### Constructors 22 | 23 | - [constructor](indexerModels.TransactionAssetConfig.md#constructor) 24 | 25 | ### Properties 26 | 27 | - [assetId](indexerModels.TransactionAssetConfig.md#assetid) 28 | - [attribute\_map](indexerModels.TransactionAssetConfig.md#attribute_map) 29 | - [params](indexerModels.TransactionAssetConfig.md#params) 30 | 31 | ### Methods 32 | 33 | - [get\_obj\_for\_encoding](indexerModels.TransactionAssetConfig.md#get_obj_for_encoding) 34 | - [from\_obj\_for\_encoding](indexerModels.TransactionAssetConfig.md#from_obj_for_encoding) 35 | 36 | ## Constructors 37 | 38 | ### constructor 39 | 40 | • **new TransactionAssetConfig**(`«destructured»`) 41 | 42 | Creates a new `TransactionAssetConfig` object. 43 | 44 | #### Parameters 45 | 46 | | Name | Type | 47 | | :------ | :------ | 48 | | `«destructured»` | `Object` | 49 | | › `assetId?` | `number` \| `bigint` | 50 | | › `params?` | [`AssetParams`](indexerModels.AssetParams.md) | 51 | 52 | #### Overrides 53 | 54 | BaseModel.constructor 55 | 56 | #### Defined in 57 | 58 | client/v2/indexer/models/types.ts:4883 59 | 60 | ## Properties 61 | 62 | ### assetId 63 | 64 | • `Optional` **assetId**: `number` \| `bigint` 65 | 66 | (xaid) ID of the asset being configured or empty if creating. 67 | 68 | #### Defined in 69 | 70 | client/v2/indexer/models/types.ts:4865 71 | 72 | ___ 73 | 74 | ### attribute\_map 75 | 76 | • **attribute\_map**: `Record`\<`string`, `string`\> 77 | 78 | #### Inherited from 79 | 80 | BaseModel.attribute\_map 81 | 82 | #### Defined in 83 | 84 | client/v2/basemodel.ts:56 85 | 86 | ___ 87 | 88 | ### params 89 | 90 | • `Optional` **params**: [`AssetParams`](indexerModels.AssetParams.md) 91 | 92 | AssetParams specifies the parameters for an asset. 93 | (apar) when part of an AssetConfig transaction. 94 | Definition: 95 | data/transactions/asset.go : AssetParams 96 | 97 | #### Defined in 98 | 99 | client/v2/indexer/models/types.ts:4873 100 | 101 | ## Methods 102 | 103 | ### get\_obj\_for\_encoding 104 | 105 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 106 | 107 | Get an object ready for encoding to either JSON or msgpack. 108 | 109 | #### Parameters 110 | 111 | | Name | Type | Default value | Description | 112 | | :------ | :------ | :------ | :------ | 113 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 114 | 115 | #### Returns 116 | 117 | `Record`\<`string`, `any`\> 118 | 119 | #### Inherited from 120 | 121 | BaseModel.get\_obj\_for\_encoding 122 | 123 | #### Defined in 124 | 125 | client/v2/basemodel.ts:65 126 | 127 | ___ 128 | 129 | ### from\_obj\_for\_encoding 130 | 131 | ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionAssetConfig`](indexerModels.TransactionAssetConfig.md) 132 | 133 | #### Parameters 134 | 135 | | Name | Type | 136 | | :------ | :------ | 137 | | `data` | `Record`\<`string`, `any`\> | 138 | 139 | #### Returns 140 | 141 | [`TransactionAssetConfig`](indexerModels.TransactionAssetConfig.md) 142 | 143 | #### Defined in 144 | 145 | client/v2/indexer/models/types.ts:4901 146 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-compile.md: -------------------------------------------------------------------------------- ```markdown 1 | # Compiling to AVM bytecode 2 | 3 | The PuyaPy compiler can compile Algorand Python smart contracts directly into AVM bytecode. 4 | Once compiled, this bytecode can be utilized to construct AVM Application Call transactions both on and off chain. 5 | 6 | ## Outputting AVM bytecode from CLI 7 | 8 | The `--output-bytecode` option can be used to generate `.bin` files for smart contracts and logic signatures, producing an approval and clear program for each smart contract. 9 | 10 | ## Obtaining bytecode within other contracts 11 | 12 | The [`compile_contract`](#algopy.compile_contract) function takes an Algorand Python smart contract class and returns a [`CompiledContract`](#algopy.CompiledContract), 13 | The global state, local state and program pages allocation parameters are derived from the contract by default, but can be overridden. 14 | This compiled contract can then be used to create an [`algopy.itxn.ApplicationCall`](#algopy.itxn.ApplicationCall) transaction or used with the [ARC4](#arc4-contracts) functions. 15 | 16 | The [`compile_logicsig`](#algopy.compile_logicsig) takes an Algorand Python logic signature and returns a [`CompiledLogicSig`](#algopy.CompiledLogicSig), which can be used to 17 | verify if a transaction has been signed by a particular logic signature. 18 | 19 | ## Template variables 20 | Algorand Python supports defining [`algopy.TemplateVar`](#algopy.TemplateVar) variables that can be substituted during compilation. 21 | 22 | For example, the following contract has `UInt64` and `Bytes` template variables. 23 | ```{code-block} python 24 | :caption: templated_contract.py 25 | from algopy import ARC4Contract, Bytes, TemplateVar, UInt64, arc4 26 | 27 | 28 | class TemplatedContract(ARC4Contract): 29 | 30 | @arc4.abimethod 31 | def my_method(self) -> UInt64: 32 | return TemplateVar[UInt64]("SOME_UINT") 33 | 34 | @arc4.abimethod 35 | def my_other_method(self) -> Bytes: 36 | return TemplateVar[Bytes]("SOME_BYTES") 37 | ``` 38 | 39 | When compiling to bytecode, the values for these template variables must be provided. These values can be provided via the CLI, 40 | or through the `template_vars` parameter of the [`compile_contract`](#algopy.compile_contract) and [`compile_logicsig`](#algopy.compile_logicsig) functions. 41 | 42 | ### CLI 43 | 44 | The `--template-var` option can be used to [define](compiler.md#defining-template-values) each variable. 45 | 46 | For example to provide the values for the above example contract the following command could be used 47 | `puyapy --template-var SOME_UINT=123 --template-var SOME_BYTES=0xABCD templated_contract.py` 48 | 49 | ### Within other contracts 50 | 51 | The functions [`compile_contract`](#algopy.compile_contract) and [`compile_logicsig`](#algopy.compile_logicsig) both have an optional `template_vars` parameter 52 | which can be used to define template variables. Variables defined in this manner take priority over variables defined on the CLI. 53 | 54 | ```python 55 | from algopy import Bytes, UInt64, arc4, compile_contract, subroutine 56 | 57 | from templated_contract import TemplatedContract 58 | 59 | @subroutine 60 | def create_templated_contract() -> None: 61 | compiled = compile_contract( 62 | TemplatedContract, 63 | global_uints=2, # customize allocated global uints 64 | template_vars={ # provide template vars 65 | "SOME_UINT": UInt64(123), 66 | "SOME_BYTES": Bytes(b"\xAB\xCD") 67 | }, 68 | ) 69 | arc4.arc4_create(TemplatedContract, compiled=compiled) 70 | ``` 71 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / PendingTransactionsResponse 2 | 3 | # Class: PendingTransactionsResponse 4 | 5 | [modelsv2](../modules/modelsv2.md).PendingTransactionsResponse 6 | 7 | A potentially truncated list of transactions currently in the node's transaction 8 | pool. You can compute whether or not the list is truncated if the number of 9 | elements in the **top-transactions** array is fewer than **total-transactions**. 10 | 11 | ## Hierarchy 12 | 13 | - `default` 14 | 15 | ↳ **`PendingTransactionsResponse`** 16 | 17 | ## Table of contents 18 | 19 | ### Constructors 20 | 21 | - [constructor](modelsv2.PendingTransactionsResponse.md#constructor) 22 | 23 | ### Properties 24 | 25 | - [attribute\_map](modelsv2.PendingTransactionsResponse.md#attribute_map) 26 | - [topTransactions](modelsv2.PendingTransactionsResponse.md#toptransactions) 27 | - [totalTransactions](modelsv2.PendingTransactionsResponse.md#totaltransactions) 28 | 29 | ### Methods 30 | 31 | - [get\_obj\_for\_encoding](modelsv2.PendingTransactionsResponse.md#get_obj_for_encoding) 32 | - [from\_obj\_for\_encoding](modelsv2.PendingTransactionsResponse.md#from_obj_for_encoding) 33 | 34 | ## Constructors 35 | 36 | ### constructor 37 | 38 | • **new PendingTransactionsResponse**(`«destructured»`) 39 | 40 | Creates a new `PendingTransactionsResponse` object. 41 | 42 | #### Parameters 43 | 44 | | Name | Type | 45 | | :------ | :------ | 46 | | `«destructured»` | `Object` | 47 | | › `topTransactions` | [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] | 48 | | › `totalTransactions` | `number` \| `bigint` | 49 | 50 | #### Overrides 51 | 52 | BaseModel.constructor 53 | 54 | #### Defined in 55 | 56 | client/v2/algod/models/types.ts:4080 57 | 58 | ## Properties 59 | 60 | ### attribute\_map 61 | 62 | • **attribute\_map**: `Record`\<`string`, `string`\> 63 | 64 | #### Inherited from 65 | 66 | BaseModel.attribute\_map 67 | 68 | #### Defined in 69 | 70 | client/v2/basemodel.ts:56 71 | 72 | ___ 73 | 74 | ### topTransactions 75 | 76 | • **topTransactions**: [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] 77 | 78 | An array of signed transaction objects. 79 | 80 | #### Defined in 81 | 82 | client/v2/algod/models/types.ts:4068 83 | 84 | ___ 85 | 86 | ### totalTransactions 87 | 88 | • **totalTransactions**: `number` \| `bigint` 89 | 90 | Total number of transactions in the pool. 91 | 92 | #### Defined in 93 | 94 | client/v2/algod/models/types.ts:4073 95 | 96 | ## Methods 97 | 98 | ### get\_obj\_for\_encoding 99 | 100 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 101 | 102 | Get an object ready for encoding to either JSON or msgpack. 103 | 104 | #### Parameters 105 | 106 | | Name | Type | Default value | Description | 107 | | :------ | :------ | :------ | :------ | 108 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 109 | 110 | #### Returns 111 | 112 | `Record`\<`string`, `any`\> 113 | 114 | #### Inherited from 115 | 116 | BaseModel.get\_obj\_for\_encoding 117 | 118 | #### Defined in 119 | 120 | client/v2/basemodel.ts:65 121 | 122 | ___ 123 | 124 | ### from\_obj\_for\_encoding 125 | 126 | ▸ `Static` **from_obj_for_encoding**(`data`): [`PendingTransactionsResponse`](modelsv2.PendingTransactionsResponse.md) 127 | 128 | #### Parameters 129 | 130 | | Name | Type | 131 | | :------ | :------ | 132 | | `data` | `Record`\<`string`, `any`\> | 133 | 134 | #### Returns 135 | 136 | [`PendingTransactionsResponse`](modelsv2.PendingTransactionsResponse.md) 137 | 138 | #### Defined in 139 | 140 | client/v2/algod/models/types.ts:4098 141 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:arc4-types.md: -------------------------------------------------------------------------------- ```markdown 1 | # ARC4 Types 2 | 3 | These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://arc.algorand.foundation/ARCs/arc-0004) for more details on the spec. 4 | 5 | ```{hint} 6 | Test context manager provides _value generators_ for ARC4 types. To access their _value generators_, use `{context_instance}.any.arc4` property. See more examples below. 7 | ``` 8 | 9 | ```{note} 10 | For all `algopy.arc4` types with and without respective _value generator_, instantiation can be performed directly. If you have a suggestion for a new _value generator_ implementation, please open an issue in the [`algorand-python-testing`](https://github.com/algorandfoundation/algorand-python-testing) repository or contribute by following the [contribution guide](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md). 11 | ``` 12 | 13 | ```{testsetup} 14 | import algopy 15 | from algopy_testing import algopy_testing_context 16 | 17 | # Create the context manager for snippets below 18 | ctx_manager = algopy_testing_context() 19 | 20 | # Enter the context 21 | context = ctx_manager.__enter__() 22 | ``` 23 | 24 | ## Unsigned Integers 25 | 26 | ```{testcode} 27 | from algopy import arc4 28 | 29 | # Integer types 30 | uint8_value = arc4.UInt8(255) 31 | uint16_value = arc4.UInt16(65535) 32 | uint32_value = arc4.UInt32(4294967295) 33 | uint64_value = arc4.UInt64(18446744073709551615) 34 | 35 | ... # instantiate test context 36 | # Generate a random unsigned arc4 integer with default range 37 | uint8 = context.any.arc4.uint8() 38 | uint16 = context.any.arc4.uint16() 39 | uint32 = context.any.arc4.uint32() 40 | uint64 = context.any.arc4.uint64() 41 | biguint128 = context.any.arc4.biguint128() 42 | biguint256 = context.any.arc4.biguint256() 43 | biguint512 = context.any.arc4.biguint512() 44 | 45 | # Generate a random unsigned arc4 integer with specified range 46 | uint8_custom = context.any.arc4.uint8(min_value=10, max_value=100) 47 | uint16_custom = context.any.arc4.uint16(min_value=1000, max_value=5000) 48 | uint32_custom = context.any.arc4.uint32(min_value=100000, max_value=1000000) 49 | uint64_custom = context.any.arc4.uint64(min_value=1000000000, max_value=10000000000) 50 | biguint128_custom = context.any.arc4.biguint128(min_value=1000000000000000, max_value=10000000000000000) 51 | biguint256_custom = context.any.arc4.biguint256(min_value=1000000000000000000000000, max_value=10000000000000000000000000) 52 | biguint512_custom = context.any.arc4.biguint512(min_value=10000000000000000000000000000000000, max_value=10000000000000000000000000000000000) 53 | ``` 54 | 55 | ## Address 56 | 57 | ```{testcode} 58 | from algopy import arc4 59 | 60 | # Address type 61 | address_value = arc4.Address("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ") 62 | 63 | # Generate a random address 64 | random_address = context.any.arc4.address() 65 | 66 | # Access native underlaying type 67 | native = random_address.native 68 | ``` 69 | 70 | ## Dynamic Bytes 71 | 72 | ```{testcode} 73 | from algopy import arc4 74 | 75 | # Dynamic byte string 76 | bytes_value = arc4.DynamicBytes(b"Hello, Algorand!") 77 | 78 | # Generate random dynamic bytes 79 | random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the arc4 dynamic bytes 80 | ``` 81 | 82 | ## String 83 | 84 | ```{testcode} 85 | from algopy import arc4 86 | 87 | # UTF-8 encoded string 88 | string_value = arc4.String("Hello, Algorand!") 89 | 90 | # Generate random string 91 | random_string = context.any.arc4.string(n=12) # n is the number of bits in the arc4 string 92 | ``` 93 | 94 | ```{testcleanup} 95 | ctx_manager.__exit__(None, None, None) 96 | ``` 97 | ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/tinyman/opt_in.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; 2 | import { generateOptIntoAssetTxns, generateOptIntoValidatorTxns, generateOptOutOfValidatorTxns, SupportedNetwork } from '@tinymanorg/tinyman-js-sdk'; 3 | import { algodClient } from '../../../algorand-client.js'; 4 | import { env } from '../../../env.js'; 5 | 6 | export const optInTools: Tool[] = [ 7 | { 8 | name: 'api_tinyman_get_asset_optin_quote', 9 | description: 'Get quote for opting into a Tinyman pool token', 10 | inputSchema: { 11 | type: 'object', 12 | properties: { 13 | assetId: { 14 | type: 'integer', 15 | description: 'ID of the pool token asset' 16 | }, 17 | initiatorAddr: { 18 | type: 'string', 19 | description: 'Address of the account to opt in' 20 | } 21 | }, 22 | required: ['assetId', 'initiatorAddr'] 23 | } 24 | }, 25 | { 26 | name: 'api_tinyman_get_validator_optin_quote', 27 | description: 'Get quote for opting into Tinyman validator app', 28 | inputSchema: { 29 | type: 'object', 30 | properties: { 31 | initiatorAddr: { 32 | type: 'string', 33 | description: 'Address of the account to opt in' 34 | }, 35 | version: { 36 | type: 'string', 37 | enum: ['v1_1', 'v2'], 38 | description: 'Tinyman protocol version', 39 | default: 'v2' 40 | } 41 | }, 42 | required: ['initiatorAddr'] 43 | } 44 | }, 45 | { 46 | name: 'api_tinyman_get_validator_optout_quote', 47 | description: 'Get quote for opting out of Tinyman validator app', 48 | inputSchema: { 49 | type: 'object', 50 | properties: { 51 | initiatorAddr: { 52 | type: 'string', 53 | description: 'Address of the account to opt out' 54 | }, 55 | version: { 56 | type: 'string', 57 | enum: ['v1_1', 'v2'], 58 | description: 'Tinyman protocol version', 59 | default: 'v2' 60 | } 61 | }, 62 | required: ['initiatorAddr'] 63 | } 64 | } 65 | ]; 66 | 67 | export async function handleOptInTools(args: any): Promise<any> { 68 | const { name, initiatorAddr, version = 'v2' } = args; 69 | 70 | try { 71 | let quote; 72 | 73 | if (name === 'api_tinyman_get_asset_optin_quote') { 74 | const { assetId } = args; 75 | quote = await generateOptIntoAssetTxns({ 76 | client: algodClient, 77 | assetID: assetId, 78 | initiatorAddr 79 | }); 80 | } 81 | else if (name === 'api_tinyman_get_validator_optin_quote') { 82 | quote = await generateOptIntoValidatorTxns({ 83 | client: algodClient, 84 | network: env.algorand_network as SupportedNetwork, 85 | contractVersion: version, 86 | initiatorAddr 87 | }); 88 | } 89 | else if (name === 'api_tinyman_get_validator_optout_quote') { 90 | quote = await generateOptOutOfValidatorTxns({ 91 | client: algodClient, 92 | network: env.algorand_network as SupportedNetwork, 93 | contractVersion: version, 94 | initiatorAddr 95 | }); 96 | } 97 | else { 98 | throw new McpError( 99 | ErrorCode.MethodNotFound, 100 | `Unknown opt-in tool: ${name}` 101 | ); 102 | } 103 | 104 | return { 105 | version, 106 | initiatorAddr, 107 | transactionCount: quote.length, 108 | estimatedFees: quote.reduce((sum, txn) => sum + txn.txn.fee, 0) 109 | }; 110 | } catch (error) { 111 | throw new McpError( 112 | ErrorCode.InternalError, 113 | `Failed to get opt-in/out quote: ${error instanceof Error ? error.message : String(error)}` 114 | ); 115 | } 116 | } 117 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-arc28.md: -------------------------------------------------------------------------------- ```markdown 1 | # ARC-28: Structured event logging 2 | 3 | [ARC-28](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0028.md) provides a methodology for structured logging by Algorand smart contracts. It introduces the concept of Events, where data contained in logs may be categorized and structured. 4 | 5 | Each Event is identified by a unique 4-byte identifier derived from its `Event Signature`. The Event Signature is a UTF-8 string comprised of the event's name, followed by the names of the [ARC-4](./lg-arc4.md) data types contained in the event, all enclosed in parentheses (`EventName(type1,type2,...)`) e.g.: 6 | 7 | ``` 8 | Swapped(uint64,uint64) 9 | ``` 10 | 11 | Events are emitting by including them in the [log output](./lg-logs.md). The metadata that identifies the event should then be included in the ARC-4 contract output so that a calling client can parse the logs to parse the structured data out. This part of the ARC-28 spec isn't yet implemented in Algorand Python, but it's on the roadmap. 12 | 13 | ## Emitting Events 14 | 15 | To emit an ARC-28 event in Algorand Python you can use the `emit` function, which appears in the `algopy.arc4` namespace for convenience since it heavily uses ARC-4 types and is essentially an extension of the ARC-4 specification. This function takes care of encoding the event payload to conform to the ARC-28 specification and there are 3 overloads: 16 | 17 | - An [ARC-4 struct](./lg-arc4.md), from what the name of the struct will be used as a the event name and the struct parameters will be used as the event fields - `arc4.emit(Swapped(a, b))` 18 | - An event signature as a [string literal (or module variable)](./lg-types.md), followed by the values - `arc4.emit("Swapped(uint64,uint64)", a, b)` 19 | - An event name as a [string literal (or module variable)](./lg-types.md), followed by the values - `arc4.emit("Swapped", a, b)` 20 | 21 | Here's an example contract that emits events: 22 | 23 | ```python 24 | from algopy import ARC4Contract, arc4 25 | 26 | class Swapped(arc4.Struct): 27 | a: arc4.UInt64 28 | b: arc4.UInt64 29 | 30 | class EventEmitter(ARC4Contract): 31 | @arc4.abimethod 32 | def emit_swapped(self, a: arc4.UInt64, b: arc4.UInt64) -> None: 33 | arc4.emit(Swapped(b, a)) 34 | arc4.emit("Swapped(uint64,uint64)", b, a) 35 | arc4.emit("Swapped", b, a) 36 | ``` 37 | 38 | It's worth noting that the ARC-28 event signature needs to be known at compile time so the event name can't be a dynamic type and must be a static string literal or string module constant. If you want to emit dynamic events you can do so using the [`log` method](./lg-logs.md), but you'd need to manually construct the correct series of bytes and the compiler won't be able to emit the ARC-28 metadata so you'll need to also manually parse the logs in your client. 39 | 40 | Examples of manually constructing an event: 41 | 42 | ```python 43 | # This is essentially what the `emit` method is doing, noting that a,b need to be encoded 44 | # as a tuple so below (simple concat) only works for static ARC-4 types 45 | log(arc4.arc4_signature("Swapped(uint64,uint64)"), a, b) 46 | 47 | # or, if you wanted it to be truly dynamic for some reason, 48 | # (noting this has a non-trivial opcode cost) and assuming in this case 49 | # that `event_suffix` is already defined as a `String`: 50 | event_name = String("Event") + event_suffix 51 | event_selector = op.sha512_256((event_name + "(uint64)").bytes)[:4] 52 | log(event_selector, UInt64(6)) 53 | ``` 54 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-control.md: -------------------------------------------------------------------------------- ```markdown 1 | # Control flow structures 2 | 3 | Control flow in Algorand Python is similar to standard Python control flow, with support for if statements, while loops, for loops, and match statements. 4 | 5 | ## If statements 6 | 7 | If statements work the same as Python. The conditions must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. 8 | 9 | ```python 10 | if condition: 11 | # block of code to execute if condition is True 12 | elif condition2: 13 | # block of code to execute if condition is False and condition2 is True 14 | else: 15 | # block of code to execute if condition and condition2 are both False 16 | ``` 17 | 18 | [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/simplish/contract.py). 19 | 20 | ## Ternary conditions 21 | 22 | Ternary conditions work the same as Python. The condition must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. 23 | 24 | ```python 25 | value1 = UInt64(5) 26 | value2 = String(">6") if value1 > 6 else String("<=6") 27 | ``` 28 | 29 | ## While loops 30 | 31 | While loops work the same as Python. The condition must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. 32 | 33 | You can use `break` and `continue`. 34 | 35 | ```python 36 | while condition: 37 | # block of code to execute if condition is True 38 | ``` 39 | 40 | Note: we don't currently have support for while-else statements. 41 | 42 | [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/unssa/contract.py#L32-L83). 43 | 44 | ## For Loops 45 | 46 | For loops are used to iterate over sequences, ranges and [ARC-4 arrays](./lg-arc4.md). They work the same as Python. 47 | 48 | Algorand Python provides functions like `uenumerate` and `urange` to facilitate creating sequences and ranges; in-built Python `reversed` method works with these. 49 | 50 | - `uenumerate` is similar to Python's built-in enumerate function, but for UInt64 numbers; it allows you to loop over a sequence and have an automatic counter. 51 | - `urange` is a function that generates a sequence of Uint64 numbers, which you can iterate over. 52 | - `reversed` returns a reversed iterator of a sequence. 53 | 54 | Here is an example of how you can use these functions in a contract: 55 | 56 | ```python 57 | test_array = arc4.StaticArray(arc4.UInt8(), arc4.UInt8(), arc4.UInt8(), arc4.UInt8()) 58 | 59 | # urange: reversed items, forward index 60 | 61 | for index, item in uenumerate(reversed(urange(4))): 62 | test_array[index] = arc4.UInt8(item) 63 | 64 | assert test_array.bytes == Bytes.from_hex("03020100") 65 | ``` 66 | 67 | Note: we don't currently have support for for-else statements. 68 | 69 | [See full](https://github.com/algorandfoundation/puya/blob/main/test_cases/reversed_iteration/contract.py) [examples](https://github.com/algorandfoundation/puya/blob/main/test_cases/nested_loops/contract.py). 70 | 71 | ## Match Statements 72 | 73 | Match statements work the same as Python and work for [...] 74 | 75 | ```python 76 | match value: 77 | case pattern1: 78 | # block of code to execute if pattern1 matches 79 | case pattern2: 80 | # block of code to execute if pattern2 matches 81 | case _: 82 | # Fallback 83 | ``` 84 | 85 | Note: Captures and patterns are not supported. Currently, there is only support for basic case/switch functionality; pattern matching and guard clauses are not currently supported. 86 | 87 | [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/match/contract.py). 88 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:testing.TransactionLogger.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [testing](../modules/testing.md) / TransactionLogger 2 | 3 | # Class: TransactionLogger 4 | 5 | [testing](../modules/testing.md).TransactionLogger 6 | 7 | Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy. 8 | Useful for automated tests. 9 | 10 | ## Table of contents 11 | 12 | ### Constructors 13 | 14 | - [constructor](testing.TransactionLogger.md#constructor) 15 | 16 | ### Properties 17 | 18 | - [\_sentTransactionIds](testing.TransactionLogger.md#_senttransactionids) 19 | 20 | ### Accessors 21 | 22 | - [sentTransactionIds](testing.TransactionLogger.md#senttransactionids) 23 | 24 | ### Methods 25 | 26 | - [capture](testing.TransactionLogger.md#capture) 27 | - [clear](testing.TransactionLogger.md#clear) 28 | - [logRawTransaction](testing.TransactionLogger.md#lograwtransaction) 29 | - [waitForIndexer](testing.TransactionLogger.md#waitforindexer) 30 | 31 | ## Constructors 32 | 33 | ### constructor 34 | 35 | • **new TransactionLogger**(): [`TransactionLogger`](testing.TransactionLogger.md) 36 | 37 | #### Returns 38 | 39 | [`TransactionLogger`](testing.TransactionLogger.md) 40 | 41 | ## Properties 42 | 43 | ### \_sentTransactionIds 44 | 45 | • `Private` **\_sentTransactionIds**: `string`[] = `[]` 46 | 47 | #### Defined in 48 | 49 | [src/testing/transaction-logger.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L12) 50 | 51 | ## Accessors 52 | 53 | ### sentTransactionIds 54 | 55 | • `get` **sentTransactionIds**(): readonly `string`[] 56 | 57 | The list of transaction IDs that has been logged thus far. 58 | 59 | #### Returns 60 | 61 | readonly `string`[] 62 | 63 | #### Defined in 64 | 65 | [src/testing/transaction-logger.ts:17](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L17) 66 | 67 | ## Methods 68 | 69 | ### capture 70 | 71 | ▸ **capture**(`algod`): `AlgodClient` 72 | 73 | Return a proxy that wraps the given Algodv2 with this transaction logger. 74 | 75 | #### Parameters 76 | 77 | | Name | Type | Description | 78 | | :------ | :------ | :------ | 79 | | `algod` | `AlgodClient` | The `Algodv2` to wrap | 80 | 81 | #### Returns 82 | 83 | `AlgodClient` 84 | 85 | The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger 86 | 87 | #### Defined in 88 | 89 | [src/testing/transaction-logger.ts:48](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L48) 90 | 91 | ___ 92 | 93 | ### clear 94 | 95 | ▸ **clear**(): `void` 96 | 97 | Clear all logged IDs. 98 | 99 | #### Returns 100 | 101 | `void` 102 | 103 | #### Defined in 104 | 105 | [src/testing/transaction-logger.ts:24](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L24) 106 | 107 | ___ 108 | 109 | ### logRawTransaction 110 | 111 | ▸ **logRawTransaction**(`signedTransactions`): `void` 112 | 113 | The method that captures raw transactions and stores the transaction IDs. 114 | 115 | #### Parameters 116 | 117 | | Name | Type | 118 | | :------ | :------ | 119 | | `signedTransactions` | `Uint8Array` \| `Uint8Array`[] | 120 | 121 | #### Returns 122 | 123 | `void` 124 | 125 | #### Defined in 126 | 127 | [src/testing/transaction-logger.ts:31](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L31) 128 | 129 | ___ 130 | 131 | ### waitForIndexer 132 | 133 | ▸ **waitForIndexer**(`indexer`): `Promise`\<`void`\> 134 | 135 | Wait until all logged transactions IDs appear in the given `Indexer`. 136 | 137 | #### Parameters 138 | 139 | | Name | Type | 140 | | :------ | :------ | 141 | | `indexer` | `IndexerClient` | 142 | 143 | #### Returns 144 | 145 | `Promise`\<`void`\> 146 | 147 | #### Defined in 148 | 149 | [src/testing/transaction-logger.ts:53](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L53) 150 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:sites:express-dapp:README.md: -------------------------------------------------------------------------------- ```markdown 1 | <p align="center"> 2 | <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a> 3 | </p> 4 | 5 | [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 6 | [circleci-url]: https://circleci.com/gh/nestjs/nest 7 | 8 | <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p> 9 | <p align="center"> 10 | <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a> 11 | <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a> 12 | <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a> 13 | <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a> 14 | <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a> 15 | <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a> 16 | <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a> 17 | <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a> 18 | <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a> 19 | <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a> 20 | <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a> 21 | </p> 22 | <!--[](https://opencollective.com/nest#backer) 23 | [](https://opencollective.com/nest#sponsor)--> 24 | 25 | ## Description 26 | 27 | [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. 28 | 29 | ## Installation 30 | 31 | ```bash 32 | $ npm install 33 | ``` 34 | 35 | ## Running the app 36 | 37 | ```bash 38 | # development 39 | $ npm run start 40 | 41 | # watch mode 42 | $ npm run start:dev 43 | 44 | # production mode 45 | $ npm run start:prod 46 | ``` 47 | 48 | ## Test 49 | 50 | ```bash 51 | # unit tests 52 | $ npm run test 53 | 54 | # e2e tests 55 | $ npm run test:e2e 56 | 57 | # test coverage 58 | $ npm run test:cov 59 | ``` 60 | 61 | ## Support 62 | 63 | Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). 64 | 65 | ## Stay in touch 66 | 67 | - Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) 68 | - Website - [https://nestjs.com](https://nestjs.com/) 69 | - Twitter - [@nestframework](https://twitter.com/nestframework) 70 | 71 | ## License 72 | 73 | Nest is [MIT licensed](LICENSE). 74 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofSignature.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofSignature 2 | 3 | # Class: StateProofSignature 4 | 5 | [indexerModels](../modules/indexerModels.md).StateProofSignature 6 | 7 | ## Hierarchy 8 | 9 | - `default` 10 | 11 | ↳ **`StateProofSignature`** 12 | 13 | ## Table of contents 14 | 15 | ### Constructors 16 | 17 | - [constructor](indexerModels.StateProofSignature.md#constructor) 18 | 19 | ### Properties 20 | 21 | - [attribute\_map](indexerModels.StateProofSignature.md#attribute_map) 22 | - [falconSignature](indexerModels.StateProofSignature.md#falconsignature) 23 | - [merkleArrayIndex](indexerModels.StateProofSignature.md#merklearrayindex) 24 | - [proof](indexerModels.StateProofSignature.md#proof) 25 | - [verifyingKey](indexerModels.StateProofSignature.md#verifyingkey) 26 | 27 | ### Methods 28 | 29 | - [get\_obj\_for\_encoding](indexerModels.StateProofSignature.md#get_obj_for_encoding) 30 | - [from\_obj\_for\_encoding](indexerModels.StateProofSignature.md#from_obj_for_encoding) 31 | 32 | ## Constructors 33 | 34 | ### constructor 35 | 36 | • **new StateProofSignature**(`«destructured»`) 37 | 38 | Creates a new `StateProofSignature` object. 39 | 40 | #### Parameters 41 | 42 | | Name | Type | 43 | | :------ | :------ | 44 | | `«destructured»` | `Object` | 45 | | › `falconSignature?` | `string` \| `Uint8Array` | 46 | | › `merkleArrayIndex?` | `number` \| `bigint` | 47 | | › `proof?` | [`MerkleArrayProof`](indexerModels.MerkleArrayProof.md) | 48 | | › `verifyingKey?` | `string` \| `Uint8Array` | 49 | 50 | #### Overrides 51 | 52 | BaseModel.constructor 53 | 54 | #### Defined in 55 | 56 | client/v2/indexer/models/types.ts:3755 57 | 58 | ## Properties 59 | 60 | ### attribute\_map 61 | 62 | • **attribute\_map**: `Record`\<`string`, `string`\> 63 | 64 | #### Inherited from 65 | 66 | BaseModel.attribute\_map 67 | 68 | #### Defined in 69 | 70 | client/v2/basemodel.ts:56 71 | 72 | ___ 73 | 74 | ### falconSignature 75 | 76 | • `Optional` **falconSignature**: `Uint8Array` 77 | 78 | #### Defined in 79 | 80 | client/v2/indexer/models/types.ts:3737 81 | 82 | ___ 83 | 84 | ### merkleArrayIndex 85 | 86 | • `Optional` **merkleArrayIndex**: `number` \| `bigint` 87 | 88 | #### Defined in 89 | 90 | client/v2/indexer/models/types.ts:3739 91 | 92 | ___ 93 | 94 | ### proof 95 | 96 | • `Optional` **proof**: [`MerkleArrayProof`](indexerModels.MerkleArrayProof.md) 97 | 98 | #### Defined in 99 | 100 | client/v2/indexer/models/types.ts:3741 101 | 102 | ___ 103 | 104 | ### verifyingKey 105 | 106 | • `Optional` **verifyingKey**: `Uint8Array` 107 | 108 | (vkey) 109 | 110 | #### Defined in 111 | 112 | client/v2/indexer/models/types.ts:3746 113 | 114 | ## Methods 115 | 116 | ### get\_obj\_for\_encoding 117 | 118 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 119 | 120 | Get an object ready for encoding to either JSON or msgpack. 121 | 122 | #### Parameters 123 | 124 | | Name | Type | Default value | Description | 125 | | :------ | :------ | :------ | :------ | 126 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 127 | 128 | #### Returns 129 | 130 | `Record`\<`string`, `any`\> 131 | 132 | #### Inherited from 133 | 134 | BaseModel.get\_obj\_for\_encoding 135 | 136 | #### Defined in 137 | 138 | client/v2/basemodel.ts:65 139 | 140 | ___ 141 | 142 | ### from\_obj\_for\_encoding 143 | 144 | ▸ `Static` **from_obj_for_encoding**(`data`): [`StateProofSignature`](indexerModels.StateProofSignature.md) 145 | 146 | #### Parameters 147 | 148 | | Name | Type | 149 | | :------ | :------ | 150 | | `data` | `Record`\<`string`, `any`\> | 151 | 152 | #### Returns 153 | 154 | [`StateProofSignature`](indexerModels.StateProofSignature.md) 155 | 156 | #### Defined in 157 | 158 | client/v2/indexer/models/types.ts:3787 159 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientParams 2 | 3 | # Interface: AppClientParams 4 | 5 | [types/app-client](../modules/types_app_client.md).AppClientParams 6 | 7 | Parameters to create an app client 8 | 9 | ## Table of contents 10 | 11 | ### Properties 12 | 13 | - [algorand](types_app_client.AppClientParams.md#algorand) 14 | - [appId](types_app_client.AppClientParams.md#appid) 15 | - [appName](types_app_client.AppClientParams.md#appname) 16 | - [appSpec](types_app_client.AppClientParams.md#appspec) 17 | - [approvalSourceMap](types_app_client.AppClientParams.md#approvalsourcemap) 18 | - [clearSourceMap](types_app_client.AppClientParams.md#clearsourcemap) 19 | - [defaultSender](types_app_client.AppClientParams.md#defaultsender) 20 | - [defaultSigner](types_app_client.AppClientParams.md#defaultsigner) 21 | 22 | ## Properties 23 | 24 | ### algorand 25 | 26 | • **algorand**: [`AlgorandClientInterface`](types_algorand_client_interface.AlgorandClientInterface.md) 27 | 28 | An `AlgorandClient` instance 29 | 30 | #### Defined in 31 | 32 | [src/types/app-client.ts:328](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L328) 33 | 34 | ___ 35 | 36 | ### appId 37 | 38 | • **appId**: `bigint` 39 | 40 | The ID of the app instance this client should make calls against. 41 | 42 | #### Defined in 43 | 44 | [src/types/app-client.ts:318](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L318) 45 | 46 | ___ 47 | 48 | ### appName 49 | 50 | • `Optional` **appName**: `string` 51 | 52 | Optional override for the app name; used for on-chain metadata and lookups. 53 | Defaults to the ARC-32/ARC-56 app spec name 54 | 55 | #### Defined in 56 | 57 | [src/types/app-client.ts:334](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L334) 58 | 59 | ___ 60 | 61 | ### appSpec 62 | 63 | • **appSpec**: `string` \| [`Arc56Contract`](types_app_arc56.Arc56Contract.md) \| [`AppSpec`](types_app_spec.AppSpec.md) 64 | 65 | The ARC-56 or ARC-32 application spec as either: 66 | * Parsed JSON ARC-56 `Contract` 67 | * Parsed JSON ARC-32 `AppSpec` 68 | * Raw JSON string (in either ARC-56 or ARC-32 format) 69 | 70 | #### Defined in 71 | 72 | [src/types/app-client.ts:325](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L325) 73 | 74 | ___ 75 | 76 | ### approvalSourceMap 77 | 78 | • `Optional` **approvalSourceMap**: `ProgramSourceMap` 79 | 80 | Optional source map for the approval program 81 | 82 | #### Defined in 83 | 84 | [src/types/app-client.ts:340](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L340) 85 | 86 | ___ 87 | 88 | ### clearSourceMap 89 | 90 | • `Optional` **clearSourceMap**: `ProgramSourceMap` 91 | 92 | Optional source map for the clear state program 93 | 94 | #### Defined in 95 | 96 | [src/types/app-client.ts:342](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L342) 97 | 98 | ___ 99 | 100 | ### defaultSender 101 | 102 | • `Optional` **defaultSender**: `string` \| `Address` 103 | 104 | Optional address to use for the account to use as the default sender for calls. 105 | 106 | #### Defined in 107 | 108 | [src/types/app-client.ts:336](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L336) 109 | 110 | ___ 111 | 112 | ### defaultSigner 113 | 114 | • `Optional` **defaultSigner**: `TransactionSigner` 115 | 116 | Optional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from `AlgorandClient`). 117 | 118 | #### Defined in 119 | 120 | [src/types/app-client.ts:338](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L338) 121 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/docs:scripts:README.md: -------------------------------------------------------------------------------- ```markdown 1 | # reformat-all-commands.sh 2 | 3 | Calls `reformat.py` and `convert_swagger.py` to populate the "reference-docs" structure. Requires two arguments be passed referencing the source code of _go-algorand_ and _indexer_ respectively: 4 | 5 | `./reformat-all-commands.sh $GO_ALGORAND_SRC $INDEXER_SRC` 6 | 7 | # reformat.py 8 | 9 | Reformats markdown generated by the go spf13/cobra library to work with mkdocs. 10 | 11 | Given the `goal` in the path, regenerate the docs from this directory by running: 12 | ``` 13 | rm -rf ../docs/Reference-Docs/goal 14 | mkdir ../docs/Reference-Docs/goal 15 | goal generate-docs ../docs/Reference-Docs/goal 16 | ./reformat.py -path ../docs/Reference-Docs/goal -cmd goal 17 | ``` 18 | 19 | # convert_swagger.py 20 | 21 | Given a swagger specfile, generates a markdown file. 22 | Currently uses `swagger2markup`, with some post processing to make 23 | the markdown more pleasant with our mkdocs theme. 24 | 25 | ``` 26 | ./convert_swagger.py -specfile ~/algorand/indexer/api/indexer.oas2.json -target ../docs/reference/rest-apis/indexer.md 27 | ./convert_swagger.py -specfile ~/go/src/github.com/algorand/go-algorand/daemon/kmd/api/swagger.json -target ../docs/reference/rest-apis/kmd.md 28 | ./convert_swagger.py -specfile ~/go/src/github.com/algorand/go-algorand/daemon/algod/api/algod.oas2.json -target ../docs/reference/rest-apis/algod.md 29 | ``` 30 | 31 | # config_json_gen 32 | 33 | Used to extract node config options from the go-algorand source. Markdown is written to stdout, warnings are written to stderr. To update the template, edit template.tmpl and rebuild the tool. 34 | 35 | Build tool: 36 | ``` 37 | go build . 38 | ``` 39 | 40 | Run: 41 | ``` 42 | ./config_json_gen -path ~/algorand/go-algorand/ > ../../docs/run-a-node/reference/config.md 43 | ``` 44 | 45 | All in one: 46 | ``` 47 | go run main.go -path ~/algorand/go-algorand/ > ../../docs/run-a-node/reference/config.md 48 | ``` 49 | 50 | # Code examples 51 | 52 | ## Example formatting 53 | 54 | Examples are all named descriptively and may be referenced in the markdown in multiple places if necessary. 55 | 56 | The format for a named example in the docs markdown is: 57 | ``` 58 | <!-- ===LANGSDK_EXAMPLENAME=== --> 59 | <!-- ===LANGSDK_EXAMPLENAME=== --> 60 | ``` 61 | Running the import script will replace any text between these two tags with the matching example from the SDK repos. 62 | 63 | A file containing all examples with descriptions is in `example_tracker/example_list.md`. 64 | A script that is helpful to track any examples that are missing from languages (or typo'd) is in `example_tracker/list_examples.sh`. 65 | 66 | To ensure the language tabs display correctly the markdown must be formatted as follows: 67 | ``` 68 | === "LanguageName" 69 | <!-- ===LANGSDK_EXAMPLE_NAME=== --> 70 | <!-- ===LANGSDK_EXAMPLE_NAME=== --> 71 | ``` 72 | 73 | That is, the comment flags must be tabbed over under the `=== "LanguageName"` line. 74 | 75 | 76 | 77 | ## Running the import script 78 | 79 | The import script, `import_examples.py`, will search the configured repository paths for named examples to be pulled into the docs. The script will clone the SDK repositories if they are not already present. The script will also update the SDK repositories if they are already present. 80 | 81 | The following will import only the `PYSDK` examples: 82 | ```sh 83 | python import_examples.py --src PYSDK 84 | ``` 85 | 86 | ## New examples 87 | 88 | For any *new* examples, please follow the formatting of the existing examples in that repository. 89 | 90 | The `examples` branch of all the SDKs should be used for development of examples. The examples should be runable with the smoke-test shell script, so that CI can catch any issues. 91 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountAssetsInformationResponse 2 | 3 | # Class: AccountAssetsInformationResponse 4 | 5 | [modelsv2](../modules/modelsv2.md).AccountAssetsInformationResponse 6 | 7 | AccountAssetsInformationResponse contains a list of assets held by an account. 8 | 9 | ## Hierarchy 10 | 11 | - `default` 12 | 13 | ↳ **`AccountAssetsInformationResponse`** 14 | 15 | ## Table of contents 16 | 17 | ### Constructors 18 | 19 | - [constructor](modelsv2.AccountAssetsInformationResponse.md#constructor) 20 | 21 | ### Properties 22 | 23 | - [assetHoldings](modelsv2.AccountAssetsInformationResponse.md#assetholdings) 24 | - [attribute\_map](modelsv2.AccountAssetsInformationResponse.md#attribute_map) 25 | - [nextToken](modelsv2.AccountAssetsInformationResponse.md#nexttoken) 26 | - [round](modelsv2.AccountAssetsInformationResponse.md#round) 27 | 28 | ### Methods 29 | 30 | - [get\_obj\_for\_encoding](modelsv2.AccountAssetsInformationResponse.md#get_obj_for_encoding) 31 | - [from\_obj\_for\_encoding](modelsv2.AccountAssetsInformationResponse.md#from_obj_for_encoding) 32 | 33 | ## Constructors 34 | 35 | ### constructor 36 | 37 | • **new AccountAssetsInformationResponse**(`«destructured»`) 38 | 39 | Creates a new `AccountAssetsInformationResponse` object. 40 | 41 | #### Parameters 42 | 43 | | Name | Type | 44 | | :------ | :------ | 45 | | `«destructured»` | `Object` | 46 | | › `assetHoldings?` | [`AccountAssetHolding`](modelsv2.AccountAssetHolding.md)[] | 47 | | › `nextToken?` | `string` | 48 | | › `round` | `number` \| `bigint` | 49 | 50 | #### Overrides 51 | 52 | BaseModel.constructor 53 | 54 | #### Defined in 55 | 56 | client/v2/algod/models/types.ts:681 57 | 58 | ## Properties 59 | 60 | ### assetHoldings 61 | 62 | • `Optional` **assetHoldings**: [`AccountAssetHolding`](modelsv2.AccountAssetHolding.md)[] 63 | 64 | #### Defined in 65 | 66 | client/v2/algod/models/types.ts:666 67 | 68 | ___ 69 | 70 | ### attribute\_map 71 | 72 | • **attribute\_map**: `Record`\<`string`, `string`\> 73 | 74 | #### Inherited from 75 | 76 | BaseModel.attribute\_map 77 | 78 | #### Defined in 79 | 80 | client/v2/basemodel.ts:56 81 | 82 | ___ 83 | 84 | ### nextToken 85 | 86 | • `Optional` **nextToken**: `string` 87 | 88 | Used for pagination, when making another request provide this token with the 89 | next parameter. 90 | 91 | #### Defined in 92 | 93 | client/v2/algod/models/types.ts:672 94 | 95 | ___ 96 | 97 | ### round 98 | 99 | • **round**: `number` \| `bigint` 100 | 101 | The round for which this information is relevant. 102 | 103 | #### Defined in 104 | 105 | client/v2/algod/models/types.ts:664 106 | 107 | ## Methods 108 | 109 | ### get\_obj\_for\_encoding 110 | 111 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 112 | 113 | Get an object ready for encoding to either JSON or msgpack. 114 | 115 | #### Parameters 116 | 117 | | Name | Type | Default value | Description | 118 | | :------ | :------ | :------ | :------ | 119 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 120 | 121 | #### Returns 122 | 123 | `Record`\<`string`, `any`\> 124 | 125 | #### Inherited from 126 | 127 | BaseModel.get\_obj\_for\_encoding 128 | 129 | #### Defined in 130 | 131 | client/v2/basemodel.ts:65 132 | 133 | ___ 134 | 135 | ### from\_obj\_for\_encoding 136 | 137 | ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountAssetsInformationResponse`](modelsv2.AccountAssetsInformationResponse.md) 138 | 139 | #### Parameters 140 | 141 | | Name | Type | 142 | | :------ | :------ | 143 | | `data` | `Record`\<`string`, `any`\> | 144 | 145 | #### Returns 146 | 147 | [`AccountAssetsInformationResponse`](modelsv2.AccountAssetsInformationResponse.md) 148 | 149 | #### Defined in 150 | 151 | client/v2/algod/models/types.ts:703 152 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:tutorials_Hello World_0003-contract.md: -------------------------------------------------------------------------------- ```markdown 1 | --- 2 | title: "3. The Template Contract" 3 | --- 4 | 5 | By default, the TEALScript template includes a very basic contract that performs some math operations. This page will breakdown the contract and explain what each of the components do and how TEALScript works. 6 | 7 | 8 | ## Import Contract 9 | 10 | ```ts 11 | import { Contract } from '@algorandfoundation/tealscript'; 12 | ``` 13 | 14 | Here we are simply importing `Contract` from the tealscript npm package. `Contract` is the most important class in TEALScript as every contract written in TEALScript must extend the `Contract` class. Code outside of the `Contract` superclass will not get compiled. 15 | 16 | ## Class Definition 17 | 18 | ```ts 19 | // eslint-disable-next-line no-unused-vars 20 | class HelloWorld extends Contract { 21 | ``` 22 | 23 | As mentioned above, every contract must extend `Contract`. You will also notice that there is the ESLint rule, `no-unused-vars` is disabled for this line. ESLint expects every class we define to be used in our codebase. Since we are developing a contract, however, we don't directly use this class in other TypeScript files, thus we expect it to be unused. 24 | 25 | ## Private Methods 26 | 27 | ```ts 28 | /** 29 | * Calculates the sum of two numbers 30 | * 31 | * @param a 32 | * @param b 33 | * @returns The sum of a and b 34 | */ 35 | private getSum(a: uint64, b: uint64): uint64 { 36 | return a + b; 37 | } 38 | 39 | /** 40 | * Calculates the difference between two numbers 41 | * 42 | * @param a 43 | * @param b 44 | * @returns The difference between a and b. 45 | */ 46 | private getDifference(a: uint64, b: uint64): uint64 { 47 | return a >= b ? a - b : b - a; 48 | } 49 | ``` 50 | 51 | In TypeScript, a private function is a function that can only be called internally by an instance of this class. The `private` keyword in TEALScript has a very similar meaning. If a method is `private`, then nobody can directly call the method. The only way to reach the logic defined in these methods is through a public method that explicitly calls them. 52 | 53 | The logic of these methods are rather simple. 54 | 55 | ### getSum 56 | 57 | Simply adds the two given numbers together/ 58 | 59 | ### getDifference 60 | 61 | Will get the difference of the two given numbers by subtracting the smaller one from the bigger one. 62 | 63 | ## Public Method 64 | 65 | ```ts 66 | /** 67 | * A method that takes two numbers and does either addition or subtraction 68 | * 69 | * @param a The first number 70 | * @param b The second number 71 | * @param operation The operation to perform. Can be either 'sum' or 'difference' 72 | * 73 | * @returns The result of the operation 74 | */ 75 | doMath(a: uint64, b: uint64, operation: string): uint64 { 76 | let result: uint64; 77 | 78 | if (operation === 'sum') { 79 | result = this.getSum(a, b); 80 | } else if (operation === 'difference') { 81 | result = this.getDifference(a, b); 82 | } else throw Error('Invalid operation'); 83 | 84 | return result; 85 | } 86 | ``` 87 | 88 | ### doMath 89 | 90 | Because this function is public (there is no `private` keyword, thus it is implicitly public), any client on or off chain can call `doMath`. 91 | 92 | As indicating by the TypeDoc comment, this function takes in two numbers and a string as an operation. The `operation` argument is used to determine whether `getSum` or `getDifferent` should be called. 93 | 94 | ### Errors 95 | 96 | If the `operation` string is not an expected operation, the contract will throw an error. 97 | 98 | It should be noted that there is no concept of `try` in TEALScript. Errors are unrecoverable and will results in a failed transaction. On Algorand, failed transaction do not get charged a fee. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationLocalStatesResponse 2 | 3 | # Class: ApplicationLocalStatesResponse 4 | 5 | [indexerModels](../modules/indexerModels.md).ApplicationLocalStatesResponse 6 | 7 | ## Hierarchy 8 | 9 | - `default` 10 | 11 | ↳ **`ApplicationLocalStatesResponse`** 12 | 13 | ## Table of contents 14 | 15 | ### Constructors 16 | 17 | - [constructor](indexerModels.ApplicationLocalStatesResponse.md#constructor) 18 | 19 | ### Properties 20 | 21 | - [appsLocalStates](indexerModels.ApplicationLocalStatesResponse.md#appslocalstates) 22 | - [attribute\_map](indexerModels.ApplicationLocalStatesResponse.md#attribute_map) 23 | - [currentRound](indexerModels.ApplicationLocalStatesResponse.md#currentround) 24 | - [nextToken](indexerModels.ApplicationLocalStatesResponse.md#nexttoken) 25 | 26 | ### Methods 27 | 28 | - [get\_obj\_for\_encoding](indexerModels.ApplicationLocalStatesResponse.md#get_obj_for_encoding) 29 | - [from\_obj\_for\_encoding](indexerModels.ApplicationLocalStatesResponse.md#from_obj_for_encoding) 30 | 31 | ## Constructors 32 | 33 | ### constructor 34 | 35 | • **new ApplicationLocalStatesResponse**(`«destructured»`) 36 | 37 | Creates a new `ApplicationLocalStatesResponse` object. 38 | 39 | #### Parameters 40 | 41 | | Name | Type | 42 | | :------ | :------ | 43 | | `«destructured»` | `Object` | 44 | | › `appsLocalStates` | [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md)[] | 45 | | › `currentRound` | `number` \| `bigint` | 46 | | › `nextToken?` | `string` | 47 | 48 | #### Overrides 49 | 50 | BaseModel.constructor 51 | 52 | #### Defined in 53 | 54 | client/v2/indexer/models/types.ts:989 55 | 56 | ## Properties 57 | 58 | ### appsLocalStates 59 | 60 | • **appsLocalStates**: [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md)[] 61 | 62 | #### Defined in 63 | 64 | client/v2/indexer/models/types.ts:969 65 | 66 | ___ 67 | 68 | ### attribute\_map 69 | 70 | • **attribute\_map**: `Record`\<`string`, `string`\> 71 | 72 | #### Inherited from 73 | 74 | BaseModel.attribute\_map 75 | 76 | #### Defined in 77 | 78 | client/v2/basemodel.ts:56 79 | 80 | ___ 81 | 82 | ### currentRound 83 | 84 | • **currentRound**: `number` \| `bigint` 85 | 86 | Round at which the results were computed. 87 | 88 | #### Defined in 89 | 90 | client/v2/indexer/models/types.ts:974 91 | 92 | ___ 93 | 94 | ### nextToken 95 | 96 | • `Optional` **nextToken**: `string` 97 | 98 | Used for pagination, when making another request provide this token with the 99 | next parameter. 100 | 101 | #### Defined in 102 | 103 | client/v2/indexer/models/types.ts:980 104 | 105 | ## Methods 106 | 107 | ### get\_obj\_for\_encoding 108 | 109 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 110 | 111 | Get an object ready for encoding to either JSON or msgpack. 112 | 113 | #### Parameters 114 | 115 | | Name | Type | Default value | Description | 116 | | :------ | :------ | :------ | :------ | 117 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 118 | 119 | #### Returns 120 | 121 | `Record`\<`string`, `any`\> 122 | 123 | #### Inherited from 124 | 125 | BaseModel.get\_obj\_for\_encoding 126 | 127 | #### Defined in 128 | 129 | client/v2/basemodel.ts:65 130 | 131 | ___ 132 | 133 | ### from\_obj\_for\_encoding 134 | 135 | ▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationLocalStatesResponse`](indexerModels.ApplicationLocalStatesResponse.md) 136 | 137 | #### Parameters 138 | 139 | | Name | Type | 140 | | :------ | :------ | 141 | | `data` | `Record`\<`string`, `any`\> | 142 | 143 | #### Returns 144 | 145 | [`ApplicationLocalStatesResponse`](indexerModels.ApplicationLocalStatesResponse.md) 146 | 147 | #### Defined in 148 | 149 | client/v2/indexer/models/types.ts:1011 150 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy-categories/python.json: -------------------------------------------------------------------------------- ```json 1 | { 2 | "name": "Python Development", 3 | "description": "Python development resources for Algorand blockchain", 4 | "path": "python", 5 | "subcategories": { 6 | "examples": { 7 | "name": "Code Examples", 8 | "description": "Example implementations in Python", 9 | "path": "python/examples", 10 | "subcategories": { 11 | "basics": { 12 | "name": "Basic Examples", 13 | "path": "python/examples/basics", 14 | "documents": [ 15 | { 16 | "name": "hello_world", 17 | "description": "Hello World Example", 18 | "path": "developer:python:code:example:hello_world.md" 19 | }, 20 | { 21 | "name": "accounts", 22 | "description": "Account Management", 23 | "path": "developer:python:code:example:accounts.md" 24 | }, 25 | { 26 | "name": "assets", 27 | "description": "Asset Operations", 28 | "path": "developer:python:code:example:assets.md" 29 | }, 30 | { 31 | "name": "transactions", 32 | "description": "Transaction Handling", 33 | "path": "developer:python:code:example:transactions.md" 34 | } 35 | ] 36 | }, 37 | "storage": { 38 | "name": "Storage Examples", 39 | "path": "python/examples/storage", 40 | "documents": [ 41 | { 42 | "name": "box_storage", 43 | "description": "Box Storage Example", 44 | "path": "developer:python:code:example:box_storage.md" 45 | }, 46 | { 47 | "name": "global_storage", 48 | "description": "Global Storage Example", 49 | "path": "developer:python:code:example:global_storage.md" 50 | }, 51 | { 52 | "name": "local_storage", 53 | "description": "Local Storage Example", 54 | "path": "developer:python:code:example:local_storage.md" 55 | }, 56 | { 57 | "name": "scratch_storage", 58 | "description": "Scratch Storage Example", 59 | "path": "developer:python:code:example:scratch_storage.md" 60 | }, 61 | { 62 | "name": "struct_in_box", 63 | "description": "Struct in Box Example", 64 | "path": "developer:python:code:example:struct_in_box.md" 65 | } 66 | ] 67 | } 68 | } 69 | }, 70 | "testing": { 71 | "name": "Testing Guide", 72 | "description": "Comprehensive testing documentation for Python", 73 | "path": "python/testing", 74 | "subcategories": { 75 | "fundamentals": { 76 | "name": "Testing Fundamentals", 77 | "path": "python/testing/fundamentals", 78 | "documents": [ 79 | { 80 | "name": "index", 81 | "description": "Testing Guide Overview", 82 | "path": "puya:python:testing:docs:testing-guide:index.md" 83 | }, 84 | { 85 | "name": "concepts", 86 | "description": "Testing Concepts", 87 | "path": "puya:python:testing:docs:testing-guide:concepts.md" 88 | }, 89 | { 90 | "name": "coverage", 91 | "description": "Test Coverage", 92 | "path": "puya:python:testing:docs:coverage.md" 93 | }, 94 | { 95 | "name": "examples", 96 | "description": "Testing Examples", 97 | "path": "puya:python:testing:docs:examples.md" 98 | } 99 | ] 100 | } 101 | } 102 | } 103 | } 104 | } 105 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:transaction-composer.md: -------------------------------------------------------------------------------- ```markdown 1 | # Transaction composer 2 | 3 | The `TransactionComposer` class allows you to easily compose one or more compliant Algorand transactions and execute and/or simulate them. 4 | 5 | It's the core of how the [`AlgorandClient`](./algorand-client.md) class composes and sends transactions. 6 | 7 | To get an instance of `TransactionComposer` you can either get it from an [app client](./app-client.md), from an [`AlgorandClient`](./algorand-client.md), or by new-ing up via the constructor. 8 | 9 | ```typescript 10 | const composerFromAlgorand = algorand.newGroup() 11 | const composerFromAppClient = appClient.algorand.newGroup() 12 | const composerFromConstructor = new TransactionComposer({ 13 | algod, 14 | /* Return the algosdk.TransactionSigner for this address*/ 15 | getSigner: (address: string) => signer, 16 | }) 17 | const composerFromConstructorWithOptionalParams = new TransactionComposer({ 18 | algod, 19 | /* Return the algosdk.TransactionSigner for this address*/ 20 | getSigner: (address: string) => signer, 21 | getSuggestedParams: () => algod.getTransactionParams().do(), 22 | defaultValidityWindow: 1000, 23 | appManager: new AppManager(algod), 24 | }) 25 | ``` 26 | 27 | ## Constructing a transaction 28 | 29 | To construct a transaction you need to add it to the composer, passing in the relevant [params object](../code/modules/types_composer.md#type-aliases) for that transaction. Params are normal JavaScript objects and all of them extend the [common call parameters](./algorand-client.md#transaction-parameters). 30 | 31 | The [methods to construct a transaction](../code/classes/types_composer.default.md#methods) are all named `add{TransactionType}` and return an instance of the composer so they can be chained together fluently to construct a transaction group. 32 | 33 | For example: 34 | 35 | ```typescript 36 | const result = algorand 37 | .newGroup() 38 | .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) 39 | .addAppCallMethodCall({ 40 | sender: 'SENDER', 41 | appId: 123n, 42 | method: abiMethod, 43 | args: [1, 2, 3], 44 | }) 45 | ``` 46 | 47 | ## Simulating a transaction 48 | 49 | Transactions can be simulated using the simulate endpoint in algod, which enables evaluating the transaction on the network without it actually being commited to a block. 50 | This is a powerful feature, which has a number of options which are detailed in the [simulate API docs](https://developer.algorand.org/docs/rest-apis/algod/#post-v2transactionssimulate). 51 | 52 | For example you can simulate a transaction group like below: 53 | 54 | ```typescript 55 | const result = await algorand 56 | .newGroup() 57 | .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) 58 | .addAppCallMethodCall({ 59 | sender: 'SENDER', 60 | appId: 123n, 61 | method: abiMethod, 62 | args: [1, 2, 3], 63 | }) 64 | .simulate() 65 | ``` 66 | 67 | The above will execute a simulate request asserting that all transactions in the group are correctly signed. 68 | 69 | ### Simulate without signing 70 | 71 | There are situations where you may not be able to (or want to) sign the transactions when executing simulate. 72 | In these instances you should set `skipSignatures: true` which automatically builds empty transaction signers and sets both `fix-signers` and `allow-empty-signatures` to `true` when sending the algod API call. 73 | 74 | For example: 75 | 76 | ```typescript 77 | const result = await algorand 78 | .newGroup() 79 | .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) 80 | .addAppCallMethodCall({ 81 | sender: 'SENDER', 82 | appId: 123n, 83 | method: abiMethod, 84 | args: [1, 2, 3], 85 | }) 86 | .simulate({ 87 | skipSignatures: true, 88 | }) 89 | ``` 90 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionSignatureMultisig 2 | 3 | # Class: TransactionSignatureMultisig 4 | 5 | [indexerModels](../modules/indexerModels.md).TransactionSignatureMultisig 6 | 7 | (msig) structure holding multiple subsignatures. 8 | Definition: 9 | crypto/multisig.go : MultisigSig 10 | 11 | ## Hierarchy 12 | 13 | - `default` 14 | 15 | ↳ **`TransactionSignatureMultisig`** 16 | 17 | ## Table of contents 18 | 19 | ### Constructors 20 | 21 | - [constructor](indexerModels.TransactionSignatureMultisig.md#constructor) 22 | 23 | ### Properties 24 | 25 | - [attribute\_map](indexerModels.TransactionSignatureMultisig.md#attribute_map) 26 | - [subsignature](indexerModels.TransactionSignatureMultisig.md#subsignature) 27 | - [threshold](indexerModels.TransactionSignatureMultisig.md#threshold) 28 | - [version](indexerModels.TransactionSignatureMultisig.md#version) 29 | 30 | ### Methods 31 | 32 | - [get\_obj\_for\_encoding](indexerModels.TransactionSignatureMultisig.md#get_obj_for_encoding) 33 | - [from\_obj\_for\_encoding](indexerModels.TransactionSignatureMultisig.md#from_obj_for_encoding) 34 | 35 | ## Constructors 36 | 37 | ### constructor 38 | 39 | • **new TransactionSignatureMultisig**(`«destructured»`) 40 | 41 | Creates a new `TransactionSignatureMultisig` object. 42 | 43 | #### Parameters 44 | 45 | | Name | Type | 46 | | :------ | :------ | 47 | | `«destructured»` | `Object` | 48 | | › `subsignature?` | [`TransactionSignatureMultisigSubsignature`](indexerModels.TransactionSignatureMultisigSubsignature.md)[] | 49 | | › `threshold?` | `number` \| `bigint` | 50 | | › `version?` | `number` \| `bigint` | 51 | 52 | #### Overrides 53 | 54 | BaseModel.constructor 55 | 56 | #### Defined in 57 | 58 | client/v2/indexer/models/types.ts:5551 59 | 60 | ## Properties 61 | 62 | ### attribute\_map 63 | 64 | • **attribute\_map**: `Record`\<`string`, `string`\> 65 | 66 | #### Inherited from 67 | 68 | BaseModel.attribute\_map 69 | 70 | #### Defined in 71 | 72 | client/v2/basemodel.ts:56 73 | 74 | ___ 75 | 76 | ### subsignature 77 | 78 | • `Optional` **subsignature**: [`TransactionSignatureMultisigSubsignature`](indexerModels.TransactionSignatureMultisigSubsignature.md)[] 79 | 80 | (subsig) holds pairs of public key and signatures. 81 | 82 | #### Defined in 83 | 84 | client/v2/indexer/models/types.ts:5533 85 | 86 | ___ 87 | 88 | ### threshold 89 | 90 | • `Optional` **threshold**: `number` \| `bigint` 91 | 92 | (thr) 93 | 94 | #### Defined in 95 | 96 | client/v2/indexer/models/types.ts:5538 97 | 98 | ___ 99 | 100 | ### version 101 | 102 | • `Optional` **version**: `number` \| `bigint` 103 | 104 | (v) 105 | 106 | #### Defined in 107 | 108 | client/v2/indexer/models/types.ts:5543 109 | 110 | ## Methods 111 | 112 | ### get\_obj\_for\_encoding 113 | 114 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 115 | 116 | Get an object ready for encoding to either JSON or msgpack. 117 | 118 | #### Parameters 119 | 120 | | Name | Type | Default value | Description | 121 | | :------ | :------ | :------ | :------ | 122 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | 123 | 124 | #### Returns 125 | 126 | `Record`\<`string`, `any`\> 127 | 128 | #### Inherited from 129 | 130 | BaseModel.get\_obj\_for\_encoding 131 | 132 | #### Defined in 133 | 134 | client/v2/basemodel.ts:65 135 | 136 | ___ 137 | 138 | ### from\_obj\_for\_encoding 139 | 140 | ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) 141 | 142 | #### Parameters 143 | 144 | | Name | Type | 145 | | :------ | :------ | 146 | | `data` | `Record`\<`string`, `any`\> | 147 | 148 | #### Returns 149 | 150 | [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) 151 | 152 | #### Defined in 153 | 154 | client/v2/indexer/models/types.ts:5573 155 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy-categories/puya.json: -------------------------------------------------------------------------------- ```json 1 | { 2 | "name": "Puya", 3 | "description": "Python-based language for writing Algorand smart contracts", 4 | "path": "puya", 5 | "documents": [ 6 | {"name": "README", "path": "puya:README.md"} 7 | ], 8 | "subcategories": { 9 | "docs": { 10 | "name": "Documentation", 11 | "description": "Puya documentation", 12 | "path": "puya:docs", 13 | "documents": [ 14 | {"name": "Index", "path": "puya:docs:index.md"}, 15 | {"name": "API", "path": "puya:docs:api.md"}, 16 | {"name": "API - AlgoPy", "path": "puya:docs:api-algopy.md"}, 17 | {"name": "API - AlgoPy ARC4", "path": "puya:docs:api-algopy.arc4.md"}, 18 | {"name": "API - AlgoPy Group Transactions", "path": "puya:docs:api-algopy.gtxn.md"}, 19 | {"name": "API - AlgoPy Inner Transactions", "path": "puya:docs:api-algopy.itxn.md"}, 20 | {"name": "API - AlgoPy Operations", "path": "puya:docs:api-algopy.op.md"}, 21 | {"name": "Compiler", "path": "puya:docs:compiler.md"}, 22 | {"name": "Language Guide", "path": "puya:docs:language-guide.md"}, 23 | {"name": "Principles", "path": "puya:docs:principles.md"}, 24 | {"name": "Language Guide - ARC-4", "path": "puya:docs:lg-arc4.md"}, 25 | {"name": "Language Guide - ARC-28", "path": "puya:docs:lg-arc28.md"}, 26 | {"name": "Language Guide - Builtins", "path": "puya:docs:lg-builtins.md"}, 27 | {"name": "Language Guide - Calling Apps", "path": "puya:docs:lg-calling-apps.md"}, 28 | {"name": "Language Guide - Compilation", "path": "puya:docs:lg-compile.md"}, 29 | {"name": "Language Guide - Control Flow", "path": "puya:docs:lg-control.md"}, 30 | {"name": "Language Guide - Errors", "path": "puya:docs:lg-errors.md"}, 31 | {"name": "Language Guide - Logs", "path": "puya:docs:lg-logs.md"}, 32 | {"name": "Language Guide - Modules", "path": "puya:docs:lg-modules.md"}, 33 | {"name": "Language Guide - Opcode Budget", "path": "puya:docs:lg-opcode-budget.md"}, 34 | {"name": "Language Guide - Operations", "path": "puya:docs:lg-ops.md"}, 35 | {"name": "Language Guide - Storage", "path": "puya:docs:lg-storage.md"}, 36 | {"name": "Language Guide - Structure", "path": "puya:docs:lg-structure.md"}, 37 | {"name": "Language Guide - Transactions", "path": "puya:docs:lg-transactions.md"}, 38 | {"name": "Language Guide - Types", "path": "puya:docs:lg-types.md"}, 39 | {"name": "Language Guide - Unsupported Python Features", "path": "puya:docs:lg-unsupported-python-features.md"}, 40 | {"name": "Testing Guide", "path": "puya:docs:algopy_testing:index.md"} 41 | ] 42 | }, 43 | "examples": { 44 | "name": "Examples", 45 | "description": "Example Puya contracts", 46 | "path": "puya:examples", 47 | "documents": [ 48 | {"name": "Auction", "path": "puya:examples:auction:README.md"} 49 | ] 50 | }, 51 | "architecture": { 52 | "name": "Architecture", 53 | "description": "Puya architecture documentation", 54 | "path": "puya:src:puya", 55 | "documents": [ 56 | {"name": "Architecture", "path": "puya:src:puya:ARCHITECTURE.md"} 57 | ] 58 | }, 59 | "stubs": { 60 | "name": "Stubs", 61 | "description": "Type stubs documentation", 62 | "path": "puya:stubs", 63 | "documents": [ 64 | {"name": "README", "path": "puya:stubs:README.md"} 65 | ] 66 | }, 67 | "tests": { 68 | "name": "Tests", 69 | "description": "Test package documentation", 70 | "path": "puya:tests", 71 | "documents": [ 72 | {"name": "Test Expected Output", "path": "puya:tests:test_expected_output:README.md"} 73 | ] 74 | } 75 | } 76 | } 77 | ```