This is page 9 of 74. Use http://codebase.md/goplausible/algorand-mcp?lines=false&page={x} to view the full context. # Directory Structure ``` ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── llms-install.md ├── llms.txt ├── package.json ├── packages │ ├── client │ │ ├── .env.example │ │ ├── package.json │ │ ├── README.md │ │ ├── src │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ └── LocalWallet.ts │ │ └── tsconfig.json │ └── server │ ├── .env.example │ ├── API specs │ │ ├── algod_api.json │ │ ├── indexer_api.json │ │ ├── mcp.json │ │ ├── nfd_api.json │ │ ├── ultrade_api.json │ │ ├── vestige_api.json │ │ └── vestige_free_api.json │ ├── Dockerfile │ ├── jest.config.js │ ├── package.json │ ├── README.md │ ├── smithery.yaml │ ├── src │ │ ├── algorand-client.ts │ │ ├── env.ts │ │ ├── index.ts │ │ ├── resources │ │ │ ├── index.ts │ │ │ ├── knowledge │ │ │ │ ├── ARCs.txt │ │ │ │ ├── developers-algokit-architecture-decisions.txt │ │ │ │ ├── developers-algokit-cli.txt │ │ │ │ ├── developers-algokit-utils-python.txt │ │ │ │ ├── developers-algokit-utils-typescript.txt │ │ │ │ ├── developers-clis.txt │ │ │ │ ├── developers-details.txt │ │ │ │ ├── developers-liquid-auth.txt │ │ │ │ ├── developers-nodes.txt │ │ │ │ ├── developers-puya.txt │ │ │ │ ├── developers-python.txt │ │ │ │ ├── developers-sdks-js.txt │ │ │ │ ├── developers-sdks-python.txt │ │ │ │ ├── developers-tealscript.txt │ │ │ │ ├── developers.txt │ │ │ │ ├── index.ts │ │ │ │ ├── taxonomy │ │ │ │ │ ├── algokit-cli:README.md │ │ │ │ │ ├── algokit:cli:algokit.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md │ │ │ │ │ ├── algokit:cli:articles:output_stability.md │ │ │ │ │ ├── algokit:cli:cli:index.md │ │ │ │ │ ├── algokit:cli:features:compile.md │ │ │ │ │ ├── algokit:cli:features:completions.md │ │ │ │ │ ├── algokit:cli:features:config.md │ │ │ │ │ ├── algokit:cli:features:dispenser.md │ │ │ │ │ ├── algokit:cli:features:doctor.md │ │ │ │ │ ├── algokit:cli:features:explore.md │ │ │ │ │ ├── algokit:cli:features:generate.md │ │ │ │ │ ├── algokit:cli:features:goal.md │ │ │ │ │ ├── algokit:cli:features:init.md │ │ │ │ │ ├── algokit:cli:features:localnet.md │ │ │ │ │ ├── algokit:cli:features:project:bootstrap.md │ │ │ │ │ ├── algokit:cli:features:project:deploy.md │ │ │ │ │ ├── algokit:cli:features:project:link.md │ │ │ │ │ ├── algokit:cli:features:project:list.md │ │ │ │ │ ├── algokit:cli:features:project:run.md │ │ │ │ │ ├── algokit:cli:features:project.md │ │ │ │ │ ├── algokit:cli:features:tasks:analyze.md │ │ │ │ │ ├── algokit:cli:features:tasks:ipfs.md │ │ │ │ │ ├── algokit:cli:features:tasks:mint.md │ │ │ │ │ ├── algokit:cli:features:tasks:nfd.md │ │ │ │ │ ├── algokit:cli:features:tasks:opt.md │ │ │ │ │ ├── algokit:cli:features:tasks:send.md │ │ │ │ │ ├── algokit:cli:features:tasks:sign.md │ │ │ │ │ ├── algokit:cli:features:tasks:transfer.md │ │ │ │ │ ├── algokit:cli:features:tasks:vanity_address.md │ │ │ │ │ ├── algokit:cli:features:tasks:wallet.md │ │ │ │ │ ├── algokit:cli:features:tasks.md │ │ │ │ │ ├── algokit:cli:tutorials:algokit-template.md │ │ │ │ │ ├── algokit:cli:tutorials:intro.md │ │ │ │ │ ├── algokit:cli:tutorials:smart-contracts.md │ │ │ │ │ ├── algokit:docs:testnet_api.md │ │ │ │ │ ├── algokit:lora:README.md │ │ │ │ │ ├── algokit:README.md │ │ │ │ │ ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:markdown:index.md │ │ │ │ │ ├── algokit:utils:python:README.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:source:index.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:account.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:algorand-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:amount.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:asset.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:debugging.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:event-emitter.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:indexer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:testing.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction-composer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:typed-app-clients.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TestLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_config.Config.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_arc56.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_deployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_composer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_config.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_debugging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_expand.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logic_error.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_network_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transaction.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transfer.md │ │ │ │ │ ├── algokit:utils:typescript:code:README.md │ │ │ │ │ ├── algokit:utils:typescript:README.md │ │ │ │ │ ├── algokit:utils:typescript:v7-migration.md │ │ │ │ │ ├── algokit:utils:typescript:v8-migration.md │ │ │ │ │ ├── ARCs:ARC-template.md │ │ │ │ │ ├── ARCs:assets:arc-0012:README.md │ │ │ │ │ ├── ARCs:assets:arc-0034:TemplateForm.md │ │ │ │ │ ├── ARCs:assets:arc-0062:README.md │ │ │ │ │ ├── ARCs:pages:nfts.md │ │ │ │ │ ├── ARCs:pages:wallets.md │ │ │ │ │ ├── ARCs:README.md │ │ │ │ │ ├── ARCs:specs:arc-0000.md │ │ │ │ │ ├── ARCs:specs:arc-0001.md │ │ │ │ │ ├── ARCs:specs:arc-0002.md │ │ │ │ │ ├── ARCs:specs:arc-0003.md │ │ │ │ │ ├── ARCs:specs:arc-0004.md │ │ │ │ │ ├── ARCs:specs:arc-0005.md │ │ │ │ │ ├── ARCs:specs:arc-0006.md │ │ │ │ │ ├── ARCs:specs:arc-0007.md │ │ │ │ │ ├── ARCs:specs:arc-0008.md │ │ │ │ │ ├── ARCs:specs:arc-0009.md │ │ │ │ │ ├── ARCs:specs:arc-0010.md │ │ │ │ │ ├── ARCs:specs:arc-0011.md │ │ │ │ │ ├── ARCs:specs:arc-0012.md │ │ │ │ │ ├── ARCs:specs:arc-0015.md │ │ │ │ │ ├── ARCs:specs:arc-0016.md │ │ │ │ │ ├── ARCs:specs:arc-0018.md │ │ │ │ │ ├── ARCs:specs:arc-0019.md │ │ │ │ │ ├── ARCs:specs:arc-0020.md │ │ │ │ │ ├── ARCs:specs:arc-0021.md │ │ │ │ │ ├── ARCs:specs:arc-0022.md │ │ │ │ │ ├── ARCs:specs:arc-0023.md │ │ │ │ │ ├── ARCs:specs:arc-0025.md │ │ │ │ │ ├── ARCs:specs:arc-0026.md │ │ │ │ │ ├── ARCs:specs:arc-0028.md │ │ │ │ │ ├── ARCs:specs:arc-0032.md │ │ │ │ │ ├── ARCs:specs:arc-0033.md │ │ │ │ │ ├── ARCs:specs:arc-0034.md │ │ │ │ │ ├── ARCs:specs:arc-0035.md │ │ │ │ │ ├── ARCs:specs:arc-0036.md │ │ │ │ │ ├── ARCs:specs:arc-0042.md │ │ │ │ │ ├── ARCs:specs:arc-0047.md │ │ │ │ │ ├── ARCs:specs:arc-0048.md │ │ │ │ │ ├── ARCs:specs:arc-0049.md │ │ │ │ │ ├── ARCs:specs:arc-0054.md │ │ │ │ │ ├── ARCs:specs:arc-0055.md │ │ │ │ │ ├── ARCs:specs:arc-0056.md │ │ │ │ │ ├── ARCs:specs:arc-0059.md │ │ │ │ │ ├── ARCs:specs:arc-0062.md │ │ │ │ │ ├── ARCs:specs:arc-0065.md │ │ │ │ │ ├── ARCs:specs:arc-0069.md │ │ │ │ │ ├── ARCs:specs:arc-0072.md │ │ │ │ │ ├── ARCs:specs:arc-0073.md │ │ │ │ │ ├── ARCs:specs:arc-0074.md │ │ │ │ │ ├── ARCs:specs:arc-0076.md │ │ │ │ │ ├── ARCs:specs:arc-0078.md │ │ │ │ │ ├── ARCs:specs:arc-0079.md │ │ │ │ │ ├── ARCs:specs:arc-0200.md │ │ │ │ │ ├── clis_index.md │ │ │ │ │ ├── developer:docs:about.md │ │ │ │ │ ├── developer:docs:clis:algokey:algokey.md │ │ │ │ │ ├── developer:docs:clis:algokey:generate.md │ │ │ │ │ ├── developer:docs:clis:algokey:import.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:append-auth-addr.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:multisig.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:info.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:part.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:reparent.md │ │ │ │ │ ├── developer:docs:clis:algokey:sign.md │ │ │ │ │ ├── developer:docs:clis:conduit:conduit.md │ │ │ │ │ ├── developer:docs:clis:conduit:init.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:exporters.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:importers.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:list.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:processors.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:diagcfg.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:metric.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:endpoint.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:name.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:telemetry.md │ │ │ │ │ ├── developer:docs:clis:goal:node:restart.md │ │ │ │ │ ├── developer:docs:clis:goal:node:start.md │ │ │ │ │ ├── developer:docs:clis:goal:node:status.md │ │ │ │ │ ├── developer:docs:clis:goal:node:stop.md │ │ │ │ │ ├── developer:docs:clis:goal:node:wait.md │ │ │ │ │ ├── developer:docs:clis:goal:protocols.md │ │ │ │ │ ├── developer:docs:clis:goal:report.md │ │ │ │ │ ├── developer:docs:clis:goal:version.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:list.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:new.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:wallet.md │ │ │ │ │ ├── developer:docs:clis:indexer:api-config.md │ │ │ │ │ ├── developer:docs:clis:indexer:daemon.md │ │ │ │ │ ├── developer:docs:clis:indexer:indexer.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:util.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:validator.md │ │ │ │ │ ├── developer:docs:clis:kmd.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:debug.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:remote.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:tealdbg.md │ │ │ │ │ ├── developer:docs:details:accounts:create.md │ │ │ │ │ ├── developer:docs:details:accounts:index.md │ │ │ │ │ ├── developer:docs:details:accounts:rekey.md │ │ │ │ │ ├── developer:docs:details:algorand_consensus.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:betanet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:index.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:mainnet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:testnet.md │ │ │ │ │ ├── developer:docs:details:asa.md │ │ │ │ │ ├── developer:docs:details:atc.md │ │ │ │ │ ├── developer:docs:details:atomic_transfers.md │ │ │ │ │ ├── developer:docs:details:conduit.md │ │ │ │ │ ├── developer:docs:details:crust.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:jsonspec.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:specification.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:ABI:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:create.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:state.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:txs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:debugging.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:beaker.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:pyteal.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:python.md │ │ │ │ │ ├── developer:docs:details:encoding.md │ │ │ │ │ ├── developer:docs:details:ethereum_to_algorand.md │ │ │ │ │ ├── developer:docs:details:index.md │ │ │ │ │ ├── developer:docs:details:indexer.md │ │ │ │ │ ├── developer:docs:details:parameter_tables.md │ │ │ │ │ ├── developer:docs:details:stateproofs:index.md │ │ │ │ │ ├── developer:docs:details:stateproofs:light_client.md │ │ │ │ │ ├── developer:docs:details:technical_faq.md │ │ │ │ │ ├── developer:docs:details:transactions:index.md │ │ │ │ │ ├── developer:docs:details:transactions:offline_transactions.md │ │ │ │ │ ├── developer:docs:details:transactions:payment_prompts.md │ │ │ │ │ ├── developer:docs:details:transactions:signatures.md │ │ │ │ │ ├── developer:docs:details:transactions:transactions.md │ │ │ │ │ ├── developer:docs:details:useful_resources.md │ │ │ │ │ ├── developer:docs:get-started:algokit.md │ │ │ │ │ ├── developer:docs:get-started:basics:what_is_blockchain.md │ │ │ │ │ ├── developer:docs:get-started:basics:whats_a_dapp.md │ │ │ │ │ ├── developer:docs:get-started:basics:where_to_start.md │ │ │ │ │ ├── developer:docs:get-started:basics:why_algorand.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:ft.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:nft.md │ │ │ │ │ ├── developer:docs:index.md │ │ │ │ │ ├── developer:docs:rest-apis:algod.md │ │ │ │ │ ├── developer:docs:rest-apis:indexer.md │ │ │ │ │ ├── developer:docs:rest-apis:kmd.md │ │ │ │ │ ├── developer:docs:rest-apis:restendpoints.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:catchup.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:switch_networks.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:generate_keys.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:index.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:offline.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:online.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:renew.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:artifacts.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:config.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:relay.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:telemetry-config.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:indexer.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:install.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:node-troubleshooting.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:types.md │ │ │ │ │ ├── developer:docs:sdks:go:index.md │ │ │ │ │ ├── developer:docs:sdks:index.md │ │ │ │ │ ├── developer:docs:sdks:java:index.md │ │ │ │ │ ├── developer:docs:sdks:javascript:index.md │ │ │ │ │ ├── developer:docs:sdks:python:index.md │ │ │ │ │ ├── developer:python:code:example:accounts.md │ │ │ │ │ ├── developer:python:code:example:arc4_types.md │ │ │ │ │ ├── developer:python:code:example:assets.md │ │ │ │ │ ├── developer:python:code:example:box_storage.md │ │ │ │ │ ├── developer:python:code:example:control_flow.md │ │ │ │ │ ├── developer:python:code:example:crypto:merkle_tree.md │ │ │ │ │ ├── developer:python:code:example:defi:amm.md │ │ │ │ │ ├── developer:python:code:example:defi:auction.md │ │ │ │ │ ├── developer:python:code:example:defi:htlc_logicsig.md │ │ │ │ │ ├── developer:python:code:example:defi:marketplace.md │ │ │ │ │ ├── developer:python:code:example:events:arc28_events.md │ │ │ │ │ ├── developer:python:code:example:global_storage.md │ │ │ │ │ ├── developer:python:code:example:governance:simple_voting.md │ │ │ │ │ ├── developer:python:code:example:hello_world.md │ │ │ │ │ ├── developer:python:code:example:inner_transactions.md │ │ │ │ │ ├── developer:python:code:example:local_storage.md │ │ │ │ │ ├── developer:python:code:example:nft:proof_of_attendance.md │ │ │ │ │ ├── developer:python:code:example:privacy:zk_whitelist.md │ │ │ │ │ ├── developer:python:code:example:scratch_storage.md │ │ │ │ │ ├── developer:python:code:example:self_payment.md │ │ │ │ │ ├── developer:python:code:example:struct_in_box.md │ │ │ │ │ ├── developer:python:code:example:subsidize_app_call.md │ │ │ │ │ ├── developer:python:code:example:transactions.md │ │ │ │ │ ├── developer:python:code:example:utility:calculator.md │ │ │ │ │ ├── devportal-code-examples:projects:python-contract-examples:README.md │ │ │ │ │ ├── devportal-code-examples:README.md │ │ │ │ │ ├── docs:.walletconnect:index.md │ │ │ │ │ ├── docs:.walletconnect:walletconnect-schema.md │ │ │ │ │ ├── docs:README.md │ │ │ │ │ ├── docs:scripts:example_tracker:example_list.md │ │ │ │ │ ├── docs:scripts:README.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── liquid_auth_index.md │ │ │ │ │ ├── liquid-auth:ARCHITECTURE.md │ │ │ │ │ ├── liquid-auth:decisions:1-Service-Authentication.md │ │ │ │ │ ├── liquid-auth:decisions:2-Bidirectional-Communication.md │ │ │ │ │ ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md │ │ │ │ │ ├── liquid-auth:decisions:4-Fido-Extension.md │ │ │ │ │ ├── liquid-auth:decisions:README.md │ │ │ │ │ ├── liquid-auth:docs:architecture.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:authenticate.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:register.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:authentication.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:example.md │ │ │ │ │ ├── liquid-auth:docs:introduction.md │ │ │ │ │ ├── liquid-auth:docs:README.md │ │ │ │ │ ├── liquid-auth:docs:server:environment-variables.md │ │ │ │ │ ├── liquid-auth:docs:server:integrations.md │ │ │ │ │ ├── liquid-auth:docs:server:introduction.md │ │ │ │ │ ├── liquid-auth:docs:server:running-locally.md │ │ │ │ │ ├── liquid-auth:README.md │ │ │ │ │ ├── liquid-auth:SEQUENCE.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md │ │ │ │ │ ├── liquid-auth:sites:express-dapp:README.md │ │ │ │ │ ├── liquid-auth:VISION.md │ │ │ │ │ ├── puya_index.md │ │ │ │ │ ├── puya:docs:algopy_testing:index.md │ │ │ │ │ ├── puya:docs:api-algopy.arc4.md │ │ │ │ │ ├── puya:docs:api-algopy.gtxn.md │ │ │ │ │ ├── puya:docs:api-algopy.itxn.md │ │ │ │ │ ├── puya:docs:api-algopy.md │ │ │ │ │ ├── puya:docs:api-algopy.op.md │ │ │ │ │ ├── puya:docs:api.md │ │ │ │ │ ├── puya:docs:compiler.md │ │ │ │ │ ├── puya:docs:index.md │ │ │ │ │ ├── puya:docs:language-guide.md │ │ │ │ │ ├── puya:docs:lg-arc28.md │ │ │ │ │ ├── puya:docs:lg-arc4.md │ │ │ │ │ ├── puya:docs:lg-builtins.md │ │ │ │ │ ├── puya:docs:lg-calling-apps.md │ │ │ │ │ ├── puya:docs:lg-compile.md │ │ │ │ │ ├── puya:docs:lg-control.md │ │ │ │ │ ├── puya:docs:lg-errors.md │ │ │ │ │ ├── puya:docs:lg-logs.md │ │ │ │ │ ├── puya:docs:lg-modules.md │ │ │ │ │ ├── puya:docs:lg-opcode-budget.md │ │ │ │ │ ├── puya:docs:lg-ops.md │ │ │ │ │ ├── puya:docs:lg-storage.md │ │ │ │ │ ├── puya:docs:lg-structure.md │ │ │ │ │ ├── puya:docs:lg-transactions.md │ │ │ │ │ ├── puya:docs:lg-types.md │ │ │ │ │ ├── puya:docs:lg-unsupported-python-features.md │ │ │ │ │ ├── puya:docs:principles.md │ │ │ │ │ ├── puya:examples:auction:README.md │ │ │ │ │ ├── puya:python:testing:docs:algopy.md │ │ │ │ │ ├── puya:python:testing:docs:api.md │ │ │ │ │ ├── puya:python:testing:docs:coverage.md │ │ │ │ │ ├── puya:python:testing:docs:examples.md │ │ │ │ │ ├── puya:python:testing:docs:faq.md │ │ │ │ │ ├── puya:python:testing:docs:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:arc4-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:avm-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:concepts.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:contract-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:opcodes.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:signature-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:state-management.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:subroutines.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:transactions.md │ │ │ │ │ ├── puya:python:testing:examples:README.md │ │ │ │ │ ├── puya:python:testing:README.md │ │ │ │ │ ├── puya:README.md │ │ │ │ │ ├── puya:src:puya:ARCHITECTURE.md │ │ │ │ │ ├── puya:src:puyapy:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:awst_build:README.md │ │ │ │ │ ├── puya:stubs:README.md │ │ │ │ │ ├── puya:tests:test_expected_output:README.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md │ │ │ │ │ ├── puya:typescript:docs:README.md │ │ │ │ │ ├── puya:typescript:packages:algo-ts:readme.md │ │ │ │ │ ├── puya:typescript:README.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIAddressType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayDynamicType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayStaticType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIBoolType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIByteType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIContract.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIInterface.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIMethod.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIStringType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABITupleType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUfixedType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUintType.md │ │ │ │ │ ├── SDKs:javascript:classes:Algodv2.md │ │ │ │ │ ├── SDKs:javascript:classes:AtomicTransactionComposer.md │ │ │ │ │ ├── SDKs:javascript:classes:DryrunResult.md │ │ │ │ │ ├── SDKs:javascript:classes:Indexer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Block.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockRewards.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HashFactory.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HealthCheck.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofFields.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Transaction.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:Kmd.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSig.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BuildVersion.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.CompileResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunSource.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.KvDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ScratchChange.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Version.md │ │ │ │ │ ├── SDKs:javascript:classes:SourceMap.md │ │ │ │ │ ├── SDKs:javascript:classes:Transaction.md │ │ │ │ │ ├── SDKs:javascript:enums:ABIReferenceType.md │ │ │ │ │ ├── SDKs:javascript:enums:ABITransactionType.md │ │ │ │ │ ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md │ │ │ │ │ ├── SDKs:javascript:enums:IntDecoding.md │ │ │ │ │ ├── SDKs:javascript:enums:OnApplicationComplete.md │ │ │ │ │ ├── SDKs:javascript:enums:TransactionType.md │ │ │ │ │ ├── SDKs:javascript:examples:README.md │ │ │ │ │ ├── SDKs:javascript:FAQ.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworks.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIInterfaceParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodArgParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIResult.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Account.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Address.md │ │ │ │ │ ├── SDKs:javascript:interfaces:AlgodTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClient.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientError.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:CustomTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedAssetParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedBoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedMultisig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSubsig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:IndexerTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:KMDTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:MultisigMetadata.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SuggestedParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionWithSigner.md │ │ │ │ │ ├── SDKs:javascript:modules:indexerModels.md │ │ │ │ │ ├── SDKs:javascript:modules:modelsv2.md │ │ │ │ │ ├── SDKs:javascript:modules.md │ │ │ │ │ ├── SDKs:javascript:README.md │ │ │ │ │ ├── SDKs:python:algosdk:v2client:harness:README.md │ │ │ │ │ ├── SDKs:python:examples:README.md │ │ │ │ │ ├── SDKs:python:README.md │ │ │ │ │ ├── tealscript:examples_amm_README.md │ │ │ │ │ ├── tealscript:examples_auction_README.md │ │ │ │ │ ├── tealscript:examples_big_box_README.md │ │ │ │ │ ├── tealscript:examples_itxns_README.md │ │ │ │ │ ├── tealscript:examples_lsig_with_app_README.md │ │ │ │ │ ├── tealscript:examples_reti_README.md │ │ │ │ │ ├── tealscript:FEATURES.md │ │ │ │ │ ├── tealscript:guides_atomic_txn.md │ │ │ │ │ ├── tealscript:guides_features.md │ │ │ │ │ ├── tealscript:guides_getting_started.md │ │ │ │ │ ├── tealscript:guides_inner_transactions.md │ │ │ │ │ ├── tealscript:guides_lifecycle.md │ │ │ │ │ ├── tealscript:guides_math.md │ │ │ │ │ ├── tealscript:guides_methods.md │ │ │ │ │ ├── tealscript:guides_multiple_contracts.md │ │ │ │ │ ├── tealscript:guides_pyteal.md │ │ │ │ │ ├── tealscript:guides_storage.md │ │ │ │ │ ├── tealscript:guides_Supported Types_arrays.md │ │ │ │ │ ├── tealscript:guides_Supported Types_numbers.md │ │ │ │ │ ├── TEALScript:README.md │ │ │ │ │ ├── tealscript:tests_test_package_README.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0001-intro.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0002-init.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0003-contract.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0004-artifacts.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0005-hello.md │ │ │ │ │ └── tealscript:tutorials_Hello World_0006-test.md │ │ │ │ └── taxonomy-categories │ │ │ │ ├── algokit-utils.json │ │ │ │ ├── algokit.json │ │ │ │ ├── arcs.json │ │ │ │ ├── clis.json │ │ │ │ ├── details.json │ │ │ │ ├── developers.json │ │ │ │ ├── liquid-auth.json │ │ │ │ ├── nodes.json │ │ │ │ ├── puya.json │ │ │ │ ├── python.json │ │ │ │ ├── sdks.json │ │ │ │ └── tealscript.json │ │ │ └── wallet │ │ │ └── index.ts │ │ ├── tools │ │ │ ├── accountManager.ts │ │ │ ├── algodManager.ts │ │ │ ├── apiManager │ │ │ │ ├── algod │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── example │ │ │ │ │ ├── get-balance.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── nfd │ │ │ │ │ └── index.ts │ │ │ │ ├── tinyman │ │ │ │ │ ├── analytics.ts │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── liquidity.ts │ │ │ │ │ ├── opt_in.ts │ │ │ │ │ ├── pool.ts │ │ │ │ │ ├── remove_liquidity.ts │ │ │ │ │ └── swap.ts │ │ │ │ ├── ultrade │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── market.ts │ │ │ │ │ ├── system.ts │ │ │ │ │ └── wallet.ts │ │ │ │ └── vestige │ │ │ │ ├── assets.ts │ │ │ │ ├── balances.ts │ │ │ │ ├── index.ts │ │ │ │ ├── networks.ts │ │ │ │ ├── notes.ts │ │ │ │ ├── pools.ts │ │ │ │ ├── protocols.ts │ │ │ │ ├── swaps.ts │ │ │ │ └── vaults.ts │ │ │ ├── arc26Manager.ts │ │ │ ├── index.ts │ │ │ ├── knowledgeManager.ts │ │ │ ├── transactionManager │ │ │ │ ├── accountTransactions.ts │ │ │ │ ├── appTransactions │ │ │ │ │ ├── callTxn.ts │ │ │ │ │ ├── clearTxn.ts │ │ │ │ │ ├── closeOutTxn.ts │ │ │ │ │ ├── createTxn.ts │ │ │ │ │ ├── deleteTxn.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── optInTxn.ts │ │ │ │ │ ├── test │ │ │ │ │ │ ├── counter_approval.teal │ │ │ │ │ │ ├── counter_clear.teal │ │ │ │ │ │ ├── storage_test_approval_v2.teal │ │ │ │ │ │ ├── storage_test_approval.teal │ │ │ │ │ │ └── storage_test_clear.teal │ │ │ │ │ ├── types.ts │ │ │ │ │ └── updateTxn.ts │ │ │ │ ├── assetTransactions.ts │ │ │ │ ├── generalTransaction.ts │ │ │ │ └── index.ts │ │ │ └── utilityManager.ts │ │ ├── types.ts │ │ └── utils │ │ └── responseProcessor.ts │ ├── tests │ │ ├── resources │ │ │ ├── algod │ │ │ │ ├── account.test.ts │ │ │ │ ├── application.test.ts │ │ │ │ ├── asset.test.ts │ │ │ │ └── transaction.test.ts │ │ │ └── indexer │ │ │ ├── account.test.ts │ │ │ ├── application.test.ts │ │ │ ├── asset.test.ts │ │ │ └── transaction.test.ts │ │ └── tools │ │ ├── accountManager.test.ts │ │ ├── algodManager.test.ts │ │ ├── apiManager │ │ │ └── example │ │ │ └── get-balance.test.ts │ │ ├── transactionManager │ │ │ ├── accountTransactionManager.test.ts │ │ │ ├── appTransactionManager.test.ts │ │ │ ├── assetTransactionManager.test.ts │ │ │ ├── generalTransactionManager.test.ts │ │ │ └── transactionManager.test.ts │ │ └── utilityManager.test.ts │ └── tsconfig.json ├── README.md ├── rename_files.sh └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofReveal.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofReveal # Class: StateProofReveal [indexerModels](../modules/indexerModels.md).StateProofReveal ## Hierarchy - `default` ↳ **`StateProofReveal`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofReveal.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofReveal.md#attribute_map) - [participant](indexerModels.StateProofReveal.md#participant) - [position](indexerModels.StateProofReveal.md#position) - [sigSlot](indexerModels.StateProofReveal.md#sigslot) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofReveal.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofReveal.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofReveal**(`«destructured»`) Creates a new `StateProofReveal` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `participant?` | [`StateProofParticipant`](indexerModels.StateProofParticipant.md) | | › `position?` | `number` \| `bigint` | | › `sigSlot?` | [`StateProofSigSlot`](indexerModels.StateProofSigSlot.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3653 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### participant • `Optional` **participant**: [`StateProofParticipant`](indexerModels.StateProofParticipant.md) (p) #### Defined in client/v2/indexer/models/types.ts:3633 ___ ### position • `Optional` **position**: `number` \| `bigint` The position in the signature and participants arrays corresponding to this entry. #### Defined in client/v2/indexer/models/types.ts:3639 ___ ### sigSlot • `Optional` **sigSlot**: [`StateProofSigSlot`](indexerModels.StateProofSigSlot.md) (s) #### Defined in client/v2/indexer/models/types.ts:3644 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`StateProofReveal`](indexerModels.StateProofReveal.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofReveal`](indexerModels.StateProofReveal.md) #### Defined in client/v2/indexer/models/types.ts:3675 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AssetBalancesResponse # Class: AssetBalancesResponse [indexerModels](../modules/indexerModels.md).AssetBalancesResponse ## Hierarchy - `default` ↳ **`AssetBalancesResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.AssetBalancesResponse.md#constructor) ### Properties - [attribute\_map](indexerModels.AssetBalancesResponse.md#attribute_map) - [balances](indexerModels.AssetBalancesResponse.md#balances) - [currentRound](indexerModels.AssetBalancesResponse.md#currentround) - [nextToken](indexerModels.AssetBalancesResponse.md#nexttoken) ### Methods - [get\_obj\_for\_encoding](indexerModels.AssetBalancesResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.AssetBalancesResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AssetBalancesResponse**(`«destructured»`) Creates a new `AssetBalancesResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `balances` | [`MiniAssetHolding`](indexerModels.MiniAssetHolding.md)[] | | › `currentRound` | `number` \| `bigint` | | › `nextToken?` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1583 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### balances • **balances**: [`MiniAssetHolding`](indexerModels.MiniAssetHolding.md)[] #### Defined in client/v2/indexer/models/types.ts:1563 ___ ### currentRound • **currentRound**: `number` \| `bigint` Round at which the results were computed. #### Defined in client/v2/indexer/models/types.ts:1568 ___ ### nextToken • `Optional` **nextToken**: `string` Used for pagination, when making another request provide this token with the next parameter. #### Defined in client/v2/indexer/models/types.ts:1574 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`AssetBalancesResponse`](indexerModels.AssetBalancesResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AssetBalancesResponse`](indexerModels.AssetBalancesResponse.md) #### Defined in client/v2/indexer/models/types.ts:1605 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:ABIArrayStaticType.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / ABIArrayStaticType # Class: ABIArrayStaticType ## Hierarchy - [`ABIType`](ABIType.md) ↳ **`ABIArrayStaticType`** ## Table of contents ### Constructors - [constructor](ABIArrayStaticType.md#constructor) ### Properties - [childType](ABIArrayStaticType.md#childtype) - [staticLength](ABIArrayStaticType.md#staticlength) ### Methods - [byteLen](ABIArrayStaticType.md#bytelen) - [decode](ABIArrayStaticType.md#decode) - [encode](ABIArrayStaticType.md#encode) - [equals](ABIArrayStaticType.md#equals) - [isDynamic](ABIArrayStaticType.md#isdynamic) - [toABITupleType](ABIArrayStaticType.md#toabitupletype) - [toString](ABIArrayStaticType.md#tostring) - [from](ABIArrayStaticType.md#from) ## Constructors ### constructor • **new ABIArrayStaticType**(`argType`, `arrayLength`) #### Parameters | Name | Type | | :------ | :------ | | `argType` | [`ABIType`](ABIType.md) | | `arrayLength` | `number` | #### Overrides [ABIType](ABIType.md).[constructor](ABIType.md#constructor) #### Defined in abi/abi_type.ts:421 ## Properties ### childType • **childType**: [`ABIType`](ABIType.md) #### Defined in abi/abi_type.ts:418 ___ ### staticLength • **staticLength**: `number` #### Defined in abi/abi_type.ts:419 ## Methods ### byteLen ▸ **byteLen**(): `number` #### Returns `number` #### Overrides [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen) #### Defined in abi/abi_type.ts:448 ___ ### decode ▸ **decode**(`byteString`): [`ABIValue`](../modules.md#abivalue)[] #### Parameters | Name | Type | | :------ | :------ | | `byteString` | `Uint8Array` | #### Returns [`ABIValue`](../modules.md#abivalue)[] #### Overrides [ABIType](ABIType.md).[decode](ABIType.md#decode) #### Defined in abi/abi_type.ts:468 ___ ### encode ▸ **encode**(`value`): `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | | `value` | [`ABIValue`](../modules.md#abivalue) | #### Returns `Uint8Array` #### Overrides [ABIType](ABIType.md).[encode](ABIType.md#encode) #### Defined in abi/abi_type.ts:455 ___ ### equals ▸ **equals**(`other`): `boolean` #### Parameters | Name | Type | | :------ | :------ | | `other` | [`ABIType`](ABIType.md) | #### Returns `boolean` #### Overrides [ABIType](ABIType.md).[equals](ABIType.md#equals) #### Defined in abi/abi_type.ts:436 ___ ### isDynamic ▸ **isDynamic**(): `boolean` #### Returns `boolean` #### Overrides [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic) #### Defined in abi/abi_type.ts:444 ___ ### toABITupleType ▸ **toABITupleType**(): [`ABITupleType`](ABITupleType.md) #### Returns [`ABITupleType`](ABITupleType.md) #### Defined in abi/abi_type.ts:473 ___ ### toString ▸ **toString**(): `string` #### Returns `string` #### Overrides [ABIType](ABIType.md).[toString](ABIType.md#tostring) #### Defined in abi/abi_type.ts:432 ___ ### from ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md) #### Parameters | Name | Type | | :------ | :------ | | `str` | `string` | #### Returns [`ABIType`](ABIType.md) #### Inherited from [ABIType](ABIType.md).[from](ABIType.md#from) #### Defined in abi/abi_type.ts:57 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.DryrunState.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / DryrunState # Class: DryrunState [modelsv2](../modules/modelsv2.md).DryrunState Stores the TEAL eval step data ## Hierarchy - `default` ↳ **`DryrunState`** ## Table of contents ### Constructors - [constructor](modelsv2.DryrunState.md#constructor) ### Properties - [attribute\_map](modelsv2.DryrunState.md#attribute_map) - [error](modelsv2.DryrunState.md#error) - [line](modelsv2.DryrunState.md#line) - [pc](modelsv2.DryrunState.md#pc) - [scratch](modelsv2.DryrunState.md#scratch) - [stack](modelsv2.DryrunState.md#stack) ### Methods - [get\_obj\_for\_encoding](modelsv2.DryrunState.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.DryrunState.md#from_obj_for_encoding) ## Constructors ### constructor • **new DryrunState**(`«destructured»`) Creates a new `DryrunState` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `error?` | `string` | | › `line` | `number` \| `bigint` | | › `pc` | `number` \| `bigint` | | › `scratch?` | [`TealValue`](modelsv2.TealValue.md)[] | | › `stack` | [`TealValue`](modelsv2.TealValue.md)[] | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2898 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### error • `Optional` **error**: `string` Evaluation error if any #### Defined in client/v2/algod/models/types.ts:2886 ___ ### line • **line**: `number` \| `bigint` Line number #### Defined in client/v2/algod/models/types.ts:2874 ___ ### pc • **pc**: `number` \| `bigint` Program counter #### Defined in client/v2/algod/models/types.ts:2879 ___ ### scratch • `Optional` **scratch**: [`TealValue`](modelsv2.TealValue.md)[] #### Defined in client/v2/algod/models/types.ts:2888 ___ ### stack • **stack**: [`TealValue`](modelsv2.TealValue.md)[] #### Defined in client/v2/algod/models/types.ts:2881 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`DryrunState`](modelsv2.DryrunState.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`DryrunState`](modelsv2.DryrunState.md) #### Defined in client/v2/algod/models/types.ts:2928 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:guides_getting_started.md: -------------------------------------------------------------------------------- ```markdown --- title: Getting Started --- ## Using Algokit The recommended way to get started with TEALScript is to use the Algokit template: ``` algokit init -t tealscript ``` This will set up a project repository with TEALScript, ESLint, algokit generate, and some tests. More information about how to use the template is provided in the template's [README](https://github.com/algorandfoundation/tealscript-algokit-template/blob/master/template_content/README.md). ## Manual Installation If you do not wish to use the above Algokit template, you can manually add TEALScript to any project with npm. ### Installing TEALScript TEALScript can be installed from npm via `npm install @algorandfoundation/tealscript`. ### Writing First Contract To write your first smart contract, import the `Contract` class and create a new class that extends `Contract`. ```ts import { Contract } from '@algorandfoundation/tealscript'; class FirstContract extends Contract { ``` This is where all of the method definitions will go. You can then write a method that is typed and written like a regular TypeScript method: ```ts import { Contract } from '@algorandfoundation/tealscript'; class FirstContract extends Contract { add(a: uint64, b: uint64): uint64 { return a + b } } ``` ### Compiling To compile a TEALScript smart contract, run `npx tealscript <file> [artifact directory]` * `<file>` is the .ts file containing your TEALScript source code * `[artifact directory]` is an optional directory to output the artifacts generated by TEALScript. If a directory isn't given, the current working directory will be used. To learn more about method definitions and decorators for specific smart contract actions (such as creating, updating, or deleting the contract) see [methods](./methods.md). ### ESLint **Note:** This is assuming you are extending the `airbnb-base`. Other standards might have additional rules that need to be disabled or modified. If you are using ESLint, the following rules must be disabled: | ESLint Rule | Reason | | ------------------------ | ----------------------------------------------------------------- | | `object-shorthand` | Object shorthand is not yet supported by TEALScript | | `no-undef` | The global TEALScript functions are not actually defined anywhere | | `class-methods-use-this` | Not all methods will actually use `this` | | `max-classes-per-file` | Multiple contracts can be defined in a single file | | `no-bitwise` | Bitwise operations are supported by TEALScript | #### .eslintrc.js Rather than disabling these directly in the file, you can also create some rule overrides in your `.eslintrc.js`. For example, if you end all of your TEALScript contracts with `.algo.ts` you can add this to your config: ```js overrides: [ { files: ['*.algo.ts'], rules: { 'object-shorthand': 'off', 'class-methods-use-this': 'off', 'no-undef': 'off', 'max-classes-per-file': 'off', 'no-bitwise': 'off', }, } ], ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionAssetFreeze # Class: TransactionAssetFreeze [indexerModels](../modules/indexerModels.md).TransactionAssetFreeze Fields for an asset freeze transaction. Definition: data/transactions/asset.go : AssetFreezeTxnFields ## Hierarchy - `default` ↳ **`TransactionAssetFreeze`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionAssetFreeze.md#constructor) ### Properties - [address](indexerModels.TransactionAssetFreeze.md#address) - [assetId](indexerModels.TransactionAssetFreeze.md#assetid) - [attribute\_map](indexerModels.TransactionAssetFreeze.md#attribute_map) - [newFreezeStatus](indexerModels.TransactionAssetFreeze.md#newfreezestatus) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionAssetFreeze.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionAssetFreeze.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionAssetFreeze**(`«destructured»`) Creates a new `TransactionAssetFreeze` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `address` | `string` | | › `assetId` | `number` \| `bigint` | | › `newFreezeStatus` | `boolean` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:4943 ## Properties ### address • **address**: `string` (fadd) Address of the account whose asset is being frozen or thawed. #### Defined in client/v2/indexer/models/types.ts:4925 ___ ### assetId • **assetId**: `number` \| `bigint` (faid) ID of the asset being frozen or thawed. #### Defined in client/v2/indexer/models/types.ts:4930 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### newFreezeStatus • **newFreezeStatus**: `boolean` (afrz) The new freeze status. #### Defined in client/v2/indexer/models/types.ts:4935 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionAssetFreeze`](indexerModels.TransactionAssetFreeze.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionAssetFreeze`](indexerModels.TransactionAssetFreeze.md) #### Defined in client/v2/indexer/models/types.ts:4965 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.DryrunSource.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / DryrunSource # Class: DryrunSource [modelsv2](../modules/modelsv2.md).DryrunSource DryrunSource is TEAL source text that gets uploaded, compiled, and inserted into transactions or application state. ## Hierarchy - `default` ↳ **`DryrunSource`** ## Table of contents ### Constructors - [constructor](modelsv2.DryrunSource.md#constructor) ### Properties - [appIndex](modelsv2.DryrunSource.md#appindex) - [attribute\_map](modelsv2.DryrunSource.md#attribute_map) - [fieldName](modelsv2.DryrunSource.md#fieldname) - [source](modelsv2.DryrunSource.md#source) - [txnIndex](modelsv2.DryrunSource.md#txnindex) ### Methods - [get\_obj\_for\_encoding](modelsv2.DryrunSource.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.DryrunSource.md#from_obj_for_encoding) ## Constructors ### constructor • **new DryrunSource**(`«destructured»`) Creates a new `DryrunSource` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `appIndex` | `number` \| `bigint` | | › `fieldName` | `string` | | › `source` | `string` | | › `txnIndex` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2815 ## Properties ### appIndex • **appIndex**: `number` \| `bigint` #### Defined in client/v2/algod/models/types.ts:2804 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### fieldName • **fieldName**: `string` FieldName is what kind of sources this is. If lsig then it goes into the transactions[this.TxnIndex].LogicSig. If approv or clearp it goes into the Approval Program or Clear State Program of application[this.AppIndex]. #### Defined in client/v2/algod/models/types.ts:2798 ___ ### source • **source**: `string` #### Defined in client/v2/algod/models/types.ts:2800 ___ ### txnIndex • **txnIndex**: `number` \| `bigint` #### Defined in client/v2/algod/models/types.ts:2802 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`DryrunSource`](modelsv2.DryrunSource.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`DryrunSource`](modelsv2.DryrunSource.md) #### Defined in client/v2/algod/models/types.ts:2841 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:amount.md: -------------------------------------------------------------------------------- ```markdown # Algo amount handling Algo amount handling is one of the core capabilities provided by AlgoKit Utils. It allows you to reliably and tersely specify amounts of microAlgo and Algo and safely convert between them. Any AlgoKit Utils function that needs an Algo amount will take an `AlgoAmount` object, which ensures that there is never any confusion about what value is being passed around. Whenever an AlgoKit Utils function calls into an underlying algosdk function, or if you need to take an `AlgoAmount` and pass it into an underlying algosdk function (per the [modularity principle](../README.md#core-principles)) you can safely and explicitly convert to microAlgo or Algo. To see some usage examples check out the [automated tests](../../src/types/amount.spec.ts). Alternatively, you see the [reference documentation](../code/classes/types_amount.AlgoAmount.md) for `AlgoAmount`. ## `AlgoAmount` The `AlgoAmount` class provides a safe wrapper around an underlying `number` amount of microAlgo where any value entering or existing the `AlgoAmount` class must be explicitly stated to be in microAlgo or Algo. This makes it much safer to handle Algo amounts rather than passing them around as raw `number`'s where it's easy to make a (potentially costly!) mistake and not perform a conversion when one is needed (or perform one when it shouldn't be!). To import the AlgoAmount class you can access it via: ```typescript import { AlgoAmount } from '@algorandfoundation/algokit-utils/types/amount' ``` You may not need to import this type to use it though since there are also special methods that are exposed from the root AlgoKit Utils export and also others that extend the `number` protoype per below. ### Creating an `AlgoAmount` There are a few ways to create an `AlgoAmount`: - Algo - Constructor: `new AlgoAmount({algo: 10})` - Static helper: `AlgoAmount.algo(10)` - AlgoKit Helper: `algo(10)` - Number coersion: `(10).algo()` (note: you have to wrap the number in brackets or have it in a variable or function return, a raw number value can't have a method called on it) - microAlgo - Constructor: `new AlgoAmount({microAlgos: 10_000})` - Static helper: `AlgoAmount.algo(10)` - AlgoKit Helper: `microAlgo(10_000)` - Number coersion: `(10_000).microAlgo()` (note: you have to wrap the number in brackets or have it in a variable or function return, a raw number value can't have a method called on it) Note: per above, to use any of the versions that reference `AlgoAmount` type itself you need to import it: ```typescript import { AlgoAmount } from '@algorandfoundation/algokit-utils/types/amount' ``` ### Extracting a value from `AlgoAmount` The `AlgoAmount` class has properties to return Algo and microAlgo: - `amount.algo` - Returns the value in Algo - `amount.microAlgo` - Returns the value in microAlgo `AlgoAmount` will coerce to a `number` automatically (in microAlgo), which is not recommended to be used outside of allowing you to use `AlgoAmount` objects in comparison operations such as `<` and `>=` etc. You can also call `.toString()` or use an `AlgoAmount` directly in string interpolation to convert it to a nice user-facing formatted amount expressed in microAlgo. ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/ultrade/system.ts: -------------------------------------------------------------------------------- ```typescript import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { ResponseProcessor } from '../../../utils/responseProcessor.js'; import { env } from '../../../env.js'; export const systemTools: Tool[] = [ { name: 'api_ultrade_system_time', description: 'Get current system time', inputSchema: { type: 'object', properties: {} } }, { name: 'api_ultrade_system_maintenance', description: 'Get system maintenance status', inputSchema: { type: 'object', properties: {} } }, { name: 'api_ultrade_system_version', description: 'Get system version', inputSchema: { type: 'object', properties: {} } } ]; async function getSystemTime(): Promise<any> { try { const response = await fetch(`${env.ultrade_api_url}/system/time`, { method: 'GET', headers: { 'Content-Type': 'application/json' } }); if (!response.ok) { throw new McpError( ErrorCode.InternalError, `Ultrade API error: ${response.status} ${response.statusText}` ); } return await response.json(); } catch (error) { if (error instanceof McpError) { throw error; } throw new McpError( ErrorCode.InternalError, `Failed to get system time: ${error instanceof Error ? error.message : String(error)}` ); } } async function getSystemMaintenance(): Promise<any> { try { const response = await fetch(`${env.ultrade_api_url}/system/maintenance`, { method: 'GET', headers: { 'Content-Type': 'application/json' } }); if (!response.ok) { throw new McpError( ErrorCode.InternalError, `Ultrade API error: ${response.status} ${response.statusText}` ); } return await response.json(); } catch (error) { if (error instanceof McpError) { throw error; } throw new McpError( ErrorCode.InternalError, `Failed to get system maintenance status: ${error instanceof Error ? error.message : String(error)}` ); } } async function getSystemVersion(): Promise<any> { try { const response = await fetch(`${env.ultrade_api_url}/system/version`, { method: 'GET', headers: { 'Content-Type': 'application/json' } }); if (!response.ok) { throw new McpError( ErrorCode.InternalError, `Ultrade API error: ${response.status} ${response.statusText}` ); } return await response.json(); } catch (error) { if (error instanceof McpError) { throw error; } throw new McpError( ErrorCode.InternalError, `Failed to get system version: ${error instanceof Error ? error.message : String(error)}` ); } } export async function handleSystemTools(args: any): Promise<any> { switch (args.name) { case 'api_ultrade_system_time': return await getSystemTime(); case 'api_ultrade_system_maintenance': return await getSystemMaintenance(); case 'api_ultrade_system_version': return await getSystemVersion(); default: throw new McpError( ErrorCode.MethodNotFound, `Unknown tool: ${args.name}` ); } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:debugging.md: -------------------------------------------------------------------------------- ```markdown # Debugger The AlgoKit TypeScript Utilities package provides a set of debugging tools that can be used to simulate and trace transactions on the Algorand blockchain. These tools and methods are optimized for developers who are building applications on Algorand and need to test and debug their smart contracts via [AlgoKit AVM Debugger extension](https://github.com/algorandfoundation/algokit-avm-vscode-debugger). ## Configuration The `config.ts` file contains the `UpdatableConfig` class which manages and updates configuration settings for the AlgoKit project. To enable debug mode in your project you can configure it as follows: ```ts import { Config } from '@algorandfoundation/algokit-utils' Config.configure({ debug: true, }) ``` ## Debugging in `node` environment (recommended) Refer to the [algokit-utils-ts-debug](https://github.com/algorandfoundation/algokit-utils-ts-debug) for more details on how to activate the addon package with `algokit-utils` in your project. > Note: Config also contains a set of flags that affect behaviour of [algokit-utils-ts-debug](https://github.com/algorandfoundation/algokit-utils-ts-debug). Those include `projectRoot`, `traceAll`, `traceBufferSizeMb`, and `maxSearchDepth`. Refer to addon package documentation for details. ### Why are the debug utilities in a separate package? To keep the `algokit-utils-ts` package lean and isomporphic, the debugging utilities are located in a separate package. This eliminates various error cases with bundlers (e.g. `webpack`, `esbuild`) when building for the browser. ## Debugging in `browser` environment Note: `algokit-utils-ts-debug` cannot be used in browser environments. However, you can still obtain and persist simulation traces from the browser's `Console` tab when submitting transactions using the algokit-utils-ts package. To enable this functionality, activate debug mode in the algokit-utils-ts config as described in the [getting started](./docs/code/getting-started.md) guide. ### Subscribe to the `simulate` response event After setting the `debug` flag to true in the [configuration](#configuration) section, subscribe to the `TxnGroupSimulated` event as follows: ```ts import { AVMTracesEventData, Config, EventType } from '@algorandfoundation/algokit-utils' Config.events.on(EventType.TxnGroupSimulated, (eventData: AVMTracesEventData) => { Config.logger.info(JSON.stringify(eventData.simulateResponse.get_obj_for_encoding(), null, 2)) }) ``` This will output any simulation traces that have been emitted whilst calling your app. Place this code immediately after the `Config.configure` call to ensure it executes before any transactions are submitted for simulation. ### Save simulation trace responses from the browser With the event handler configured, follow these steps to save simulation trace responses: 1. Open your browser's `Console` tab 2. Submit the transaction 3. Copy the simulation request `JSON` and save it to a file with the extension `.trace.avm.json` 4. Place the file in the `debug_traces` folder of your AlgoKit contract project - Note: If you're not using an AlgoKit project structure, the extension will present a file picker as long as the trace file is within your VSCode workspace ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.BuildVersion.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / BuildVersion # Class: BuildVersion [modelsv2](../modules/modelsv2.md).BuildVersion ## Hierarchy - `default` ↳ **`BuildVersion`** ## Table of contents ### Constructors - [constructor](modelsv2.BuildVersion.md#constructor) ### Properties - [attribute\_map](modelsv2.BuildVersion.md#attribute_map) - [branch](modelsv2.BuildVersion.md#branch) - [buildNumber](modelsv2.BuildVersion.md#buildnumber) - [channel](modelsv2.BuildVersion.md#channel) - [commitHash](modelsv2.BuildVersion.md#commithash) - [major](modelsv2.BuildVersion.md#major) - [minor](modelsv2.BuildVersion.md#minor) ### Methods - [get\_obj\_for\_encoding](modelsv2.BuildVersion.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.BuildVersion.md#from_obj_for_encoding) ## Constructors ### constructor • **new BuildVersion**(`«destructured»`) Creates a new `BuildVersion` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `branch` | `string` | | › `buildNumber` | `number` \| `bigint` | | › `channel` | `string` | | › `commitHash` | `string` | | › `major` | `number` \| `bigint` | | › `minor` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2443 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### branch • **branch**: `string` #### Defined in client/v2/algod/models/types.ts:2422 ___ ### buildNumber • **buildNumber**: `number` \| `bigint` #### Defined in client/v2/algod/models/types.ts:2424 ___ ### channel • **channel**: `string` #### Defined in client/v2/algod/models/types.ts:2426 ___ ### commitHash • **commitHash**: `string` #### Defined in client/v2/algod/models/types.ts:2428 ___ ### major • **major**: `number` \| `bigint` #### Defined in client/v2/algod/models/types.ts:2430 ___ ### minor • **minor**: `number` \| `bigint` #### Defined in client/v2/algod/models/types.ts:2432 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`BuildVersion`](modelsv2.BuildVersion.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`BuildVersion`](modelsv2.BuildVersion.md) #### Defined in client/v2/algod/models/types.ts:2477 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0009.md: -------------------------------------------------------------------------------- ```markdown --- arc: 9 title: Algorand Wallet Algodv2 and Indexer API description: An API for accessing Algod and Indexer through a user's preferred connection. author: DanBurton (@DanBurton) discussions-to: https://github.com/algorandfoundation/ARCs/issues/52 status: Deprecated type: Standards Track category: Interface created: 2021-08-09 --- # Algorand Wallet Algodv2 and Indexer API ## Abstract Functions `getAlgodv2Client` and `getIndexerClient` which return a `BaseHTTPClient` that can be used to construct an `Algodv2Client` and an `IndexerClient` respectively (from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>); ## Specification ### Interface `GetAlgodv2ClientFunction` ```ts type GetAlgodv2ClientFunction = () => Promise<BaseHTTPClient> ``` Returns a promised `BaseHTTPClient` that can be used to then build an `Algodv2Client`, where `BaseHTTPClient` is an interface matching the interface `algosdk.BaseHTTPClient` from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>). ### Interface `GetIndexerClientFunction` ```ts type GetIndexerClientFunction = () => Promise<BaseHTTPClient> ``` Returns a promised `BaseHTTPClient` that can be used to then build an `Indexer`, where `BaseHTTPClient` is an interface matching the interface `algosdk.BaseHTTPClient` from the <a href="https://github.com/algorand/js-algorand-sdk/blob/develop/src/client/baseHTTPClient.ts">JS SDK</a>). ### Security considerations The returned `BaseHTTPClient` **SHOULD** filter the queries made to prevent potential attacks and reject (i.e., throw an exception) if this is not satisfied. A non-exhaustive list of checks is provided below: * Check that the relative PATH does not contain `..`. * Check that the only provided headers are the ones used by the SDK (when this ARC was written: `accept` and `content-type`) and their values are the ones provided by the SDK. `BaseHTTPClient` **MAY** impose rate limits. For higher security, `BaseHTTPClient` **MAY** also check the queries with regards to the OpenAPI specification of the node and the indexer. In case the wallet uses an API service that is secret or provided by the user, the wallet **MUST** ensure that the URL of the service and the potential tokens/headers are not leaked to the dApp. > Leakage may happen by accidentally including too much information in responses or errors returned by the various methods. For example, if the nodeJS superagent library is used without filtering errors and responses, errors and responses may include the request object, which includes the potentially secret API service URL / secret token headers. ## Rationale Nontrivial dApps often require the ability to query the network for activity. Algorand dApps written without regard to wallets are likely written using `Algodv2` and `Indexer` from `algosdk`. This document allows dApps to instantiate `Algodv2` and `Indexer` for a wallet API service, making it easy for JavaScript dApp authors to port their code to work with wallets. ## Security Considerations None. ## Copyright Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/algorand-client-interface](../modules/types_algorand_client_interface.md) / AlgorandClientInterface # Interface: AlgorandClientInterface [types/algorand-client-interface](../modules/types_algorand_client_interface.md).AlgorandClientInterface Interface for the bulk of the `AlgorandClient` functionality. Used to take a dependency on AlgorandClient without generating a circular dependency. ## Implemented by - [`AlgorandClient`](../classes/types_algorand_client.AlgorandClient.md) ## Table of contents ### Properties - [app](types_algorand_client_interface.AlgorandClientInterface.md#app) - [appDeployer](types_algorand_client_interface.AlgorandClientInterface.md#appdeployer) - [client](types_algorand_client_interface.AlgorandClientInterface.md#client) - [createTransaction](types_algorand_client_interface.AlgorandClientInterface.md#createtransaction) - [send](types_algorand_client_interface.AlgorandClientInterface.md#send) ### Methods - [newGroup](types_algorand_client_interface.AlgorandClientInterface.md#newgroup) ## Properties ### app • **app**: [`AppManager`](../classes/types_app_manager.AppManager.md) #### Defined in [src/types/algorand-client-interface.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L16) ___ ### appDeployer • **appDeployer**: [`AppDeployer`](../classes/types_app_deployer.AppDeployer.md) #### Defined in [src/types/algorand-client-interface.ts:17](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L17) ___ ### client • **client**: `Object` #### Type declaration | Name | Type | | :------ | :------ | | `algod` | `AlgodClient` | | `indexer?` | `IndexerClient` | | `isLocalNet` | () => `Promise`\<`boolean`\> | | `isMainNet` | () => `Promise`\<`boolean`\> | | `isTestNet` | () => `Promise`\<`boolean`\> | | `network` | () => `Promise`\<[`NetworkDetails`](types_network_client.NetworkDetails.md)\> | #### Defined in [src/types/algorand-client-interface.ts:21](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L21) ___ ### createTransaction • **createTransaction**: [`AlgorandClientTransactionCreator`](../classes/types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md) #### Defined in [src/types/algorand-client-interface.ts:19](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L19) ___ ### send • **send**: [`AlgorandClientTransactionSender`](../classes/types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md) #### Defined in [src/types/algorand-client-interface.ts:18](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L18) ## Methods ### newGroup ▸ **newGroup**(): [`TransactionComposer`](../classes/types_composer.TransactionComposer.md) #### Returns [`TransactionComposer`](../classes/types_composer.TransactionComposer.md) #### Defined in [src/types/algorand-client-interface.ts:20](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client-interface.ts#L20) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionAssetConfig # Class: TransactionAssetConfig [indexerModels](../modules/indexerModels.md).TransactionAssetConfig Fields for asset allocation, re-configuration, and destruction. A zero value for asset-id indicates asset creation. A zero value for the params indicates asset destruction. Definition: data/transactions/asset.go : AssetConfigTxnFields ## Hierarchy - `default` ↳ **`TransactionAssetConfig`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionAssetConfig.md#constructor) ### Properties - [assetId](indexerModels.TransactionAssetConfig.md#assetid) - [attribute\_map](indexerModels.TransactionAssetConfig.md#attribute_map) - [params](indexerModels.TransactionAssetConfig.md#params) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionAssetConfig.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionAssetConfig.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionAssetConfig**(`«destructured»`) Creates a new `TransactionAssetConfig` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `assetId?` | `number` \| `bigint` | | › `params?` | [`AssetParams`](indexerModels.AssetParams.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:4883 ## Properties ### assetId • `Optional` **assetId**: `number` \| `bigint` (xaid) ID of the asset being configured or empty if creating. #### Defined in client/v2/indexer/models/types.ts:4865 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### params • `Optional` **params**: [`AssetParams`](indexerModels.AssetParams.md) AssetParams specifies the parameters for an asset. (apar) when part of an AssetConfig transaction. Definition: data/transactions/asset.go : AssetParams #### Defined in client/v2/indexer/models/types.ts:4873 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionAssetConfig`](indexerModels.TransactionAssetConfig.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionAssetConfig`](indexerModels.TransactionAssetConfig.md) #### Defined in client/v2/indexer/models/types.ts:4901 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-compile.md: -------------------------------------------------------------------------------- ```markdown # Compiling to AVM bytecode The PuyaPy compiler can compile Algorand Python smart contracts directly into AVM bytecode. Once compiled, this bytecode can be utilized to construct AVM Application Call transactions both on and off chain. ## Outputting AVM bytecode from CLI The `--output-bytecode` option can be used to generate `.bin` files for smart contracts and logic signatures, producing an approval and clear program for each smart contract. ## Obtaining bytecode within other contracts The [`compile_contract`](#algopy.compile_contract) function takes an Algorand Python smart contract class and returns a [`CompiledContract`](#algopy.CompiledContract), The global state, local state and program pages allocation parameters are derived from the contract by default, but can be overridden. This compiled contract can then be used to create an [`algopy.itxn.ApplicationCall`](#algopy.itxn.ApplicationCall) transaction or used with the [ARC4](#arc4-contracts) functions. The [`compile_logicsig`](#algopy.compile_logicsig) takes an Algorand Python logic signature and returns a [`CompiledLogicSig`](#algopy.CompiledLogicSig), which can be used to verify if a transaction has been signed by a particular logic signature. ## Template variables Algorand Python supports defining [`algopy.TemplateVar`](#algopy.TemplateVar) variables that can be substituted during compilation. For example, the following contract has `UInt64` and `Bytes` template variables. ```{code-block} python :caption: templated_contract.py from algopy import ARC4Contract, Bytes, TemplateVar, UInt64, arc4 class TemplatedContract(ARC4Contract): @arc4.abimethod def my_method(self) -> UInt64: return TemplateVar[UInt64]("SOME_UINT") @arc4.abimethod def my_other_method(self) -> Bytes: return TemplateVar[Bytes]("SOME_BYTES") ``` When compiling to bytecode, the values for these template variables must be provided. These values can be provided via the CLI, or through the `template_vars` parameter of the [`compile_contract`](#algopy.compile_contract) and [`compile_logicsig`](#algopy.compile_logicsig) functions. ### CLI The `--template-var` option can be used to [define](compiler.md#defining-template-values) each variable. For example to provide the values for the above example contract the following command could be used `puyapy --template-var SOME_UINT=123 --template-var SOME_BYTES=0xABCD templated_contract.py` ### Within other contracts The functions [`compile_contract`](#algopy.compile_contract) and [`compile_logicsig`](#algopy.compile_logicsig) both have an optional `template_vars` parameter which can be used to define template variables. Variables defined in this manner take priority over variables defined on the CLI. ```python from algopy import Bytes, UInt64, arc4, compile_contract, subroutine from templated_contract import TemplatedContract @subroutine def create_templated_contract() -> None: compiled = compile_contract( TemplatedContract, global_uints=2, # customize allocated global uints template_vars={ # provide template vars "SOME_UINT": UInt64(123), "SOME_BYTES": Bytes(b"\xAB\xCD") }, ) arc4.arc4_create(TemplatedContract, compiled=compiled) ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / PendingTransactionsResponse # Class: PendingTransactionsResponse [modelsv2](../modules/modelsv2.md).PendingTransactionsResponse A potentially truncated list of transactions currently in the node's transaction pool. You can compute whether or not the list is truncated if the number of elements in the **top-transactions** array is fewer than **total-transactions**. ## Hierarchy - `default` ↳ **`PendingTransactionsResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.PendingTransactionsResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.PendingTransactionsResponse.md#attribute_map) - [topTransactions](modelsv2.PendingTransactionsResponse.md#toptransactions) - [totalTransactions](modelsv2.PendingTransactionsResponse.md#totaltransactions) ### Methods - [get\_obj\_for\_encoding](modelsv2.PendingTransactionsResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.PendingTransactionsResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new PendingTransactionsResponse**(`«destructured»`) Creates a new `PendingTransactionsResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `topTransactions` | [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] | | › `totalTransactions` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:4080 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### topTransactions • **topTransactions**: [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] An array of signed transaction objects. #### Defined in client/v2/algod/models/types.ts:4068 ___ ### totalTransactions • **totalTransactions**: `number` \| `bigint` Total number of transactions in the pool. #### Defined in client/v2/algod/models/types.ts:4073 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`PendingTransactionsResponse`](modelsv2.PendingTransactionsResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`PendingTransactionsResponse`](modelsv2.PendingTransactionsResponse.md) #### Defined in client/v2/algod/models/types.ts:4098 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:arc4-types.md: -------------------------------------------------------------------------------- ```markdown # ARC4 Types These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://arc.algorand.foundation/ARCs/arc-0004) for more details on the spec. ```{hint} Test context manager provides _value generators_ for ARC4 types. To access their _value generators_, use `{context_instance}.any.arc4` property. See more examples below. ``` ```{note} For all `algopy.arc4` types with and without respective _value generator_, instantiation can be performed directly. If you have a suggestion for a new _value generator_ implementation, please open an issue in the [`algorand-python-testing`](https://github.com/algorandfoundation/algorand-python-testing) repository or contribute by following the [contribution guide](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md). ``` ```{testsetup} import algopy from algopy_testing import algopy_testing_context # Create the context manager for snippets below ctx_manager = algopy_testing_context() # Enter the context context = ctx_manager.__enter__() ``` ## Unsigned Integers ```{testcode} from algopy import arc4 # Integer types uint8_value = arc4.UInt8(255) uint16_value = arc4.UInt16(65535) uint32_value = arc4.UInt32(4294967295) uint64_value = arc4.UInt64(18446744073709551615) ... # instantiate test context # Generate a random unsigned arc4 integer with default range uint8 = context.any.arc4.uint8() uint16 = context.any.arc4.uint16() uint32 = context.any.arc4.uint32() uint64 = context.any.arc4.uint64() biguint128 = context.any.arc4.biguint128() biguint256 = context.any.arc4.biguint256() biguint512 = context.any.arc4.biguint512() # Generate a random unsigned arc4 integer with specified range uint8_custom = context.any.arc4.uint8(min_value=10, max_value=100) uint16_custom = context.any.arc4.uint16(min_value=1000, max_value=5000) uint32_custom = context.any.arc4.uint32(min_value=100000, max_value=1000000) uint64_custom = context.any.arc4.uint64(min_value=1000000000, max_value=10000000000) biguint128_custom = context.any.arc4.biguint128(min_value=1000000000000000, max_value=10000000000000000) biguint256_custom = context.any.arc4.biguint256(min_value=1000000000000000000000000, max_value=10000000000000000000000000) biguint512_custom = context.any.arc4.biguint512(min_value=10000000000000000000000000000000000, max_value=10000000000000000000000000000000000) ``` ## Address ```{testcode} from algopy import arc4 # Address type address_value = arc4.Address("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ") # Generate a random address random_address = context.any.arc4.address() # Access native underlaying type native = random_address.native ``` ## Dynamic Bytes ```{testcode} from algopy import arc4 # Dynamic byte string bytes_value = arc4.DynamicBytes(b"Hello, Algorand!") # Generate random dynamic bytes random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the arc4 dynamic bytes ``` ## String ```{testcode} from algopy import arc4 # UTF-8 encoded string string_value = arc4.String("Hello, Algorand!") # Generate random string random_string = context.any.arc4.string(n=12) # n is the number of bits in the arc4 string ``` ```{testcleanup} ctx_manager.__exit__(None, None, None) ``` ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/tinyman/opt_in.ts: -------------------------------------------------------------------------------- ```typescript import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { generateOptIntoAssetTxns, generateOptIntoValidatorTxns, generateOptOutOfValidatorTxns, SupportedNetwork } from '@tinymanorg/tinyman-js-sdk'; import { algodClient } from '../../../algorand-client.js'; import { env } from '../../../env.js'; export const optInTools: Tool[] = [ { name: 'api_tinyman_get_asset_optin_quote', description: 'Get quote for opting into a Tinyman pool token', inputSchema: { type: 'object', properties: { assetId: { type: 'integer', description: 'ID of the pool token asset' }, initiatorAddr: { type: 'string', description: 'Address of the account to opt in' } }, required: ['assetId', 'initiatorAddr'] } }, { name: 'api_tinyman_get_validator_optin_quote', description: 'Get quote for opting into Tinyman validator app', inputSchema: { type: 'object', properties: { initiatorAddr: { type: 'string', description: 'Address of the account to opt in' }, version: { type: 'string', enum: ['v1_1', 'v2'], description: 'Tinyman protocol version', default: 'v2' } }, required: ['initiatorAddr'] } }, { name: 'api_tinyman_get_validator_optout_quote', description: 'Get quote for opting out of Tinyman validator app', inputSchema: { type: 'object', properties: { initiatorAddr: { type: 'string', description: 'Address of the account to opt out' }, version: { type: 'string', enum: ['v1_1', 'v2'], description: 'Tinyman protocol version', default: 'v2' } }, required: ['initiatorAddr'] } } ]; export async function handleOptInTools(args: any): Promise<any> { const { name, initiatorAddr, version = 'v2' } = args; try { let quote; if (name === 'api_tinyman_get_asset_optin_quote') { const { assetId } = args; quote = await generateOptIntoAssetTxns({ client: algodClient, assetID: assetId, initiatorAddr }); } else if (name === 'api_tinyman_get_validator_optin_quote') { quote = await generateOptIntoValidatorTxns({ client: algodClient, network: env.algorand_network as SupportedNetwork, contractVersion: version, initiatorAddr }); } else if (name === 'api_tinyman_get_validator_optout_quote') { quote = await generateOptOutOfValidatorTxns({ client: algodClient, network: env.algorand_network as SupportedNetwork, contractVersion: version, initiatorAddr }); } else { throw new McpError( ErrorCode.MethodNotFound, `Unknown opt-in tool: ${name}` ); } return { version, initiatorAddr, transactionCount: quote.length, estimatedFees: quote.reduce((sum, txn) => sum + txn.txn.fee, 0) }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to get opt-in/out quote: ${error instanceof Error ? error.message : String(error)}` ); } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-arc28.md: -------------------------------------------------------------------------------- ```markdown # ARC-28: Structured event logging [ARC-28](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0028.md) provides a methodology for structured logging by Algorand smart contracts. It introduces the concept of Events, where data contained in logs may be categorized and structured. Each Event is identified by a unique 4-byte identifier derived from its `Event Signature`. The Event Signature is a UTF-8 string comprised of the event's name, followed by the names of the [ARC-4](./lg-arc4.md) data types contained in the event, all enclosed in parentheses (`EventName(type1,type2,...)`) e.g.: ``` Swapped(uint64,uint64) ``` Events are emitting by including them in the [log output](./lg-logs.md). The metadata that identifies the event should then be included in the ARC-4 contract output so that a calling client can parse the logs to parse the structured data out. This part of the ARC-28 spec isn't yet implemented in Algorand Python, but it's on the roadmap. ## Emitting Events To emit an ARC-28 event in Algorand Python you can use the `emit` function, which appears in the `algopy.arc4` namespace for convenience since it heavily uses ARC-4 types and is essentially an extension of the ARC-4 specification. This function takes care of encoding the event payload to conform to the ARC-28 specification and there are 3 overloads: - An [ARC-4 struct](./lg-arc4.md), from what the name of the struct will be used as a the event name and the struct parameters will be used as the event fields - `arc4.emit(Swapped(a, b))` - An event signature as a [string literal (or module variable)](./lg-types.md), followed by the values - `arc4.emit("Swapped(uint64,uint64)", a, b)` - An event name as a [string literal (or module variable)](./lg-types.md), followed by the values - `arc4.emit("Swapped", a, b)` Here's an example contract that emits events: ```python from algopy import ARC4Contract, arc4 class Swapped(arc4.Struct): a: arc4.UInt64 b: arc4.UInt64 class EventEmitter(ARC4Contract): @arc4.abimethod def emit_swapped(self, a: arc4.UInt64, b: arc4.UInt64) -> None: arc4.emit(Swapped(b, a)) arc4.emit("Swapped(uint64,uint64)", b, a) arc4.emit("Swapped", b, a) ``` It's worth noting that the ARC-28 event signature needs to be known at compile time so the event name can't be a dynamic type and must be a static string literal or string module constant. If you want to emit dynamic events you can do so using the [`log` method](./lg-logs.md), but you'd need to manually construct the correct series of bytes and the compiler won't be able to emit the ARC-28 metadata so you'll need to also manually parse the logs in your client. Examples of manually constructing an event: ```python # This is essentially what the `emit` method is doing, noting that a,b need to be encoded # as a tuple so below (simple concat) only works for static ARC-4 types log(arc4.arc4_signature("Swapped(uint64,uint64)"), a, b) # or, if you wanted it to be truly dynamic for some reason, # (noting this has a non-trivial opcode cost) and assuming in this case # that `event_suffix` is already defined as a `String`: event_name = String("Event") + event_suffix event_selector = op.sha512_256((event_name + "(uint64)").bytes)[:4] log(event_selector, UInt64(6)) ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-control.md: -------------------------------------------------------------------------------- ```markdown # Control flow structures Control flow in Algorand Python is similar to standard Python control flow, with support for if statements, while loops, for loops, and match statements. ## If statements If statements work the same as Python. The conditions must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. ```python if condition: # block of code to execute if condition is True elif condition2: # block of code to execute if condition is False and condition2 is True else: # block of code to execute if condition and condition2 are both False ``` [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/simplish/contract.py). ## Ternary conditions Ternary conditions work the same as Python. The condition must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. ```python value1 = UInt64(5) value2 = String(">6") if value1 > 6 else String("<=6") ``` ## While loops While loops work the same as Python. The condition must be an expression that evaluates to bool, which can include a [String or Uint64](./lg-types.md) among others. You can use `break` and `continue`. ```python while condition: # block of code to execute if condition is True ``` Note: we don't currently have support for while-else statements. [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/unssa/contract.py#L32-L83). ## For Loops For loops are used to iterate over sequences, ranges and [ARC-4 arrays](./lg-arc4.md). They work the same as Python. Algorand Python provides functions like `uenumerate` and `urange` to facilitate creating sequences and ranges; in-built Python `reversed` method works with these. - `uenumerate` is similar to Python's built-in enumerate function, but for UInt64 numbers; it allows you to loop over a sequence and have an automatic counter. - `urange` is a function that generates a sequence of Uint64 numbers, which you can iterate over. - `reversed` returns a reversed iterator of a sequence. Here is an example of how you can use these functions in a contract: ```python test_array = arc4.StaticArray(arc4.UInt8(), arc4.UInt8(), arc4.UInt8(), arc4.UInt8()) # urange: reversed items, forward index for index, item in uenumerate(reversed(urange(4))): test_array[index] = arc4.UInt8(item) assert test_array.bytes == Bytes.from_hex("03020100") ``` Note: we don't currently have support for for-else statements. [See full](https://github.com/algorandfoundation/puya/blob/main/test_cases/reversed_iteration/contract.py) [examples](https://github.com/algorandfoundation/puya/blob/main/test_cases/nested_loops/contract.py). ## Match Statements Match statements work the same as Python and work for [...] ```python match value: case pattern1: # block of code to execute if pattern1 matches case pattern2: # block of code to execute if pattern2 matches case _: # Fallback ``` Note: Captures and patterns are not supported. Currently, there is only support for basic case/switch functionality; pattern matching and guard clauses are not currently supported. [See full example](https://github.com/algorandfoundation/puya/blob/main/test_cases/match/contract.py). ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:testing.TransactionLogger.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [testing](../modules/testing.md) / TransactionLogger # Class: TransactionLogger [testing](../modules/testing.md).TransactionLogger Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy. Useful for automated tests. ## Table of contents ### Constructors - [constructor](testing.TransactionLogger.md#constructor) ### Properties - [\_sentTransactionIds](testing.TransactionLogger.md#_senttransactionids) ### Accessors - [sentTransactionIds](testing.TransactionLogger.md#senttransactionids) ### Methods - [capture](testing.TransactionLogger.md#capture) - [clear](testing.TransactionLogger.md#clear) - [logRawTransaction](testing.TransactionLogger.md#lograwtransaction) - [waitForIndexer](testing.TransactionLogger.md#waitforindexer) ## Constructors ### constructor • **new TransactionLogger**(): [`TransactionLogger`](testing.TransactionLogger.md) #### Returns [`TransactionLogger`](testing.TransactionLogger.md) ## Properties ### \_sentTransactionIds • `Private` **\_sentTransactionIds**: `string`[] = `[]` #### Defined in [src/testing/transaction-logger.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L12) ## Accessors ### sentTransactionIds • `get` **sentTransactionIds**(): readonly `string`[] The list of transaction IDs that has been logged thus far. #### Returns readonly `string`[] #### Defined in [src/testing/transaction-logger.ts:17](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L17) ## Methods ### capture ▸ **capture**(`algod`): `AlgodClient` Return a proxy that wraps the given Algodv2 with this transaction logger. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `algod` | `AlgodClient` | The `Algodv2` to wrap | #### Returns `AlgodClient` The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger #### Defined in [src/testing/transaction-logger.ts:48](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L48) ___ ### clear ▸ **clear**(): `void` Clear all logged IDs. #### Returns `void` #### Defined in [src/testing/transaction-logger.ts:24](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L24) ___ ### logRawTransaction ▸ **logRawTransaction**(`signedTransactions`): `void` The method that captures raw transactions and stores the transaction IDs. #### Parameters | Name | Type | | :------ | :------ | | `signedTransactions` | `Uint8Array` \| `Uint8Array`[] | #### Returns `void` #### Defined in [src/testing/transaction-logger.ts:31](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L31) ___ ### waitForIndexer ▸ **waitForIndexer**(`indexer`): `Promise`\<`void`\> Wait until all logged transactions IDs appear in the given `Indexer`. #### Parameters | Name | Type | | :------ | :------ | | `indexer` | `IndexerClient` | #### Returns `Promise`\<`void`\> #### Defined in [src/testing/transaction-logger.ts:53](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/testing/transaction-logger.ts#L53) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:sites:express-dapp:README.md: -------------------------------------------------------------------------------- ```markdown <p align="center"> <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a> </p> [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 [circleci-url]: https://circleci.com/gh/nestjs/nest <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p> <p align="center"> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a> <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a> <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a> <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a> <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a> <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a> <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a> <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a> <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a> <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a> </p> <!--[](https://opencollective.com/nest#backer) [](https://opencollective.com/nest#sponsor)--> ## Description [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. ## Installation ```bash $ npm install ``` ## Running the app ```bash # development $ npm run start # watch mode $ npm run start:dev # production mode $ npm run start:prod ``` ## Test ```bash # unit tests $ npm run test # e2e tests $ npm run test:e2e # test coverage $ npm run test:cov ``` ## Support Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). ## Stay in touch - Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) - Website - [https://nestjs.com](https://nestjs.com/) - Twitter - [@nestframework](https://twitter.com/nestframework) ## License Nest is [MIT licensed](LICENSE). ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofSignature.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofSignature # Class: StateProofSignature [indexerModels](../modules/indexerModels.md).StateProofSignature ## Hierarchy - `default` ↳ **`StateProofSignature`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofSignature.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofSignature.md#attribute_map) - [falconSignature](indexerModels.StateProofSignature.md#falconsignature) - [merkleArrayIndex](indexerModels.StateProofSignature.md#merklearrayindex) - [proof](indexerModels.StateProofSignature.md#proof) - [verifyingKey](indexerModels.StateProofSignature.md#verifyingkey) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofSignature.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofSignature.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofSignature**(`«destructured»`) Creates a new `StateProofSignature` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `falconSignature?` | `string` \| `Uint8Array` | | › `merkleArrayIndex?` | `number` \| `bigint` | | › `proof?` | [`MerkleArrayProof`](indexerModels.MerkleArrayProof.md) | | › `verifyingKey?` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3755 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### falconSignature • `Optional` **falconSignature**: `Uint8Array` #### Defined in client/v2/indexer/models/types.ts:3737 ___ ### merkleArrayIndex • `Optional` **merkleArrayIndex**: `number` \| `bigint` #### Defined in client/v2/indexer/models/types.ts:3739 ___ ### proof • `Optional` **proof**: [`MerkleArrayProof`](indexerModels.MerkleArrayProof.md) #### Defined in client/v2/indexer/models/types.ts:3741 ___ ### verifyingKey • `Optional` **verifyingKey**: `Uint8Array` (vkey) #### Defined in client/v2/indexer/models/types.ts:3746 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`StateProofSignature`](indexerModels.StateProofSignature.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofSignature`](indexerModels.StateProofSignature.md) #### Defined in client/v2/indexer/models/types.ts:3787 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientParams # Interface: AppClientParams [types/app-client](../modules/types_app_client.md).AppClientParams Parameters to create an app client ## Table of contents ### Properties - [algorand](types_app_client.AppClientParams.md#algorand) - [appId](types_app_client.AppClientParams.md#appid) - [appName](types_app_client.AppClientParams.md#appname) - [appSpec](types_app_client.AppClientParams.md#appspec) - [approvalSourceMap](types_app_client.AppClientParams.md#approvalsourcemap) - [clearSourceMap](types_app_client.AppClientParams.md#clearsourcemap) - [defaultSender](types_app_client.AppClientParams.md#defaultsender) - [defaultSigner](types_app_client.AppClientParams.md#defaultsigner) ## Properties ### algorand • **algorand**: [`AlgorandClientInterface`](types_algorand_client_interface.AlgorandClientInterface.md) An `AlgorandClient` instance #### Defined in [src/types/app-client.ts:328](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L328) ___ ### appId • **appId**: `bigint` The ID of the app instance this client should make calls against. #### Defined in [src/types/app-client.ts:318](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L318) ___ ### appName • `Optional` **appName**: `string` Optional override for the app name; used for on-chain metadata and lookups. Defaults to the ARC-32/ARC-56 app spec name #### Defined in [src/types/app-client.ts:334](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L334) ___ ### appSpec • **appSpec**: `string` \| [`Arc56Contract`](types_app_arc56.Arc56Contract.md) \| [`AppSpec`](types_app_spec.AppSpec.md) The ARC-56 or ARC-32 application spec as either: * Parsed JSON ARC-56 `Contract` * Parsed JSON ARC-32 `AppSpec` * Raw JSON string (in either ARC-56 or ARC-32 format) #### Defined in [src/types/app-client.ts:325](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L325) ___ ### approvalSourceMap • `Optional` **approvalSourceMap**: `ProgramSourceMap` Optional source map for the approval program #### Defined in [src/types/app-client.ts:340](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L340) ___ ### clearSourceMap • `Optional` **clearSourceMap**: `ProgramSourceMap` Optional source map for the clear state program #### Defined in [src/types/app-client.ts:342](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L342) ___ ### defaultSender • `Optional` **defaultSender**: `string` \| `Address` Optional address to use for the account to use as the default sender for calls. #### Defined in [src/types/app-client.ts:336](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L336) ___ ### defaultSigner • `Optional` **defaultSigner**: `TransactionSigner` Optional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from `AlgorandClient`). #### Defined in [src/types/app-client.ts:338](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L338) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/docs:scripts:README.md: -------------------------------------------------------------------------------- ```markdown # reformat-all-commands.sh Calls `reformat.py` and `convert_swagger.py` to populate the "reference-docs" structure. Requires two arguments be passed referencing the source code of _go-algorand_ and _indexer_ respectively: `./reformat-all-commands.sh $GO_ALGORAND_SRC $INDEXER_SRC` # reformat.py Reformats markdown generated by the go spf13/cobra library to work with mkdocs. Given the `goal` in the path, regenerate the docs from this directory by running: ``` rm -rf ../docs/Reference-Docs/goal mkdir ../docs/Reference-Docs/goal goal generate-docs ../docs/Reference-Docs/goal ./reformat.py -path ../docs/Reference-Docs/goal -cmd goal ``` # convert_swagger.py Given a swagger specfile, generates a markdown file. Currently uses `swagger2markup`, with some post processing to make the markdown more pleasant with our mkdocs theme. ``` ./convert_swagger.py -specfile ~/algorand/indexer/api/indexer.oas2.json -target ../docs/reference/rest-apis/indexer.md ./convert_swagger.py -specfile ~/go/src/github.com/algorand/go-algorand/daemon/kmd/api/swagger.json -target ../docs/reference/rest-apis/kmd.md ./convert_swagger.py -specfile ~/go/src/github.com/algorand/go-algorand/daemon/algod/api/algod.oas2.json -target ../docs/reference/rest-apis/algod.md ``` # config_json_gen Used to extract node config options from the go-algorand source. Markdown is written to stdout, warnings are written to stderr. To update the template, edit template.tmpl and rebuild the tool. Build tool: ``` go build . ``` Run: ``` ./config_json_gen -path ~/algorand/go-algorand/ > ../../docs/run-a-node/reference/config.md ``` All in one: ``` go run main.go -path ~/algorand/go-algorand/ > ../../docs/run-a-node/reference/config.md ``` # Code examples ## Example formatting Examples are all named descriptively and may be referenced in the markdown in multiple places if necessary. The format for a named example in the docs markdown is: ``` <!-- ===LANGSDK_EXAMPLENAME=== --> <!-- ===LANGSDK_EXAMPLENAME=== --> ``` Running the import script will replace any text between these two tags with the matching example from the SDK repos. A file containing all examples with descriptions is in `example_tracker/example_list.md`. A script that is helpful to track any examples that are missing from languages (or typo'd) is in `example_tracker/list_examples.sh`. To ensure the language tabs display correctly the markdown must be formatted as follows: ``` === "LanguageName" <!-- ===LANGSDK_EXAMPLE_NAME=== --> <!-- ===LANGSDK_EXAMPLE_NAME=== --> ``` That is, the comment flags must be tabbed over under the `=== "LanguageName"` line. ## Running the import script The import script, `import_examples.py`, will search the configured repository paths for named examples to be pulled into the docs. The script will clone the SDK repositories if they are not already present. The script will also update the SDK repositories if they are already present. The following will import only the `PYSDK` examples: ```sh python import_examples.py --src PYSDK ``` ## New examples For any *new* examples, please follow the formatting of the existing examples in that repository. The `examples` branch of all the SDKs should be used for development of examples. The examples should be runable with the smoke-test shell script, so that CI can catch any issues. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountAssetsInformationResponse # Class: AccountAssetsInformationResponse [modelsv2](../modules/modelsv2.md).AccountAssetsInformationResponse AccountAssetsInformationResponse contains a list of assets held by an account. ## Hierarchy - `default` ↳ **`AccountAssetsInformationResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.AccountAssetsInformationResponse.md#constructor) ### Properties - [assetHoldings](modelsv2.AccountAssetsInformationResponse.md#assetholdings) - [attribute\_map](modelsv2.AccountAssetsInformationResponse.md#attribute_map) - [nextToken](modelsv2.AccountAssetsInformationResponse.md#nexttoken) - [round](modelsv2.AccountAssetsInformationResponse.md#round) ### Methods - [get\_obj\_for\_encoding](modelsv2.AccountAssetsInformationResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.AccountAssetsInformationResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AccountAssetsInformationResponse**(`«destructured»`) Creates a new `AccountAssetsInformationResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `assetHoldings?` | [`AccountAssetHolding`](modelsv2.AccountAssetHolding.md)[] | | › `nextToken?` | `string` | | › `round` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:681 ## Properties ### assetHoldings • `Optional` **assetHoldings**: [`AccountAssetHolding`](modelsv2.AccountAssetHolding.md)[] #### Defined in client/v2/algod/models/types.ts:666 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### nextToken • `Optional` **nextToken**: `string` Used for pagination, when making another request provide this token with the next parameter. #### Defined in client/v2/algod/models/types.ts:672 ___ ### round • **round**: `number` \| `bigint` The round for which this information is relevant. #### Defined in client/v2/algod/models/types.ts:664 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountAssetsInformationResponse`](modelsv2.AccountAssetsInformationResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AccountAssetsInformationResponse`](modelsv2.AccountAssetsInformationResponse.md) #### Defined in client/v2/algod/models/types.ts:703 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:tutorials_Hello World_0003-contract.md: -------------------------------------------------------------------------------- ```markdown --- title: "3. The Template Contract" --- By default, the TEALScript template includes a very basic contract that performs some math operations. This page will breakdown the contract and explain what each of the components do and how TEALScript works. ## Import Contract ```ts import { Contract } from '@algorandfoundation/tealscript'; ``` Here we are simply importing `Contract` from the tealscript npm package. `Contract` is the most important class in TEALScript as every contract written in TEALScript must extend the `Contract` class. Code outside of the `Contract` superclass will not get compiled. ## Class Definition ```ts // eslint-disable-next-line no-unused-vars class HelloWorld extends Contract { ``` As mentioned above, every contract must extend `Contract`. You will also notice that there is the ESLint rule, `no-unused-vars` is disabled for this line. ESLint expects every class we define to be used in our codebase. Since we are developing a contract, however, we don't directly use this class in other TypeScript files, thus we expect it to be unused. ## Private Methods ```ts /** * Calculates the sum of two numbers * * @param a * @param b * @returns The sum of a and b */ private getSum(a: uint64, b: uint64): uint64 { return a + b; } /** * Calculates the difference between two numbers * * @param a * @param b * @returns The difference between a and b. */ private getDifference(a: uint64, b: uint64): uint64 { return a >= b ? a - b : b - a; } ``` In TypeScript, a private function is a function that can only be called internally by an instance of this class. The `private` keyword in TEALScript has a very similar meaning. If a method is `private`, then nobody can directly call the method. The only way to reach the logic defined in these methods is through a public method that explicitly calls them. The logic of these methods are rather simple. ### getSum Simply adds the two given numbers together/ ### getDifference Will get the difference of the two given numbers by subtracting the smaller one from the bigger one. ## Public Method ```ts /** * A method that takes two numbers and does either addition or subtraction * * @param a The first number * @param b The second number * @param operation The operation to perform. Can be either 'sum' or 'difference' * * @returns The result of the operation */ doMath(a: uint64, b: uint64, operation: string): uint64 { let result: uint64; if (operation === 'sum') { result = this.getSum(a, b); } else if (operation === 'difference') { result = this.getDifference(a, b); } else throw Error('Invalid operation'); return result; } ``` ### doMath Because this function is public (there is no `private` keyword, thus it is implicitly public), any client on or off chain can call `doMath`. As indicating by the TypeDoc comment, this function takes in two numbers and a string as an operation. The `operation` argument is used to determine whether `getSum` or `getDifferent` should be called. ### Errors If the `operation` string is not an expected operation, the contract will throw an error. It should be noted that there is no concept of `try` in TEALScript. Errors are unrecoverable and will results in a failed transaction. On Algorand, failed transaction do not get charged a fee. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationLocalStatesResponse # Class: ApplicationLocalStatesResponse [indexerModels](../modules/indexerModels.md).ApplicationLocalStatesResponse ## Hierarchy - `default` ↳ **`ApplicationLocalStatesResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.ApplicationLocalStatesResponse.md#constructor) ### Properties - [appsLocalStates](indexerModels.ApplicationLocalStatesResponse.md#appslocalstates) - [attribute\_map](indexerModels.ApplicationLocalStatesResponse.md#attribute_map) - [currentRound](indexerModels.ApplicationLocalStatesResponse.md#currentround) - [nextToken](indexerModels.ApplicationLocalStatesResponse.md#nexttoken) ### Methods - [get\_obj\_for\_encoding](indexerModels.ApplicationLocalStatesResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.ApplicationLocalStatesResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationLocalStatesResponse**(`«destructured»`) Creates a new `ApplicationLocalStatesResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `appsLocalStates` | [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md)[] | | › `currentRound` | `number` \| `bigint` | | › `nextToken?` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:989 ## Properties ### appsLocalStates • **appsLocalStates**: [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md)[] #### Defined in client/v2/indexer/models/types.ts:969 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### currentRound • **currentRound**: `number` \| `bigint` Round at which the results were computed. #### Defined in client/v2/indexer/models/types.ts:974 ___ ### nextToken • `Optional` **nextToken**: `string` Used for pagination, when making another request provide this token with the next parameter. #### Defined in client/v2/indexer/models/types.ts:980 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationLocalStatesResponse`](indexerModels.ApplicationLocalStatesResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationLocalStatesResponse`](indexerModels.ApplicationLocalStatesResponse.md) #### Defined in client/v2/indexer/models/types.ts:1011 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy-categories/python.json: -------------------------------------------------------------------------------- ```json { "name": "Python Development", "description": "Python development resources for Algorand blockchain", "path": "python", "subcategories": { "examples": { "name": "Code Examples", "description": "Example implementations in Python", "path": "python/examples", "subcategories": { "basics": { "name": "Basic Examples", "path": "python/examples/basics", "documents": [ { "name": "hello_world", "description": "Hello World Example", "path": "developer:python:code:example:hello_world.md" }, { "name": "accounts", "description": "Account Management", "path": "developer:python:code:example:accounts.md" }, { "name": "assets", "description": "Asset Operations", "path": "developer:python:code:example:assets.md" }, { "name": "transactions", "description": "Transaction Handling", "path": "developer:python:code:example:transactions.md" } ] }, "storage": { "name": "Storage Examples", "path": "python/examples/storage", "documents": [ { "name": "box_storage", "description": "Box Storage Example", "path": "developer:python:code:example:box_storage.md" }, { "name": "global_storage", "description": "Global Storage Example", "path": "developer:python:code:example:global_storage.md" }, { "name": "local_storage", "description": "Local Storage Example", "path": "developer:python:code:example:local_storage.md" }, { "name": "scratch_storage", "description": "Scratch Storage Example", "path": "developer:python:code:example:scratch_storage.md" }, { "name": "struct_in_box", "description": "Struct in Box Example", "path": "developer:python:code:example:struct_in_box.md" } ] } } }, "testing": { "name": "Testing Guide", "description": "Comprehensive testing documentation for Python", "path": "python/testing", "subcategories": { "fundamentals": { "name": "Testing Fundamentals", "path": "python/testing/fundamentals", "documents": [ { "name": "index", "description": "Testing Guide Overview", "path": "puya:python:testing:docs:testing-guide:index.md" }, { "name": "concepts", "description": "Testing Concepts", "path": "puya:python:testing:docs:testing-guide:concepts.md" }, { "name": "coverage", "description": "Test Coverage", "path": "puya:python:testing:docs:coverage.md" }, { "name": "examples", "description": "Testing Examples", "path": "puya:python:testing:docs:examples.md" } ] } } } } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:transaction-composer.md: -------------------------------------------------------------------------------- ```markdown # Transaction composer The `TransactionComposer` class allows you to easily compose one or more compliant Algorand transactions and execute and/or simulate them. It's the core of how the [`AlgorandClient`](./algorand-client.md) class composes and sends transactions. To get an instance of `TransactionComposer` you can either get it from an [app client](./app-client.md), from an [`AlgorandClient`](./algorand-client.md), or by new-ing up via the constructor. ```typescript const composerFromAlgorand = algorand.newGroup() const composerFromAppClient = appClient.algorand.newGroup() const composerFromConstructor = new TransactionComposer({ algod, /* Return the algosdk.TransactionSigner for this address*/ getSigner: (address: string) => signer, }) const composerFromConstructorWithOptionalParams = new TransactionComposer({ algod, /* Return the algosdk.TransactionSigner for this address*/ getSigner: (address: string) => signer, getSuggestedParams: () => algod.getTransactionParams().do(), defaultValidityWindow: 1000, appManager: new AppManager(algod), }) ``` ## Constructing a transaction To construct a transaction you need to add it to the composer, passing in the relevant [params object](../code/modules/types_composer.md#type-aliases) for that transaction. Params are normal JavaScript objects and all of them extend the [common call parameters](./algorand-client.md#transaction-parameters). The [methods to construct a transaction](../code/classes/types_composer.default.md#methods) are all named `add{TransactionType}` and return an instance of the composer so they can be chained together fluently to construct a transaction group. For example: ```typescript const result = algorand .newGroup() .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) .addAppCallMethodCall({ sender: 'SENDER', appId: 123n, method: abiMethod, args: [1, 2, 3], }) ``` ## Simulating a transaction Transactions can be simulated using the simulate endpoint in algod, which enables evaluating the transaction on the network without it actually being commited to a block. This is a powerful feature, which has a number of options which are detailed in the [simulate API docs](https://developer.algorand.org/docs/rest-apis/algod/#post-v2transactionssimulate). For example you can simulate a transaction group like below: ```typescript const result = await algorand .newGroup() .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) .addAppCallMethodCall({ sender: 'SENDER', appId: 123n, method: abiMethod, args: [1, 2, 3], }) .simulate() ``` The above will execute a simulate request asserting that all transactions in the group are correctly signed. ### Simulate without signing There are situations where you may not be able to (or want to) sign the transactions when executing simulate. In these instances you should set `skipSignatures: true` which automatically builds empty transaction signers and sets both `fix-signers` and `allow-empty-signatures` to `true` when sending the algod API call. For example: ```typescript const result = await algorand .newGroup() .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (100).microAlgo() }) .addAppCallMethodCall({ sender: 'SENDER', appId: 123n, method: abiMethod, args: [1, 2, 3], }) .simulate({ skipSignatures: true, }) ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionSignatureMultisig # Class: TransactionSignatureMultisig [indexerModels](../modules/indexerModels.md).TransactionSignatureMultisig (msig) structure holding multiple subsignatures. Definition: crypto/multisig.go : MultisigSig ## Hierarchy - `default` ↳ **`TransactionSignatureMultisig`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionSignatureMultisig.md#constructor) ### Properties - [attribute\_map](indexerModels.TransactionSignatureMultisig.md#attribute_map) - [subsignature](indexerModels.TransactionSignatureMultisig.md#subsignature) - [threshold](indexerModels.TransactionSignatureMultisig.md#threshold) - [version](indexerModels.TransactionSignatureMultisig.md#version) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionSignatureMultisig.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionSignatureMultisig.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionSignatureMultisig**(`«destructured»`) Creates a new `TransactionSignatureMultisig` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `subsignature?` | [`TransactionSignatureMultisigSubsignature`](indexerModels.TransactionSignatureMultisigSubsignature.md)[] | | › `threshold?` | `number` \| `bigint` | | › `version?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:5551 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### subsignature • `Optional` **subsignature**: [`TransactionSignatureMultisigSubsignature`](indexerModels.TransactionSignatureMultisigSubsignature.md)[] (subsig) holds pairs of public key and signatures. #### Defined in client/v2/indexer/models/types.ts:5533 ___ ### threshold • `Optional` **threshold**: `number` \| `bigint` (thr) #### Defined in client/v2/indexer/models/types.ts:5538 ___ ### version • `Optional` **version**: `number` \| `bigint` (v) #### Defined in client/v2/indexer/models/types.ts:5543 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `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. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) #### Defined in client/v2/indexer/models/types.ts:5573 ```