This is page 21 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/developer:python:code:example:subsidize_app_call.md: -------------------------------------------------------------------------------- ```markdown 1 | # Subsidizing Application Calls in Algorand 2 | 3 | This guide demonstrates how to implement a logic signature (LogicSig) that subsidizes application calls in Algorand smart contracts. This allows a contract account to pay the transaction fees for application calls to a specific application. 4 | 5 | ## Implementation 6 | 7 | ```python 8 | from algopy import ( 9 | Application, 10 | Bytes, 11 | Global, 12 | TemplateVar, 13 | TransactionType, 14 | Txn, 15 | UInt64, 16 | logicsig, 17 | ) 18 | from algopy.op import GTxn 19 | 20 | @logicsig 21 | def subsidize_app_call() -> bool: 22 | """ 23 | This Contract Account will subsidize the fees for any AppCall 24 | transaction directed to a known application. 25 | """ 26 | return ( 27 | # Payment Transaction Validation 28 | Txn.type_enum == TransactionType.Payment 29 | and Txn.receiver == Txn.sender 30 | and Txn.amount == 0 31 | and Txn.rekey_to == Global.zero_address 32 | and Txn.close_remainder_to == Global.zero_address 33 | and Txn.fee == 2 * Global.min_txn_fee 34 | and Txn.last_valid <= TemplateVar[UInt64]("EXPIRATION_ROUND") 35 | and Global.genesis_hash == TemplateVar[Bytes]("TARGET_NETWORK_GENESIS") 36 | # Application Call Validation 37 | and GTxn.type_enum(Txn.group_index - 1) == TransactionType.ApplicationCall 38 | and GTxn.application_id(Txn.group_index - 1) == TemplateVar[Application]("KNOWN_APP") 39 | and GTxn.fee(Txn.group_index - 1) == 0 40 | ) 41 | ``` 42 | 43 | ## Key Components 44 | 45 | ### Payment Transaction Validation 46 | 47 | 1. **Transaction Type**: 48 | ```python 49 | Txn.type_enum == TransactionType.Payment 50 | ``` 51 | - Ensures the transaction is a payment type 52 | - Required for fee subsidization 53 | 54 | 2. **Self Payment**: 55 | ```python 56 | Txn.receiver == Txn.sender 57 | and Txn.amount == 0 58 | ``` 59 | - Verifies transaction is to self 60 | - Ensures no funds are transferred 61 | 62 | 3. **Security Measures**: 63 | ```python 64 | Txn.rekey_to == Global.zero_address 65 | and Txn.close_remainder_to == Global.zero_address 66 | ``` 67 | - Prevents account rekeying 68 | - Prevents account closure 69 | 70 | 4. **Fee Structure**: 71 | ```python 72 | Txn.fee == 2 * Global.min_txn_fee 73 | ``` 74 | - Sets fee to cover both transactions 75 | - Uses minimum transaction fee as base 76 | 77 | ### Application Call Validation 78 | 79 | 1. **Previous Transaction Check**: 80 | ```python 81 | GTxn.type_enum(Txn.group_index - 1) == TransactionType.ApplicationCall 82 | ``` 83 | - Verifies previous transaction is app call 84 | - Uses group transaction index 85 | 86 | 2. **Application Verification**: 87 | ```python 88 | GTxn.application_id(Txn.group_index - 1) == TemplateVar[Application]("KNOWN_APP") 89 | ``` 90 | - Validates target application 91 | - Uses template variable for flexibility 92 | 93 | 3. **Fee Verification**: 94 | ```python 95 | GTxn.fee(Txn.group_index - 1) == 0 96 | ``` 97 | - Ensures app call has zero fee 98 | - Required for subsidization 99 | 100 | ### Time and Network Controls 101 | 102 | 1. **Expiration Control**: 103 | ```python 104 | Txn.last_valid <= TemplateVar[UInt64]("EXPIRATION_ROUND") 105 | ``` 106 | - Sets transaction validity period 107 | - Prevents indefinite usage 108 | 109 | 2. **Network Verification**: 110 | ```python 111 | Global.genesis_hash == TemplateVar[Bytes]("TARGET_NETWORK_GENESIS") 112 | ``` 113 | - Ensures correct network 114 | - Prevents cross-network usage 115 | 116 | ## Usage Pattern 117 | 118 | 1. **Create Transaction Group**: 119 | ```python 120 | # First transaction: Application call with zero fee 121 | app_call_txn = ApplicationCallTxn( 122 | sender=user_address, 123 | app_id=known_app_id, 124 | fee=0 125 | ) 126 | 127 | # Second transaction: Payment for fees 128 | payment_txn = PaymentTxn( 129 | sender=subsidy_address, 130 | receiver=subsidy_address, 131 | amt=0, 132 | fee=2 * min_fee 133 | ) 134 | 135 | # Group transactions 136 | grouped_txns = assign_group_id([app_call_txn, payment_txn]) 137 | ``` 138 | 139 | 2. **Sign and Submit**: 140 | ```python 141 | # Sign application call with user's key 142 | signed_app_call = app_call_txn.sign(user_private_key) 143 | 144 | # Sign payment with logic signature 145 | signed_payment = LogicSigTransaction(payment_txn, logic_sig) 146 | 147 | # Submit group 148 | txid = algod_client.send_transactions([signed_app_call, signed_payment]) 149 | ``` 150 | 151 | ## Best Practices 152 | 153 | 1. **Security**: 154 | - Validate all transaction parameters 155 | - Use appropriate template variables 156 | - Implement proper access controls 157 | - Monitor subsidy account balance 158 | 159 | 2. **Fee Management**: 160 | - Calculate fees correctly 161 | - Consider network congestion 162 | - Monitor fee changes 163 | - Handle fee updates 164 | 165 | 3. **Application Control**: 166 | - Verify application IDs 167 | - Limit subsidized applications 168 | - Monitor application usage 169 | - Track subsidization costs 170 | 171 | 4. **Time Management**: 172 | - Set appropriate expiration rounds 173 | - Consider network timing 174 | - Handle round transitions 175 | - Update expiration as needed 176 | 177 | 5. **Error Handling**: 178 | - Validate all parameters 179 | - Handle rejection cases 180 | - Provide clear error messages 181 | - Monitor failed transactions 182 | 183 | 6. **Monitoring**: 184 | - Track usage patterns 185 | - Monitor account balance 186 | - Log subsidized calls 187 | - Analyze cost metrics 188 | 189 | This guide demonstrates how to implement a logic signature for subsidizing application calls in Algorand. The implementation includes security measures, fee management, and proper validation to ensure safe and efficient operation. 190 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_logic_error.LogicError.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/logic-error](../modules/types_logic_error.md) / LogicError 2 | 3 | # Class: LogicError 4 | 5 | [types/logic-error](../modules/types_logic_error.md).LogicError 6 | 7 | Wraps key functionality around processing logic errors 8 | 9 | ## Hierarchy 10 | 11 | - `Error` 12 | 13 | ↳ **`LogicError`** 14 | 15 | ## Table of contents 16 | 17 | ### Constructors 18 | 19 | - [constructor](types_logic_error.LogicError.md#constructor) 20 | 21 | ### Properties 22 | 23 | - [cause](types_logic_error.LogicError.md#cause) 24 | - [led](types_logic_error.LogicError.md#led) 25 | - [lines](types_logic_error.LogicError.md#lines) 26 | - [message](types_logic_error.LogicError.md#message) 27 | - [name](types_logic_error.LogicError.md#name) 28 | - [program](types_logic_error.LogicError.md#program) 29 | - [stack](types_logic_error.LogicError.md#stack) 30 | - [teal\_line](types_logic_error.LogicError.md#teal_line) 31 | - [prepareStackTrace](types_logic_error.LogicError.md#preparestacktrace) 32 | - [stackTraceLimit](types_logic_error.LogicError.md#stacktracelimit) 33 | 34 | ### Methods 35 | 36 | - [captureStackTrace](types_logic_error.LogicError.md#capturestacktrace) 37 | - [parseLogicError](types_logic_error.LogicError.md#parselogicerror) 38 | 39 | ## Constructors 40 | 41 | ### constructor 42 | 43 | • **new LogicError**(`errorDetails`, `program`, `getLineForPc`): [`LogicError`](types_logic_error.LogicError.md) 44 | 45 | Create a new logic error object. 46 | 47 | #### Parameters 48 | 49 | | Name | Type | Description | 50 | | :------ | :------ | :------ | 51 | | `errorDetails` | [`LogicErrorDetails`](../interfaces/types_logic_error.LogicErrorDetails.md) | The details of the logic error | 52 | | `program` | `string`[] | The TEAL source code, split by line | 53 | | `getLineForPc` | (`pc`: `number`) => `undefined` \| `number` | The source map of the TEAL source code | 54 | 55 | #### Returns 56 | 57 | [`LogicError`](types_logic_error.LogicError.md) 58 | 59 | #### Overrides 60 | 61 | Error.constructor 62 | 63 | #### Defined in 64 | 65 | [src/types/logic-error.ts:52](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L52) 66 | 67 | ## Properties 68 | 69 | ### cause 70 | 71 | • `Optional` **cause**: `unknown` 72 | 73 | #### Inherited from 74 | 75 | Error.cause 76 | 77 | #### Defined in 78 | 79 | node_modules/typescript/lib/lib.es2022.error.d.ts:24 80 | 81 | ___ 82 | 83 | ### led 84 | 85 | • **led**: [`LogicErrorDetails`](../interfaces/types_logic_error.LogicErrorDetails.md) 86 | 87 | #### Defined in 88 | 89 | [src/types/logic-error.ts:40](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L40) 90 | 91 | ___ 92 | 93 | ### lines 94 | 95 | • **lines**: `number` = `5` 96 | 97 | #### Defined in 98 | 99 | [src/types/logic-error.ts:42](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L42) 100 | 101 | ___ 102 | 103 | ### message 104 | 105 | • **message**: `string` 106 | 107 | #### Inherited from 108 | 109 | Error.message 110 | 111 | #### Defined in 112 | 113 | node_modules/typescript/lib/lib.es5.d.ts:1077 114 | 115 | ___ 116 | 117 | ### name 118 | 119 | • **name**: `string` 120 | 121 | #### Inherited from 122 | 123 | Error.name 124 | 125 | #### Defined in 126 | 127 | node_modules/typescript/lib/lib.es5.d.ts:1076 128 | 129 | ___ 130 | 131 | ### program 132 | 133 | • **program**: `string`[] 134 | 135 | #### Defined in 136 | 137 | [src/types/logic-error.ts:41](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L41) 138 | 139 | ___ 140 | 141 | ### stack 142 | 143 | • `Optional` **stack**: `string` 144 | 145 | #### Overrides 146 | 147 | Error.stack 148 | 149 | #### Defined in 150 | 151 | [src/types/logic-error.ts:44](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L44) 152 | 153 | ___ 154 | 155 | ### teal\_line 156 | 157 | • **teal\_line**: `number` = `0` 158 | 159 | #### Defined in 160 | 161 | [src/types/logic-error.ts:43](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L43) 162 | 163 | ___ 164 | 165 | ### prepareStackTrace 166 | 167 | ▪ `Static` `Optional` **prepareStackTrace**: (`err`: `Error`, `stackTraces`: `CallSite`[]) => `any` 168 | 169 | Optional override for formatting stack traces 170 | 171 | **`See`** 172 | 173 | https://v8.dev/docs/stack-trace-api#customizing-stack-traces 174 | 175 | #### Type declaration 176 | 177 | ▸ (`err`, `stackTraces`): `any` 178 | 179 | ##### Parameters 180 | 181 | | Name | Type | 182 | | :------ | :------ | 183 | | `err` | `Error` | 184 | | `stackTraces` | `CallSite`[] | 185 | 186 | ##### Returns 187 | 188 | `any` 189 | 190 | #### Inherited from 191 | 192 | Error.prepareStackTrace 193 | 194 | #### Defined in 195 | 196 | node_modules/@types/node/globals.d.ts:28 197 | 198 | ___ 199 | 200 | ### stackTraceLimit 201 | 202 | ▪ `Static` **stackTraceLimit**: `number` 203 | 204 | #### Inherited from 205 | 206 | Error.stackTraceLimit 207 | 208 | #### Defined in 209 | 210 | node_modules/@types/node/globals.d.ts:30 211 | 212 | ## Methods 213 | 214 | ### captureStackTrace 215 | 216 | ▸ **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` 217 | 218 | Create .stack property on a target object 219 | 220 | #### Parameters 221 | 222 | | Name | Type | 223 | | :------ | :------ | 224 | | `targetObject` | `object` | 225 | | `constructorOpt?` | `Function` | 226 | 227 | #### Returns 228 | 229 | `void` 230 | 231 | #### Inherited from 232 | 233 | Error.captureStackTrace 234 | 235 | #### Defined in 236 | 237 | node_modules/@types/node/globals.d.ts:21 238 | 239 | ___ 240 | 241 | ### parseLogicError 242 | 243 | ▸ **parseLogicError**(`error`): `undefined` \| [`LogicErrorDetails`](../interfaces/types_logic_error.LogicErrorDetails.md) 244 | 245 | Takes an error message and parses out the details of any logic errors in there. 246 | 247 | #### Parameters 248 | 249 | | Name | Type | Description | 250 | | :------ | :------ | :------ | 251 | | `error` | `any` | The error message to parse | 252 | 253 | #### Returns 254 | 255 | `undefined` \| [`LogicErrorDetails`](../interfaces/types_logic_error.LogicErrorDetails.md) 256 | 257 | The logic error details if any, or undefined 258 | 259 | #### Defined in 260 | 261 | [src/types/logic-error.ts:26](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/logic-error.ts#L26) 262 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit sandbox approach 2 | 3 | - **Status**: Approved 4 | - **Owner:** Rob Moore 5 | - **Deciders**: Anne Kenyon (Algorand Inc.), Alessandro Cappellato (Algorand Foundation), Will Winder (Algorand Inc.) 6 | - **Date created**: 2022-11-14 7 | - **Date decided:** 2022-11-14 8 | - **Date updated**: 2022-11-16 9 | 10 | ## Context 11 | 12 | In order for AlgoKit to facilitate a productive development experience it needs to provide a managed Algorand sandbox experience. This allows developers to run an offline (local-only) private instance of Algorand that they can privately experiment with, run automated tests against and reset at will. 13 | 14 | ## Requirements 15 | 16 | - The sandbox works cross-platform (i.e. runs natively on Windows, Mac and Linux) 17 | - You can spin up algod and indexer since both have useful use cases when developing 18 | - The sandbox is kept up to date with the latest version of algod / indexer 19 | - There is access to KMD so that you can programmatically fund accounts to improve the developer experience and reduce manual effort 20 | - There is access to the tealdbg port outside of algod so you can attach a debugger to it 21 | - The sandbox is isolated and (once running) works offline so the workload is private, allows development when there is no internet (e.g. when on a plane) and allows for multiple instances to be run in parallel (e.g. when developing multiple independent projects simultaneously) 22 | - Works in continuous integration and local development environments so you can facilitate automated testing 23 | 24 | ## Principles 25 | 26 | - **[AlgoKit Guiding Principles](../../docs/algokit.md#Guiding-Principles)** - specifically Seamless onramp, Leverage existing ecosystem, Meet devs where they are 27 | - **Lightweight** - the solution should have as low an impact as possible on resources on the developers machine 28 | - **Fast** - the solution should start quickly, which makes for a nicer experience locally and also allows it to be used for continuous integration automation testing 29 | 30 | ## Options 31 | 32 | ### Option 1 - Pre-built DockerHub images 33 | 34 | Pre-built application developer-optimised DockerHub images that work cross-platform; aka an evolved AlgoKit version of <https://github.com/MakerXStudio/algorand-sandbox-dev>. 35 | 36 | **Pros** 37 | 38 | - It's quick to download the images and quick to start the container since you don't need to compile Algod / indexer and the images are optimised for small size 39 | - The only dependency needed is Docker, which is a fairly common dependency for most developers to use these days 40 | - The images are reasonably lightweight 41 | - The images provide an optimised application developer experience with: (devmode) algo, KMD, tealdbg, indexer 42 | - It natively works cross-platform 43 | 44 | **Cons** 45 | 46 | - Some people have reported problems running WSL 2 on a small proportion of Windows environments (to get the latest Docker experience) 47 | - Docker within Docker can be a problem in some CI environments that run agents on Docker in the first place 48 | - Work needs to be done to create an automated CI/CD that automatically releases new versions to keep it up to date with latest algod/indexer versions 49 | 50 | ### Option 2 - Lightweight algod client implementation 51 | 52 | Work with the Algorand Inc. team to get a lightweight algod client that can run outside of a Docker container cross-platform. 53 | 54 | **Pros** 55 | 56 | - Likely to be the most lightweight and fastest option - opening up better/easier isolated/parallelised automated testing options 57 | - Wouldn't need Docker as a dependency 58 | 59 | **Cons** 60 | 61 | - Indexer wouldn't be supported (Postgres would require Docker anyway) 62 | - Algorand Inc. does not distribute Windows binaries. 63 | 64 | ### Option 3 - Sandbox 65 | 66 | Use the existing [Algorand Sandbox](https://github.com/algorand/sandbox). 67 | 68 | **Pros** 69 | 70 | - Implicitly kept up to date with Algorand - no extra thing to maintain 71 | - Battle-tested by the core Algorand team day-in-day-out 72 | - Supports all environments including unreleased feature branches (because it can target a git repo / commit hash) 73 | 74 | **Cons** 75 | 76 | - Sandbox is designed for network testing, not application development - it's much more complex than the needs of application developers 77 | - Slow to start because it has to download and built algod and indexer (this is particularly problematic for ephemeral CI/CD build agents) 78 | - It's not cross-platform (it requires bash to run sandbox.sh, although a sandbox.ps1 version could be created) 79 | 80 | ## Preferred option 81 | 82 | Option 1 and Option 2. 83 | 84 | Option 1 provides a fully-featured experience that will work great in most scenarios, having option 2 as a second option would open up more advanced parallel automated testing scenarios in addition to that. 85 | 86 | ## Selected option 87 | 88 | Option 1 89 | 90 | We're aiming to release the first version of AlgoKit within a short timeframe, which won't give time for Option 2 to be developed. Sandbox itself has been ruled out since it's not cross-platform and is too slow for both development and continuous integration. 91 | 92 | Option 1 also results in a similar result to running Sandbox, so existing Algorand documentation, libraries and approaches should work well with this option making it a good slot-in replacement for Sandbox for application developers. 93 | 94 | AlgoKit is designed to be modular: we can add in other approaches over time such as Option 2 when/if it becomes available. 95 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.DryrunTxnResult.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / DryrunTxnResult 2 | 3 | # Class: DryrunTxnResult 4 | 5 | [modelsv2](../modules/modelsv2.md).DryrunTxnResult 6 | 7 | DryrunTxnResult contains any LogicSig or ApplicationCall program debug 8 | information and state updates from a dryrun. 9 | 10 | ## Hierarchy 11 | 12 | - `default` 13 | 14 | ↳ **`DryrunTxnResult`** 15 | 16 | ## Table of contents 17 | 18 | ### Constructors 19 | 20 | - [constructor](modelsv2.DryrunTxnResult.md#constructor) 21 | 22 | ### Properties 23 | 24 | - [appCallMessages](modelsv2.DryrunTxnResult.md#appcallmessages) 25 | - [appCallTrace](modelsv2.DryrunTxnResult.md#appcalltrace) 26 | - [attribute\_map](modelsv2.DryrunTxnResult.md#attribute_map) 27 | - [budgetAdded](modelsv2.DryrunTxnResult.md#budgetadded) 28 | - [budgetConsumed](modelsv2.DryrunTxnResult.md#budgetconsumed) 29 | - [disassembly](modelsv2.DryrunTxnResult.md#disassembly) 30 | - [globalDelta](modelsv2.DryrunTxnResult.md#globaldelta) 31 | - [localDeltas](modelsv2.DryrunTxnResult.md#localdeltas) 32 | - [logicSigDisassembly](modelsv2.DryrunTxnResult.md#logicsigdisassembly) 33 | - [logicSigMessages](modelsv2.DryrunTxnResult.md#logicsigmessages) 34 | - [logicSigTrace](modelsv2.DryrunTxnResult.md#logicsigtrace) 35 | - [logs](modelsv2.DryrunTxnResult.md#logs) 36 | 37 | ### Methods 38 | 39 | - [get\_obj\_for\_encoding](modelsv2.DryrunTxnResult.md#get_obj_for_encoding) 40 | - [from\_obj\_for\_encoding](modelsv2.DryrunTxnResult.md#from_obj_for_encoding) 41 | 42 | ## Constructors 43 | 44 | ### constructor 45 | 46 | • **new DryrunTxnResult**(`«destructured»`) 47 | 48 | Creates a new `DryrunTxnResult` object. 49 | 50 | #### Parameters 51 | 52 | | Name | Type | 53 | | :------ | :------ | 54 | | `«destructured»` | `Object` | 55 | | › `appCallMessages?` | `string`[] | 56 | | › `appCallTrace?` | [`DryrunState`](modelsv2.DryrunState.md)[] | 57 | | › `budgetAdded?` | `number` \| `bigint` | 58 | | › `budgetConsumed?` | `number` \| `bigint` | 59 | | › `disassembly` | `string`[] | 60 | | › `globalDelta?` | [`EvalDeltaKeyValue`](modelsv2.EvalDeltaKeyValue.md)[] | 61 | | › `localDeltas?` | [`AccountStateDelta`](modelsv2.AccountStateDelta.md)[] | 62 | | › `logicSigDisassembly?` | `string`[] | 63 | | › `logicSigMessages?` | `string`[] | 64 | | › `logicSigTrace?` | [`DryrunState`](modelsv2.DryrunState.md)[] | 65 | | › `logs?` | `Uint8Array`[] | 66 | 67 | #### Overrides 68 | 69 | BaseModel.constructor 70 | 71 | #### Defined in 72 | 73 | client/v2/algod/models/types.ts:3008 74 | 75 | ## Properties 76 | 77 | ### appCallMessages 78 | 79 | • `Optional` **appCallMessages**: `string`[] 80 | 81 | #### Defined in 82 | 83 | client/v2/algod/models/types.ts:2962 84 | 85 | ___ 86 | 87 | ### appCallTrace 88 | 89 | • `Optional` **appCallTrace**: [`DryrunState`](modelsv2.DryrunState.md)[] 90 | 91 | #### Defined in 92 | 93 | client/v2/algod/models/types.ts:2964 94 | 95 | ___ 96 | 97 | ### attribute\_map 98 | 99 | • **attribute\_map**: `Record`\<`string`, `string`\> 100 | 101 | #### Inherited from 102 | 103 | BaseModel.attribute\_map 104 | 105 | #### Defined in 106 | 107 | client/v2/basemodel.ts:56 108 | 109 | ___ 110 | 111 | ### budgetAdded 112 | 113 | • `Optional` **budgetAdded**: `number` \| `bigint` 114 | 115 | Budget added during execution of app call transaction. 116 | 117 | #### Defined in 118 | 119 | client/v2/algod/models/types.ts:2969 120 | 121 | ___ 122 | 123 | ### budgetConsumed 124 | 125 | • `Optional` **budgetConsumed**: `number` \| `bigint` 126 | 127 | Budget consumed during execution of app call transaction. 128 | 129 | #### Defined in 130 | 131 | client/v2/algod/models/types.ts:2974 132 | 133 | ___ 134 | 135 | ### disassembly 136 | 137 | • **disassembly**: `string`[] 138 | 139 | Disassembled program line by line. 140 | 141 | #### Defined in 142 | 143 | client/v2/algod/models/types.ts:2960 144 | 145 | ___ 146 | 147 | ### globalDelta 148 | 149 | • `Optional` **globalDelta**: [`EvalDeltaKeyValue`](modelsv2.EvalDeltaKeyValue.md)[] 150 | 151 | Application state delta. 152 | 153 | #### Defined in 154 | 155 | client/v2/algod/models/types.ts:2979 156 | 157 | ___ 158 | 159 | ### localDeltas 160 | 161 | • `Optional` **localDeltas**: [`AccountStateDelta`](modelsv2.AccountStateDelta.md)[] 162 | 163 | #### Defined in 164 | 165 | client/v2/algod/models/types.ts:2981 166 | 167 | ___ 168 | 169 | ### logicSigDisassembly 170 | 171 | • `Optional` **logicSigDisassembly**: `string`[] 172 | 173 | Disassembled lsig program line by line. 174 | 175 | #### Defined in 176 | 177 | client/v2/algod/models/types.ts:2986 178 | 179 | ___ 180 | 181 | ### logicSigMessages 182 | 183 | • `Optional` **logicSigMessages**: `string`[] 184 | 185 | #### Defined in 186 | 187 | client/v2/algod/models/types.ts:2988 188 | 189 | ___ 190 | 191 | ### logicSigTrace 192 | 193 | • `Optional` **logicSigTrace**: [`DryrunState`](modelsv2.DryrunState.md)[] 194 | 195 | #### Defined in 196 | 197 | client/v2/algod/models/types.ts:2990 198 | 199 | ___ 200 | 201 | ### logs 202 | 203 | • `Optional` **logs**: `Uint8Array`[] 204 | 205 | #### Defined in 206 | 207 | client/v2/algod/models/types.ts:2992 208 | 209 | ## Methods 210 | 211 | ### get\_obj\_for\_encoding 212 | 213 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 214 | 215 | Get an object ready for encoding to either JSON or msgpack. 216 | 217 | #### Parameters 218 | 219 | | Name | Type | Default value | Description | 220 | | :------ | :------ | :------ | :------ | 221 | | `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. | 222 | 223 | #### Returns 224 | 225 | `Record`\<`string`, `any`\> 226 | 227 | #### Inherited from 228 | 229 | BaseModel.get\_obj\_for\_encoding 230 | 231 | #### Defined in 232 | 233 | client/v2/basemodel.ts:65 234 | 235 | ___ 236 | 237 | ### from\_obj\_for\_encoding 238 | 239 | ▸ `Static` **from_obj_for_encoding**(`data`): [`DryrunTxnResult`](modelsv2.DryrunTxnResult.md) 240 | 241 | #### Parameters 242 | 243 | | Name | Type | 244 | | :------ | :------ | 245 | | `data` | `Record`\<`string`, `any`\> | 246 | 247 | #### Returns 248 | 249 | [`DryrunTxnResult`](modelsv2.DryrunTxnResult.md) 250 | 251 | #### Defined in 252 | 253 | client/v2/algod/models/types.ts:3062 254 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/algo-http-client-with-retry](../modules/types_algo_http_client_with_retry.md) / AlgoHttpClientWithRetry 2 | 3 | # Class: AlgoHttpClientWithRetry 4 | 5 | [types/algo-http-client-with-retry](../modules/types_algo_http_client_with_retry.md).AlgoHttpClientWithRetry 6 | 7 | A HTTP Client that wraps the Algorand SDK HTTP Client with retries 8 | 9 | ## Hierarchy 10 | 11 | - `URLTokenBaseHTTPClient` 12 | 13 | ↳ **`AlgoHttpClientWithRetry`** 14 | 15 | ## Table of contents 16 | 17 | ### Constructors 18 | 19 | - [constructor](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#constructor) 20 | 21 | ### Properties 22 | 23 | - [MAX\_BACKOFF\_MS](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#max_backoff_ms) 24 | - [MAX\_TRIES](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#max_tries) 25 | - [RETRY\_ERROR\_CODES](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#retry_error_codes) 26 | - [RETRY\_STATUS\_CODES](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#retry_status_codes) 27 | 28 | ### Methods 29 | 30 | - [callWithRetry](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#callwithretry) 31 | - [delete](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#delete) 32 | - [get](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#get) 33 | - [post](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md#post) 34 | 35 | ## Constructors 36 | 37 | ### constructor 38 | 39 | • **new AlgoHttpClientWithRetry**(`tokenHeader`, `baseServer`, `port?`, `defaultHeaders?`): [`AlgoHttpClientWithRetry`](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md) 40 | 41 | #### Parameters 42 | 43 | | Name | Type | 44 | | :------ | :------ | 45 | | `tokenHeader` | `TokenHeader` | 46 | | `baseServer` | `string` | 47 | | `port?` | `string` \| `number` | 48 | | `defaultHeaders?` | `Record`\<`string`, `any`\> | 49 | 50 | #### Returns 51 | 52 | [`AlgoHttpClientWithRetry`](types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md) 53 | 54 | #### Inherited from 55 | 56 | URLTokenBaseHTTPClient.constructor 57 | 58 | #### Defined in 59 | 60 | node_modules/algosdk/dist/types/client/urlTokenBaseHTTPClient.d.ts:27 61 | 62 | ## Properties 63 | 64 | ### MAX\_BACKOFF\_MS 65 | 66 | ▪ `Static` `Private` `Readonly` **MAX\_BACKOFF\_MS**: ``10000`` 67 | 68 | #### Defined in 69 | 70 | [src/types/algo-http-client-with-retry.ts:8](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L8) 71 | 72 | ___ 73 | 74 | ### MAX\_TRIES 75 | 76 | ▪ `Static` `Private` `Readonly` **MAX\_TRIES**: ``5`` 77 | 78 | #### Defined in 79 | 80 | [src/types/algo-http-client-with-retry.ts:7](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L7) 81 | 82 | ___ 83 | 84 | ### RETRY\_ERROR\_CODES 85 | 86 | ▪ `Static` `Private` `Readonly` **RETRY\_ERROR\_CODES**: `string`[] 87 | 88 | #### Defined in 89 | 90 | [src/types/algo-http-client-with-retry.ts:13](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L13) 91 | 92 | ___ 93 | 94 | ### RETRY\_STATUS\_CODES 95 | 96 | ▪ `Static` `Private` `Readonly` **RETRY\_STATUS\_CODES**: `number`[] 97 | 98 | #### Defined in 99 | 100 | [src/types/algo-http-client-with-retry.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L12) 101 | 102 | ## Methods 103 | 104 | ### callWithRetry 105 | 106 | ▸ **callWithRetry**(`func`): `Promise`\<`BaseHTTPClientResponse`\> 107 | 108 | #### Parameters 109 | 110 | | Name | Type | 111 | | :------ | :------ | 112 | | `func` | () => `Promise`\<`BaseHTTPClientResponse`\> | 113 | 114 | #### Returns 115 | 116 | `Promise`\<`BaseHTTPClientResponse`\> 117 | 118 | #### Defined in 119 | 120 | [src/types/algo-http-client-with-retry.ts:25](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L25) 121 | 122 | ___ 123 | 124 | ### delete 125 | 126 | ▸ **delete**(`relativePath`, `data`, `query?`, `requestHeaders?`): `Promise`\<`BaseHTTPClientResponse`\> 127 | 128 | #### Parameters 129 | 130 | | Name | Type | 131 | | :------ | :------ | 132 | | `relativePath` | `string` | 133 | | `data` | `Uint8Array` | 134 | | `query?` | `Query`\<`string`\> | 135 | | `requestHeaders` | `Record`\<`string`, `string`\> | 136 | 137 | #### Returns 138 | 139 | `Promise`\<`BaseHTTPClientResponse`\> 140 | 141 | #### Overrides 142 | 143 | URLTokenBaseHTTPClient.delete 144 | 145 | #### Defined in 146 | 147 | [src/types/algo-http-client-with-retry.ts:100](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L100) 148 | 149 | ___ 150 | 151 | ### get 152 | 153 | ▸ **get**(`relativePath`, `query?`, `requestHeaders?`): `Promise`\<`BaseHTTPClientResponse`\> 154 | 155 | #### Parameters 156 | 157 | | Name | Type | 158 | | :------ | :------ | 159 | | `relativePath` | `string` | 160 | | `query?` | `Query`\<`string`\> | 161 | | `requestHeaders` | `Record`\<`string`, `string`\> | 162 | 163 | #### Returns 164 | 165 | `Promise`\<`BaseHTTPClientResponse`\> 166 | 167 | #### Overrides 168 | 169 | URLTokenBaseHTTPClient.get 170 | 171 | #### Defined in 172 | 173 | [src/types/algo-http-client-with-retry.ts:57](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L57) 174 | 175 | ___ 176 | 177 | ### post 178 | 179 | ▸ **post**(`relativePath`, `data`, `query?`, `requestHeaders?`): `Promise`\<`BaseHTTPClientResponse`\> 180 | 181 | #### Parameters 182 | 183 | | Name | Type | 184 | | :------ | :------ | 185 | | `relativePath` | `string` | 186 | | `data` | `Uint8Array` | 187 | | `query?` | `Query`\<`string`\> | 188 | | `requestHeaders` | `Record`\<`string`, `string`\> | 189 | 190 | #### Returns 191 | 192 | `Promise`\<`BaseHTTPClientResponse`\> 193 | 194 | #### Overrides 195 | 196 | URLTokenBaseHTTPClient.post 197 | 198 | #### Defined in 199 | 200 | [src/types/algo-http-client-with-retry.ts:91](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algo-http-client-with-retry.ts#L91) 201 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:README.md: -------------------------------------------------------------------------------- ```markdown 1 | <div align="center"> 2 | <a href="https://github.com/algorandfoundation/algokit"><img src="https://bafybeickjkfl4mbrhmgr67kentvjr3meixppy2ziqyvpjpkvrlyjacjvua.ipfs.nftstorage.link/"></a> 3 | </div> 4 | 5 | <br/> 6 | <div align="center"> 7 | Welcome to the AlgoKit Developer Universe repo, the one-stop shop for all <a href="https://github.com/algorandfoundation/algokit-cli#what-is-algokit"> AlgoKit</a> related repositories and information 8 | </div> 9 | <br/> 10 | <p align="center"> 11 | <a target="_blank" href="https://github.com/algorandfoundation/algokit-cli"><img src="https://img.shields.io/badge/algokit-cli-00dc94?logo=algorand&mac=flat.svg" /></a> 12 | <a target="_blank" href="https://github.com/algorandfoundation/algokit-utils-py#readme"><img src="https://img.shields.io/badge/algokit-utils-00dc94?logo=python&mac=flat.svg" /></a> 13 | <a target="_blank" href="https://github.com/algorandfoundation/algokit-utils-ts#algokit-typescript-utilities"><img src="https://img.shields.io/badge/algokit-utils-00dc94?logo=typescript&mac=flat.svg" /></a> 14 | <a target="_blank" href="https://github.com/algorandfoundation/algokit-client-generator-py"><img src="https://img.shields.io/badge/algokit-client generator-00dc94?logo=python&mac=flat.svg" /></a> 15 | <a target="_blank" href="https://github.com/algorandfoundation/algokit-client-generator-ts"><img src="https://img.shields.io/badge/algokit-client generator-00dc94?logo=typescript&mac=flat.svg" /></a> 16 | 17 | </p> 18 | 19 | ### AlgoKit CLI 20 | <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/algokit?logo=pypi"> <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/algorandfoundation/algokit-cli?logo=github"> 21 | 22 | AlgoKit CLI is the one-stop shop tool for developers building on the [Algorand network](https://www.algorand.com/). 23 | 24 | AlgoKit gets developers of all levels up and running with a familiar, fun and productive development environment in minutes. The goal of AlgoKit is to help developers build and launch secure, automated production-ready applications rapidly. 25 | 26 | [Repo](https://github.com/algorandfoundation/algokit-cli) | [Quick Start Tutorial](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/tutorials/intro.md) | [Documentation](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/algokit.md) 27 | 28 | >[!NOTE] 29 | > By using the AlgoKit cli you will use all the below listed packages, no need to install them separately 30 | 31 | ### Algorand Python 32 | Algorand Python is a semantically and syntactically compatible, typed Python language that works with standard Python tooling and allows you to express smart contracts (apps) and smart signatures (logic signatures) for deployment on the Algorand Virtual Machine (AVM). [See how to get started](https://github.com/algorandfoundation/puya). 33 | 34 | ### AlgoKit Utils 35 | A set of core Algorand utilities available in both Python and TypeScript that make it easier to build solutions on Algorand. 36 | 37 | The goal of this library is to provide intuitive, productive utility functions that make it easier, quicker and safer to build applications on Algorand. Largely these functions wrap the underlying Algorand SDK, but provide a higher level interface with sensible defaults and capabilities for common tasks. 38 | 39 | ##### Python 40 | <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/algokit-utils?logo=pypi"> 41 | 42 | [Repo](https://github.com/algorandfoundation/algokit-utils-py#readme) | [Documentation](https://algorandfoundation.github.io/algokit-utils-py/html/index.html) 43 | 44 | 45 | ##### TypeScript 46 | <img alt="npm" src="https://img.shields.io/npm/dm/%40algorandfoundation/algokit-utils?logo=npm"> 47 | 48 | [Repo](https://github.com/algorandfoundation/algokit-utils-ts#algokit-typescript-utilities) | [Documentation](https://github.com/algorandfoundation/algokit-utils-ts/tree/main/docs) 49 | 50 | ### Client Generators 51 | This project generates a type-safe smart contract client in both Python TypeScript for the Algorand Blockchain that wraps the [application client](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/docs/capabilities/app-client.md) in AlgoKit Utils. It does this by reading an [ARC-0032](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0032.md) application spec file. 52 | 53 | ##### Python 54 | <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/algokit-client-generator?logo=pypi"> 55 | 56 | [Repo](https://github.com/algorandfoundation/algokit-client-generator-py) | [Examples](https://github.com/algorandfoundation/algokit-client-generator-py/tree/main/examples) 57 | 58 | 59 | ##### TypeScript 60 | <img alt="npm" src="https://img.shields.io/npm/dm/%40algorandfoundation/algokit-client-generator?logo=npm"> 61 | 62 | [Repo](https://github.com/algorandfoundation/algokit-client-generator-ts) | [Examples](https://github.com/algorandfoundation/algokit-client-generator-ts/tree/main/examples) 63 | 64 | ### AVM Debugger 65 | The AlgoKit AVM VS Code debugger extension provides a convenient way to debug any Algorand Smart Contracts written in TEAL 66 | [more info](https://marketplace.visualstudio.com/items?itemName=AlgorandFoundation.algokit-avm-vscode-debugger) 67 | 68 | ### TestNet Dispenser 69 | The AlgoKit TestNet Dispenser API provides functionalities to interact with the Dispenser service. This service enables users to fund and refund assets, testnet Algos only for now. 70 | [Documentation](./docs/testnet_api.md) 71 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:algokit.md: -------------------------------------------------------------------------------- ```markdown 1 | # AlgoKit 2 | 3 | The Algorand AlgoKit CLI is the one-stop shop tool for developers building on the Algorand network. The goal of AlgoKit is to help developers build and launch secure, automated production-ready applications rapidly. 4 | 5 | ## AlgoKit CLI commands 6 | 7 | For details on how to use individual features see the following 8 | 9 | - [Bootstrap](./features/project/bootstrap.md) - Bootstrap AlgoKit project dependencies 10 | - [Compile](./features/compile.md) - Compile Algorand Python code 11 | - [Completions](./features/completions.md) - Install shell completions for AlgoKit 12 | - [Deploy](./features/project/deploy.md) - Deploy your smart contracts effortlessly to various networks 13 | - [Dispenser](./features/dispenser.md) - Fund your TestNet account with ALGOs from the AlgoKit TestNet Dispenser 14 | - [Doctor](./features/doctor.md) - Check AlgoKit installation and dependencies 15 | - [Explore](./features/explore.md) - Explore Algorand Blockchains using lora 16 | - [Generate](./features/generate.md) - Generate code for an Algorand project 17 | - [Goal](./features/goal.md) - Run the Algorand goal CLI against the AlgoKit Sandbox 18 | - [Init](./features/init.md) - Quickly initialize new projects using official Algorand Templates or community provided templates 19 | - [LocalNet](./features/localnet.md) - Manage a locally sandboxed private Algorand network 20 | - [Project](./features/project.md) - Manage an AlgoKit project workspace on your file system 21 | - [Tasks](./features/tasks.md) - Perform a variety of useful operations on the Algorand blockchain 22 | 23 | ## Common AlgoKit CLI options 24 | 25 | AlgoKit has a number of global options that can impact all commands. Note: these global options must be appended to `algokit` and appear before a command, e.g. `algokit -v localnet start`, but not `algokit localnet start -v`. The exception to this is `-h`, which can be appended to any command or sub-command to see contextual help information. 26 | 27 | - `-h, --help` The help option can be used on any command to get details on any command, its sub-commands and options. 28 | - `-v, --verbose` Enables DEBUG logging, useful when troubleshooting or if you want to peek under the covers and learn what AlgoKit CLI is doing. 29 | - `--color / --no-color` Enables or disables output of console styling, we also support the [NO_COLOR](https://no-color.org) environment variable. 30 | - `--skip-version-check` Skips updated AlgoKit version checking and prompting for that execution, this can also be disabled [permanently on a given machine](./cli/index.md#version-prompt) with `algokit config version-prompt disable`. 31 | 32 | See also the [AlgoKit CLI Reference](./cli/index.md), which details every command, sub-command and option. 33 | 34 | ## AlgoKit Tutorials 35 | 36 | The following tutorials guide you through various scenarios: 37 | 38 | - [AlgoKit quick start](./tutorials/intro.md) 39 | - [Creating AlgoKit templates](./tutorials/algokit-template.md) 40 | 41 | ## Guiding Principles 42 | 43 | AlgoKit is guided by the following solution principles which flow through to the applications created by developers. 44 | 45 | 1. **Cohesive developer tool suite**: Using AlgoKit should feel professional and cohesive, like it was designed to work together, for the developer; not against them. Developers are guided towards delivering end-to-end, high quality outcomes on MainNet so they and Algorand are more likely to be successful. 46 | 2. **Seamless onramp**: New developers have a seamless experience to get started and they are guided into a pit of success with best practices, supported by great training collateral; you should be able to go from nothing to debugging code in 5 minutes. 47 | 3. **Leverage existing ecosystem**: AlgoKit functionality gets into the hands of Algorand developers quickly by building on top of the existing ecosystem wherever possible and aligned to these principles. 48 | 4. **Sustainable**: AlgoKit should be built in a flexible fashion with long-term maintenance in mind. Updates to latest patches in dependencies, Algorand protocol development updates, and community contributions and feedback will all feed in to the evolution of the software. 49 | 5. **Secure by default**: Include defaults, patterns and tooling that help developers write secure code and reduce the likelihood of security incidents in the Algorand ecosystem. This solution should help Algorand be the most secure Blockchain ecosystem. 50 | 6. **Extensible**: Be extensible for community contribution rather than stifling innovation, bottle-necking all changes through the Algorand Foundation and preventing the opportunity for other ecosystems being represented (e.g. Go, Rust, etc.). This helps make developers feel welcome and is part of the developer experience, plus it makes it easier to add features sustainably. 51 | 7. **Meet developers where they are**: Make Blockchain development mainstream by giving all developers an idiomatic development experience in the operating system, IDE and language they are comfortable with so they can dive in quickly and have less they need to learn before being productive. 52 | 8. **Modular components**: Solution components should be modular and loosely coupled to facilitate efficient parallel development by small, effective teams, reduced architectural complexity and allowing developers to pick and choose the specific tools and capabilities they want to use based on their needs and what they are comfortable with. 53 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:run-a-node:setup:indexer.md: -------------------------------------------------------------------------------- ```markdown 1 | title: Install the indexer 2 | 3 | The Algorand Indexer is a feature that enables searching the blockchain for transactions, assets, accounts, and blocks with various criteria. Currently, Algorand has a V1 and V2 Indexer. The V1 Indexer is deprecated and can significantly slow down nodes. Users should now use the V2 Indexer. The V2 Indexer runs as an independent process that must connect to a [PostgreSQL](https://www.postgresql.org/) compatible database that contains the ledger data. The PostgreSQL database is populated by the indexer which connects to an Algorand node and processes all the ledger data and loads the database. The node the Indexer connects to must be an archival node to get all the ledger data. Alternatively, the Indexer can just connect to a PostgresSQL database that is populated by another instance of Indexer. This allows reader instances to be set up that provide the [REST APIs](../../../rest-apis/indexer) for searching the database and another Indexer to be responsible for loading the ledger data. 4 | 5 | 6 | The V2 Indexer is network agnostic, meaning it can point at BetaNet, TestNet, or MainNet. 7 | 8 | The source code for the Indexer is provided on [github](https://github.com/algorand/indexer). 9 | 10 | For details on Indexer usage, read the [Searching the Blockchain](../../../get-details/indexer) feature guide and the [REST API Indexer reference](../../../rest-apis/indexer). See [Indexer README](https://github.com/algorand/indexer) for more details on running the Indexer. 11 | 12 | 13 | # Indexer V2 14 | ## Download the Indexer Binaries 15 | To Install the new Indexer follow the instructions below. The Indexer binaries are available on [github](https://github.com/algorand/indexer/releases). 16 | 17 | !!! info 18 | Additional install methods will be available in the near future. 19 | 20 | ## Extract the binaries to a specific directory 21 | The binary can be placed in any directory you choose. In these instructions, an indexer folder is used which is located in the current user's home directory. 22 | 23 | ```bash 24 | $ mkdir ~/indexer 25 | $ cd /path/to/download-dir 26 | $ tar -xf <your-os-tarfile> -C ~/indexer 27 | $ cd ~/indexer/<tarfile-name> 28 | ``` 29 | 30 | ## Run the Indexer 31 | The Indexer primarily provides two services, loading a PostgreSQL database with ledger data and supplying a REST API to search this ledger data. You can set the Indexer to point at a database that was loaded by another instance of the Indexer. The database does not have to be on the current node. In fact, you can have one Indexer that loads the database and many Indexers that share this data through their REST APIs. How the Indexer operates is determined with parameters that are passed to the Indexer as it is started. 32 | 33 | The Indexer has many options which can be seen using the -h option when running the [Indexer binary](../../clis/indexer/indexer.md). 34 | 35 | To start the Indexer as a reader (ie not connecting to an Algorand node), supply the `--postgres` or `-P` option when running the indexer. The value should be a valid connection string for a postgres database. 36 | 37 | ```bash 38 | $ ./algorand-indexer daemon --data-dir /tmp -P "host=[your-host] port=[your-port] user=[uname] password=[password] dbname=[ledgerdb] sslmode=disable" --no-algod 39 | ``` 40 | 41 | To start the Indexer so it populates the PostgreSQL database, supply the Algorand Archival node connection details. This can be done by either specifying the Algorand Node data directory (with `--algod`), if the node is on the same machine as the Indexer, or by supplying the algod network host and port string (`--algod-net`) and the proper API token (`--algod-token`). The database needs to be created and running prior to starting the Indexer. 42 | 43 | !!! note 44 | The indexer has a flag `--data-dir` for where to write it's data, which is distinct from the algod data directory in the above paragraph. 45 | 46 | ```bash 47 | # start with local data directory 48 | $ ./algorand-indexer daemon --data-dir /tmp -P "host=[your-host] port=[your-port] user=[uname] password=[password] dbname=[ledgerdb] sslmode=disable" --algod=~/node/data 49 | 50 | # start with networked Algorand node 51 | $ ./algorand-indexer daemon --data-dir /tmp -P "host=[your-host] port=[your-port] user=[uname] password=[password] dbname=[ledgerdb] sslmode=disable" --algod-net="http://[your-host]:[your-port]" --algod-token="[your-api-token]" 52 | 53 | ``` 54 | 55 | !!! info 56 | The initial loading of the Indexer Database will take a considerable amount of time. 57 | 58 | 59 | ## REST API Token and Server 60 | 61 | When starting the Indexer, a REST API is exposed. To control access to this API you can you use the `--token` parameter, which allows specifying any desired token. REST API clients will be required to pass this token in their calls in order to return successful searches. The REST API defaults to serving on port 8980. This can be changed by supply a [host:port] value to the Indexer with the `--server` option. 62 | 63 | [Click here for Indexer Rest Endpoint specfiles.](../../../rest-apis/restendpoints/) 64 | 65 | To turn on indexing for a node, the `isIndexerActive` configuration parameter must be set to `true`. The [Node Configuration](../../reference/config) guide describes setting node configuration properties. 66 | 67 | !!! warning 68 | Turning on indexing with a node will increase the disk space required by the node. 69 | 70 | !!! info 71 | Indexing on a node is only allowed with nodes that have archival mode turned on. 72 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:LogicSigAccount.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / LogicSigAccount 2 | 3 | # Class: LogicSigAccount 4 | 5 | Represents an account that can sign with a LogicSig program. 6 | 7 | ## Table of contents 8 | 9 | ### Constructors 10 | 11 | - [constructor](LogicSigAccount.md#constructor) 12 | 13 | ### Properties 14 | 15 | - [lsig](LogicSigAccount.md#lsig) 16 | - [sigkey](LogicSigAccount.md#sigkey) 17 | 18 | ### Methods 19 | 20 | - [address](LogicSigAccount.md#address) 21 | - [appendToMultisig](LogicSigAccount.md#appendtomultisig) 22 | - [get\_obj\_for\_encoding](LogicSigAccount.md#get_obj_for_encoding) 23 | - [isDelegated](LogicSigAccount.md#isdelegated) 24 | - [sign](LogicSigAccount.md#sign) 25 | - [signMultisig](LogicSigAccount.md#signmultisig) 26 | - [toByte](LogicSigAccount.md#tobyte) 27 | - [verify](LogicSigAccount.md#verify) 28 | - [fromByte](LogicSigAccount.md#frombyte) 29 | - [from\_obj\_for\_encoding](LogicSigAccount.md#from_obj_for_encoding) 30 | 31 | ## Constructors 32 | 33 | ### constructor 34 | 35 | • **new LogicSigAccount**(`program`, `args?`) 36 | 37 | Create a new LogicSigAccount. By default this will create an escrow 38 | LogicSig account. Call `sign` or `signMultisig` on the newly created 39 | LogicSigAccount to make it a delegated account. 40 | 41 | #### Parameters 42 | 43 | | Name | Type | Description | 44 | | :------ | :------ | :------ | 45 | | `program` | `Uint8Array` | The compiled TEAL program which contains the logic for this LogicSig. | 46 | | `args?` | (`Uint8Array` \| `Buffer`)[] | An optional array of arguments for the program. | 47 | 48 | #### Defined in 49 | 50 | logicsig.ts:246 51 | 52 | ## Properties 53 | 54 | ### lsig 55 | 56 | • **lsig**: [`LogicSig`](LogicSig.md) 57 | 58 | #### Defined in 59 | 60 | logicsig.ts:234 61 | 62 | ___ 63 | 64 | ### sigkey 65 | 66 | • `Optional` **sigkey**: `Uint8Array` 67 | 68 | #### Defined in 69 | 70 | logicsig.ts:235 71 | 72 | ## Methods 73 | 74 | ### address 75 | 76 | ▸ **address**(): `string` 77 | 78 | Get the address of this LogicSigAccount. 79 | 80 | If the LogicSig is delegated to another account, this will return the 81 | address of that account. 82 | 83 | If the LogicSig is not delegated to another account, this will return an 84 | escrow address that is the hash of the LogicSig's program code. 85 | 86 | #### Returns 87 | 88 | `string` 89 | 90 | #### Defined in 91 | 92 | logicsig.ts:315 93 | 94 | ___ 95 | 96 | ### appendToMultisig 97 | 98 | ▸ **appendToMultisig**(`secretKey`): `void` 99 | 100 | Adds an additional signature from a member of the delegating multisig 101 | account. 102 | 103 | #### Parameters 104 | 105 | | Name | Type | Description | 106 | | :------ | :------ | :------ | 107 | | `secretKey` | `Uint8Array` | The secret key of one of the members of the delegating multisig account. | 108 | 109 | #### Returns 110 | 111 | `void` 112 | 113 | #### Defined in 114 | 115 | logicsig.ts:363 116 | 117 | ___ 118 | 119 | ### get\_obj\_for\_encoding 120 | 121 | ▸ **get_obj_for_encoding**(): [`EncodedLogicSigAccount`](../interfaces/EncodedLogicSigAccount.md) 122 | 123 | #### Returns 124 | 125 | [`EncodedLogicSigAccount`](../interfaces/EncodedLogicSigAccount.md) 126 | 127 | #### Defined in 128 | 129 | logicsig.ts:252 130 | 131 | ___ 132 | 133 | ### isDelegated 134 | 135 | ▸ **isDelegated**(): `boolean` 136 | 137 | Check if this LogicSigAccount has been delegated to another account with a 138 | signature. 139 | 140 | Note this function only checks for the presence of a delegation signature. 141 | To verify the delegation signature, use `verify`. 142 | 143 | #### Returns 144 | 145 | `boolean` 146 | 147 | #### Defined in 148 | 149 | logicsig.ts:293 150 | 151 | ___ 152 | 153 | ### sign 154 | 155 | ▸ **sign**(`secretKey`): `void` 156 | 157 | Turns this LogicSigAccount into a delegated LogicSig. This type of LogicSig 158 | has the authority to sign transactions on behalf of another account, called 159 | the delegating account. If the delegating account is a multisig account, 160 | use `signMultisig` instead. 161 | 162 | #### Parameters 163 | 164 | | Name | Type | Description | 165 | | :------ | :------ | :------ | 166 | | `secretKey` | `Uint8Array` | The secret key of the delegating account. | 167 | 168 | #### Returns 169 | 170 | `void` 171 | 172 | #### Defined in 173 | 174 | logicsig.ts:375 175 | 176 | ___ 177 | 178 | ### signMultisig 179 | 180 | ▸ **signMultisig**(`msig`, `secretKey`): `void` 181 | 182 | Turns this LogicSigAccount into a delegated LogicSig. This type of LogicSig 183 | has the authority to sign transactions on behalf of another account, called 184 | the delegating account. Use this function if the delegating account is a 185 | multisig account. 186 | 187 | #### Parameters 188 | 189 | | Name | Type | Description | 190 | | :------ | :------ | :------ | 191 | | `msig` | [`MultisigMetadata`](../interfaces/MultisigMetadata.md) | The multisig delegating account | 192 | | `secretKey` | `Uint8Array` | The secret key of one of the members of the delegating multisig account. Use `appendToMultisig` to add additional signatures from other members. | 193 | 194 | #### Returns 195 | 196 | `void` 197 | 198 | #### Defined in 199 | 200 | logicsig.ts:352 201 | 202 | ___ 203 | 204 | ### toByte 205 | 206 | ▸ **toByte**(): `Uint8Array` 207 | 208 | Encode this object into msgpack. 209 | 210 | #### Returns 211 | 212 | `Uint8Array` 213 | 214 | #### Defined in 215 | 216 | logicsig.ts:273 217 | 218 | ___ 219 | 220 | ### verify 221 | 222 | ▸ **verify**(): `boolean` 223 | 224 | Verifies this LogicSig's program and signatures. 225 | 226 | #### Returns 227 | 228 | `boolean` 229 | 230 | true if and only if the LogicSig program and signatures are valid. 231 | 232 | #### Defined in 233 | 234 | logicsig.ts:301 235 | 236 | ___ 237 | 238 | ### fromByte 239 | 240 | ▸ `Static` **fromByte**(`encoded`): [`LogicSigAccount`](LogicSigAccount.md) 241 | 242 | Decode a msgpack object into a LogicSigAccount. 243 | 244 | #### Parameters 245 | 246 | | Name | Type | Description | 247 | | :------ | :------ | :------ | 248 | | `encoded` | `ArrayLike`\<`any`\> | The encoded LogicSigAccount. | 249 | 250 | #### Returns 251 | 252 | [`LogicSigAccount`](LogicSigAccount.md) 253 | 254 | #### Defined in 255 | 256 | logicsig.ts:281 257 | 258 | ___ 259 | 260 | ### from\_obj\_for\_encoding 261 | 262 | ▸ `Static` **from_obj_for_encoding**(`encoded`): [`LogicSigAccount`](LogicSigAccount.md) 263 | 264 | #### Parameters 265 | 266 | | Name | Type | 267 | | :------ | :------ | 268 | | `encoded` | [`EncodedLogicSigAccount`](../interfaces/EncodedLogicSigAccount.md) | 269 | 270 | #### Returns 271 | 272 | [`LogicSigAccount`](LogicSigAccount.md) 273 | 274 | #### Defined in 275 | 276 | logicsig.ts:263 277 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:rest-apis:restendpoints.md: -------------------------------------------------------------------------------- ```markdown 1 | title: REST Endpoints 2 | Algorand maintains SDK support in [JavaScript](../../sdks/javascript/#install-sdk-for-runtime), [Python](../../sdks/python/#install-sdk), [Java](../../sdks/java/#install-sdk-for-runtime) and [Go](../../sdks/go/#install-go-sdk). More languages are also available through [Community Provided SDKs](https://developer.algorand.org/ecosystem-projects/?from_query=sdk#net-sdk). The Algorand SDKs offer both standalone and network-connected development functionality. 3 | 4 | # Algod, Indexer and KMD REST Endpoints 5 | 6 | Integration with the Algorand protocol daemon (`algod`), Algorand key management daemon (`kmd`) or Algorand Indexer daemon (`algorand-indexer`) is performed using a set of REST APIs. 7 | 8 | All REST methods and models are fully described within reference documentation. 9 | 10 | - [Algod REST APIs](../../rest-apis/algod/) 11 | 12 | - [Indexer REST APIs](../../rest-apis/indexer/) 13 | 14 | - [KMD REST APIs](../../rest-apis/kmd/) 15 | 16 | _**Algod REST Endpoints**_ 17 | 18 | !!! info 19 | Algorand provides endpoints for [Open API Specification version 2 (OAS2)](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md) and [OAS3](https://github.com/OAI/OpenAPI-Specification/tree/main/versions). 20 | 21 | These APIs are described using the [Open API Specification version 3 (OAS3)](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md). 22 | 23 | [Algod REST Endpoints OAS3 specfile](https://github.com/algorand/go-algorand/blob/master/daemon/algod/api/algod.oas3.yml?raw=true)(.yml) 24 | 25 | Run Algod in Postman OAS3. 26 | 27 | [](https://app.getpostman.com/run-collection/7417958-60ff1bfc-b5f2-42aa-83b0-6888f0d4c2f4?action=collection%2Ffork&collection-url=entityId%3D7417958-60ff1bfc-b5f2-42aa-83b0-6888f0d4c2f4%26entityType%3Dcollection%26workspaceId%3Dab8846ef-efa3-4872-a5e5-c2992de6b69c) 28 | 29 | OAS2 Algod specfile [here](https://github.com/algorand/go-algorand/blob/master/daemon/algod/api/algod.oas2.json?raw=true) 30 | 31 | _**Indexer REST Endpoints**_ 32 | 33 | The `algorand-indexer` daemon provides its API from the _host:port_ defined by the _--server_ flag specified at start up. The default port is 8980. 34 | 35 | [Indexer REST Endpoints OAS3 specfile](https://www.github.com/algorand/indexer/blob/develop/api/indexer.oas3.yml?raw=true)(.yml) 36 | 37 | Run Indexer in Postman OAS3. 38 | 39 | [](https://app.getpostman.com/run-collection/7417958-2e088cf0-8c78-44b0-8b08-9a832b120d1a?action=collection%2Ffork&collection-url=entityId%3D7417958-2e088cf0-8c78-44b0-8b08-9a832b120d1a%26entityType%3Dcollection%26workspaceId%3Dab8846ef-efa3-4872-a5e5-c2992de6b69c) 40 | 41 | OAS2 Indexer specfile [here](https://github.com/algorand/indexer/blob/develop/api/indexer.oas2.json?raw=true) 42 | 43 | _**KMD REST Endpoints**_ 44 | 45 | !!! info 46 | All examples in this section assume the data directory is ~/node/data 47 | 48 | 49 | This API is described using the [Open API Specification version 2 (OAS 2)](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md). The `kmd` daemon serves it's API from the _kmd.net_ files found in the _~/node/data_ and _~/node/data/kmd-{version}_ directories. The `kmd` daemons provide their API specifications in a [swagger json](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/api/swagger.json) format available from this endpoint: 50 | 51 | Algorand Key Management Daemon (`kmd`) 52 | 53 | ```zsh 54 | curl http://$(cat ~/node/data/kmd-v0.5/kmd.net)/swagger.json 55 | ``` 56 | 57 | !!! info 58 | The `kmd` daemon is only automatically started when using the `goal` command line tool with specific commands requiring key management access. If you require API access to `kmd` you will need to manually start the process with `goal` using the command: `goal kmd start -d <data-dir>`. If the kmd is started with the above command it never times out and stops running unless a timeout flag is specified with the -t flag. The default of 0 is no timeout. 59 | 60 | # Security Token 61 | 62 | Most REST calls will also require an API token header to authenticate with the API server. For both `algod` and `kmd` the token is automatically generated by the daemon at startup and stored in a file. `algod` places _algod.token_ in the _~/node/data_ directory. `kmd` places _kmd.token_ the _~/node/data/kmd-{version}_ directory. Security tokens can be regenerated for both using the `goal node generatetoken` command. 63 | 64 | | Daemon | Header Identifier | Header Value Defined Via | 65 | | --------- | ------------------- | ------------------------------------------- | 66 | | `algod` | X-Algo-API-Token | file: ~/node/data/algod.token | 67 | | `kmd` | X-KMD-API-Token | file: ~/node/data/kmd-\{version\}/kmd.token | 68 | | `indexer` | X-Indexer-API-Token | | 69 | 70 | Each SDK provides a method for setting these headers. Most REST tools provide a method for setting additional headers. To set the header with a `curl` command use the `-H` parameter. For example, to make a call to retrieve a specific block, use the following curl command: 71 | 72 | ```zsh 73 | curl http://$(cat ~/node/data/algod.net)/v2/blocks/16486179 -H "X-Algo-API-Token: $(cat ~/node/data/algod.token)" 74 | ``` 75 | 76 | In the above example, the block information will be displayed if the block exists on the local node. If the node is a non-Archival node, blocks older than 1000 blocks will not be available. 77 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:testing.TestLogger.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / [testing](../modules/testing.md) / TestLogger 2 | 3 | # Class: TestLogger 4 | 5 | [testing](../modules/testing.md).TestLogger 6 | 7 | Exposes an AlgoKit logger which captures log messages, while wrapping an original logger. 8 | This is useful for automated testing. 9 | 10 | ## Implements 11 | 12 | - [`Logger`](../modules/types_logging.md#logger) 13 | 14 | ## Table of contents 15 | 16 | ### Constructors 17 | 18 | - [constructor](testing.TestLogger.md#constructor) 19 | 20 | ### Properties 21 | 22 | - [logs](testing.TestLogger.md#logs) 23 | - [originalLogger](testing.TestLogger.md#originallogger) 24 | 25 | ### Accessors 26 | 27 | - [capturedLogs](testing.TestLogger.md#capturedlogs) 28 | 29 | ### Methods 30 | 31 | - [clear](testing.TestLogger.md#clear) 32 | - [debug](testing.TestLogger.md#debug) 33 | - [error](testing.TestLogger.md#error) 34 | - [getLogSnapshot](testing.TestLogger.md#getlogsnapshot) 35 | - [info](testing.TestLogger.md#info) 36 | - [verbose](testing.TestLogger.md#verbose) 37 | - [warn](testing.TestLogger.md#warn) 38 | 39 | ## Constructors 40 | 41 | ### constructor 42 | 43 | • **new TestLogger**(`originalLogger?`): [`TestLogger`](testing.TestLogger.md) 44 | 45 | Create a new test logger that wraps the given logger if provided. 46 | 47 | #### Parameters 48 | 49 | | Name | Type | Description | 50 | | :------ | :------ | :------ | 51 | | `originalLogger?` | [`Logger`](../modules/types_logging.md#logger) | The optional original logger to wrap. | 52 | 53 | #### Returns 54 | 55 | [`TestLogger`](testing.TestLogger.md) 56 | 57 | #### Defined in 58 | 59 | [src/testing/test-logger.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L16) 60 | 61 | ## Properties 62 | 63 | ### logs 64 | 65 | • `Private` **logs**: `string`[] 66 | 67 | #### Defined in 68 | 69 | [src/testing/test-logger.ts:10](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L10) 70 | 71 | ___ 72 | 73 | ### originalLogger 74 | 75 | • `Private` **originalLogger**: `undefined` \| [`Logger`](../modules/types_logging.md#logger) 76 | 77 | #### Defined in 78 | 79 | [src/testing/test-logger.ts:9](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L9) 80 | 81 | ## Accessors 82 | 83 | ### capturedLogs 84 | 85 | • `get` **capturedLogs**(): `string`[] 86 | 87 | Returns all logs captured thus far. 88 | 89 | #### Returns 90 | 91 | `string`[] 92 | 93 | #### Defined in 94 | 95 | [src/testing/test-logger.ts:22](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L22) 96 | 97 | ## Methods 98 | 99 | ### clear 100 | 101 | ▸ **clear**(): `void` 102 | 103 | Clears all logs captured so far. 104 | 105 | #### Returns 106 | 107 | `void` 108 | 109 | #### Defined in 110 | 111 | [src/testing/test-logger.ts:27](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L27) 112 | 113 | ___ 114 | 115 | ### debug 116 | 117 | ▸ **debug**(`message`, `...optionalParams`): `void` 118 | 119 | #### Parameters 120 | 121 | | Name | Type | 122 | | :------ | :------ | 123 | | `message` | `string` | 124 | | `...optionalParams` | `unknown`[] | 125 | 126 | #### Returns 127 | 128 | `void` 129 | 130 | #### Implementation of 131 | 132 | Logger.debug 133 | 134 | #### Defined in 135 | 136 | [src/testing/test-logger.ts:89](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L89) 137 | 138 | ___ 139 | 140 | ### error 141 | 142 | ▸ **error**(`message`, `...optionalParams`): `void` 143 | 144 | #### Parameters 145 | 146 | | Name | Type | 147 | | :------ | :------ | 148 | | `message` | `string` | 149 | | `...optionalParams` | `unknown`[] | 150 | 151 | #### Returns 152 | 153 | `void` 154 | 155 | #### Implementation of 156 | 157 | Logger.error 158 | 159 | #### Defined in 160 | 161 | [src/testing/test-logger.ts:73](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L73) 162 | 163 | ___ 164 | 165 | ### getLogSnapshot 166 | 167 | ▸ **getLogSnapshot**(`config?`): `string` 168 | 169 | Returns a captured log snapshot. 170 | This helps ensure that the provided configuration items won't appear 171 | with random values in the log snapshot, but rather will get substituted with predictable ids. 172 | 173 | https://jestjs.io/docs/snapshot-testing#2-tests-should-be-deterministic 174 | 175 | #### Parameters 176 | 177 | | Name | Type | Description | 178 | | :------ | :------ | :------ | 179 | | `config?` | [`LogSnapshotConfig`](../interfaces/types_testing.LogSnapshotConfig.md) | The snapshot configuration | 180 | 181 | #### Returns 182 | 183 | `string` 184 | 185 | The snapshotted logs. 186 | 187 | **`Example`** 188 | 189 | ```typescript 190 | const logger = new TestLogger() 191 | ... 192 | expect(logger.getLogSnapshot()).toMatchSnapshot() 193 | ``` 194 | 195 | #### Defined in 196 | 197 | [src/testing/test-logger.ts:47](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L47) 198 | 199 | ___ 200 | 201 | ### info 202 | 203 | ▸ **info**(`message`, `...optionalParams`): `void` 204 | 205 | #### Parameters 206 | 207 | | Name | Type | 208 | | :------ | :------ | 209 | | `message` | `string` | 210 | | `...optionalParams` | `unknown`[] | 211 | 212 | #### Returns 213 | 214 | `void` 215 | 216 | #### Implementation of 217 | 218 | Logger.info 219 | 220 | #### Defined in 221 | 222 | [src/testing/test-logger.ts:81](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L81) 223 | 224 | ___ 225 | 226 | ### verbose 227 | 228 | ▸ **verbose**(`message`, `...optionalParams`): `void` 229 | 230 | #### Parameters 231 | 232 | | Name | Type | 233 | | :------ | :------ | 234 | | `message` | `string` | 235 | | `...optionalParams` | `unknown`[] | 236 | 237 | #### Returns 238 | 239 | `void` 240 | 241 | #### Implementation of 242 | 243 | Logger.verbose 244 | 245 | #### Defined in 246 | 247 | [src/testing/test-logger.ts:85](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L85) 248 | 249 | ___ 250 | 251 | ### warn 252 | 253 | ▸ **warn**(`message`, `...optionalParams`): `void` 254 | 255 | #### Parameters 256 | 257 | | Name | Type | 258 | | :------ | :------ | 259 | | `message` | `string` | 260 | | `...optionalParams` | `unknown`[] | 261 | 262 | #### Returns 263 | 264 | `void` 265 | 266 | #### Implementation of 267 | 268 | Logger.warn 269 | 270 | #### Defined in 271 | 272 | [src/testing/test-logger.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/test-logger.ts#L77) 273 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:modules:types_account.md: -------------------------------------------------------------------------------- ```markdown 1 | [@algorandfoundation/algokit-utils](../README.md) / types/account 2 | 3 | # Module: types/account 4 | 5 | ## Table of contents 6 | 7 | ### Classes 8 | 9 | - [MultisigAccount](../classes/types_account.MultisigAccount.md) 10 | - [SigningAccount](../classes/types_account.SigningAccount.md) 11 | 12 | ### Interfaces 13 | 14 | - [AccountConfig](../interfaces/types_account.AccountConfig.md) 15 | - [TransactionSignerAccount](../interfaces/types_account.TransactionSignerAccount.md) 16 | 17 | ### Type Aliases 18 | 19 | - [AccountAssetInformation](types_account.md#accountassetinformation) 20 | - [AccountInformation](types_account.md#accountinformation) 21 | 22 | ### Variables 23 | 24 | - [DISPENSER\_ACCOUNT](types_account.md#dispenser_account) 25 | 26 | ## Type Aliases 27 | 28 | ### AccountAssetInformation 29 | 30 | Ƭ **AccountAssetInformation**: `Object` 31 | 32 | Account asset holding information at a given round. 33 | 34 | #### Type declaration 35 | 36 | | Name | Type | Description | 37 | | :------ | :------ | :------ | 38 | | `assetId` | `bigint` | The ID of the asset held. | 39 | | `balance` | `bigint` | The current balance of that asset holding. | 40 | | `frozen` | `boolean` | Whether or not the asset is frozen for the account. | 41 | | `round` | `bigint` | The round as at which the holding was correct. | 42 | 43 | #### Defined in 44 | 45 | [src/types/account.ts:273](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L273) 46 | 47 | ___ 48 | 49 | ### AccountInformation 50 | 51 | Ƭ **AccountInformation**: `Object` 52 | 53 | Account information at a given round. 54 | 55 | #### Type declaration 56 | 57 | | Name | Type | Description | 58 | | :------ | :------ | :------ | 59 | | `address` | `Address` | The account public key | 60 | | `amountWithoutPendingRewards` | [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) | The amount of Algo in the account, without the pending rewards. | 61 | | `appsLocalState?` | `ApplicationLocalState`[] | Applications local data stored in this account. | 62 | | `appsTotalExtraPages?` | `number` | The sum of all extra application program pages for this account. | 63 | | `appsTotalSchema?` | `ApplicationStateSchema` | (tsch) stores the sum of all of the local schemas and global schemas in this account. Note: the raw account uses `StateSchema` for this type. | 64 | | `assets?` | `AssetHolding`[] | Assets held by this account. | 65 | | `authAddr?` | `Address` | The address against which signing should be checked. If empty, the address of the current account is used. This field can be updated in any transaction by setting the `RekeyTo` field. | 66 | | `balance` | [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) | The balance of Algo currently held by the account. | 67 | | `createdApps?` | `Application`[] | Parameters of applications created by this account including app global data. | 68 | | `createdAssets?` | `Asset`[] | (apar) parameters of assets created by this account. Note: the raw account uses `map[int] -> Asset` for this type. | 69 | | `lastHeartbeatRound?` | `bigint` | The round in which this account last went online, or explicitly renewed their online status. | 70 | | `lastProposedRound?` | `bigint` | The round in which this account last proposed the block. | 71 | | `minBalance` | [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) | Algo balance required to be held by the account. The requirement grows based on asset and application usage. | 72 | | `participation?` | `AccountParticipation` | AccountParticipation describes the parameters used by this account in consensus protocol. | 73 | | `pendingRewards` | [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) | Amount of Algo of pending rewards in this account. | 74 | | `rewardBase?` | `number` | Used as part of the rewards computation. Only applicable to accounts which are participating. | 75 | | `rewards` | [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) | Total rewards of Algo the account has received, including pending rewards. | 76 | | `sigType?` | `string` | Indicates what type of signature is used by this account, must be one of: * sig * msig * lsig | 77 | | `status` | `string` | Delegation status of the account's Algo: * Offline - indicates that the associated account is delegated. * Online - indicates that the associated account used as part of the delegation pool. * NotParticipating - indicates that the associated account is neither a delegator nor a delegate. | 78 | | `totalAppsOptedIn` | `number` | The count of all applications that have been opted in, equivalent to the count of application local data (AppLocalState objects) stored in this account. | 79 | | `totalAssetsOptedIn` | `number` | The count of all assets that have been opted in, equivalent to the count of AssetHolding objects held by this account. | 80 | | `totalBoxBytes?` | `number` | The total number of bytes used by this account's app's box keys and values. | 81 | | `totalBoxes?` | `number` | The number of existing boxes created by this account's app. | 82 | | `totalCreatedApps` | `number` | The count of all apps (AppParams objects) created by this account. | 83 | | `totalCreatedAssets` | `number` | The count of all assets (AssetParams objects) created by this account. | 84 | | `validAsOfRound` | `bigint` | The round number for which this information is relevant. | 85 | 86 | #### Defined in 87 | 88 | [src/types/account.ts:124](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L124) 89 | 90 | ## Variables 91 | 92 | ### DISPENSER\_ACCOUNT 93 | 94 | • `Const` **DISPENSER\_ACCOUNT**: ``"DISPENSER"`` 95 | 96 | The account name identifier used for fund dispensing in test environments 97 | 98 | #### Defined in 99 | 100 | [src/types/account.ts:17](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L17) 101 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md: -------------------------------------------------------------------------------- ```markdown 1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / SimulateTransactionGroupResult 2 | 3 | # Class: SimulateTransactionGroupResult 4 | 5 | [modelsv2](../modules/modelsv2.md).SimulateTransactionGroupResult 6 | 7 | Simulation result for an atomic transaction group 8 | 9 | ## Hierarchy 10 | 11 | - `default` 12 | 13 | ↳ **`SimulateTransactionGroupResult`** 14 | 15 | ## Table of contents 16 | 17 | ### Constructors 18 | 19 | - [constructor](modelsv2.SimulateTransactionGroupResult.md#constructor) 20 | 21 | ### Properties 22 | 23 | - [appBudgetAdded](modelsv2.SimulateTransactionGroupResult.md#appbudgetadded) 24 | - [appBudgetConsumed](modelsv2.SimulateTransactionGroupResult.md#appbudgetconsumed) 25 | - [attribute\_map](modelsv2.SimulateTransactionGroupResult.md#attribute_map) 26 | - [failedAt](modelsv2.SimulateTransactionGroupResult.md#failedat) 27 | - [failureMessage](modelsv2.SimulateTransactionGroupResult.md#failuremessage) 28 | - [txnResults](modelsv2.SimulateTransactionGroupResult.md#txnresults) 29 | - [unnamedResourcesAccessed](modelsv2.SimulateTransactionGroupResult.md#unnamedresourcesaccessed) 30 | 31 | ### Methods 32 | 33 | - [get\_obj\_for\_encoding](modelsv2.SimulateTransactionGroupResult.md#get_obj_for_encoding) 34 | - [from\_obj\_for\_encoding](modelsv2.SimulateTransactionGroupResult.md#from_obj_for_encoding) 35 | 36 | ## Constructors 37 | 38 | ### constructor 39 | 40 | • **new SimulateTransactionGroupResult**(`«destructured»`) 41 | 42 | Creates a new `SimulateTransactionGroupResult` object. 43 | 44 | #### Parameters 45 | 46 | | Name | Type | 47 | | :------ | :------ | 48 | | `«destructured»` | `Object` | 49 | | › `appBudgetAdded?` | `number` \| `bigint` | 50 | | › `appBudgetConsumed?` | `number` \| `bigint` | 51 | | › `failedAt?` | (`number` \| `bigint`)[] | 52 | | › `failureMessage?` | `string` | 53 | | › `txnResults` | [`SimulateTransactionResult`](modelsv2.SimulateTransactionResult.md)[] | 54 | | › `unnamedResourcesAccessed?` | [`SimulateUnnamedResourcesAccessed`](modelsv2.SimulateUnnamedResourcesAccessed.md) | 55 | 56 | #### Overrides 57 | 58 | BaseModel.constructor 59 | 60 | #### Defined in 61 | 62 | client/v2/algod/models/types.ts:4684 63 | 64 | ## Properties 65 | 66 | ### appBudgetAdded 67 | 68 | • `Optional` **appBudgetAdded**: `number` \| `bigint` 69 | 70 | Total budget added during execution of app calls in the transaction group. 71 | 72 | #### Defined in 73 | 74 | client/v2/algod/models/types.ts:4629 75 | 76 | ___ 77 | 78 | ### appBudgetConsumed 79 | 80 | • `Optional` **appBudgetConsumed**: `number` \| `bigint` 81 | 82 | Total budget consumed during execution of app calls in the transaction group. 83 | 84 | #### Defined in 85 | 86 | client/v2/algod/models/types.ts:4634 87 | 88 | ___ 89 | 90 | ### attribute\_map 91 | 92 | • **attribute\_map**: `Record`\<`string`, `string`\> 93 | 94 | #### Inherited from 95 | 96 | BaseModel.attribute\_map 97 | 98 | #### Defined in 99 | 100 | client/v2/basemodel.ts:56 101 | 102 | ___ 103 | 104 | ### failedAt 105 | 106 | • `Optional` **failedAt**: (`number` \| `bigint`)[] 107 | 108 | If present, indicates which transaction in this group caused the failure. This 109 | array represents the path to the failing transaction. Indexes are zero based, 110 | the first element indicates the top-level transaction, and successive elements 111 | indicate deeper inner transactions. 112 | 113 | #### Defined in 114 | 115 | client/v2/algod/models/types.ts:4642 116 | 117 | ___ 118 | 119 | ### failureMessage 120 | 121 | • `Optional` **failureMessage**: `string` 122 | 123 | If present, indicates that the transaction group failed and specifies why that 124 | happened 125 | 126 | #### Defined in 127 | 128 | client/v2/algod/models/types.ts:4648 129 | 130 | ___ 131 | 132 | ### txnResults 133 | 134 | • **txnResults**: [`SimulateTransactionResult`](modelsv2.SimulateTransactionResult.md)[] 135 | 136 | Simulation result for individual transactions 137 | 138 | #### Defined in 139 | 140 | client/v2/algod/models/types.ts:4624 141 | 142 | ___ 143 | 144 | ### unnamedResourcesAccessed 145 | 146 | • `Optional` **unnamedResourcesAccessed**: [`SimulateUnnamedResourcesAccessed`](modelsv2.SimulateUnnamedResourcesAccessed.md) 147 | 148 | These are resources that were accessed by this group that would normally have 149 | caused failure, but were allowed in simulation. Depending on where this object 150 | is in the response, the unnamed resources it contains may or may not qualify for 151 | group resource sharing. If this is a field in SimulateTransactionGroupResult, 152 | the resources do qualify, but if this is a field in SimulateTransactionResult, 153 | they do not qualify. In order to make this group valid for actual submission, 154 | resources that qualify for group sharing can be made available by any 155 | transaction of the group; otherwise, resources must be placed in the same 156 | transaction which accessed them. 157 | 158 | #### Defined in 159 | 160 | client/v2/algod/models/types.ts:4661 161 | 162 | ## Methods 163 | 164 | ### get\_obj\_for\_encoding 165 | 166 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> 167 | 168 | Get an object ready for encoding to either JSON or msgpack. 169 | 170 | #### Parameters 171 | 172 | | Name | Type | Default value | Description | 173 | | :------ | :------ | :------ | :------ | 174 | | `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. | 175 | 176 | #### Returns 177 | 178 | `Record`\<`string`, `any`\> 179 | 180 | #### Inherited from 181 | 182 | BaseModel.get\_obj\_for\_encoding 183 | 184 | #### Defined in 185 | 186 | client/v2/basemodel.ts:65 187 | 188 | ___ 189 | 190 | ### from\_obj\_for\_encoding 191 | 192 | ▸ `Static` **from_obj_for_encoding**(`data`): [`SimulateTransactionGroupResult`](modelsv2.SimulateTransactionGroupResult.md) 193 | 194 | #### Parameters 195 | 196 | | Name | Type | 197 | | :------ | :------ | 198 | | `data` | `Record`\<`string`, `any`\> | 199 | 200 | #### Returns 201 | 202 | [`SimulateTransactionGroupResult`](modelsv2.SimulateTransactionGroupResult.md) 203 | 204 | #### Defined in 205 | 206 | client/v2/algod/models/types.ts:4718 207 | ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/docs:scripts:example_tracker:example_list.md: -------------------------------------------------------------------------------- ```markdown 1 | The Examples are critical to have in working order and up to date. 2 | 3 | Runnable source files should be placed in the `examples` directory of the respective SDKs as well as in PyTeal and Beaker. 4 | 5 | ## SDKs 6 | 7 | - ACCOUNT_GENERATE - Generate a new account 8 | - ALGOD_CREATE_CLIENT - Create Algod client 9 | - ALGOD_FETCH_ACCOUNT_INFO - Grab account information 10 | - TRANSACTION_PAYMENT_CREATE - Create single Payment transaction 11 | - TRANSACTION_PAYMENT_SIGN - Sign single Payment transaction 12 | - TRANSACTION_PAYMENT_SUBMIT - Submit transaction and display result 13 | - TRANSACTION_FEE_OVERRIDE - show how to override the fee 14 | - SP_MIN_FEE - Show that the suggested params contain the min fee 15 | - CONST_MIN_FEE - show that the SDK has consts that can be used 16 | 17 | ## REST APIs 18 | ### Algod Client: 19 | 20 | - ALGOD_CREATE_CLIENT - show how to init client and connect to algod and pass api keys in header 21 | - ALGOD_USE_CLIENT - fetch some data like suggested params 22 | 23 | ### Indexer Client: 24 | 25 | - CREATE_INDEXER_CLIENT - show how to init client and connect to indexer and pass api keys in header ( TODO: rename to INDEXER_CREATE_CLIENT ) 26 | - INDEXER_LOOKUP_ASSET - Find asset by id, print details 27 | - INDEXER_PAGINATE_RESULTS - Iterate over pages in results 28 | - INDEXER_PREFIX_SEARCH - Show searching by note prefix 29 | - INDEXER_SEARCH_MIN_AMOUNT - Show searching for accounts with min amount 30 | 31 | ### KMD: 32 | 33 | - KMD_CREATE_CLIENT - Show how to init client and connect to kmd 34 | - KMD_CREATE_WALLET - Show how to create a new wallet 35 | - KMD_RECOVER_WALLET - show how to recover a wallet 36 | - KMD_CREATE_ACCOUNT - Show how to create a new account 37 | - KMD_IMPORT_ACCOUNT - Show how to create a new account 38 | - KMD_EXPORT_ACCOUNT - show how to get the list of accounts in a wallet 39 | 40 | ## Accounts 41 | 42 | - ACCOUNT_GENERATE - generate a new account with the SDK (mirrors SDK reference page) 43 | - ACCOUNT_RECOVER_MNEMONIC - Create an account from a known mnemonic and print pubkey/privatekey 44 | - ACCOUNT_RECOVER_PRIVATE_KEY - Create an account from a known private key and print pubkey/mnemonic 45 | - ACCOUNT_MULTISIG_CREATE - Create a multisig account from a list of accounts 46 | - ACCOUNT_REKEY - show how to rekey an account 47 | 48 | ### Multisig Accounts 49 | 50 | - MULTISIG_CREATE - Create a multisig from 3 accounts 51 | - MULTISIG_SIGN - Sign a transaction with the multisig 52 | 53 | ### Lsig Accounts 54 | 55 | - LSIG_COMPILE - Read a TEAL file and compile it 56 | - LSIG_INIT - Create a LogicSig object from the compiled TEAL 57 | - LSIG_PASS_ARGS - Pass arguments to the LogicSig 58 | - LSIG_SIGN_FULL - Sign a transaction with the LogicSig 59 | - LSIG_DELEGATE_FULL - Delegate the LogicSig to another account 60 | 61 | ## ASAs 62 | 63 | - ASSET_CREATE - Create an Asset from acct1 64 | - ASSET_OPTIN - Opt acct2 in to the newly created asset 65 | - ASSET_XFER - Send asset from acct1 to acct2 66 | - ASSET_FREEZE - Freeze the asset in acct2 and then unfreeze the asset in acct2 67 | - ASSET_CONFIG - Reconfigure Asset to remove the freeze address 68 | - ASSET_CLAWBACK - Clawback Asset from acct2 69 | - ASSET_OPT_OUT - Opt out of the asset 70 | - ASSET_DELETE - Delete the asset 71 | - ASSET_INFO - Show how to query the asset info from algod 72 | 73 | ## Applications 74 | 75 | - APP_SCHEMA - Show setting schema for the app 76 | - APP_SOURCE - Show reading teal file 77 | - APP_COMPILE - Show compile teal source 78 | - APP_CREATE - App call to create the app 79 | - APP_CALL - App call to call the app 80 | - APP_READ_STATE - Read state for the app from the algod 81 | - APP_OPTIN - Opt in to the app 82 | - APP_CLEAR - Clear state for the app 83 | - APP_CLOSEOUT - Close out of the app 84 | - APP_NOOP - Noop call to the app 85 | - APP_UPDATE - Update the app source 86 | - APP_DELETE - Delete the app 87 | 88 | ## Atomic Transactions 89 | 90 | ### No ATC 91 | 92 | - ATOMIC_CREATE_TXNS - Create a couple Payment transactions 93 | - ATOMIC_GROUP_TXNS - Group them 94 | - ATOMIC_GROUP_DEBUG - print the group ids and txids #TODO 95 | - ATOMIC_GROUP_SIGN - sign them 96 | - ATOMIC_GROUP_ASSEMBLE - re-assemble signed transaction (??) 97 | - ATOMIC_GROUP_SEND - send them 98 | - ATOMIC*GROUP_RESULTS - Show how to get \_all* the results back (not just the first txid) # TODO 99 | 100 | ### With ATC 101 | 102 | - ATC_CREATE - Create a new instance of the ATC 103 | - ATC_CREATE_SIGNER - Show how to create a TransactionSigner 104 | - ATC_ADD_TRANSACTION - Add a simple transaction to the ATC 105 | - ATC_CONTRACT_INIT - Create a Contract object 106 | - ATC_ADD_METHOD_CALL - Call a method using the Contract object 107 | - ATC_GROUP_TXIDS - Show how you can get the transaction group and print the group ids and txids 108 | - ATC_RESULTS - Execute the group, Show how to get the results (esp for non method calls) 109 | - ATC_BOX_REF - Show how to set a reference to the box 110 | 111 | ## Encoding/Decoding 112 | 113 | - CODEC_ADDRESS - Address 114 | - CODEC_BASE64 - arbitrary byte slices encoded as b64 115 | - CODEC_UINT64 - Uint64 116 | - CODEC_STATE - Global/local state - how to decode, what the types mean 117 | - CODEC_ABI_TYPES - ABI types (using something like ABIType.from("(uint64,address)")) 118 | - CODEC_TRANSACTION_UNSIGNED - Show how to read/write unsigned transactions 119 | - CODEC_TRANSACTION_SIGNED- Show how to read/write signed transactions 120 | - CODEC_ABI - Show how to encode/decode from an ABI type 121 | - CODEC_BLOCKS - Blocks [not implemented yet] 122 | 123 | ## Transactions 124 | 125 | - TRANSACTION_SIGN_OFFLINE - Show how to create and sign a transaction using cold wallet 126 | - TRANSACTION_KEYREG_OFFLINE_CREATE - Create a keyreg txn to take an account offline 127 | - TRANSACTION_KEYREG_ONLINE_CREATE - Create a keyreg txn to take an account online 128 | 129 | ## Debugging 130 | 131 | - DEBUG_DRYRUN_DUMP - Create a file with a dryrun request object encoded as msgpack 132 | - DEBUG_DRYRUN_SUBMIT - Create a dryrun request and submit it to the algod 133 | ```