@algorandfoundation/algokit-utils 9.2.0-beta.7 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/_virtual/rolldown_runtime.js +34 -0
- package/_virtual/rolldown_runtime.mjs +13 -0
- package/abi/index.d.ts +6 -0
- package/abi/index.js +40 -0
- package/abi/index.mjs +5 -0
- package/algod-client/index.d.ts +76 -0
- package/algod-client/index.js +17 -0
- package/algod-client/index.mjs +8 -0
- package/amount.d.ts +40 -35
- package/amount.js +36 -36
- package/amount.js.map +1 -1
- package/amount.mjs +36 -34
- package/amount.mjs.map +1 -1
- package/config.d.ts +7 -2
- package/config.js +5 -5
- package/config.js.map +1 -1
- package/config.mjs +4 -2
- package/config.mjs.map +1 -1
- package/index.d.ts +10 -18
- package/index.js +41 -143
- package/index.mjs +11 -29
- package/indexer-client/index.d.ts +78 -0
- package/indexer-client/index.js +17 -0
- package/indexer-client/index.mjs +8 -0
- package/indexer-lookup.d.ts +20 -27
- package/indexer-lookup.js +98 -128
- package/indexer-lookup.js.map +1 -1
- package/indexer-lookup.mjs +93 -123
- package/indexer-lookup.mjs.map +1 -1
- package/kmd-client/index.d.ts +54 -0
- package/kmd-client/index.js +17 -0
- package/kmd-client/index.mjs +8 -0
- package/package.json +43 -5
- package/packages/abi/src/abi-method.d.ts +117 -0
- package/packages/abi/src/abi-method.js +209 -0
- package/packages/abi/src/abi-method.js.map +1 -0
- package/packages/abi/src/abi-method.mjs +196 -0
- package/packages/abi/src/abi-method.mjs.map +1 -0
- package/packages/abi/src/abi-type.d.ts +253 -0
- package/packages/abi/src/abi-type.js +685 -0
- package/packages/abi/src/abi-type.js.map +1 -0
- package/packages/abi/src/abi-type.mjs +674 -0
- package/packages/abi/src/abi-type.mjs.map +1 -0
- package/packages/abi/src/abi-value.d.ts +11 -0
- package/packages/abi/src/arc28-event.d.ts +20 -0
- package/packages/abi/src/arc56-contract.d.ts +389 -0
- package/packages/abi/src/arc56-contract.js +196 -0
- package/packages/abi/src/arc56-contract.js.map +1 -0
- package/packages/abi/src/arc56-contract.mjs +185 -0
- package/packages/abi/src/arc56-contract.mjs.map +1 -0
- package/packages/abi/src/bigint.js +32 -0
- package/packages/abi/src/bigint.js.map +1 -0
- package/packages/abi/src/bigint.mjs +30 -0
- package/packages/abi/src/bigint.mjs.map +1 -0
- package/packages/algo25/src/english.js +2057 -0
- package/packages/algo25/src/english.js.map +1 -0
- package/packages/algo25/src/english.mjs +2056 -0
- package/packages/algo25/src/english.mjs.map +1 -0
- package/packages/algo25/src/index.js +75 -0
- package/packages/algo25/src/index.js.map +1 -0
- package/packages/algo25/src/index.mjs +75 -0
- package/packages/algo25/src/index.mjs.map +1 -0
- package/packages/algod_client/src/apis/api-service.d.ts +184 -0
- package/packages/algod_client/src/apis/api-service.js +627 -0
- package/packages/algod_client/src/apis/api-service.js.map +1 -0
- package/packages/algod_client/src/apis/api-service.mjs +627 -0
- package/packages/algod_client/src/apis/api-service.mjs.map +1 -0
- package/packages/algod_client/src/client.d.ts +10 -0
- package/packages/algod_client/src/client.js +13 -0
- package/packages/algod_client/src/client.js.map +1 -0
- package/packages/algod_client/src/client.mjs +13 -0
- package/packages/algod_client/src/client.mjs.map +1 -0
- package/packages/algod_client/src/core/api-error.d.ts +10 -0
- package/packages/algod_client/src/core/api-error.js +17 -0
- package/packages/algod_client/src/core/api-error.js.map +1 -0
- package/packages/algod_client/src/core/api-error.mjs +16 -0
- package/packages/algod_client/src/core/api-error.mjs.map +1 -0
- package/packages/algod_client/src/core/base-http-request.d.ts +25 -0
- package/packages/algod_client/src/core/base-http-request.js +16 -0
- package/packages/algod_client/src/core/base-http-request.js.map +1 -0
- package/packages/algod_client/src/core/base-http-request.mjs +14 -0
- package/packages/algod_client/src/core/base-http-request.mjs.map +1 -0
- package/packages/algod_client/src/core/client-config.d.ts +17 -0
- package/packages/algod_client/src/core/fetch-http-request.d.ts +10 -0
- package/packages/algod_client/src/core/fetch-http-request.js +85 -0
- package/packages/algod_client/src/core/fetch-http-request.js.map +1 -0
- package/packages/algod_client/src/core/fetch-http-request.mjs +85 -0
- package/packages/algod_client/src/core/fetch-http-request.mjs.map +1 -0
- package/packages/algod_client/src/core/model-runtime.d.ts +10 -0
- package/packages/algod_client/src/core/model-runtime.js +25 -0
- package/packages/algod_client/src/core/model-runtime.js.map +1 -0
- package/packages/algod_client/src/core/model-runtime.mjs +22 -0
- package/packages/algod_client/src/core/model-runtime.mjs.map +1 -0
- package/packages/algod_client/src/core/request.js +62 -0
- package/packages/algod_client/src/core/request.js.map +1 -0
- package/packages/algod_client/src/core/request.mjs +62 -0
- package/packages/algod_client/src/core/request.mjs.map +1 -0
- package/packages/algod_client/src/models/account-application-response.d.ts +15 -0
- package/packages/algod_client/src/models/account-application-response.js +34 -0
- package/packages/algod_client/src/models/account-application-response.js.map +1 -0
- package/packages/algod_client/src/models/account-application-response.mjs +34 -0
- package/packages/algod_client/src/models/account-application-response.mjs.map +1 -0
- package/packages/algod_client/src/models/account-asset-response.d.ts +15 -0
- package/packages/algod_client/src/models/account-asset-response.js +34 -0
- package/packages/algod_client/src/models/account-asset-response.js.map +1 -0
- package/packages/algod_client/src/models/account-asset-response.mjs +34 -0
- package/packages/algod_client/src/models/account-asset-response.mjs.map +1 -0
- package/packages/algod_client/src/models/account-participation.d.ts +33 -0
- package/packages/algod_client/src/models/account-participation.js +50 -0
- package/packages/algod_client/src/models/account-participation.js.map +1 -0
- package/packages/algod_client/src/models/account-participation.mjs +50 -0
- package/packages/algod_client/src/models/account-participation.mjs.map +1 -0
- package/packages/algod_client/src/models/account-state-delta.d.ts +15 -0
- package/packages/algod_client/src/models/account-state-delta.js +24 -0
- package/packages/algod_client/src/models/account-state-delta.js.map +1 -0
- package/packages/algod_client/src/models/account-state-delta.mjs +24 -0
- package/packages/algod_client/src/models/account-state-delta.mjs.map +1 -0
- package/packages/algod_client/src/models/account.d.ts +139 -0
- package/packages/algod_client/src/models/account.js +187 -0
- package/packages/algod_client/src/models/account.js.map +1 -0
- package/packages/algod_client/src/models/account.mjs +187 -0
- package/packages/algod_client/src/models/account.mjs.map +1 -0
- package/packages/algod_client/src/models/application-initial-states.d.ts +22 -0
- package/packages/algod_client/src/models/application-initial-states.js +40 -0
- package/packages/algod_client/src/models/application-initial-states.js.map +1 -0
- package/packages/algod_client/src/models/application-initial-states.mjs +40 -0
- package/packages/algod_client/src/models/application-initial-states.mjs.map +1 -0
- package/packages/algod_client/src/models/application-kv-storage.d.ts +21 -0
- package/packages/algod_client/src/models/application-kv-storage.js +25 -0
- package/packages/algod_client/src/models/application-kv-storage.js.map +1 -0
- package/packages/algod_client/src/models/application-kv-storage.mjs +25 -0
- package/packages/algod_client/src/models/application-kv-storage.mjs.map +1 -0
- package/packages/algod_client/src/models/application-local-reference.d.ts +20 -0
- package/packages/algod_client/src/models/application-local-reference.js +23 -0
- package/packages/algod_client/src/models/application-local-reference.js.map +1 -0
- package/packages/algod_client/src/models/application-local-reference.mjs +23 -0
- package/packages/algod_client/src/models/application-local-reference.mjs.map +1 -0
- package/packages/algod_client/src/models/application-local-state.d.ts +19 -0
- package/packages/algod_client/src/models/application-local-state.js +35 -0
- package/packages/algod_client/src/models/application-local-state.js.map +1 -0
- package/packages/algod_client/src/models/application-local-state.mjs +35 -0
- package/packages/algod_client/src/models/application-local-state.mjs.map +1 -0
- package/packages/algod_client/src/models/application-params.d.ts +37 -0
- package/packages/algod_client/src/models/application-params.js +67 -0
- package/packages/algod_client/src/models/application-params.js.map +1 -0
- package/packages/algod_client/src/models/application-params.mjs +67 -0
- package/packages/algod_client/src/models/application-params.mjs.map +1 -0
- package/packages/algod_client/src/models/application-state-operation.d.ts +30 -0
- package/packages/algod_client/src/models/application-state-operation.js +47 -0
- package/packages/algod_client/src/models/application-state-operation.js.map +1 -0
- package/packages/algod_client/src/models/application-state-operation.mjs +47 -0
- package/packages/algod_client/src/models/application-state-operation.mjs.map +1 -0
- package/packages/algod_client/src/models/application-state-schema.d.ts +17 -0
- package/packages/algod_client/src/models/application-state-schema.js +22 -0
- package/packages/algod_client/src/models/application-state-schema.js.map +1 -0
- package/packages/algod_client/src/models/application-state-schema.mjs +22 -0
- package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -0
- package/packages/algod_client/src/models/application.d.ts +17 -0
- package/packages/algod_client/src/models/application.js +24 -0
- package/packages/algod_client/src/models/application.js.map +1 -0
- package/packages/algod_client/src/models/application.mjs +24 -0
- package/packages/algod_client/src/models/application.mjs.map +1 -0
- package/packages/algod_client/src/models/asset-holding-reference.d.ts +20 -0
- package/packages/algod_client/src/models/asset-holding-reference.js +23 -0
- package/packages/algod_client/src/models/asset-holding-reference.js.map +1 -0
- package/packages/algod_client/src/models/asset-holding-reference.mjs +23 -0
- package/packages/algod_client/src/models/asset-holding-reference.mjs.map +1 -0
- package/packages/algod_client/src/models/asset-holding.d.ts +24 -0
- package/packages/algod_client/src/models/asset-holding.js +32 -0
- package/packages/algod_client/src/models/asset-holding.js.map +1 -0
- package/packages/algod_client/src/models/asset-holding.mjs +32 -0
- package/packages/algod_client/src/models/asset-holding.mjs.map +1 -0
- package/packages/algod_client/src/models/asset-params.d.ts +74 -0
- package/packages/algod_client/src/models/asset-params.js +107 -0
- package/packages/algod_client/src/models/asset-params.js.map +1 -0
- package/packages/algod_client/src/models/asset-params.mjs +107 -0
- package/packages/algod_client/src/models/asset-params.mjs.map +1 -0
- package/packages/algod_client/src/models/asset.d.ts +17 -0
- package/packages/algod_client/src/models/asset.js +24 -0
- package/packages/algod_client/src/models/asset.js.map +1 -0
- package/packages/algod_client/src/models/asset.mjs +24 -0
- package/packages/algod_client/src/models/asset.mjs.map +1 -0
- package/packages/algod_client/src/models/avm-key-value.d.ts +14 -0
- package/packages/algod_client/src/models/avm-key-value.js +24 -0
- package/packages/algod_client/src/models/avm-key-value.js.map +1 -0
- package/packages/algod_client/src/models/avm-key-value.mjs +24 -0
- package/packages/algod_client/src/models/avm-key-value.mjs.map +1 -0
- package/packages/algod_client/src/models/avm-value.d.ts +21 -0
- package/packages/algod_client/src/models/avm-value.js +33 -0
- package/packages/algod_client/src/models/avm-value.js.map +1 -0
- package/packages/algod_client/src/models/avm-value.mjs +33 -0
- package/packages/algod_client/src/models/avm-value.mjs.map +1 -0
- package/packages/algod_client/src/models/block-hash-response.d.ts +10 -0
- package/packages/algod_client/src/models/block-hash-response.js +17 -0
- package/packages/algod_client/src/models/block-hash-response.js.map +1 -0
- package/packages/algod_client/src/models/block-hash-response.mjs +17 -0
- package/packages/algod_client/src/models/block-hash-response.mjs.map +1 -0
- package/packages/algod_client/src/models/block-response.d.ts +12 -0
- package/packages/algod_client/src/models/block-response.js +25 -0
- package/packages/algod_client/src/models/block-response.js.map +1 -0
- package/packages/algod_client/src/models/block-response.mjs +25 -0
- package/packages/algod_client/src/models/block-response.mjs.map +1 -0
- package/packages/algod_client/src/models/block-txids-response.d.ts +10 -0
- package/packages/algod_client/src/models/block-txids-response.js +17 -0
- package/packages/algod_client/src/models/block-txids-response.js.map +1 -0
- package/packages/algod_client/src/models/block-txids-response.mjs +17 -0
- package/packages/algod_client/src/models/block-txids-response.mjs.map +1 -0
- package/packages/algod_client/src/models/block.d.ts +146 -0
- package/packages/algod_client/src/models/block.js +415 -0
- package/packages/algod_client/src/models/block.js.map +1 -0
- package/packages/algod_client/src/models/block.mjs +415 -0
- package/packages/algod_client/src/models/block.mjs.map +1 -0
- package/packages/algod_client/src/models/box-descriptor.d.ts +13 -0
- package/packages/algod_client/src/models/box-descriptor.js +17 -0
- package/packages/algod_client/src/models/box-descriptor.js.map +1 -0
- package/packages/algod_client/src/models/box-descriptor.mjs +17 -0
- package/packages/algod_client/src/models/box-descriptor.mjs.map +1 -0
- package/packages/algod_client/src/models/box-reference.d.ts +17 -0
- package/packages/algod_client/src/models/box-reference.js +23 -0
- package/packages/algod_client/src/models/box-reference.js.map +1 -0
- package/packages/algod_client/src/models/box-reference.mjs +23 -0
- package/packages/algod_client/src/models/box-reference.mjs.map +1 -0
- package/packages/algod_client/src/models/box.d.ts +21 -0
- package/packages/algod_client/src/models/box.js +32 -0
- package/packages/algod_client/src/models/box.js.map +1 -0
- package/packages/algod_client/src/models/box.mjs +32 -0
- package/packages/algod_client/src/models/box.mjs.map +1 -0
- package/packages/algod_client/src/models/boxes-response.d.ts +9 -0
- package/packages/algod_client/src/models/boxes-response.js +19 -0
- package/packages/algod_client/src/models/boxes-response.js.map +1 -0
- package/packages/algod_client/src/models/boxes-response.mjs +19 -0
- package/packages/algod_client/src/models/boxes-response.mjs.map +1 -0
- package/packages/algod_client/src/models/build-version.d.ts +12 -0
- package/packages/algod_client/src/models/build-version.js +50 -0
- package/packages/algod_client/src/models/build-version.js.map +1 -0
- package/packages/algod_client/src/models/build-version.mjs +50 -0
- package/packages/algod_client/src/models/build-version.mjs.map +1 -0
- package/packages/algod_client/src/models/compile-response.d.ts +17 -0
- package/packages/algod_client/src/models/compile-response.js +33 -0
- package/packages/algod_client/src/models/compile-response.js.map +1 -0
- package/packages/algod_client/src/models/compile-response.mjs +33 -0
- package/packages/algod_client/src/models/compile-response.mjs.map +1 -0
- package/packages/algod_client/src/models/disassemble-response.d.ts +10 -0
- package/packages/algod_client/src/models/disassemble-response.js +17 -0
- package/packages/algod_client/src/models/disassemble-response.js.map +1 -0
- package/packages/algod_client/src/models/disassemble-response.mjs +17 -0
- package/packages/algod_client/src/models/disassemble-response.mjs.map +1 -0
- package/packages/algod_client/src/models/eval-delta-key-value.d.ts +14 -0
- package/packages/algod_client/src/models/eval-delta-key-value.js +24 -0
- package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -0
- package/packages/algod_client/src/models/eval-delta-key-value.mjs +24 -0
- package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -0
- package/packages/algod_client/src/models/eval-delta.d.ts +21 -0
- package/packages/algod_client/src/models/eval-delta.js +33 -0
- package/packages/algod_client/src/models/eval-delta.js.map +1 -0
- package/packages/algod_client/src/models/eval-delta.mjs +33 -0
- package/packages/algod_client/src/models/eval-delta.mjs.map +1 -0
- package/packages/algod_client/src/models/genesis-allocation.d.ts +18 -0
- package/packages/algod_client/src/models/genesis-allocation.js +88 -0
- package/packages/algod_client/src/models/genesis-allocation.js.map +1 -0
- package/packages/algod_client/src/models/genesis-allocation.mjs +88 -0
- package/packages/algod_client/src/models/genesis-allocation.mjs.map +1 -0
- package/packages/algod_client/src/models/genesis.d.ts +17 -0
- package/packages/algod_client/src/models/genesis.js +72 -0
- package/packages/algod_client/src/models/genesis.js.map +1 -0
- package/packages/algod_client/src/models/genesis.mjs +72 -0
- package/packages/algod_client/src/models/genesis.mjs.map +1 -0
- package/packages/algod_client/src/models/get-block-time-stamp-offset-response.d.ts +10 -0
- package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js +17 -0
- package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js.map +1 -0
- package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs +17 -0
- package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs.map +1 -0
- package/packages/algod_client/src/models/get-sync-round-response.d.ts +10 -0
- package/packages/algod_client/src/models/get-sync-round-response.js +17 -0
- package/packages/algod_client/src/models/get-sync-round-response.js.map +1 -0
- package/packages/algod_client/src/models/get-sync-round-response.mjs +17 -0
- package/packages/algod_client/src/models/get-sync-round-response.mjs.map +1 -0
- package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.d.ts +14 -0
- package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js +24 -0
- package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js.map +1 -0
- package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs +24 -0
- package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs.map +1 -0
- package/packages/algod_client/src/models/ledger-state-delta.d.ts +351 -0
- package/packages/algod_client/src/models/ledger-state-delta.js +688 -0
- package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -0
- package/packages/algod_client/src/models/ledger-state-delta.mjs +688 -0
- package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -0
- package/packages/algod_client/src/models/light-block-header-proof.d.ts +21 -0
- package/packages/algod_client/src/models/light-block-header-proof.js +32 -0
- package/packages/algod_client/src/models/light-block-header-proof.js.map +1 -0
- package/packages/algod_client/src/models/light-block-header-proof.mjs +32 -0
- package/packages/algod_client/src/models/light-block-header-proof.mjs.map +1 -0
- package/packages/algod_client/src/models/node-status-response.d.ts +113 -0
- package/packages/algod_client/src/models/node-status-response.js +172 -0
- package/packages/algod_client/src/models/node-status-response.js.map +1 -0
- package/packages/algod_client/src/models/node-status-response.mjs +172 -0
- package/packages/algod_client/src/models/node-status-response.mjs.map +1 -0
- package/packages/algod_client/src/models/pending-transaction-response.d.ts +67 -0
- package/packages/algod_client/src/models/pending-transaction-response.js +104 -0
- package/packages/algod_client/src/models/pending-transaction-response.js.map +1 -0
- package/packages/algod_client/src/models/pending-transaction-response.mjs +104 -0
- package/packages/algod_client/src/models/pending-transaction-response.mjs.map +1 -0
- package/packages/algod_client/src/models/pending-transactions-response.d.ts +20 -0
- package/packages/algod_client/src/models/pending-transactions-response.js +25 -0
- package/packages/algod_client/src/models/pending-transactions-response.js.map +1 -0
- package/packages/algod_client/src/models/pending-transactions-response.mjs +25 -0
- package/packages/algod_client/src/models/pending-transactions-response.mjs.map +1 -0
- package/packages/algod_client/src/models/post-transactions-response.d.ts +10 -0
- package/packages/algod_client/src/models/post-transactions-response.js +17 -0
- package/packages/algod_client/src/models/post-transactions-response.js.map +1 -0
- package/packages/algod_client/src/models/post-transactions-response.mjs +17 -0
- package/packages/algod_client/src/models/post-transactions-response.mjs.map +1 -0
- package/packages/algod_client/src/models/scratch-change.d.ts +17 -0
- package/packages/algod_client/src/models/scratch-change.js +24 -0
- package/packages/algod_client/src/models/scratch-change.js.map +1 -0
- package/packages/algod_client/src/models/scratch-change.mjs +24 -0
- package/packages/algod_client/src/models/scratch-change.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-initial-states.d.ts +16 -0
- package/packages/algod_client/src/models/simulate-initial-states.js +19 -0
- package/packages/algod_client/src/models/simulate-initial-states.js.map +1 -0
- package/packages/algod_client/src/models/simulate-initial-states.mjs +19 -0
- package/packages/algod_client/src/models/simulate-initial-states.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-request-transaction-group.d.ts +16 -0
- package/packages/algod_client/src/models/simulate-request-transaction-group.js +19 -0
- package/packages/algod_client/src/models/simulate-request-transaction-group.js.map +1 -0
- package/packages/algod_client/src/models/simulate-request-transaction-group.mjs +19 -0
- package/packages/algod_client/src/models/simulate-request-transaction-group.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-request.d.ts +42 -0
- package/packages/algod_client/src/models/simulate-request.js +67 -0
- package/packages/algod_client/src/models/simulate-request.js.map +1 -0
- package/packages/algod_client/src/models/simulate-request.mjs +67 -0
- package/packages/algod_client/src/models/simulate-request.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-response.d.ts +26 -0
- package/packages/algod_client/src/models/simulate-response.js +56 -0
- package/packages/algod_client/src/models/simulate-response.js.map +1 -0
- package/packages/algod_client/src/models/simulate-response.mjs +56 -0
- package/packages/algod_client/src/models/simulate-response.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-trace-config.d.ts +25 -0
- package/packages/algod_client/src/models/simulate-trace-config.js +37 -0
- package/packages/algod_client/src/models/simulate-trace-config.js.map +1 -0
- package/packages/algod_client/src/models/simulate-trace-config.mjs +37 -0
- package/packages/algod_client/src/models/simulate-trace-config.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-transaction-group-result.d.ts +34 -0
- package/packages/algod_client/src/models/simulate-transaction-group-result.js +54 -0
- package/packages/algod_client/src/models/simulate-transaction-group-result.js.map +1 -0
- package/packages/algod_client/src/models/simulate-transaction-group-result.mjs +54 -0
- package/packages/algod_client/src/models/simulate-transaction-group-result.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-transaction-result.d.ts +30 -0
- package/packages/algod_client/src/models/simulate-transaction-result.js +54 -0
- package/packages/algod_client/src/models/simulate-transaction-result.js.map +1 -0
- package/packages/algod_client/src/models/simulate-transaction-result.mjs +54 -0
- package/packages/algod_client/src/models/simulate-transaction-result.mjs.map +1 -0
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +43 -0
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +60 -0
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -0
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +60 -0
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -0
- package/packages/algod_client/src/models/simulation-eval-overrides.d.ts +33 -0
- package/packages/algod_client/src/models/simulation-eval-overrides.js +50 -0
- package/packages/algod_client/src/models/simulation-eval-overrides.js.map +1 -0
- package/packages/algod_client/src/models/simulation-eval-overrides.mjs +50 -0
- package/packages/algod_client/src/models/simulation-eval-overrides.mjs.map +1 -0
- package/packages/algod_client/src/models/simulation-opcode-trace-unit.d.ts +38 -0
- package/packages/algod_client/src/models/simulation-opcode-trace-unit.js +54 -0
- package/packages/algod_client/src/models/simulation-opcode-trace-unit.js.map +1 -0
- package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs +54 -0
- package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs.map +1 -0
- package/packages/algod_client/src/models/simulation-transaction-exec-trace.d.ts +48 -0
- package/packages/algod_client/src/models/simulation-transaction-exec-trace.js +72 -0
- package/packages/algod_client/src/models/simulation-transaction-exec-trace.js.map +1 -0
- package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs +72 -0
- package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs.map +1 -0
- package/packages/algod_client/src/models/source-map.d.ts +22 -0
- package/packages/algod_client/src/models/source-map.js +39 -0
- package/packages/algod_client/src/models/source-map.js.map +1 -0
- package/packages/algod_client/src/models/source-map.mjs +39 -0
- package/packages/algod_client/src/models/source-map.mjs.map +1 -0
- package/packages/algod_client/src/models/state-delta.d.ts +11 -0
- package/packages/algod_client/src/models/state-delta.js +14 -0
- package/packages/algod_client/src/models/state-delta.js.map +1 -0
- package/packages/algod_client/src/models/state-delta.mjs +14 -0
- package/packages/algod_client/src/models/state-delta.mjs.map +1 -0
- package/packages/algod_client/src/models/state-proof-message.d.ts +29 -0
- package/packages/algod_client/src/models/state-proof-message.js +44 -0
- package/packages/algod_client/src/models/state-proof-message.js.map +1 -0
- package/packages/algod_client/src/models/state-proof-message.mjs +44 -0
- package/packages/algod_client/src/models/state-proof-message.mjs.map +1 -0
- package/packages/algod_client/src/models/state-proof.d.ts +17 -0
- package/packages/algod_client/src/models/state-proof.js +24 -0
- package/packages/algod_client/src/models/state-proof.js.map +1 -0
- package/packages/algod_client/src/models/state-proof.mjs +24 -0
- package/packages/algod_client/src/models/state-proof.mjs.map +1 -0
- package/packages/algod_client/src/models/suggested-params.d.ts +14 -0
- package/packages/algod_client/src/models/supply-response.d.ts +21 -0
- package/packages/algod_client/src/models/supply-response.js +31 -0
- package/packages/algod_client/src/models/supply-response.js.map +1 -0
- package/packages/algod_client/src/models/supply-response.mjs +31 -0
- package/packages/algod_client/src/models/supply-response.mjs.map +1 -0
- package/packages/algod_client/src/models/teal-key-value-store.d.ts +11 -0
- package/packages/algod_client/src/models/teal-key-value-store.js +14 -0
- package/packages/algod_client/src/models/teal-key-value-store.js.map +1 -0
- package/packages/algod_client/src/models/teal-key-value-store.mjs +14 -0
- package/packages/algod_client/src/models/teal-key-value-store.mjs.map +1 -0
- package/packages/algod_client/src/models/teal-key-value.d.ts +14 -0
- package/packages/algod_client/src/models/teal-key-value.js +24 -0
- package/packages/algod_client/src/models/teal-key-value.js.map +1 -0
- package/packages/algod_client/src/models/teal-key-value.mjs +24 -0
- package/packages/algod_client/src/models/teal-key-value.mjs.map +1 -0
- package/packages/algod_client/src/models/teal-value.d.ts +21 -0
- package/packages/algod_client/src/models/teal-value.js +33 -0
- package/packages/algod_client/src/models/teal-value.js.map +1 -0
- package/packages/algod_client/src/models/teal-value.mjs +33 -0
- package/packages/algod_client/src/models/teal-value.mjs.map +1 -0
- package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.d.ts +9 -0
- package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js +19 -0
- package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js.map +1 -0
- package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs +19 -0
- package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs.map +1 -0
- package/packages/algod_client/src/models/transaction-parameters-response.d.ts +39 -0
- package/packages/algod_client/src/models/transaction-parameters-response.js +51 -0
- package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -0
- package/packages/algod_client/src/models/transaction-parameters-response.mjs +51 -0
- package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -0
- package/packages/algod_client/src/models/transaction-proof.d.ts +31 -0
- package/packages/algod_client/src/models/transaction-proof.js +45 -0
- package/packages/algod_client/src/models/transaction-proof.js.map +1 -0
- package/packages/algod_client/src/models/transaction-proof.mjs +45 -0
- package/packages/algod_client/src/models/transaction-proof.mjs.map +1 -0
- package/packages/algod_client/src/models/version.d.ts +16 -0
- package/packages/algod_client/src/models/version.js +41 -0
- package/packages/algod_client/src/models/version.js.map +1 -0
- package/packages/algod_client/src/models/version.mjs +41 -0
- package/packages/algod_client/src/models/version.mjs.map +1 -0
- package/packages/common/src/address.d.ts +71 -0
- package/packages/common/src/address.js +156 -0
- package/packages/common/src/address.js.map +1 -0
- package/packages/common/src/address.mjs +144 -0
- package/packages/common/src/address.mjs.map +1 -0
- package/packages/common/src/array.js +21 -0
- package/packages/common/src/array.js.map +1 -0
- package/packages/common/src/array.mjs +19 -0
- package/packages/common/src/array.mjs.map +1 -0
- package/packages/common/src/codecs/codec.d.ts +71 -0
- package/packages/common/src/codecs/codec.js +87 -0
- package/packages/common/src/codecs/codec.js.map +1 -0
- package/packages/common/src/codecs/codec.mjs +86 -0
- package/packages/common/src/codecs/codec.mjs.map +1 -0
- package/packages/common/src/codecs/composite/array.js +45 -0
- package/packages/common/src/codecs/composite/array.js.map +1 -0
- package/packages/common/src/codecs/composite/array.mjs +40 -0
- package/packages/common/src/codecs/composite/array.mjs.map +1 -0
- package/packages/common/src/codecs/composite/map.js +65 -0
- package/packages/common/src/codecs/composite/map.js.map +1 -0
- package/packages/common/src/codecs/composite/map.mjs +65 -0
- package/packages/common/src/codecs/composite/map.mjs.map +1 -0
- package/packages/common/src/codecs/composite/record.js +41 -0
- package/packages/common/src/codecs/composite/record.js.map +1 -0
- package/packages/common/src/codecs/composite/record.mjs +39 -0
- package/packages/common/src/codecs/composite/record.mjs.map +1 -0
- package/packages/common/src/codecs/models/array-model.js +36 -0
- package/packages/common/src/codecs/models/array-model.js.map +1 -0
- package/packages/common/src/codecs/models/array-model.mjs +36 -0
- package/packages/common/src/codecs/models/array-model.mjs.map +1 -0
- package/packages/common/src/codecs/models/object-model.d.ts +22 -0
- package/packages/common/src/codecs/models/object-model.js +87 -0
- package/packages/common/src/codecs/models/object-model.js.map +1 -0
- package/packages/common/src/codecs/models/object-model.mjs +87 -0
- package/packages/common/src/codecs/models/object-model.mjs.map +1 -0
- package/packages/common/src/codecs/models/primitive-model.js +36 -0
- package/packages/common/src/codecs/models/primitive-model.js.map +1 -0
- package/packages/common/src/codecs/models/primitive-model.mjs +36 -0
- package/packages/common/src/codecs/models/primitive-model.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/address.js +33 -0
- package/packages/common/src/codecs/primitives/address.js.map +1 -0
- package/packages/common/src/codecs/primitives/address.mjs +31 -0
- package/packages/common/src/codecs/primitives/address.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/bigint.js +18 -0
- package/packages/common/src/codecs/primitives/bigint.js.map +1 -0
- package/packages/common/src/codecs/primitives/bigint.mjs +18 -0
- package/packages/common/src/codecs/primitives/bigint.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/boolean.js +13 -0
- package/packages/common/src/codecs/primitives/boolean.js.map +1 -0
- package/packages/common/src/codecs/primitives/boolean.mjs +13 -0
- package/packages/common/src/codecs/primitives/boolean.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/bytes.js +28 -0
- package/packages/common/src/codecs/primitives/bytes.js.map +1 -0
- package/packages/common/src/codecs/primitives/bytes.mjs +26 -0
- package/packages/common/src/codecs/primitives/bytes.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/fixed-bytes.js +37 -0
- package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -0
- package/packages/common/src/codecs/primitives/fixed-bytes.mjs +33 -0
- package/packages/common/src/codecs/primitives/fixed-bytes.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/number.js +16 -0
- package/packages/common/src/codecs/primitives/number.js.map +1 -0
- package/packages/common/src/codecs/primitives/number.mjs +16 -0
- package/packages/common/src/codecs/primitives/number.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/string.js +17 -0
- package/packages/common/src/codecs/primitives/string.js.map +1 -0
- package/packages/common/src/codecs/primitives/string.mjs +17 -0
- package/packages/common/src/codecs/primitives/string.mjs.map +1 -0
- package/packages/common/src/codecs/primitives/unknown.js +58 -0
- package/packages/common/src/codecs/primitives/unknown.js.map +1 -0
- package/packages/common/src/codecs/primitives/unknown.mjs +58 -0
- package/packages/common/src/codecs/primitives/unknown.mjs.map +1 -0
- package/packages/common/src/codecs/types.d.ts +27 -0
- package/packages/common/src/codecs/wire.d.ts +15 -0
- package/packages/common/src/codecs/wire.js +24 -0
- package/packages/common/src/codecs/wire.js.map +1 -0
- package/packages/common/src/codecs/wire.mjs +21 -0
- package/packages/common/src/codecs/wire.mjs.map +1 -0
- package/packages/common/src/constants.js +63 -0
- package/packages/common/src/constants.js.map +1 -0
- package/packages/common/src/constants.mjs +34 -0
- package/packages/common/src/constants.mjs.map +1 -0
- package/packages/common/src/crypto.js +13 -0
- package/packages/common/src/crypto.js.map +1 -0
- package/packages/common/src/crypto.mjs +11 -0
- package/packages/common/src/crypto.mjs.map +1 -0
- package/packages/common/src/expand.d.ts +9 -0
- package/packages/common/src/json.js +38 -0
- package/packages/common/src/json.js.map +1 -0
- package/packages/common/src/json.mjs +35 -0
- package/packages/common/src/json.mjs.map +1 -0
- package/packages/common/src/logger.d.ts +12 -0
- package/packages/common/src/msgpack.js +26 -0
- package/packages/common/src/msgpack.js.map +1 -0
- package/packages/common/src/msgpack.mjs +23 -0
- package/packages/common/src/msgpack.mjs.map +1 -0
- package/packages/indexer_client/src/apis/api-service.d.ts +251 -0
- package/packages/indexer_client/src/apis/api-service.js +482 -0
- package/packages/indexer_client/src/apis/api-service.js.map +1 -0
- package/packages/indexer_client/src/apis/api-service.mjs +482 -0
- package/packages/indexer_client/src/apis/api-service.mjs.map +1 -0
- package/packages/indexer_client/src/client.d.ts +10 -0
- package/packages/indexer_client/src/client.js +13 -0
- package/packages/indexer_client/src/client.js.map +1 -0
- package/packages/indexer_client/src/client.mjs +13 -0
- package/packages/indexer_client/src/client.mjs.map +1 -0
- package/packages/indexer_client/src/core/api-error.d.ts +10 -0
- package/packages/indexer_client/src/core/api-error.js +17 -0
- package/packages/indexer_client/src/core/api-error.js.map +1 -0
- package/packages/indexer_client/src/core/api-error.mjs +16 -0
- package/packages/indexer_client/src/core/api-error.mjs.map +1 -0
- package/packages/indexer_client/src/core/base-http-request.d.ts +25 -0
- package/packages/indexer_client/src/core/base-http-request.js +16 -0
- package/packages/indexer_client/src/core/base-http-request.js.map +1 -0
- package/packages/indexer_client/src/core/base-http-request.mjs +14 -0
- package/packages/indexer_client/src/core/base-http-request.mjs.map +1 -0
- package/packages/indexer_client/src/core/client-config.d.ts +17 -0
- package/packages/indexer_client/src/core/fetch-http-request.d.ts +10 -0
- package/packages/indexer_client/src/core/fetch-http-request.js +85 -0
- package/packages/indexer_client/src/core/fetch-http-request.js.map +1 -0
- package/packages/indexer_client/src/core/fetch-http-request.mjs +85 -0
- package/packages/indexer_client/src/core/fetch-http-request.mjs.map +1 -0
- package/packages/indexer_client/src/core/model-runtime.d.ts +10 -0
- package/packages/indexer_client/src/core/model-runtime.js +25 -0
- package/packages/indexer_client/src/core/model-runtime.js.map +1 -0
- package/packages/indexer_client/src/core/model-runtime.mjs +22 -0
- package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -0
- package/packages/indexer_client/src/core/request.js +62 -0
- package/packages/indexer_client/src/core/request.js.map +1 -0
- package/packages/indexer_client/src/core/request.mjs +62 -0
- package/packages/indexer_client/src/core/request.mjs.map +1 -0
- package/packages/indexer_client/src/models/account-participation.d.ts +33 -0
- package/packages/indexer_client/src/models/account-participation.js +50 -0
- package/packages/indexer_client/src/models/account-participation.js.map +1 -0
- package/packages/indexer_client/src/models/account-participation.mjs +50 -0
- package/packages/indexer_client/src/models/account-participation.mjs.map +1 -0
- package/packages/indexer_client/src/models/account-response.d.ts +13 -0
- package/packages/indexer_client/src/models/account-response.js +24 -0
- package/packages/indexer_client/src/models/account-response.js.map +1 -0
- package/packages/indexer_client/src/models/account-response.mjs +24 -0
- package/packages/indexer_client/src/models/account-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/account-state-delta.d.ts +14 -0
- package/packages/indexer_client/src/models/account-state-delta.js +24 -0
- package/packages/indexer_client/src/models/account-state-delta.js.map +1 -0
- package/packages/indexer_client/src/models/account-state-delta.mjs +24 -0
- package/packages/indexer_client/src/models/account-state-delta.mjs.map +1 -0
- package/packages/indexer_client/src/models/account.d.ts +152 -0
- package/packages/indexer_client/src/models/account.js +205 -0
- package/packages/indexer_client/src/models/account.js.map +1 -0
- package/packages/indexer_client/src/models/account.mjs +205 -0
- package/packages/indexer_client/src/models/account.mjs.map +1 -0
- package/packages/indexer_client/src/models/accounts-response.d.ts +17 -0
- package/packages/indexer_client/src/models/accounts-response.js +35 -0
- package/packages/indexer_client/src/models/accounts-response.js.map +1 -0
- package/packages/indexer_client/src/models/accounts-response.mjs +35 -0
- package/packages/indexer_client/src/models/accounts-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-local-state.d.ts +31 -0
- package/packages/indexer_client/src/models/application-local-state.js +54 -0
- package/packages/indexer_client/src/models/application-local-state.js.map +1 -0
- package/packages/indexer_client/src/models/application-local-state.mjs +54 -0
- package/packages/indexer_client/src/models/application-local-state.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-local-states-response.d.ts +17 -0
- package/packages/indexer_client/src/models/application-local-states-response.js +35 -0
- package/packages/indexer_client/src/models/application-local-states-response.js.map +1 -0
- package/packages/indexer_client/src/models/application-local-states-response.mjs +35 -0
- package/packages/indexer_client/src/models/application-local-states-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-log-data.d.ts +17 -0
- package/packages/indexer_client/src/models/application-log-data.js +23 -0
- package/packages/indexer_client/src/models/application-log-data.js.map +1 -0
- package/packages/indexer_client/src/models/application-log-data.mjs +23 -0
- package/packages/indexer_client/src/models/application-log-data.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-logs-response.d.ts +21 -0
- package/packages/indexer_client/src/models/application-logs-response.js +41 -0
- package/packages/indexer_client/src/models/application-logs-response.js.map +1 -0
- package/packages/indexer_client/src/models/application-logs-response.mjs +41 -0
- package/packages/indexer_client/src/models/application-logs-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-params.d.ts +37 -0
- package/packages/indexer_client/src/models/application-params.js +67 -0
- package/packages/indexer_client/src/models/application-params.js.map +1 -0
- package/packages/indexer_client/src/models/application-params.mjs +67 -0
- package/packages/indexer_client/src/models/application-params.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-response.d.ts +13 -0
- package/packages/indexer_client/src/models/application-response.js +24 -0
- package/packages/indexer_client/src/models/application-response.js.map +1 -0
- package/packages/indexer_client/src/models/application-response.mjs +24 -0
- package/packages/indexer_client/src/models/application-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/application-state-schema.d.ts +17 -0
- package/packages/indexer_client/src/models/application-state-schema.js +22 -0
- package/packages/indexer_client/src/models/application-state-schema.js.map +1 -0
- package/packages/indexer_client/src/models/application-state-schema.mjs +22 -0
- package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -0
- package/packages/indexer_client/src/models/application.d.ts +29 -0
- package/packages/indexer_client/src/models/application.js +46 -0
- package/packages/indexer_client/src/models/application.js.map +1 -0
- package/packages/indexer_client/src/models/application.mjs +46 -0
- package/packages/indexer_client/src/models/application.mjs.map +1 -0
- package/packages/indexer_client/src/models/applications-response.d.ts +17 -0
- package/packages/indexer_client/src/models/applications-response.js +35 -0
- package/packages/indexer_client/src/models/applications-response.js.map +1 -0
- package/packages/indexer_client/src/models/applications-response.mjs +35 -0
- package/packages/indexer_client/src/models/applications-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset-balances-response.d.ts +17 -0
- package/packages/indexer_client/src/models/asset-balances-response.js +35 -0
- package/packages/indexer_client/src/models/asset-balances-response.js.map +1 -0
- package/packages/indexer_client/src/models/asset-balances-response.mjs +35 -0
- package/packages/indexer_client/src/models/asset-balances-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset-holding.d.ts +36 -0
- package/packages/indexer_client/src/models/asset-holding.js +50 -0
- package/packages/indexer_client/src/models/asset-holding.js.map +1 -0
- package/packages/indexer_client/src/models/asset-holding.mjs +50 -0
- package/packages/indexer_client/src/models/asset-holding.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset-holdings-response.d.ts +17 -0
- package/packages/indexer_client/src/models/asset-holdings-response.js +35 -0
- package/packages/indexer_client/src/models/asset-holdings-response.js.map +1 -0
- package/packages/indexer_client/src/models/asset-holdings-response.mjs +35 -0
- package/packages/indexer_client/src/models/asset-holdings-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset-params.d.ts +74 -0
- package/packages/indexer_client/src/models/asset-params.js +107 -0
- package/packages/indexer_client/src/models/asset-params.js.map +1 -0
- package/packages/indexer_client/src/models/asset-params.mjs +107 -0
- package/packages/indexer_client/src/models/asset-params.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset-response.d.ts +13 -0
- package/packages/indexer_client/src/models/asset-response.js +24 -0
- package/packages/indexer_client/src/models/asset-response.js.map +1 -0
- package/packages/indexer_client/src/models/asset-response.mjs +24 -0
- package/packages/indexer_client/src/models/asset-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/asset.d.ts +29 -0
- package/packages/indexer_client/src/models/asset.js +46 -0
- package/packages/indexer_client/src/models/asset.js.map +1 -0
- package/packages/indexer_client/src/models/asset.mjs +46 -0
- package/packages/indexer_client/src/models/asset.mjs.map +1 -0
- package/packages/indexer_client/src/models/assets-response.d.ts +17 -0
- package/packages/indexer_client/src/models/assets-response.js +35 -0
- package/packages/indexer_client/src/models/assets-response.js.map +1 -0
- package/packages/indexer_client/src/models/assets-response.mjs +35 -0
- package/packages/indexer_client/src/models/assets-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/block-headers-response.d.ts +17 -0
- package/packages/indexer_client/src/models/block-headers-response.js +35 -0
- package/packages/indexer_client/src/models/block-headers-response.js.map +1 -0
- package/packages/indexer_client/src/models/block-headers-response.mjs +35 -0
- package/packages/indexer_client/src/models/block-headers-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/block-rewards.d.ts +33 -0
- package/packages/indexer_client/src/models/block-rewards.js +50 -0
- package/packages/indexer_client/src/models/block-rewards.js.map +1 -0
- package/packages/indexer_client/src/models/block-rewards.mjs +50 -0
- package/packages/indexer_client/src/models/block-rewards.mjs.map +1 -0
- package/packages/indexer_client/src/models/block-upgrade-state.d.ts +29 -0
- package/packages/indexer_client/src/models/block-upgrade-state.js +45 -0
- package/packages/indexer_client/src/models/block-upgrade-state.js.map +1 -0
- package/packages/indexer_client/src/models/block-upgrade-state.mjs +45 -0
- package/packages/indexer_client/src/models/block-upgrade-state.mjs.map +1 -0
- package/packages/indexer_client/src/models/block-upgrade-vote.d.ts +21 -0
- package/packages/indexer_client/src/models/block-upgrade-vote.js +33 -0
- package/packages/indexer_client/src/models/block-upgrade-vote.js.map +1 -0
- package/packages/indexer_client/src/models/block-upgrade-vote.mjs +33 -0
- package/packages/indexer_client/src/models/block-upgrade-vote.mjs.map +1 -0
- package/packages/indexer_client/src/models/block.d.ts +95 -0
- package/packages/indexer_client/src/models/block.js +151 -0
- package/packages/indexer_client/src/models/block.js.map +1 -0
- package/packages/indexer_client/src/models/block.mjs +151 -0
- package/packages/indexer_client/src/models/block.mjs.map +1 -0
- package/packages/indexer_client/src/models/box-descriptor.d.ts +13 -0
- package/packages/indexer_client/src/models/box-descriptor.js +17 -0
- package/packages/indexer_client/src/models/box-descriptor.js.map +1 -0
- package/packages/indexer_client/src/models/box-descriptor.mjs +17 -0
- package/packages/indexer_client/src/models/box-descriptor.mjs.map +1 -0
- package/packages/indexer_client/src/models/box-reference.d.ts +17 -0
- package/packages/indexer_client/src/models/box-reference.js +23 -0
- package/packages/indexer_client/src/models/box-reference.js.map +1 -0
- package/packages/indexer_client/src/models/box-reference.mjs +23 -0
- package/packages/indexer_client/src/models/box-reference.mjs.map +1 -0
- package/packages/indexer_client/src/models/box.d.ts +21 -0
- package/packages/indexer_client/src/models/box.js +32 -0
- package/packages/indexer_client/src/models/box.js.map +1 -0
- package/packages/indexer_client/src/models/box.mjs +32 -0
- package/packages/indexer_client/src/models/box.mjs.map +1 -0
- package/packages/indexer_client/src/models/boxes-response.d.ts +17 -0
- package/packages/indexer_client/src/models/boxes-response.js +35 -0
- package/packages/indexer_client/src/models/boxes-response.js.map +1 -0
- package/packages/indexer_client/src/models/boxes-response.mjs +35 -0
- package/packages/indexer_client/src/models/boxes-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +14 -0
- package/packages/indexer_client/src/models/eval-delta-key-value.js +24 -0
- package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -0
- package/packages/indexer_client/src/models/eval-delta-key-value.mjs +24 -0
- package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -0
- package/packages/indexer_client/src/models/eval-delta.d.ts +21 -0
- package/packages/indexer_client/src/models/eval-delta.js +33 -0
- package/packages/indexer_client/src/models/eval-delta.js.map +1 -0
- package/packages/indexer_client/src/models/eval-delta.mjs +33 -0
- package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -0
- package/packages/indexer_client/src/models/hash-factory.d.ts +10 -0
- package/packages/indexer_client/src/models/hash-factory.js +17 -0
- package/packages/indexer_client/src/models/hash-factory.js.map +1 -0
- package/packages/indexer_client/src/models/hash-factory.mjs +17 -0
- package/packages/indexer_client/src/models/hash-factory.mjs.map +1 -0
- package/packages/indexer_client/src/models/hb-proof-fields.d.ts +29 -0
- package/packages/indexer_client/src/models/hb-proof-fields.js +43 -0
- package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -0
- package/packages/indexer_client/src/models/hb-proof-fields.mjs +43 -0
- package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -0
- package/packages/indexer_client/src/models/health-check.d.ts +19 -0
- package/packages/indexer_client/src/models/health-check.js +60 -0
- package/packages/indexer_client/src/models/health-check.js.map +1 -0
- package/packages/indexer_client/src/models/health-check.mjs +60 -0
- package/packages/indexer_client/src/models/health-check.mjs.map +1 -0
- package/packages/indexer_client/src/models/holding-ref.d.ts +20 -0
- package/packages/indexer_client/src/models/holding-ref.js +23 -0
- package/packages/indexer_client/src/models/holding-ref.js.map +1 -0
- package/packages/indexer_client/src/models/holding-ref.mjs +23 -0
- package/packages/indexer_client/src/models/holding-ref.mjs.map +1 -0
- package/packages/indexer_client/src/models/indexer-state-proof-message.d.ts +26 -0
- package/packages/indexer_client/src/models/indexer-state-proof-message.js +44 -0
- package/packages/indexer_client/src/models/indexer-state-proof-message.js.map +1 -0
- package/packages/indexer_client/src/models/indexer-state-proof-message.mjs +44 -0
- package/packages/indexer_client/src/models/indexer-state-proof-message.mjs.map +1 -0
- package/packages/indexer_client/src/models/locals-ref.d.ts +20 -0
- package/packages/indexer_client/src/models/locals-ref.js +23 -0
- package/packages/indexer_client/src/models/locals-ref.js.map +1 -0
- package/packages/indexer_client/src/models/locals-ref.mjs +23 -0
- package/packages/indexer_client/src/models/locals-ref.mjs.map +1 -0
- package/packages/indexer_client/src/models/merkle-array-proof.d.ts +17 -0
- package/packages/indexer_client/src/models/merkle-array-proof.js +34 -0
- package/packages/indexer_client/src/models/merkle-array-proof.js.map +1 -0
- package/packages/indexer_client/src/models/merkle-array-proof.mjs +34 -0
- package/packages/indexer_client/src/models/merkle-array-proof.mjs.map +1 -0
- package/packages/indexer_client/src/models/mini-asset-holding.d.ts +24 -0
- package/packages/indexer_client/src/models/mini-asset-holding.js +51 -0
- package/packages/indexer_client/src/models/mini-asset-holding.js.map +1 -0
- package/packages/indexer_client/src/models/mini-asset-holding.mjs +51 -0
- package/packages/indexer_client/src/models/mini-asset-holding.mjs.map +1 -0
- package/packages/indexer_client/src/models/on-completion.d.ts +16 -0
- package/packages/indexer_client/src/models/on-completion.js +12 -0
- package/packages/indexer_client/src/models/on-completion.js.map +1 -0
- package/packages/indexer_client/src/models/on-completion.mjs +12 -0
- package/packages/indexer_client/src/models/on-completion.mjs.map +1 -0
- package/packages/indexer_client/src/models/participation-updates.d.ts +17 -0
- package/packages/indexer_client/src/models/participation-updates.js +22 -0
- package/packages/indexer_client/src/models/participation-updates.js.map +1 -0
- package/packages/indexer_client/src/models/participation-updates.mjs +22 -0
- package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -0
- package/packages/indexer_client/src/models/resource-ref.d.ts +32 -0
- package/packages/indexer_client/src/models/resource-ref.js +54 -0
- package/packages/indexer_client/src/models/resource-ref.js.map +1 -0
- package/packages/indexer_client/src/models/resource-ref.mjs +54 -0
- package/packages/indexer_client/src/models/resource-ref.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-delta.d.ts +11 -0
- package/packages/indexer_client/src/models/state-delta.js +14 -0
- package/packages/indexer_client/src/models/state-delta.js.map +1 -0
- package/packages/indexer_client/src/models/state-delta.mjs +14 -0
- package/packages/indexer_client/src/models/state-delta.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-fields.d.ts +38 -0
- package/packages/indexer_client/src/models/state-proof-fields.js +61 -0
- package/packages/indexer_client/src/models/state-proof-fields.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-fields.mjs +61 -0
- package/packages/indexer_client/src/models/state-proof-fields.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-participant.d.ts +13 -0
- package/packages/indexer_client/src/models/state-proof-participant.js +24 -0
- package/packages/indexer_client/src/models/state-proof-participant.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-participant.mjs +24 -0
- package/packages/indexer_client/src/models/state-proof-participant.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-reveal.d.ts +15 -0
- package/packages/indexer_client/src/models/state-proof-reveal.js +34 -0
- package/packages/indexer_client/src/models/state-proof-reveal.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-reveal.mjs +34 -0
- package/packages/indexer_client/src/models/state-proof-reveal.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-sig-slot.d.ts +13 -0
- package/packages/indexer_client/src/models/state-proof-sig-slot.js +24 -0
- package/packages/indexer_client/src/models/state-proof-sig-slot.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-sig-slot.mjs +24 -0
- package/packages/indexer_client/src/models/state-proof-sig-slot.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-signature.d.ts +15 -0
- package/packages/indexer_client/src/models/state-proof-signature.js +40 -0
- package/packages/indexer_client/src/models/state-proof-signature.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-signature.mjs +40 -0
- package/packages/indexer_client/src/models/state-proof-signature.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-tracking.d.ts +22 -0
- package/packages/indexer_client/src/models/state-proof-tracking.js +39 -0
- package/packages/indexer_client/src/models/state-proof-tracking.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-tracking.mjs +39 -0
- package/packages/indexer_client/src/models/state-proof-tracking.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-proof-verifier.d.ts +14 -0
- package/packages/indexer_client/src/models/state-proof-verifier.js +23 -0
- package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -0
- package/packages/indexer_client/src/models/state-proof-verifier.mjs +23 -0
- package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -0
- package/packages/indexer_client/src/models/state-schema.d.ts +17 -0
- package/packages/indexer_client/src/models/state-schema.js +22 -0
- package/packages/indexer_client/src/models/state-schema.js.map +1 -0
- package/packages/indexer_client/src/models/state-schema.mjs +22 -0
- package/packages/indexer_client/src/models/state-schema.mjs.map +1 -0
- package/packages/indexer_client/src/models/teal-key-value-store.d.ts +11 -0
- package/packages/indexer_client/src/models/teal-key-value-store.js +14 -0
- package/packages/indexer_client/src/models/teal-key-value-store.js.map +1 -0
- package/packages/indexer_client/src/models/teal-key-value-store.mjs +14 -0
- package/packages/indexer_client/src/models/teal-key-value-store.mjs.map +1 -0
- package/packages/indexer_client/src/models/teal-key-value.d.ts +14 -0
- package/packages/indexer_client/src/models/teal-key-value.js +24 -0
- package/packages/indexer_client/src/models/teal-key-value.js.map +1 -0
- package/packages/indexer_client/src/models/teal-key-value.mjs +24 -0
- package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -0
- package/packages/indexer_client/src/models/teal-value.d.ts +21 -0
- package/packages/indexer_client/src/models/teal-value.js +33 -0
- package/packages/indexer_client/src/models/teal-value.js.map +1 -0
- package/packages/indexer_client/src/models/teal-value.mjs +33 -0
- package/packages/indexer_client/src/models/teal-value.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-application.d.ts +66 -0
- package/packages/indexer_client/src/models/transaction-application.js +106 -0
- package/packages/indexer_client/src/models/transaction-application.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-application.mjs +106 -0
- package/packages/indexer_client/src/models/transaction-application.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-config.d.ts +24 -0
- package/packages/indexer_client/src/models/transaction-asset-config.js +24 -0
- package/packages/indexer_client/src/models/transaction-asset-config.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-config.mjs +24 -0
- package/packages/indexer_client/src/models/transaction-asset-config.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-freeze.d.ts +24 -0
- package/packages/indexer_client/src/models/transaction-asset-freeze.js +33 -0
- package/packages/indexer_client/src/models/transaction-asset-freeze.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-freeze.mjs +33 -0
- package/packages/indexer_client/src/models/transaction-asset-freeze.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-transfer.d.ts +36 -0
- package/packages/indexer_client/src/models/transaction-asset-transfer.js +50 -0
- package/packages/indexer_client/src/models/transaction-asset-transfer.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-asset-transfer.mjs +50 -0
- package/packages/indexer_client/src/models/transaction-asset-transfer.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-heartbeat.d.ts +32 -0
- package/packages/indexer_client/src/models/transaction-heartbeat.js +47 -0
- package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-heartbeat.mjs +47 -0
- package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-keyreg.d.ts +40 -0
- package/packages/indexer_client/src/models/transaction-keyreg.js +57 -0
- package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-keyreg.mjs +57 -0
- package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-payment.d.ts +28 -0
- package/packages/indexer_client/src/models/transaction-payment.js +38 -0
- package/packages/indexer_client/src/models/transaction-payment.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-payment.mjs +38 -0
- package/packages/indexer_client/src/models/transaction-payment.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-response.d.ts +13 -0
- package/packages/indexer_client/src/models/transaction-response.js +24 -0
- package/packages/indexer_client/src/models/transaction-response.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-response.mjs +24 -0
- package/packages/indexer_client/src/models/transaction-response.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-logicsig.d.ts +29 -0
- package/packages/indexer_client/src/models/transaction-signature-logicsig.js +46 -0
- package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +46 -0
- package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.d.ts +14 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +22 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +22 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig.d.ts +27 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig.js +34 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig.mjs +34 -0
- package/packages/indexer_client/src/models/transaction-signature-multisig.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature.d.ts +19 -0
- package/packages/indexer_client/src/models/transaction-signature.js +34 -0
- package/packages/indexer_client/src/models/transaction-signature.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-signature.mjs +34 -0
- package/packages/indexer_client/src/models/transaction-signature.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction-state-proof.d.ts +22 -0
- package/packages/indexer_client/src/models/transaction-state-proof.js +34 -0
- package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -0
- package/packages/indexer_client/src/models/transaction-state-proof.mjs +34 -0
- package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -0
- package/packages/indexer_client/src/models/transaction.d.ts +147 -0
- package/packages/indexer_client/src/models/transaction.js +241 -0
- package/packages/indexer_client/src/models/transaction.js.map +1 -0
- package/packages/indexer_client/src/models/transaction.mjs +241 -0
- package/packages/indexer_client/src/models/transaction.mjs.map +1 -0
- package/packages/indexer_client/src/models/transactions-response.d.ts +17 -0
- package/packages/indexer_client/src/models/transactions-response.js +35 -0
- package/packages/indexer_client/src/models/transactions-response.js.map +1 -0
- package/packages/indexer_client/src/models/transactions-response.mjs +35 -0
- package/packages/indexer_client/src/models/transactions-response.mjs.map +1 -0
- package/packages/kmd_client/src/apis/api-service.d.ts +152 -0
- package/packages/kmd_client/src/apis/api-service.js +517 -0
- package/packages/kmd_client/src/apis/api-service.js.map +1 -0
- package/packages/kmd_client/src/apis/api-service.mjs +517 -0
- package/packages/kmd_client/src/apis/api-service.mjs.map +1 -0
- package/packages/kmd_client/src/client.d.ts +10 -0
- package/packages/kmd_client/src/client.js +13 -0
- package/packages/kmd_client/src/client.js.map +1 -0
- package/packages/kmd_client/src/client.mjs +13 -0
- package/packages/kmd_client/src/client.mjs.map +1 -0
- package/packages/kmd_client/src/core/api-error.d.ts +10 -0
- package/packages/kmd_client/src/core/api-error.js +17 -0
- package/packages/kmd_client/src/core/api-error.js.map +1 -0
- package/packages/kmd_client/src/core/api-error.mjs +16 -0
- package/packages/kmd_client/src/core/api-error.mjs.map +1 -0
- package/packages/kmd_client/src/core/base-http-request.d.ts +25 -0
- package/packages/kmd_client/src/core/base-http-request.js +16 -0
- package/packages/kmd_client/src/core/base-http-request.js.map +1 -0
- package/packages/kmd_client/src/core/base-http-request.mjs +14 -0
- package/packages/kmd_client/src/core/base-http-request.mjs.map +1 -0
- package/packages/kmd_client/src/core/client-config.d.ts +17 -0
- package/packages/kmd_client/src/core/fetch-http-request.d.ts +10 -0
- package/packages/kmd_client/src/core/fetch-http-request.js +85 -0
- package/packages/kmd_client/src/core/fetch-http-request.js.map +1 -0
- package/packages/kmd_client/src/core/fetch-http-request.mjs +85 -0
- package/packages/kmd_client/src/core/fetch-http-request.mjs.map +1 -0
- package/packages/kmd_client/src/core/model-runtime.d.ts +10 -0
- package/packages/kmd_client/src/core/model-runtime.js +25 -0
- package/packages/kmd_client/src/core/model-runtime.js.map +1 -0
- package/packages/kmd_client/src/core/model-runtime.mjs +22 -0
- package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -0
- package/packages/kmd_client/src/core/request.js +62 -0
- package/packages/kmd_client/src/core/request.js.map +1 -0
- package/packages/kmd_client/src/core/request.mjs +62 -0
- package/packages/kmd_client/src/core/request.mjs.map +1 -0
- package/packages/kmd_client/src/models/create-wallet-request.d.ts +13 -0
- package/packages/kmd_client/src/models/create-wallet-request.js +38 -0
- package/packages/kmd_client/src/models/create-wallet-request.js.map +1 -0
- package/packages/kmd_client/src/models/create-wallet-request.mjs +38 -0
- package/packages/kmd_client/src/models/create-wallet-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/create-wallet-response.d.ts +13 -0
- package/packages/kmd_client/src/models/create-wallet-response.js +18 -0
- package/packages/kmd_client/src/models/create-wallet-response.js.map +1 -0
- package/packages/kmd_client/src/models/create-wallet-response.mjs +18 -0
- package/packages/kmd_client/src/models/create-wallet-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/delete-key-request.d.ts +15 -0
- package/packages/kmd_client/src/models/delete-key-request.js +32 -0
- package/packages/kmd_client/src/models/delete-key-request.js.map +1 -0
- package/packages/kmd_client/src/models/delete-key-request.mjs +32 -0
- package/packages/kmd_client/src/models/delete-key-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/delete-multisig-request.d.ts +15 -0
- package/packages/kmd_client/src/models/delete-multisig-request.js +32 -0
- package/packages/kmd_client/src/models/delete-multisig-request.js.map +1 -0
- package/packages/kmd_client/src/models/delete-multisig-request.mjs +32 -0
- package/packages/kmd_client/src/models/delete-multisig-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-key-request.d.ts +15 -0
- package/packages/kmd_client/src/models/export-key-request.js +32 -0
- package/packages/kmd_client/src/models/export-key-request.js.map +1 -0
- package/packages/kmd_client/src/models/export-key-request.mjs +32 -0
- package/packages/kmd_client/src/models/export-key-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-key-response.d.ts +10 -0
- package/packages/kmd_client/src/models/export-key-response.js +17 -0
- package/packages/kmd_client/src/models/export-key-response.js.map +1 -0
- package/packages/kmd_client/src/models/export-key-response.mjs +17 -0
- package/packages/kmd_client/src/models/export-key-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-master-key-request.d.ts +11 -0
- package/packages/kmd_client/src/models/export-master-key-request.js +22 -0
- package/packages/kmd_client/src/models/export-master-key-request.js.map +1 -0
- package/packages/kmd_client/src/models/export-master-key-request.mjs +22 -0
- package/packages/kmd_client/src/models/export-master-key-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-master-key-response.d.ts +10 -0
- package/packages/kmd_client/src/models/export-master-key-response.js +17 -0
- package/packages/kmd_client/src/models/export-master-key-response.js.map +1 -0
- package/packages/kmd_client/src/models/export-master-key-response.mjs +17 -0
- package/packages/kmd_client/src/models/export-master-key-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-multisig-request.d.ts +14 -0
- package/packages/kmd_client/src/models/export-multisig-request.js +23 -0
- package/packages/kmd_client/src/models/export-multisig-request.js.map +1 -0
- package/packages/kmd_client/src/models/export-multisig-request.mjs +23 -0
- package/packages/kmd_client/src/models/export-multisig-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/export-multisig-response.d.ts +12 -0
- package/packages/kmd_client/src/models/export-multisig-response.js +32 -0
- package/packages/kmd_client/src/models/export-multisig-response.js.map +1 -0
- package/packages/kmd_client/src/models/export-multisig-response.mjs +32 -0
- package/packages/kmd_client/src/models/export-multisig-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/generate-key-request.d.ts +10 -0
- package/packages/kmd_client/src/models/generate-key-request.js +17 -0
- package/packages/kmd_client/src/models/generate-key-request.js.map +1 -0
- package/packages/kmd_client/src/models/generate-key-request.mjs +17 -0
- package/packages/kmd_client/src/models/generate-key-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/generate-key-response.d.ts +13 -0
- package/packages/kmd_client/src/models/generate-key-response.js +17 -0
- package/packages/kmd_client/src/models/generate-key-response.js.map +1 -0
- package/packages/kmd_client/src/models/generate-key-response.mjs +17 -0
- package/packages/kmd_client/src/models/generate-key-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/import-key-request.d.ts +11 -0
- package/packages/kmd_client/src/models/import-key-request.js +23 -0
- package/packages/kmd_client/src/models/import-key-request.js.map +1 -0
- package/packages/kmd_client/src/models/import-key-request.mjs +23 -0
- package/packages/kmd_client/src/models/import-key-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/import-key-response.d.ts +13 -0
- package/packages/kmd_client/src/models/import-key-response.js +17 -0
- package/packages/kmd_client/src/models/import-key-response.js.map +1 -0
- package/packages/kmd_client/src/models/import-key-response.mjs +17 -0
- package/packages/kmd_client/src/models/import-key-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/import-multisig-request.d.ts +13 -0
- package/packages/kmd_client/src/models/import-multisig-request.js +39 -0
- package/packages/kmd_client/src/models/import-multisig-request.js.map +1 -0
- package/packages/kmd_client/src/models/import-multisig-request.mjs +39 -0
- package/packages/kmd_client/src/models/import-multisig-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/import-multisig-response.d.ts +13 -0
- package/packages/kmd_client/src/models/import-multisig-response.js +17 -0
- package/packages/kmd_client/src/models/import-multisig-response.js.map +1 -0
- package/packages/kmd_client/src/models/import-multisig-response.mjs +17 -0
- package/packages/kmd_client/src/models/import-multisig-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-request.d.ts +11 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-request.js +22 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-request.js.map +1 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs +22 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-response.d.ts +10 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-response.js +17 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-response.js.map +1 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs +17 -0
- package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/list-keys-request.d.ts +10 -0
- package/packages/kmd_client/src/models/list-keys-request.js +17 -0
- package/packages/kmd_client/src/models/list-keys-request.js.map +1 -0
- package/packages/kmd_client/src/models/list-keys-request.mjs +17 -0
- package/packages/kmd_client/src/models/list-keys-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/list-keys-response.d.ts +13 -0
- package/packages/kmd_client/src/models/list-keys-response.js +17 -0
- package/packages/kmd_client/src/models/list-keys-response.js.map +1 -0
- package/packages/kmd_client/src/models/list-keys-response.mjs +17 -0
- package/packages/kmd_client/src/models/list-keys-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/list-multisig-request.d.ts +10 -0
- package/packages/kmd_client/src/models/list-multisig-request.js +17 -0
- package/packages/kmd_client/src/models/list-multisig-request.js.map +1 -0
- package/packages/kmd_client/src/models/list-multisig-request.mjs +17 -0
- package/packages/kmd_client/src/models/list-multisig-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/list-multisig-response.d.ts +13 -0
- package/packages/kmd_client/src/models/list-multisig-response.js +17 -0
- package/packages/kmd_client/src/models/list-multisig-response.js.map +1 -0
- package/packages/kmd_client/src/models/list-multisig-response.mjs +17 -0
- package/packages/kmd_client/src/models/list-multisig-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/list-wallets-response.d.ts +13 -0
- package/packages/kmd_client/src/models/list-wallets-response.js +19 -0
- package/packages/kmd_client/src/models/list-wallets-response.js.map +1 -0
- package/packages/kmd_client/src/models/list-wallets-response.mjs +19 -0
- package/packages/kmd_client/src/models/list-wallets-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/multisig-sig.d.ts +15 -0
- package/packages/kmd_client/src/models/multisig-sig.js +34 -0
- package/packages/kmd_client/src/models/multisig-sig.js.map +1 -0
- package/packages/kmd_client/src/models/multisig-sig.mjs +34 -0
- package/packages/kmd_client/src/models/multisig-sig.mjs.map +1 -0
- package/packages/kmd_client/src/models/multisig-subsig.d.ts +12 -0
- package/packages/kmd_client/src/models/multisig-subsig.js +22 -0
- package/packages/kmd_client/src/models/multisig-subsig.js.map +1 -0
- package/packages/kmd_client/src/models/multisig-subsig.mjs +22 -0
- package/packages/kmd_client/src/models/multisig-subsig.mjs.map +1 -0
- package/packages/kmd_client/src/models/release-wallet-handle-token-request.d.ts +10 -0
- package/packages/kmd_client/src/models/release-wallet-handle-token-request.js +17 -0
- package/packages/kmd_client/src/models/release-wallet-handle-token-request.js.map +1 -0
- package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs +17 -0
- package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/rename-wallet-request.d.ts +12 -0
- package/packages/kmd_client/src/models/rename-wallet-request.js +31 -0
- package/packages/kmd_client/src/models/rename-wallet-request.js.map +1 -0
- package/packages/kmd_client/src/models/rename-wallet-request.mjs +31 -0
- package/packages/kmd_client/src/models/rename-wallet-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/rename-wallet-response.d.ts +13 -0
- package/packages/kmd_client/src/models/rename-wallet-response.js +18 -0
- package/packages/kmd_client/src/models/rename-wallet-response.js.map +1 -0
- package/packages/kmd_client/src/models/rename-wallet-response.mjs +18 -0
- package/packages/kmd_client/src/models/rename-wallet-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-request.d.ts +10 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js +17 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js.map +1 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs +17 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-response.d.ts +13 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js +18 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js.map +1 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs +18 -0
- package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-multisig-request.d.ts +11 -0
- package/packages/kmd_client/src/models/sign-multisig-response.d.ts +10 -0
- package/packages/kmd_client/src/models/sign-multisig-response.js +17 -0
- package/packages/kmd_client/src/models/sign-multisig-response.js.map +1 -0
- package/packages/kmd_client/src/models/sign-multisig-response.mjs +17 -0
- package/packages/kmd_client/src/models/sign-multisig-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-multisig-txn-request.d.ts +18 -0
- package/packages/kmd_client/src/models/sign-multisig-txn-request.js +52 -0
- package/packages/kmd_client/src/models/sign-multisig-txn-request.js.map +1 -0
- package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs +52 -0
- package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-program-multisig-request.d.ts +20 -0
- package/packages/kmd_client/src/models/sign-program-multisig-request.js +60 -0
- package/packages/kmd_client/src/models/sign-program-multisig-request.js.map +1 -0
- package/packages/kmd_client/src/models/sign-program-multisig-request.mjs +60 -0
- package/packages/kmd_client/src/models/sign-program-multisig-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-program-multisig-response.d.ts +10 -0
- package/packages/kmd_client/src/models/sign-program-multisig-response.js +17 -0
- package/packages/kmd_client/src/models/sign-program-multisig-response.js.map +1 -0
- package/packages/kmd_client/src/models/sign-program-multisig-response.mjs +17 -0
- package/packages/kmd_client/src/models/sign-program-multisig-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-program-request.d.ts +16 -0
- package/packages/kmd_client/src/models/sign-program-request.js +39 -0
- package/packages/kmd_client/src/models/sign-program-request.js.map +1 -0
- package/packages/kmd_client/src/models/sign-program-request.mjs +39 -0
- package/packages/kmd_client/src/models/sign-program-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-program-response.d.ts +10 -0
- package/packages/kmd_client/src/models/sign-program-response.js +17 -0
- package/packages/kmd_client/src/models/sign-program-response.js.map +1 -0
- package/packages/kmd_client/src/models/sign-program-response.mjs +17 -0
- package/packages/kmd_client/src/models/sign-program-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-transaction-request.d.ts +11 -0
- package/packages/kmd_client/src/models/sign-transaction-response.d.ts +10 -0
- package/packages/kmd_client/src/models/sign-transaction-response.js +17 -0
- package/packages/kmd_client/src/models/sign-transaction-response.js.map +1 -0
- package/packages/kmd_client/src/models/sign-transaction-response.mjs +17 -0
- package/packages/kmd_client/src/models/sign-transaction-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/sign-txn-request.d.ts +19 -0
- package/packages/kmd_client/src/models/sign-txn-request.js +38 -0
- package/packages/kmd_client/src/models/sign-txn-request.js.map +1 -0
- package/packages/kmd_client/src/models/sign-txn-request.mjs +38 -0
- package/packages/kmd_client/src/models/sign-txn-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/tx-type.d.ts +8 -0
- package/packages/kmd_client/src/models/tx-type.js +12 -0
- package/packages/kmd_client/src/models/tx-type.js.map +1 -0
- package/packages/kmd_client/src/models/tx-type.mjs +12 -0
- package/packages/kmd_client/src/models/tx-type.mjs.map +1 -0
- package/packages/kmd_client/src/models/versions-response.d.ts +11 -0
- package/packages/kmd_client/src/models/versions-response.js +17 -0
- package/packages/kmd_client/src/models/versions-response.js.map +1 -0
- package/packages/kmd_client/src/models/versions-response.mjs +17 -0
- package/packages/kmd_client/src/models/versions-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/wallet-handle.d.ts +15 -0
- package/packages/kmd_client/src/models/wallet-handle.js +24 -0
- package/packages/kmd_client/src/models/wallet-handle.js.map +1 -0
- package/packages/kmd_client/src/models/wallet-handle.mjs +24 -0
- package/packages/kmd_client/src/models/wallet-handle.mjs.map +1 -0
- package/packages/kmd_client/src/models/wallet-info-request.d.ts +10 -0
- package/packages/kmd_client/src/models/wallet-info-request.js +17 -0
- package/packages/kmd_client/src/models/wallet-info-request.js.map +1 -0
- package/packages/kmd_client/src/models/wallet-info-request.mjs +17 -0
- package/packages/kmd_client/src/models/wallet-info-request.mjs.map +1 -0
- package/packages/kmd_client/src/models/wallet-info-response.d.ts +13 -0
- package/packages/kmd_client/src/models/wallet-info-response.js +18 -0
- package/packages/kmd_client/src/models/wallet-info-response.js.map +1 -0
- package/packages/kmd_client/src/models/wallet-info-response.mjs +18 -0
- package/packages/kmd_client/src/models/wallet-info-response.mjs.map +1 -0
- package/packages/kmd_client/src/models/wallet.d.ts +18 -0
- package/packages/kmd_client/src/models/wallet.js +54 -0
- package/packages/kmd_client/src/models/wallet.js.map +1 -0
- package/packages/kmd_client/src/models/wallet.mjs +54 -0
- package/packages/kmd_client/src/models/wallet.mjs.map +1 -0
- package/packages/sdk/src/convert.d.ts +17 -0
- package/packages/sdk/src/convert.js +28 -0
- package/packages/sdk/src/convert.js.map +1 -0
- package/packages/sdk/src/convert.mjs +25 -0
- package/packages/sdk/src/convert.mjs.map +1 -0
- package/packages/sdk/src/encoding/binarydata.d.ts +34 -0
- package/packages/sdk/src/encoding/binarydata.js +65 -0
- package/packages/sdk/src/encoding/binarydata.js.map +1 -0
- package/packages/sdk/src/encoding/binarydata.mjs +60 -0
- package/packages/sdk/src/encoding/binarydata.mjs.map +1 -0
- package/packages/sdk/src/encoding/encoding.d.ts +237 -0
- package/packages/sdk/src/encoding/encoding.js +302 -0
- package/packages/sdk/src/encoding/encoding.js.map +1 -0
- package/packages/sdk/src/encoding/encoding.mjs +287 -0
- package/packages/sdk/src/encoding/encoding.mjs.map +1 -0
- package/packages/sdk/src/encoding/schema/array.js +35 -0
- package/packages/sdk/src/encoding/schema/array.js.map +1 -0
- package/packages/sdk/src/encoding/schema/array.mjs +35 -0
- package/packages/sdk/src/encoding/schema/array.mjs.map +1 -0
- package/packages/sdk/src/encoding/schema/bytearray.js +49 -0
- package/packages/sdk/src/encoding/schema/bytearray.js.map +1 -0
- package/packages/sdk/src/encoding/schema/bytearray.mjs +49 -0
- package/packages/sdk/src/encoding/schema/bytearray.mjs.map +1 -0
- package/packages/sdk/src/encoding/schema/map.d.ts +58 -0
- package/packages/sdk/src/encoding/schema/map.js +110 -0
- package/packages/sdk/src/encoding/schema/map.js.map +1 -0
- package/packages/sdk/src/encoding/schema/map.mjs +107 -0
- package/packages/sdk/src/encoding/schema/map.mjs.map +1 -0
- package/packages/sdk/src/encoding/schema/optional.js +46 -0
- package/packages/sdk/src/encoding/schema/optional.js.map +1 -0
- package/packages/sdk/src/encoding/schema/optional.mjs +46 -0
- package/packages/sdk/src/encoding/schema/optional.mjs.map +1 -0
- package/packages/sdk/src/encoding/schema/uint64.js +30 -0
- package/packages/sdk/src/encoding/schema/uint64.js.map +1 -0
- package/packages/sdk/src/encoding/schema/uint64.mjs +30 -0
- package/packages/sdk/src/encoding/schema/uint64.mjs.map +1 -0
- package/packages/sdk/src/encoding/uint64.d.ts +34 -0
- package/packages/sdk/src/encoding/uint64.js +34 -0
- package/packages/sdk/src/encoding/uint64.js.map +1 -0
- package/packages/sdk/src/encoding/uint64.mjs +33 -0
- package/packages/sdk/src/encoding/uint64.mjs.map +1 -0
- package/packages/sdk/src/index.d.ts +44 -0
- package/packages/sdk/src/index.js +62 -0
- package/packages/sdk/src/index.js.map +1 -0
- package/packages/sdk/src/index.mjs +58 -0
- package/packages/sdk/src/index.mjs.map +1 -0
- package/packages/sdk/src/logic/sourcemap.d.ts +55 -0
- package/packages/sdk/src/logic/sourcemap.js +88 -0
- package/packages/sdk/src/logic/sourcemap.js.map +1 -0
- package/packages/sdk/src/logic/sourcemap.mjs +86 -0
- package/packages/sdk/src/logic/sourcemap.mjs.map +1 -0
- package/packages/sdk/src/nacl/naclWrappers.js +14 -0
- package/packages/sdk/src/nacl/naclWrappers.js.map +1 -0
- package/packages/sdk/src/nacl/naclWrappers.mjs +11 -0
- package/packages/sdk/src/nacl/naclWrappers.mjs.map +1 -0
- package/packages/sdk/src/types/intDecoding.d.ts +28 -0
- package/packages/sdk/src/types/intDecoding.js +32 -0
- package/packages/sdk/src/types/intDecoding.js.map +1 -0
- package/packages/sdk/src/types/intDecoding.mjs +31 -0
- package/packages/sdk/src/types/intDecoding.mjs.map +1 -0
- package/packages/sdk/src/types/transactions/encoded.d.ts +40 -0
- package/packages/sdk/src/types/transactions/encoded.js +64 -0
- package/packages/sdk/src/types/transactions/encoded.js.map +1 -0
- package/packages/sdk/src/types/transactions/encoded.mjs +59 -0
- package/packages/sdk/src/types/transactions/encoded.mjs.map +1 -0
- package/packages/sdk/src/utils/utils.d.ts +64 -0
- package/packages/sdk/src/utils/utils.js +140 -0
- package/packages/sdk/src/utils/utils.js.map +1 -0
- package/packages/sdk/src/utils/utils.mjs +128 -0
- package/packages/sdk/src/utils/utils.mjs.map +1 -0
- package/packages/transact/src/logicsig.d.ts +47 -0
- package/packages/transact/src/logicsig.js +118 -0
- package/packages/transact/src/logicsig.js.map +1 -0
- package/packages/transact/src/logicsig.mjs +116 -0
- package/packages/transact/src/logicsig.mjs.map +1 -0
- package/packages/transact/src/multisig.d.ts +153 -0
- package/packages/transact/src/multisig.js +388 -0
- package/packages/transact/src/multisig.js.map +1 -0
- package/packages/transact/src/multisig.mjs +368 -0
- package/packages/transact/src/multisig.mjs.map +1 -0
- package/packages/transact/src/signer.d.ts +47 -0
- package/packages/transact/src/signer.js +71 -0
- package/packages/transact/src/signer.js.map +1 -0
- package/packages/transact/src/signer.mjs +70 -0
- package/packages/transact/src/signer.mjs.map +1 -0
- package/packages/transact/src/transactions/app-call.d.ts +209 -0
- package/packages/transact/src/transactions/app-call.js +251 -0
- package/packages/transact/src/transactions/app-call.js.map +1 -0
- package/packages/transact/src/transactions/app-call.mjs +250 -0
- package/packages/transact/src/transactions/app-call.mjs.map +1 -0
- package/packages/transact/src/transactions/asset-config.d.ts +131 -0
- package/packages/transact/src/transactions/asset-config.js +101 -0
- package/packages/transact/src/transactions/asset-config.js.map +1 -0
- package/packages/transact/src/transactions/asset-config.mjs +101 -0
- package/packages/transact/src/transactions/asset-config.mjs.map +1 -0
- package/packages/transact/src/transactions/asset-freeze.d.ts +35 -0
- package/packages/transact/src/transactions/asset-freeze.js +18 -0
- package/packages/transact/src/transactions/asset-freeze.js.map +1 -0
- package/packages/transact/src/transactions/asset-freeze.mjs +18 -0
- package/packages/transact/src/transactions/asset-freeze.mjs.map +1 -0
- package/packages/transact/src/transactions/asset-transfer.d.ts +56 -0
- package/packages/transact/src/transactions/asset-transfer.js +18 -0
- package/packages/transact/src/transactions/asset-transfer.js.map +1 -0
- package/packages/transact/src/transactions/asset-transfer.mjs +18 -0
- package/packages/transact/src/transactions/asset-transfer.mjs.map +1 -0
- package/packages/transact/src/transactions/common.d.ts +37 -0
- package/packages/transact/src/transactions/common.js +24 -0
- package/packages/transact/src/transactions/common.js.map +1 -0
- package/packages/transact/src/transactions/common.mjs +22 -0
- package/packages/transact/src/transactions/common.mjs.map +1 -0
- package/packages/transact/src/transactions/heartbeat.d.ts +37 -0
- package/packages/transact/src/transactions/key-registration.d.ts +45 -0
- package/packages/transact/src/transactions/key-registration.js +54 -0
- package/packages/transact/src/transactions/key-registration.js.map +1 -0
- package/packages/transact/src/transactions/key-registration.mjs +54 -0
- package/packages/transact/src/transactions/key-registration.mjs.map +1 -0
- package/packages/transact/src/transactions/payment.d.ts +32 -0
- package/packages/transact/src/transactions/signed-transaction-meta.d.ts +12 -0
- package/packages/transact/src/transactions/signed-transaction-meta.js +132 -0
- package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -0
- package/packages/transact/src/transactions/signed-transaction-meta.mjs +129 -0
- package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -0
- package/packages/transact/src/transactions/signed-transaction.d.ts +126 -0
- package/packages/transact/src/transactions/signed-transaction.js +67 -0
- package/packages/transact/src/transactions/signed-transaction.js.map +1 -0
- package/packages/transact/src/transactions/signed-transaction.mjs +64 -0
- package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -0
- package/packages/transact/src/transactions/state-proof.d.ts +64 -0
- package/packages/transact/src/transactions/transaction-meta.d.ts +14 -0
- package/packages/transact/src/transactions/transaction-meta.js +1007 -0
- package/packages/transact/src/transactions/transaction-meta.js.map +1 -0
- package/packages/transact/src/transactions/transaction-meta.mjs +1006 -0
- package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -0
- package/packages/transact/src/transactions/transaction-type.d.ts +47 -0
- package/packages/transact/src/transactions/transaction-type.js +50 -0
- package/packages/transact/src/transactions/transaction-type.js.map +1 -0
- package/packages/transact/src/transactions/transaction-type.mjs +49 -0
- package/packages/transact/src/transactions/transaction-type.mjs.map +1 -0
- package/packages/transact/src/transactions/transaction.d.ts +312 -0
- package/packages/transact/src/transactions/transaction.js +351 -0
- package/packages/transact/src/transactions/transaction.js.map +1 -0
- package/packages/transact/src/transactions/transaction.mjs +337 -0
- package/packages/transact/src/transactions/transaction.mjs.map +1 -0
- package/sdk/index.d.ts +10 -0
- package/sdk/index.js +59 -0
- package/sdk/index.mjs +11 -0
- package/testing/account.d.ts +14 -9
- package/testing/account.js +27 -31
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +27 -29
- package/testing/account.mjs.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.d.ts +8 -2
- package/testing/fixtures/algokit-log-capture-fixture.js +35 -39
- package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.mjs +35 -37
- package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
- package/testing/fixtures/algorand-fixture.d.ts +11 -5
- package/testing/fixtures/algorand-fixture.js +66 -60
- package/testing/fixtures/algorand-fixture.js.map +1 -1
- package/testing/fixtures/algorand-fixture.mjs +65 -57
- package/testing/fixtures/algorand-fixture.mjs.map +1 -1
- package/testing/index.d.ts +7 -5
- package/testing/index.js +13 -18
- package/testing/index.mjs +8 -7
- package/testing/indexer.d.ts +5 -1
- package/testing/indexer.js +27 -35
- package/testing/indexer.js.map +1 -1
- package/testing/indexer.mjs +27 -34
- package/testing/indexer.mjs.map +1 -1
- package/testing/test-logger.d.ts +42 -36
- package/testing/test-logger.js +70 -74
- package/testing/test-logger.js.map +1 -1
- package/testing/test-logger.mjs +70 -72
- package/testing/test-logger.mjs.map +1 -1
- package/testing/transaction-logger.d.ts +33 -28
- package/testing/transaction-logger.js +73 -91
- package/testing/transaction-logger.js.map +1 -1
- package/testing/transaction-logger.mjs +73 -89
- package/testing/transaction-logger.mjs.map +1 -1
- package/transact/index.d.ts +17 -0
- package/transact/index.js +66 -0
- package/transact/index.mjs +15 -0
- package/transaction/perform-transaction-composer-simulate.d.ts +20 -0
- package/transaction/perform-transaction-composer-simulate.js +33 -0
- package/transaction/perform-transaction-composer-simulate.js.map +1 -0
- package/transaction/perform-transaction-composer-simulate.mjs +32 -0
- package/transaction/perform-transaction-composer-simulate.mjs.map +1 -0
- package/transaction/transaction.d.ts +37 -163
- package/transaction/transaction.js +115 -970
- package/transaction/transaction.js.map +1 -1
- package/transaction/transaction.mjs +115 -953
- package/transaction/transaction.mjs.map +1 -1
- package/transactions/app-call.d.ts +78 -0
- package/transactions/app-call.js +333 -0
- package/transactions/app-call.js.map +1 -0
- package/transactions/app-call.mjs +329 -0
- package/transactions/app-call.mjs.map +1 -0
- package/transactions/asset-config.d.ts +177 -0
- package/transactions/asset-config.js +64 -0
- package/transactions/asset-config.js.map +1 -0
- package/transactions/asset-config.mjs +61 -0
- package/transactions/asset-config.mjs.map +1 -0
- package/transactions/asset-transfer.d.ts +44 -0
- package/transactions/asset-transfer.js +50 -0
- package/transactions/asset-transfer.js.map +1 -0
- package/transactions/asset-transfer.mjs +48 -0
- package/transactions/asset-transfer.mjs.map +1 -0
- package/transactions/common.d.ts +48 -0
- package/transactions/common.js +31 -0
- package/transactions/common.js.map +1 -0
- package/transactions/common.mjs +30 -0
- package/transactions/common.mjs.map +1 -0
- package/transactions/fee-coverage.js +115 -0
- package/transactions/fee-coverage.js.map +1 -0
- package/transactions/fee-coverage.mjs +112 -0
- package/transactions/fee-coverage.mjs.map +1 -0
- package/transactions/key-registration.d.ts +27 -0
- package/transactions/key-registration.js +30 -0
- package/transactions/key-registration.js.map +1 -0
- package/transactions/key-registration.mjs +30 -0
- package/transactions/key-registration.mjs.map +1 -0
- package/transactions/method-call.d.ts +45 -0
- package/transactions/method-call.js +326 -0
- package/transactions/method-call.js.map +1 -0
- package/transactions/method-call.mjs +322 -0
- package/transactions/method-call.mjs.map +1 -0
- package/transactions/payment.d.ts +21 -0
- package/transactions/payment.js +21 -0
- package/transactions/payment.js.map +1 -0
- package/transactions/payment.mjs +21 -0
- package/transactions/payment.mjs.map +1 -0
- package/types/account-manager.d.ts +434 -428
- package/types/account-manager.js +606 -600
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +604 -598
- package/types/account-manager.mjs.map +1 -1
- package/types/account.d.ts +149 -212
- package/types/account.js +6 -90
- package/types/account.js.map +1 -1
- package/types/account.mjs +7 -88
- package/types/account.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +1087 -761
- package/types/algorand-client-transaction-creator.js +723 -722
- package/types/algorand-client-transaction-creator.js.map +1 -1
- package/types/algorand-client-transaction-creator.mjs +723 -721
- package/types/algorand-client-transaction-creator.mjs.map +1 -1
- package/types/algorand-client-transaction-sender.d.ts +1298 -1268
- package/types/algorand-client-transaction-sender.js +920 -951
- package/types/algorand-client-transaction-sender.js.map +1 -1
- package/types/algorand-client-transaction-sender.mjs +918 -949
- package/types/algorand-client-transaction-sender.mjs.map +1 -1
- package/types/algorand-client.d.ts +242 -236
- package/types/algorand-client.js +321 -318
- package/types/algorand-client.js.map +1 -1
- package/types/algorand-client.mjs +321 -316
- package/types/algorand-client.mjs.map +1 -1
- package/types/amount.d.ts +47 -43
- package/types/amount.js +62 -68
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +62 -66
- package/types/amount.mjs.map +1 -1
- package/types/app-client.d.ts +2018 -1972
- package/types/app-client.js +900 -1794
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +899 -1792
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +149 -141
- package/types/app-deployer.js +349 -382
- package/types/app-deployer.js.map +1 -1
- package/types/app-deployer.mjs +349 -380
- package/types/app-deployer.mjs.map +1 -1
- package/types/app-factory.d.ts +931 -914
- package/types/app-factory.js +444 -486
- package/types/app-factory.js.map +1 -1
- package/types/app-factory.mjs +444 -484
- package/types/app-factory.mjs.map +1 -1
- package/types/app-manager.d.ts +299 -325
- package/types/app-manager.js +447 -498
- package/types/app-manager.js.map +1 -1
- package/types/app-manager.mjs +448 -496
- package/types/app-manager.mjs.map +1 -1
- package/types/app-spec.d.ts +154 -117
- package/types/app-spec.js +124 -133
- package/types/app-spec.js.map +1 -1
- package/types/app-spec.mjs +124 -131
- package/types/app-spec.mjs.map +1 -1
- package/types/app.d.ts +186 -291
- package/types/app.js +34 -26
- package/types/app.js.map +1 -1
- package/types/app.mjs +32 -25
- package/types/app.mjs.map +1 -1
- package/types/asset-manager.d.ts +206 -199
- package/types/asset-manager.js +162 -172
- package/types/asset-manager.js.map +1 -1
- package/types/asset-manager.mjs +162 -170
- package/types/asset-manager.mjs.map +1 -1
- package/types/async-event-emitter.d.ts +18 -13
- package/types/async-event-emitter.js +35 -47
- package/types/async-event-emitter.js.map +1 -1
- package/types/async-event-emitter.mjs +35 -46
- package/types/async-event-emitter.mjs.map +1 -1
- package/types/client-manager.d.ts +455 -451
- package/types/client-manager.js +612 -596
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs +612 -594
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +920 -1312
- package/types/composer.js +1558 -1469
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +1557 -1467
- package/types/composer.mjs.map +1 -1
- package/types/config.d.ts +53 -48
- package/types/config.js +76 -75
- package/types/config.js.map +1 -1
- package/types/config.mjs +76 -73
- package/types/config.mjs.map +1 -1
- package/types/debugging.d.ts +26 -23
- package/types/debugging.js +7 -9
- package/types/debugging.js.map +1 -1
- package/types/debugging.mjs +7 -8
- package/types/debugging.mjs.map +1 -1
- package/types/dispenser-client.d.ts +57 -52
- package/types/dispenser-client.js +122 -139
- package/types/dispenser-client.js.map +1 -1
- package/types/dispenser-client.mjs +122 -137
- package/types/dispenser-client.mjs.map +1 -1
- package/types/expand.d.ts +5 -3
- package/types/expand.js +0 -3
- package/types/expand.mjs +0 -2
- package/types/indexer.d.ts +32 -160
- package/types/indexer.js +34 -29
- package/types/indexer.js.map +1 -1
- package/types/indexer.mjs +30 -28
- package/types/indexer.mjs.map +1 -1
- package/types/instance-of.d.ts +5 -3
- package/types/instance-of.js +0 -3
- package/types/instance-of.mjs +0 -2
- package/types/kmd-account-manager.d.ts +70 -70
- package/types/kmd-account-manager.js +152 -182
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +150 -180
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/lifecycle-events.d.ts +13 -8
- package/types/lifecycle-events.js +10 -7
- package/types/lifecycle-events.js.map +1 -1
- package/types/lifecycle-events.mjs +8 -6
- package/types/lifecycle-events.mjs.map +1 -1
- package/types/logging.d.ts +11 -13
- package/types/logging.js +28 -29
- package/types/logging.js.map +1 -1
- package/types/logging.mjs +28 -28
- package/types/logging.mjs.map +1 -1
- package/types/logic-error.d.ts +33 -29
- package/types/logic-error.js +48 -47
- package/types/logic-error.js.map +1 -1
- package/types/logic-error.mjs +48 -46
- package/types/logic-error.mjs.map +1 -1
- package/types/network-client.d.ts +32 -27
- package/types/network-client.js +8 -7
- package/types/network-client.js.map +1 -1
- package/types/network-client.mjs +8 -6
- package/types/network-client.mjs.map +1 -1
- package/types/testing.d.ts +138 -132
- package/types/testing.js +0 -3
- package/types/testing.mjs +0 -2
- package/types/transaction.d.ts +108 -123
- package/types/transaction.js +0 -3
- package/types/transaction.mjs +0 -2
- package/util.js +51 -125
- package/util.js.map +1 -1
- package/util.mjs +52 -121
- package/util.mjs.map +1 -1
- package/account/account.d.ts +0 -144
- package/account/account.js +0 -182
- package/account/account.js.map +0 -1
- package/account/account.mjs +0 -172
- package/account/account.mjs.map +0 -1
- package/account/get-account-config-from-environment.d.ts +0 -12
- package/account/get-account-config-from-environment.js +0 -25
- package/account/get-account-config-from-environment.js.map +0 -1
- package/account/get-account-config-from-environment.mjs +0 -23
- package/account/get-account-config-from-environment.mjs.map +0 -1
- package/account/get-account.d.ts +0 -65
- package/account/get-account.js +0 -63
- package/account/get-account.js.map +0 -1
- package/account/get-account.mjs +0 -61
- package/account/get-account.mjs.map +0 -1
- package/account/get-dispenser-account.d.ts +0 -17
- package/account/get-dispenser-account.js +0 -22
- package/account/get-dispenser-account.js.map +0 -1
- package/account/get-dispenser-account.mjs +0 -20
- package/account/get-dispenser-account.mjs.map +0 -1
- package/account/index.d.ts +0 -5
- package/account/mnemonic-account.d.ts +0 -13
- package/account/mnemonic-account.js +0 -21
- package/account/mnemonic-account.js.map +0 -1
- package/account/mnemonic-account.mjs +0 -19
- package/account/mnemonic-account.mjs.map +0 -1
- package/app-client.d.ts +0 -86
- package/app-client.js +0 -98
- package/app-client.js.map +0 -1
- package/app-client.mjs +0 -94
- package/app-client.mjs.map +0 -1
- package/app-deploy.d.ts +0 -120
- package/app-deploy.js +0 -285
- package/app-deploy.js.map +0 -1
- package/app-deploy.mjs +0 -276
- package/app-deploy.mjs.map +0 -1
- package/app.d.ts +0 -205
- package/app.js +0 -349
- package/app.js.map +0 -1
- package/app.mjs +0 -329
- package/app.mjs.map +0 -1
- package/asset.d.ts +0 -74
- package/asset.js +0 -142
- package/asset.js.map +0 -1
- package/asset.mjs +0 -136
- package/asset.mjs.map +0 -1
- package/debugging/debugging.d.ts +0 -8
- package/debugging/debugging.js +0 -15
- package/debugging/debugging.js.map +0 -1
- package/debugging/debugging.mjs +0 -13
- package/debugging/debugging.mjs.map +0 -1
- package/debugging/index.d.ts +0 -1
- package/dispenser-client.d.ts +0 -20
- package/dispenser-client.js +0 -28
- package/dispenser-client.js.map +0 -1
- package/dispenser-client.mjs +0 -26
- package/dispenser-client.mjs.map +0 -1
- package/index.js.map +0 -1
- package/index.mjs.map +0 -1
- package/localnet/get-kmd-wallet-account.d.ts +0 -27
- package/localnet/get-kmd-wallet-account.js +0 -30
- package/localnet/get-kmd-wallet-account.js.map +0 -1
- package/localnet/get-kmd-wallet-account.mjs +0 -28
- package/localnet/get-kmd-wallet-account.mjs.map +0 -1
- package/localnet/get-localnet-dispenser-account.d.ts +0 -13
- package/localnet/get-localnet-dispenser-account.js +0 -19
- package/localnet/get-localnet-dispenser-account.js.map +0 -1
- package/localnet/get-localnet-dispenser-account.mjs +0 -17
- package/localnet/get-localnet-dispenser-account.mjs.map +0 -1
- package/localnet/get-or-create-kmd-wallet-account.d.ts +0 -28
- package/localnet/get-or-create-kmd-wallet-account.js +0 -30
- package/localnet/get-or-create-kmd-wallet-account.js.map +0 -1
- package/localnet/get-or-create-kmd-wallet-account.mjs +0 -28
- package/localnet/get-or-create-kmd-wallet-account.mjs.map +0 -1
- package/localnet/index.d.ts +0 -4
- package/localnet/is-localnet.d.ts +0 -7
- package/localnet/is-localnet.js +0 -14
- package/localnet/is-localnet.js.map +0 -1
- package/localnet/is-localnet.mjs +0 -12
- package/localnet/is-localnet.mjs.map +0 -1
- package/network-client.d.ts +0 -125
- package/network-client.js +0 -156
- package/network-client.js.map +0 -1
- package/network-client.mjs +0 -145
- package/network-client.mjs.map +0 -1
- package/testing/_asset.d.ts +0 -3
- package/testing/fixtures/index.d.ts +0 -2
- package/testing/index.js.map +0 -1
- package/testing/index.mjs.map +0 -1
- package/transaction/index.d.ts +0 -2
- package/transaction/legacy-bridge.d.ts +0 -35
- package/transaction/legacy-bridge.js +0 -129
- package/transaction/legacy-bridge.js.map +0 -1
- package/transaction/legacy-bridge.mjs +0 -124
- package/transaction/legacy-bridge.mjs.map +0 -1
- package/transaction/perform-atomic-transaction-composer-simulate.d.ts +0 -13
- package/transaction/perform-atomic-transaction-composer-simulate.js +0 -40
- package/transaction/perform-atomic-transaction-composer-simulate.js.map +0 -1
- package/transaction/perform-atomic-transaction-composer-simulate.mjs +0 -38
- package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +0 -1
- package/transfer/index.d.ts +0 -2
- package/transfer/transfer-algos.d.ts +0 -18
- package/transfer/transfer-algos.js +0 -31
- package/transfer/transfer-algos.js.map +0 -1
- package/transfer/transfer-algos.mjs +0 -29
- package/transfer/transfer-algos.mjs.map +0 -1
- package/transfer/transfer.d.ts +0 -52
- package/transfer/transfer.js +0 -112
- package/transfer/transfer.js.map +0 -1
- package/transfer/transfer.mjs +0 -108
- package/transfer/transfer.mjs.map +0 -1
- package/types/algo-http-client-with-retry.d.ts +0 -12
- package/types/algo-http-client-with-retry.js +0 -94
- package/types/algo-http-client-with-retry.js.map +0 -1
- package/types/algo-http-client-with-retry.mjs +0 -92
- package/types/algo-http-client-with-retry.mjs.map +0 -1
- package/types/app-arc56.d.ts +0 -359
- package/types/app-arc56.js +0 -200
- package/types/app-arc56.js.map +0 -1
- package/types/app-arc56.mjs +0 -191
- package/types/app-arc56.mjs.map +0 -1
- package/types/asset.d.ts +0 -99
- package/types/asset.js +0 -3
- package/types/asset.js.map +0 -1
- package/types/asset.mjs +0 -2
- package/types/asset.mjs.map +0 -1
- package/types/expand.js.map +0 -1
- package/types/expand.mjs.map +0 -1
- package/types/instance-of.js.map +0 -1
- package/types/instance-of.mjs.map +0 -1
- package/types/testing.js.map +0 -1
- package/types/testing.mjs.map +0 -1
- package/types/transaction.js.map +0 -1
- package/types/transaction.mjs.map +0 -1
- package/types/transfer.d.ts +0 -76
- package/types/transfer.js +0 -3
- package/types/transfer.js.map +0 -1
- package/types/transfer.mjs +0 -2
- package/types/transfer.mjs.map +0 -1
- package/util.d.ts +0 -48
package/types/app-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-client.js","sources":["../../src/types/app-client.ts"],"sourcesContent":["import algosdk, { Address } from 'algosdk'\nimport { Buffer } from 'buffer'\nimport {\n callApp,\n compileTeal,\n createApp,\n getAppBoxNames,\n getAppBoxValue,\n getAppBoxValueFromABIType,\n getAppGlobalState,\n getAppLocalState,\n updateApp,\n} from '../app'\nimport { deployApp, getCreatorAppsByName, performTemplateSubstitution, replaceDeployTimeControlParams } from '../app-deploy'\nimport { Config } from '../config'\nimport { legacySendTransactionBridge } from '../transaction/legacy-bridge'\nimport { encodeTransactionNote, getSenderAddress } from '../transaction/transaction'\nimport { asJson, binaryStartsWith } from '../util'\nimport { TransactionSignerAccount } from './account'\nimport { type AlgorandClient } from './algorand-client'\nimport { AlgoAmount } from './amount'\nimport {\n ABIAppCallArg,\n ABIAppCallArgs,\n ABIReturn,\n AppCallArgs,\n AppCallTransactionResult,\n AppCallType,\n AppCompilationResult,\n AppMetadata,\n AppReference,\n AppReturn,\n AppState,\n AppStorageSchema,\n BoxName,\n DELETABLE_TEMPLATE_NAME,\n AppLookup as LegacyAppLookup,\n OnSchemaBreak,\n OnUpdate,\n RawAppCallArgs,\n SendAppTransactionResult,\n TealTemplateParams,\n UPDATABLE_TEMPLATE_NAME,\n} from './app'\nimport {\n ABIStruct,\n Arc56Contract,\n Arc56Method,\n getABIDecodedValue,\n getABIEncodedValue,\n getABITupleFromABIStruct,\n getArc56Method,\n getArc56ReturnValue,\n ProgramSourceInfo,\n StorageKey,\n StorageMap,\n} from './app-arc56'\nimport { AppLookup } from './app-deployer'\nimport { AppManager, BoxIdentifier } from './app-manager'\nimport { AppSpec, arc32ToArc56 } from './app-spec'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppMethodCall,\n AppMethodCallTransactionArgument,\n AppUpdateMethodCall,\n AppUpdateParams,\n CommonAppCallParams,\n PaymentParams,\n} from './composer'\nimport { Expand } from './expand'\nimport { EventType } from './lifecycle-events'\nimport { LogicError } from './logic-error'\nimport { SendParams, SendTransactionFrom, SendTransactionParams, TransactionNote } from './transaction'\nimport ABIMethod = algosdk.ABIMethod\nimport ABIMethodParams = algosdk.ABIMethodParams\nimport ABIType = algosdk.ABIType\nimport ABIValue = algosdk.ABIValue\nimport Algodv2 = algosdk.Algodv2\nimport AtomicTransactionComposer = algosdk.AtomicTransactionComposer\nimport getApplicationAddress = algosdk.getApplicationAddress\nimport Indexer = algosdk.Indexer\nimport OnApplicationComplete = algosdk.OnApplicationComplete\nimport SourceMap = algosdk.ProgramSourceMap\nimport SuggestedParams = algosdk.SuggestedParams\nimport TransactionSigner = algosdk.TransactionSigner\n\n/** The maximum opcode budget for a simulate call as per https://github.com/algorand/go-algorand/blob/807b29a91c371d225e12b9287c5d56e9b33c4e4c/ledger/simulation/trace.go#L104 */\nconst MAX_SIMULATE_OPCODE_BUDGET = 20_000 * 16\n\n/** Configuration to resolve app by creator and name `getCreatorAppsByName` */\nexport type ResolveAppByCreatorAndNameBase = {\n /** The address of the app creator account to resolve the app by */\n creatorAddress: Address | string\n /** The optional name override to resolve the app by within the creator account (default: uses the name in the ABI contract) */\n name?: string\n /** The mechanism to find an existing app instance metadata for the given creator and name; either:\n * * An indexer instance to search the creator account apps; or\n * * The cached value of the existing apps for the given creator from `getCreatorAppsByName`\n */\n findExistingUsing: Indexer | LegacyAppLookup\n}\n\n/** Configuration to resolve app by creator and name `getCreatorAppsByName` */\nexport type ResolveAppByCreatorAndName = ResolveAppByCreatorAndNameBase & {\n /** How the app ID is resolved, either by `'id'` or `'creatorAndName'`; must be `'creatorAndName'` if you want to use `deploy` */\n resolveBy: 'creatorAndName'\n}\n\n/** Configuration to resolve app by ID */\nexport interface ResolveAppByIdBase {\n /** The id of an existing app to call using this client, or 0 if the app hasn't been created yet */\n id: number | bigint\n /** The optional name to use to mark the app when deploying `ApplicationClient.deploy` (default: uses the name in the ABI contract) */\n name?: string\n}\n\nexport interface ResolveAppById extends ResolveAppByIdBase {\n /** How the app ID is resolved, either by `'id'` or `'creatorAndName'`; must be `'creatorAndName'` if you want to use `deploy` */\n resolveBy: 'id'\n}\n\n/** The details of an AlgoKit Utils deployed app */\nexport type AppDetailsBase = {\n /** Default sender to use for transactions issued by this application client */\n sender?: SendTransactionFrom\n /** Default suggested params object to use */\n params?: SuggestedParams\n /** Optionally provide any deploy-time parameters to replace in the TEAL code; if specified here will get\n * used in calls to `deploy`, `create` and `update` unless overridden in those calls\n */\n deployTimeParams?: TealTemplateParams\n}\n\n/** The details of an AlgoKit Utils deployed app */\nexport type AppDetails = AppDetailsBase & (ResolveAppById | ResolveAppByCreatorAndName)\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app */\nexport type AppSpecAppDetailsBase = {\n /** The ARC-0032 application spec as either:\n * * Parsed JSON `AppSpec`\n * * Raw JSON string\n */\n app: AppSpec | string\n}\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app by id*/\nexport type AppSpecAppDetailsById = AppSpecAppDetailsBase & AppDetailsBase & ResolveAppByIdBase\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app by creator and name*/\nexport type AppSpecAppDetailsByCreatorAndName = AppSpecAppDetailsBase & AppDetailsBase & ResolveAppByCreatorAndNameBase\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app */\nexport type AppSpecAppDetails = AppSpecAppDetailsBase & AppDetails\n\n/** Core parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployCoreParams {\n /** The version of the contract, uses \"1.0\" by default */\n version?: string\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** Parameters to control transaction sending */\n sendParams?: Omit<SendTransactionParams, 'skipSending' | 'skipWaiting'>\n /** Whether or not to allow updates in the contract using the deploy-time updatability control if present in your contract.\n * If this is not specified then it will automatically be determined based on the AppSpec definition\n **/\n allowUpdate?: boolean\n /** Whether or not to allow deletes in the contract using the deploy-time deletability control if present in your contract.\n * If this is not specified then it will automatically be determined based on the AppSpec definition\n **/\n allowDelete?: boolean\n /** What action to perform if a schema break is detected */\n onSchemaBreak?: 'replace' | 'fail' | 'append' | OnSchemaBreak\n /** What action to perform if a TEAL update is detected */\n onUpdate?: 'update' | 'replace' | 'append' | 'fail' | OnUpdate\n}\n\n/** Call interface parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployCallInterfaceParams {\n /** Any deploy-time parameters to replace in the TEAL code */\n deployTimeParams?: TealTemplateParams\n /** Any args to pass to any create transaction that is issued as part of deployment */\n createArgs?: AppClientCallArgs\n /** Override the on-completion action for the create call; defaults to NoOp */\n createOnCompleteAction?: Exclude<AppCallType, 'clear_state'> | Exclude<OnApplicationComplete, OnApplicationComplete.ClearStateOC>\n /** Any args to pass to any update transaction that is issued as part of deployment */\n updateArgs?: AppClientCallArgs\n /** Any args to pass to any delete transaction that is issued as part of deployment */\n deleteArgs?: AppClientCallArgs\n}\n\n/** Parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployParams extends AppClientDeployCoreParams, AppClientDeployCallInterfaceParams {\n /** Any overrides for the storage schema to request for the created app; by default the schema indicated by the app spec is used. */\n schema?: Partial<AppStorageSchema>\n}\n\nexport type AppClientCallRawArgs = RawAppCallArgs\n\nexport interface AppClientCallABIArgs extends Omit<ABIAppCallArgs, 'method'> {\n /** If calling an ABI method then either the name of the method, or the ABI signature */\n method: string\n}\n\n/** The arguments to pass to an Application Client smart contract call */\nexport type AppClientCallArgs = AppClientCallRawArgs | AppClientCallABIArgs\n\n/** Common (core) parameters to construct a ApplicationClient contract call */\nexport interface AppClientCallCoreParams {\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** The transaction note for the smart contract call */\n note?: TransactionNote\n /** Parameters to control transaction sending */\n sendParams?: SendTransactionParams\n}\n\n/** Parameters to construct a ApplicationClient contract call */\nexport type AppClientCallParams = AppClientCallArgs & AppClientCallCoreParams\n\n/** Parameters to construct a ApplicationClient clear state contract call */\nexport type AppClientClearStateParams = AppClientCallRawArgs & AppClientCallCoreParams\n\nexport interface AppClientCompilationParams {\n /** Any deploy-time parameters to replace in the TEAL code */\n deployTimeParams?: TealTemplateParams\n /** Whether or not the contract should have deploy-time immutability control set, undefined = ignore */\n updatable?: boolean\n /** Whether or not the contract should have deploy-time permanence control set, undefined = ignore */\n deletable?: boolean\n}\n\n/** On-complete action parameter for creating a contract using ApplicationClient */\nexport type AppClientCreateOnComplete = {\n /** Override the on-completion action for the create call; defaults to NoOp */\n onCompleteAction?: Exclude<AppCallType, 'clear_state'> | Exclude<OnApplicationComplete, OnApplicationComplete.ClearStateOC>\n}\n\n/** Parameters for creating a contract using ApplicationClient */\nexport type AppClientCreateParams = AppClientCallParams &\n AppClientCompilationParams &\n AppClientCreateOnComplete & {\n /** Any overrides for the storage schema to request for the created app; by default the schema indicated by the app spec is used. */\n schema?: Partial<AppStorageSchema>\n }\n\n/** Parameters for updating a contract using ApplicationClient */\nexport type AppClientUpdateParams = AppClientCallParams & AppClientCompilationParams\n\n/** Parameters for funding an app account */\nexport interface FundAppAccountParams {\n amount: AlgoAmount\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** The transaction note for the smart contract call */\n note?: TransactionNote\n /** Parameters to control transaction sending */\n sendParams?: SendTransactionParams\n}\n\n/** Source maps for an Algorand app */\nexport interface AppSourceMaps {\n /** The source map of the approval program */\n approvalSourceMap: SourceMapExport\n /** The source map of the clear program */\n clearSourceMap: SourceMapExport\n}\n\nexport interface SourceMapExport {\n version: number\n sources: string[]\n names: string[]\n mappings: string\n}\n\n/**\n * The result of asking an `AppClient` to compile a program.\n *\n * Always contains the compiled bytecode, and may contain the result of compiling TEAL (including sourcemap) if it was available.\n */\nexport interface AppClientCompilationResult extends Partial<AppCompilationResult> {\n /** The compiled bytecode of the approval program, ready to deploy to algod */\n approvalProgram: Uint8Array\n /** The compiled bytecode of the clear state program, ready to deploy to algod */\n clearStateProgram: Uint8Array\n}\n\n/**\n * Determines deploy time control (UPDATABLE, DELETABLE) value by inspecting application specification\n * @param approval TEAL Approval program, not the base64 version found on the appSpec\n * @param appSpec Application Specification\n * @param templateVariableName Template variable\n * @param callConfigKey Call config type\n * @returns true if applicable call config is found, false if not found or undefined if variable not present\n */\nfunction getDeployTimeControl(\n approval: string,\n appSpec: AppSpec,\n templateVariableName: string,\n callConfigKey: 'update_application' | 'delete_application',\n): boolean | undefined {\n // variable not present, so unknown control value\n if (!approval.includes(templateVariableName)) return undefined\n\n // a bare call for specified CallConfig is present and configured\n const bareCallConfig = appSpec.bare_call_config[callConfigKey]\n if (!!bareCallConfig && bareCallConfig !== 'NEVER') return true\n\n // an ABI call for specified CallConfig is present and configured\n return Object.values(appSpec.hints).some((h) => {\n const abiCallConfig = h.call_config[callConfigKey]\n return !!abiCallConfig && abiCallConfig !== 'NEVER'\n })\n}\n\n/** Parameters to create an app client */\nexport interface AppClientParams {\n /** The ID of the app instance this client should make calls against. */\n appId: bigint\n\n /** The ARC-56 or ARC-32 application spec as either:\n * * Parsed JSON ARC-56 `Contract`\n * * Parsed JSON ARC-32 `AppSpec`\n * * Raw JSON string (in either ARC-56 or ARC-32 format)\n */\n appSpec: Arc56Contract | AppSpec | string\n\n /** An `AlgorandClient` instance */\n algorand: AlgorandClient\n\n /**\n * Optional override for the app name; used for on-chain metadata and lookups.\n * Defaults to the ARC-32/ARC-56 app spec name\n */\n appName?: string\n /** Optional address to use for the account to use as the default sender for calls. */\n defaultSender?: Address | string\n /** Optional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from `AlgorandClient`). */\n defaultSigner?: TransactionSigner\n /** Optional source map for the approval program */\n approvalSourceMap?: SourceMap\n /** Optional source map for the clear state program */\n clearSourceMap?: SourceMap\n}\n\n/** Parameters to clone an app client */\nexport type CloneAppClientParams = Expand<Partial<Omit<AppClientParams, 'algorand' | 'appSpec'>>>\n\n/** onComplete parameter for a non-update app call */\nexport type CallOnComplete = {\n /** On-complete of the call; defaults to no-op */\n onComplete?: Exclude<OnApplicationComplete, OnApplicationComplete.UpdateApplicationOC>\n}\n\n/** AppClient common parameters for a bare app call */\nexport type AppClientBareCallParams = Expand<\n Omit<CommonAppCallParams, 'appId' | 'sender' | 'onComplete'> & {\n /** The address of the account sending the transaction, if undefined then the app client's defaultSender is used. */\n sender?: Address | string\n }\n>\n\n/** AppClient common parameters for an ABI method call */\nexport type AppClientMethodCallParams = Expand<\n Omit<CommonAppCallParams, 'appId' | 'sender' | 'method' | 'args'> & {\n /** The address of the account sending the transaction, if undefined then the app client's defaultSender is used. */\n sender?: Address | string\n /** The method name or method signature to call if an ABI call is being emitted\n * @example Method name\n * `my_method`\n * @example Method signature\n * `my_method(unit64,string)bytes`\n */\n method: string\n /** Arguments to the ABI method, either:\n * * An ABI value\n * * An ARC-56 struct\n * * A transaction with explicit signer\n * * A transaction (where the signer will be automatically assigned)\n * * An unawaited transaction (e.g. from algorand.createTransaction.transactionType())\n * * Another method call (via method call params object)\n * * undefined (this represents a placeholder for either a default argument or a transaction argument that is fulfilled by another method call argument)\n */\n args?: (ABIValue | ABIStruct | AppMethodCallTransactionArgument | undefined)[]\n }\n>\n\n/** Parameters for funding an app account */\nexport type FundAppParams = Expand<\n Omit<PaymentParams, 'receiver' | 'sender'> &\n SendParams & {\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: Address | string\n }\n>\n\n/** Resolve an app client instance by looking up an app created by the given creator with the given name */\nexport type ResolveAppClientByCreatorAndName = Expand<\n Omit<AppClientParams, 'appId'> & {\n /** The address of the creator account for the app */\n creatorAddress: Address | string\n /** An optional cached app lookup that matches a name to on-chain details;\n * either this is needed or indexer is required to be passed in to this `ClientManager` on construction.\n */\n appLookupCache?: AppLookup\n /** Whether or not to ignore the `AppDeployer` lookup cache and force an on-chain lookup, default: use any cached value */\n ignoreCache?: boolean\n }\n>\n\n/** Resolve an app client instance by looking up the current network. */\nexport type ResolveAppClientByNetwork = Expand<Omit<AppClientParams, 'appId'>>\n\nconst BYTE_CBLOCK = 38\nconst INT_CBLOCK = 32\n\n/**\n * Get the offset of the last constant block at the beginning of the program\n * This value is used to calculate the program counter for an ARC56 program that has a pcOffsetMethod of \"cblocks\"\n *\n * @param program The program to parse\n * @returns The PC value of the opcode after the last constant block\n */\nfunction getConstantBlockOffset(program: Uint8Array) {\n const bytes = [...program]\n\n const programSize = bytes.length\n bytes.shift() // remove version\n\n /** The PC of the opcode after the bytecblock */\n let bytecblockOffset: number | undefined\n\n /** The PC of the opcode after the intcblock */\n let intcblockOffset: number | undefined\n\n while (bytes.length > 0) {\n /** The current byte from the beginning of the byte array */\n const byte = bytes.shift()!\n\n // If the byte is a constant block...\n if (byte === BYTE_CBLOCK || byte === INT_CBLOCK) {\n const isBytecblock = byte === BYTE_CBLOCK\n\n /** The byte following the opcode is the number of values in the constant block */\n const valuesRemaining = bytes.shift()!\n\n // Iterate over all the values in the constant block\n for (let i = 0; i < valuesRemaining; i++) {\n if (isBytecblock) {\n /** The byte following the opcode is the length of the next element */\n const length = bytes.shift()!\n bytes.splice(0, length)\n } else {\n // intcblock is a uvarint, so we need to keep reading until we find the end (MSB is not set)\n while ((bytes.shift()! & 0x80) !== 0) {\n // Do nothing...\n }\n }\n }\n\n if (isBytecblock) bytecblockOffset = programSize - bytes.length - 1\n else intcblockOffset = programSize - bytes.length - 1\n\n if (bytes[0] !== BYTE_CBLOCK && bytes[0] !== INT_CBLOCK) {\n // if the next opcode isn't a constant block, we're done\n break\n }\n }\n }\n\n return Math.max(bytecblockOffset ?? 0, intcblockOffset ?? 0)\n}\n\n/** ARC-56/ARC-32 application client that allows you to manage calls and\n * state for a specific deployed instance of an app (with a known app ID). */\nexport class AppClient {\n private _appId: bigint\n private _appAddress: Address\n private _appName: string\n private _appSpec: Arc56Contract\n private _algorand: AlgorandClient\n private _defaultSender?: Address\n private _defaultSigner?: TransactionSigner\n\n private _approvalSourceMap: SourceMap | undefined\n private _clearSourceMap: SourceMap | undefined\n\n private _localStateMethods: (address: string | Address) => ReturnType<AppClient['getStateMethods']>\n private _globalStateMethods: ReturnType<AppClient['getStateMethods']>\n private _boxStateMethods: ReturnType<AppClient['getBoxMethods']>\n\n private _paramsMethods: ReturnType<AppClient['getMethodCallParamsMethods']> & {\n /** Interact with bare (raw) call parameters */ bare: ReturnType<AppClient['getBareParamsMethods']>\n }\n private _createTransactionsMethods: ReturnType<AppClient['getMethodCallCreateTransactionMethods']> & {\n /** Interact with bare (raw) call transactions */ bare: ReturnType<AppClient['getBareCreateTransactionMethods']>\n }\n private _sendMethods: ReturnType<AppClient['getMethodCallSendMethods']> & {\n /** Interact with bare (raw) calls */ bare: ReturnType<AppClient['getBareSendMethods']>\n }\n private _lastCompiled: { clear?: Uint8Array; approval?: Uint8Array }\n\n /**\n * Create a new app client.\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = new AppClient({\n * appId: 12345678n,\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n constructor(params: AppClientParams) {\n this._appId = params.appId\n this._appAddress = algosdk.getApplicationAddress(this._appId)\n this._appSpec = AppClient.normaliseAppSpec(params.appSpec)\n this._appName = params.appName ?? this._appSpec.name\n this._algorand = params.algorand\n this._algorand.registerErrorTransformer!(this.handleCallErrors)\n this._defaultSender = typeof params.defaultSender === 'string' ? Address.fromString(params.defaultSender) : params.defaultSender\n this._defaultSigner = params.defaultSigner\n this._lastCompiled = {}\n\n this._approvalSourceMap = params.approvalSourceMap\n this._clearSourceMap = params.clearSourceMap\n this._localStateMethods = (address: string | Address) =>\n this.getStateMethods(\n () => this.getLocalState(address),\n () => this._appSpec.state.keys.local,\n () => this._appSpec.state.maps.local,\n )\n this._globalStateMethods = this.getStateMethods(\n () => this.getGlobalState(),\n () => this._appSpec.state.keys.global,\n () => this._appSpec.state.maps.global,\n )\n this._boxStateMethods = this.getBoxMethods()\n\n this._paramsMethods = {\n ...this.getMethodCallParamsMethods(),\n /** Get parameters to define bare (raw) transactions to the current app */\n bare: this.getBareParamsMethods(),\n }\n this._createTransactionsMethods = {\n ...this.getMethodCallCreateTransactionMethods(),\n\n /** Get transactions for bare (raw) calls to the current app */\n bare: this.getBareCreateTransactionMethods(),\n }\n this._sendMethods = {\n ...this.getMethodCallSendMethods(),\n\n /** Send bare (raw) transactions to the current app */\n bare: this.getBareSendMethods(),\n }\n }\n\n /**\n * Clone this app client with different params\n *\n * @param params The params to use for the the cloned app client. Omit a param to keep the original value. Set a param to override the original value. Setting to undefined will clear the original value.\n * @returns A new app client with the altered params\n * @example\n * ```typescript\n * const appClient2 = appClient.clone({ defaultSender: 'NEW_SENDER_ADDRESS' })\n * ```\n */\n public clone(params: CloneAppClientParams) {\n return new AppClient({\n appId: this._appId,\n appSpec: this._appSpec,\n algorand: this._algorand,\n appName: this._appName,\n defaultSender: this._defaultSender,\n defaultSigner: this._defaultSigner,\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n ...params,\n })\n }\n\n /**\n * Returns a new `AppClient` client, resolving the app by creator address and name\n * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note).\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = await AppClient.fromCreatorAndName({\n * creatorAddress: 'CREATOR_ADDRESS',\n * name: 'APP_NAME',\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n public static async fromCreatorAndName(params: ResolveAppClientByCreatorAndName) {\n const appSpec = AppClient.normaliseAppSpec(params.appSpec)\n const appLookup =\n params.appLookupCache ?? (await params.algorand.appDeployer.getCreatorAppsByName(params.creatorAddress, params.ignoreCache))\n const appMetadata = appLookup.apps[params.appName ?? appSpec.name]\n if (!appMetadata) {\n throw new Error(`App not found for creator ${params.creatorAddress} and name ${params.appName ?? appSpec.name}`)\n }\n return new AppClient({\n ...params,\n algorand: params.algorand,\n appId: appMetadata.appId,\n })\n }\n\n /**\n * Returns an `AppClient` instance for the current network based on\n * pre-determined network-specific app IDs specified in the ARC-56 app spec.\n *\n * If no IDs are in the app spec or the network isn't recognised, an error is thrown.\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = await AppClient.fromNetwork({\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n public static async fromNetwork(params: ResolveAppClientByNetwork): Promise<AppClient> {\n const network = await params.algorand.client.network()\n const appSpec = AppClient.normaliseAppSpec(params.appSpec)\n const networkNames = [network.genesisHash]\n if (network.isLocalNet) networkNames.push('localnet')\n if (network.isTestNet) networkNames.push('testnet')\n if (network.isMainNet) networkNames.push('mainnet')\n const availableAppSpecNetworks = Object.keys(appSpec.networks ?? {})\n const networkIndex = availableAppSpecNetworks.findIndex((n) => networkNames.includes(n))\n\n if (networkIndex === -1) {\n throw new Error(`No app ID found for network ${asJson(networkNames)} in the app spec`)\n }\n\n const appId = BigInt(appSpec.networks![networkIndex].appID)\n return new AppClient({ ...params, appId, appSpec })\n }\n\n /**\n * Takes a string or parsed JSON object that could be ARC-32 or ARC-56 format and\n * normalises it into a parsed ARC-56 contract object.\n * @param spec The spec to normalise\n * @returns The normalised ARC-56 contract object\n * @example\n * ```typescript\n * const arc56AppSpec = AppClient.normaliseAppSpec(appSpec)\n * ```\n */\n public static normaliseAppSpec(spec: Arc56Contract | AppSpec | string): Arc56Contract {\n const parsedSpec = typeof spec === 'string' ? (JSON.parse(spec) as AppSpec | Arc56Contract) : spec\n const appSpec = 'hints' in parsedSpec ? arc32ToArc56(parsedSpec) : parsedSpec\n return appSpec\n }\n\n /** The ID of the app instance this client is linked to. */\n public get appId() {\n return this._appId\n }\n\n /** The app address of the app instance this client is linked to. */\n public get appAddress() {\n return this._appAddress\n }\n\n /** The name of the app (from the ARC-32 / ARC-56 app spec or override). */\n public get appName() {\n return this._appName\n }\n\n /** The ARC-56 app spec being used */\n public get appSpec(): Arc56Contract {\n return this._appSpec\n }\n\n /** A reference to the underlying `AlgorandClient` this app client is using. */\n public get algorand(): AlgorandClient {\n return this._algorand\n }\n\n /** Get parameters to create transactions for the current app.\n *\n * A good mental model for this is that these parameters represent a deferred transaction creation.\n * @example Create a transaction in the future using Algorand Client\n * ```typescript\n * const myMethodCall = appClient.params.call({method: 'my_method', args: [123, 'hello']})\n * // ...\n * await algorand.send.AppMethodCall(myMethodCall)\n * ```\n * @example Define a nested transaction as an ABI argument\n * ```typescript\n * const myMethodCall = appClient.params.call({method: 'my_method', args: [123, 'hello']})\n * await appClient.send.call({method: 'my_method2', args: [myMethodCall]})\n * ```\n */\n public get params() {\n return this._paramsMethods\n }\n\n /** Create transactions for the current app */\n public get createTransaction() {\n return this._createTransactionsMethods\n }\n\n /** Send transactions to the current app */\n public get send() {\n return this._sendMethods\n }\n\n /** Get state (local, global, box) from the current app */\n public get state() {\n return {\n /**\n * Methods to access local state for the current app\n * @param address The address of the account to get the local state for\n */\n local: this._localStateMethods,\n /**\n * Methods to access global state for the current app\n */\n global: this._globalStateMethods,\n /**\n * Methods to access box storage for the current app\n */\n box: this._boxStateMethods,\n }\n }\n\n /**\n * Funds Algo into the app account for this app.\n *\n * An alias for `appClient.send.fundAppAccount(params)`.\n * @param params The parameters for the funding transaction\n * @returns The result of the funding\n * @example\n * ```typescript\n * await appClient.fundAppAccount({ amount: algo(1) })\n * ```\n */\n public async fundAppAccount(params: FundAppParams) {\n return this.send.fundAppAccount(params)\n }\n\n /**\n * Returns raw global state for the current app.\n * @returns The global state\n * @example\n * ```typescript\n * const globalState = await appClient.getGlobalState()\n * ```\n */\n public async getGlobalState(): Promise<AppState> {\n return await this._algorand.app.getGlobalState(this.appId)\n }\n\n /**\n * Returns raw local state for the given account address.\n * @param address The address of the account to get the local state for\n * @returns The local state\n * @example\n * ```typescript\n * const localState = await appClient.getLocalState('ACCOUNT_ADDRESS')\n * ```\n */\n public async getLocalState(address: Address | string): Promise<AppState> {\n return await this._algorand.app.getLocalState(this.appId, address)\n }\n\n /**\n * Returns the names of all current boxes for the current app.\n * @returns The names of the boxes\n * @example\n * ```typescript\n * const boxNames = await appClient.getBoxNames()\n * ```\n */\n public async getBoxNames(): Promise<BoxName[]> {\n return await this._algorand.app.getBoxNames(this.appId)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The identifier of the box to return\n * @returns The current box value as a byte array\n * @example\n * ```typescript\n * const boxValue = await appClient.getBoxValue('boxName')\n * ```\n */\n public async getBoxValue(name: BoxIdentifier): Promise<Uint8Array> {\n return await this._algorand.app.getBoxValue(this.appId, name)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The identifier of the box to return\n * @param type\n * @returns The current box value as a byte array\n * @example\n * ```typescript\n * const boxValue = await appClient.getBoxValueFromABIType('boxName', new ABIUintType(32))\n * ```\n */\n public async getBoxValueFromABIType(name: BoxIdentifier, type: ABIType): Promise<ABIValue> {\n return await this._algorand.app.getBoxValueFromABIType({\n appId: this.appId,\n boxName: name,\n type,\n })\n }\n\n /**\n * Returns the values of all current boxes for the current app.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as raw byte arrays\n * @example\n * ```typescript\n * const boxValues = await appClient.getBoxValues()\n * ```\n */\n public async getBoxValues(filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: Uint8Array }[]> {\n const names = (await this.getBoxNames()).filter(filter ?? ((_) => true))\n const values = await this._algorand.app.getBoxValues(\n this.appId,\n names.map((name) => name.nameRaw),\n )\n return names.map((name, i) => ({ name, value: values[i] }))\n }\n\n /**\n * Returns the values of all current boxes for the current app decoded using an ABI Type.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param type The ABI type to decode the values with\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as the ABI Value\n * @example\n * ```typescript\n * const boxValues = await appClient.getBoxValuesFromABIType(new ABIUintType(32))\n * ```\n */\n public async getBoxValuesFromABIType(type: ABIType, filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: ABIValue }[]> {\n const names = (await this.getBoxNames()).filter(filter ?? ((_) => true))\n const values = await this._algorand.app.getBoxValuesFromABIType({\n appId: this.appId,\n boxNames: names.map((name) => name.nameRaw),\n type,\n })\n return names.map((name, i) => ({ name, value: values[i] }))\n }\n\n /**\n * Takes an error that may include a logic error from a call to the current app and re-exposes the\n * error to include source code information via the source map and ARC-56 spec.\n * @param e The error to parse\n * @param isClearStateProgram Whether or not the code was running the clear state program (defaults to approval program)\n * @returns The new error, or if there was no logic error or source map then the wrapped error with source details\n */\n public async exposeLogicError(e: Error, isClearStateProgram?: boolean): Promise<Error> {\n const pcOffsetMethod = this._appSpec.sourceInfo?.[isClearStateProgram ? 'clear' : 'approval']?.pcOffsetMethod\n\n let program: Uint8Array | undefined\n if (pcOffsetMethod === 'cblocks') {\n // TODO: Cache this if we deploy the app and it's not updateable\n const appInfo = await this._algorand.app.getById(this.appId)\n program = isClearStateProgram ? appInfo.clearStateProgram : appInfo.approvalProgram\n }\n\n return AppClient.exposeLogicError(e, this._appSpec, {\n isClearStateProgram,\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n program,\n })\n }\n\n /**\n * Export the current source maps for the app.\n * @returns The source maps\n */\n public exportSourceMaps(): AppSourceMaps {\n if (!this._approvalSourceMap || !this._clearSourceMap) {\n throw new Error(\n \"Unable to export source maps; they haven't been loaded into this client - you need to call create, update, or deploy first\",\n )\n }\n\n return {\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n }\n }\n\n /**\n * Import source maps for the app.\n * @param sourceMaps The source maps to import\n */\n public importSourceMaps(sourceMaps: AppSourceMaps) {\n this._approvalSourceMap = new SourceMap(sourceMaps.approvalSourceMap)\n this._clearSourceMap = new SourceMap(sourceMaps.clearSourceMap)\n }\n\n /**\n * Returns the ABI Method spec for the given method string for the app represented by this application client instance\n * @param methodNameOrSignature The method name or method signature to call if an ABI call is being emitted.\n * e.g. `my_method` or `my_method(unit64,string)bytes`\n * @returns A tuple with: [ARC-56 `Method`, algosdk `ABIMethod`]\n */\n public getABIMethod(methodNameOrSignature: string) {\n return getArc56Method(methodNameOrSignature, this._appSpec)\n }\n\n /**\n * Checks for decode errors on the SendAppTransactionResult and maps the return value to the specified type\n * on the ARC-56 method, replacing the `return` property with the decoded type.\n *\n * If the return type is an ARC-56 struct then the struct will be returned.\n *\n * @param result The SendAppTransactionResult to be mapped\n * @param method The method that was called\n * @returns The smart contract response with an updated return value\n */\n public async processMethodCallReturn<\n TReturn extends Uint8Array | ABIValue | ABIStruct | undefined,\n TResult extends SendAppTransactionResult = SendAppTransactionResult,\n >(result: Promise<TResult> | TResult, method: Arc56Method): Promise<Omit<TResult, 'return'> & AppReturn<TReturn>> {\n const resultValue = await result\n return { ...resultValue, return: getArc56ReturnValue(resultValue.return, method, this._appSpec.structs) }\n }\n\n /**\n * Compiles the approval and clear state programs (if TEAL templates provided),\n * performing any provided deploy-time parameter replacement and stores\n * the source maps.\n *\n * If no TEAL templates provided it will use any byte code provided in the app spec.\n *\n * Will store any generated source maps for later use in debugging.\n * @param compilation Any compilation parameters to use\n * @returns The compiled code and any compilation results (including source maps)\n */\n public async compile(compilation?: AppClientCompilationParams) {\n const result = await AppClient.compile(this._appSpec, this._algorand.app, compilation)\n\n if (result.compiledApproval) {\n this._approvalSourceMap = result.compiledApproval.sourceMap\n\n this._lastCompiled.approval = result.compiledApproval.compiledBase64ToBytes\n }\n if (result.compiledClear) {\n this._clearSourceMap = result.compiledClear.sourceMap\n this._lastCompiled.clear = result.compiledClear.compiledBase64ToBytes\n }\n\n return result\n }\n\n /**\n * Takes an error that may include a logic error from a call to the current app and re-exposes the\n * error to include source code information via the source map and ARC-56 spec.\n * @param e The error to parse\n * @param appSpec The app spec for the app\n * @param details Additional information to inform the error\n * @returns The new error, or if there was no logic error or source map then the wrapped error with source details\n */\n public static exposeLogicError(\n e: Error,\n appSpec: Arc56Contract,\n details: {\n /** Whether or not the code was running the clear state program (defaults to approval program) */ isClearStateProgram?: boolean\n /** Approval program source map */ approvalSourceMap?: SourceMap\n /** Clear state program source map */ clearSourceMap?: SourceMap\n /** program bytes */ program?: Uint8Array\n /** ARC56 approval source info */ approvalSourceInfo?: ProgramSourceInfo\n /** ARC56 clear source info */ clearSourceInfo?: ProgramSourceInfo\n },\n ): Error {\n const { isClearStateProgram, approvalSourceMap, clearSourceMap, program } = details\n const sourceMap = isClearStateProgram ? clearSourceMap : approvalSourceMap\n\n const errorDetails = LogicError.parseLogicError(e)\n\n // Return the error if we don't have a PC\n if (errorDetails === undefined || errorDetails?.pc === undefined) return e\n\n /** The PC value to find in the ARC56 SourceInfo */\n let arc56Pc = errorDetails?.pc\n\n const programSourceInfo = isClearStateProgram ? appSpec.sourceInfo?.clear : appSpec.sourceInfo?.approval\n\n /** The offset to apply to the PC if using the cblocks pc offset method */\n let cblocksOffset = 0\n\n // If the program uses cblocks offset, then we need to adjust the PC accordingly\n if (programSourceInfo?.pcOffsetMethod === 'cblocks') {\n if (program === undefined) throw new Error('Program bytes are required to calculate the ARC56 cblocks PC offset')\n cblocksOffset = getConstantBlockOffset(program)\n arc56Pc = errorDetails.pc - cblocksOffset\n }\n\n // Find the source info for this PC and get the error message\n const sourceInfo = programSourceInfo?.sourceInfo.find((s) => s.pc.includes(arc56Pc))\n const errorMessage = sourceInfo?.errorMessage\n\n // If we have the source we can display the TEAL in the error message\n if (appSpec.source) {\n let getLineForPc = (inputPc: number) => sourceMap?.getLocationForPc?.(inputPc)?.line\n\n // If the SourceMap is not defined, we need to provide our own function for going from a PC to TEAL based on ARC56 SourceInfo[]\n if (sourceMap === undefined) {\n getLineForPc = (inputPc: number) => {\n const teal = programSourceInfo?.sourceInfo.find((s) => s.pc.includes(inputPc - cblocksOffset))?.teal\n if (teal === undefined) return undefined\n return teal - 1\n }\n }\n e = new LogicError(\n errorDetails,\n Buffer.from(isClearStateProgram ? appSpec.source.clear : appSpec.source.approval, 'base64')\n .toString()\n .split('\\n'),\n getLineForPc,\n )\n }\n if (errorMessage) {\n const appId = asJson(e).match(/(?<=app=)\\d+/)?.[0] || ''\n const txId = asJson(e).match(/(?<=transaction )\\S+(?=:)/)?.[0]\n const error = new Error(`Runtime error when executing ${appSpec.name} (appId: ${appId}) in transaction ${txId}: ${errorMessage}`)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(error as any).cause = e\n return error\n }\n\n return e\n }\n\n /**\n * Compiles the approval and clear state programs (if TEAL templates provided),\n * performing any provided deploy-time parameter replacement and returns\n * the compiled code and any compilation results (including source maps).\n *\n * If no TEAL templates provided it will use any byte code provided in the app spec.\n *\n * Will store any generated source maps for later use in debugging.\n * @param appSpec The app spec for the app\n * @param appManager The app manager to use for compilation\n * @param compilation Any compilation parameters to use\n * @returns The compiled code and any compilation results (including source maps)\n */\n public static async compile(\n appSpec: Arc56Contract,\n appManager: AppManager,\n compilation?: AppClientCompilationParams,\n ): Promise<AppClientCompilationResult> {\n const { deployTimeParams, updatable, deletable } = compilation ?? {}\n\n if (!appSpec.source) {\n if (!appSpec.byteCode?.approval || !appSpec.byteCode?.clear) {\n throw new Error(`Attempt to compile app ${appSpec.name} without source or byteCode`)\n }\n\n return {\n approvalProgram: Buffer.from(appSpec.byteCode.approval, 'base64') as Uint8Array,\n clearStateProgram: Buffer.from(appSpec.byteCode.clear, 'base64') as Uint8Array,\n }\n }\n\n const approvalTemplate = Buffer.from(appSpec.source.approval, 'base64').toString('utf-8')\n const compiledApproval = await appManager.compileTealTemplate(approvalTemplate, deployTimeParams, {\n updatable,\n deletable,\n })\n\n const clearTemplate = Buffer.from(appSpec.source.clear, 'base64').toString('utf-8')\n const compiledClear = await appManager.compileTealTemplate(clearTemplate, deployTimeParams)\n\n if (Config.debug) {\n await Config.events.emitAsync(EventType.AppCompiled, {\n sources: [\n { compiledTeal: compiledApproval, appName: appSpec.name, fileName: 'approval' },\n { compiledTeal: compiledClear, appName: appSpec.name, fileName: 'clear' },\n ],\n })\n }\n\n return {\n approvalProgram: compiledApproval.compiledBase64ToBytes,\n compiledApproval,\n clearStateProgram: compiledClear.compiledBase64ToBytes,\n compiledClear,\n }\n }\n\n /**\n * Returns ABI method arguments ready for a method call params object with default values populated\n * and structs replaced with tuples.\n *\n * It does this by replacing any `undefined` values with the equivalent default value from the given ARC-56 app spec.\n * @param methodNameOrSignature The method name or method signature to call if an ABI call is being emitted.\n * e.g. `my_method` or `my_method(unit64,string)bytes`\n * @param args The arguments to the method with `undefined` for any that should be populated with a default value\n */\n private async getABIArgsWithDefaultValues(\n methodNameOrSignature: string,\n args: AppClientMethodCallParams['args'] | undefined,\n sender: Address | string,\n ): Promise<AppMethodCall<CommonAppCallParams>['args']> {\n const m = getArc56Method(methodNameOrSignature, this._appSpec)\n return await Promise.all(\n args?.map(async (a, i) => {\n const arg = m.args[i]\n if (!arg) {\n throw new Error(`Unexpected arg at position ${i}. ${m.name} only expects ${m.args.length} args`)\n }\n if (a !== undefined) {\n // If a struct then convert to tuple for the underlying call\n return arg.struct && typeof a === 'object' && !Array.isArray(a)\n ? getABITupleFromABIStruct(a as ABIStruct, this._appSpec.structs[arg.struct], this._appSpec.structs)\n : (a as ABIValue | AppMethodCallTransactionArgument)\n }\n const defaultValue = arg.defaultValue\n if (defaultValue) {\n switch (defaultValue.source) {\n case 'literal':\n return getABIDecodedValue(\n Buffer.from(defaultValue.data, 'base64'),\n m.method.args[i].defaultValue?.type ?? m.method.args[i].type,\n this._appSpec.structs,\n ) as ABIValue\n case 'method': {\n const method = this.getABIMethod(defaultValue.data)\n const result = await this.send.call({\n method: defaultValue.data,\n args: method.args.map(() => undefined),\n sender,\n })\n\n if (result.return === undefined) {\n throw new Error('Default value method call did not return a value')\n }\n if (\n typeof result.return === 'object' &&\n !(result.return instanceof Uint8Array) &&\n !Array.isArray(result.return) &&\n !(result.return instanceof Address)\n ) {\n return getABITupleFromABIStruct(result.return, this._appSpec.structs[method.returns.struct!], this._appSpec.structs)\n }\n return result.return\n }\n case 'local':\n case 'global': {\n const state = defaultValue.source === 'global' ? await this.getGlobalState() : await this.getLocalState(sender)\n const value = Object.values(state).find((s) => s.keyBase64 === defaultValue.data)\n if (!value) {\n throw new Error(\n `Preparing default value for argument ${arg.name ?? `arg${i + 1}`} resulted in the failure: The key '${defaultValue.data}' could not be found in ${defaultValue.source} storage`,\n )\n }\n return 'valueRaw' in value\n ? (getABIDecodedValue(\n value.valueRaw,\n m.method.args[i].defaultValue?.type ?? m.method.args[i].type,\n this._appSpec.structs,\n ) as ABIValue)\n : value.value\n }\n case 'box': {\n const value = await this.getBoxValue(Buffer.from(defaultValue.data, 'base64'))\n return getABIDecodedValue(\n value,\n m.method.args[i].defaultValue?.type ?? m.method.args[i].type,\n this._appSpec.structs,\n ) as ABIValue\n }\n }\n }\n if (!algosdk.abiTypeIsTransaction(arg.type)) {\n throw new Error(`No value provided for required argument ${arg.name ?? `arg${i + 1}`} in call to method ${m.name}`)\n }\n }) ?? [],\n )\n }\n\n private getBareParamsMethods() {\n return {\n /** Return params for an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams) => {\n return this.getBareParams(\n {\n ...params,\n ...(await this.compile(params)),\n },\n OnApplicationComplete.UpdateApplicationOC,\n ) as AppUpdateParams\n },\n /** Return params for an opt-in call */\n optIn: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.OptInOC) as AppCallParams\n },\n /** Return params for a delete call */\n delete: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.DeleteApplicationOC) as AppDeleteParams\n },\n /** Return params for a clear state call */\n clearState: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.ClearStateOC) as AppCallParams\n },\n /** Return params for a close out call */\n closeOut: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.CloseOutOC) as AppCallParams\n },\n /** Return params for a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete) => {\n return this.getBareParams(params, params?.onComplete ?? OnApplicationComplete.NoOpOC) as AppCallParams\n },\n }\n }\n\n private getBareCreateTransactionMethods() {\n return {\n /** Returns a transaction for an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams) => {\n return this._algorand.createTransaction.appUpdate(await this.params.bare.update(params))\n },\n /** Returns a transaction for an opt-in call */\n optIn: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.optIn(params))\n },\n /** Returns a transaction for a delete call */\n delete: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appDelete(this.params.bare.delete(params))\n },\n /** Returns a transaction for a clear state call */\n clearState: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.clearState(params))\n },\n /** Returns a transaction for a close out call */\n closeOut: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.closeOut(params))\n },\n /** Returns a transaction for a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete) => {\n return this._algorand.createTransaction.appCall(this.params.bare.call(params))\n },\n }\n }\n\n private getBareSendMethods() {\n return {\n /** Signs and sends an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams & SendParams) => {\n const compiled = await this.compile(params)\n return {\n ...(await this._algorand.send.appUpdate(await this.params.bare.update(params))),\n ...(compiled as Partial<AppCompilationResult>),\n }\n },\n /** Signs and sends an opt-in call */\n optIn: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.optIn(params))\n },\n /** Signs and sends a delete call */\n delete: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appDelete(this.params.bare.delete(params))\n },\n /** Signs and sends a clear state call */\n clearState: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.clearState(params))\n },\n /** Signs and sends a close out call */\n closeOut: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.closeOut(params))\n },\n /** Signs and sends a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.call(params))\n },\n }\n }\n\n private getMethodCallParamsMethods() {\n return {\n /**\n * Return params for a payment transaction to fund the app account\n * @param params The parameters for the fund app accont payment transaction\n * @returns The parameters which can be used to create a fund app account payment transaction\n */\n fundAppAccount: (params: FundAppParams) => {\n return {\n ...params,\n sender: this.getSender(params.sender),\n signer: this.getSigner(params.sender, params.signer),\n receiver: this.appAddress,\n } satisfies PaymentParams\n },\n /**\n * Return params for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The parameters which can be used to create an update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams) => {\n return (await this.getABIParams(\n {\n ...params,\n ...(await this.compile(params)),\n },\n OnApplicationComplete.UpdateApplicationOC,\n )) satisfies AppUpdateMethodCall\n },\n /**\n * Return params for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The parameters which can be used to create an opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.OptInOC)) as AppCallMethodCall\n },\n /**\n * Return params for an delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The parameters which can be used to create a delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.DeleteApplicationOC)) as AppDeleteMethodCall\n },\n /** Return params for an close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The parameters which can be used to create a close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.CloseOutOC)) as AppCallMethodCall\n },\n /** Return params for an ABI call\n * @param params The parameters for the ABI method call\n * @returns The parameters which can be used to create an ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete) => {\n return (await this.getABIParams(params, params.onComplete ?? OnApplicationComplete.NoOpOC)) as AppCallMethodCall\n },\n }\n }\n\n private getMethodCallSendMethods() {\n return {\n /** Sign and send transactions for a payment transaction to fund the app account\n * @param params The parameters for the fund app account payment transaction\n * @returns The result of send the fund app account payment transaction\n */\n fundAppAccount: (params: FundAppParams & SendParams) => {\n return this._algorand.send.payment(this.params.fundAppAccount(params))\n },\n /**\n * Sign and send transactions for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The result of sending the update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams & SendParams) => {\n const compiled = await this.compile(params)\n return {\n ...(await this.processMethodCallReturn(\n this._algorand.send.appUpdateMethodCall(await this.params.update({ ...params })),\n getArc56Method(params.method, this._appSpec),\n )),\n ...(compiled as Partial<AppCompilationResult>),\n }\n },\n /**\n * Sign and send transactions for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The result of sending the opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(\n this._algorand.send.appCallMethodCall(await this.params.optIn(params)),\n getArc56Method(params.method, this._appSpec),\n )\n },\n /**\n * Sign and send transactions for a delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The result of sending the delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(\n this._algorand.send.appDeleteMethodCall(await this.params.delete(params)),\n getArc56Method(params.method, this._appSpec),\n )\n },\n /**\n * Sign and send transactions for a close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The result of sending the close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(\n this._algorand.send.appCallMethodCall(await this.params.closeOut(params)),\n getArc56Method(params.method, this._appSpec),\n )\n },\n /**\n * Sign and send transactions for a call (defaults to no-op)\n * @param params The parameters for the ABI method call\n * @returns The result of sending the ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete & SendParams) => {\n // Read-only call - do it via simulate\n if (\n (params.onComplete === OnApplicationComplete.NoOpOC || !params.onComplete) &&\n getArc56Method(params.method, this._appSpec).method.readonly\n ) {\n const readonlyParams = {\n ...params,\n }\n\n // Read-only calls do not require fees to be paid, as they are only simulated on the network.\n // With maximum opcode budget provided, ensure_budget (and similar op-up utilities) won't need to create inner transactions,\n // so fee coverage for op-up inner transactions does not need to be accounted for in readonly calls.\n // If max_fee is provided, use it as static_fee, as there may still be inner transactions sent which need to be covered by the outermost transaction,\n // even though ARC-22 specifies that readonly methods should not send inner transactions.\n if (params.coverAppCallInnerTransactionFees && params.maxFee) {\n readonlyParams.staticFee = params.maxFee\n readonlyParams.extraFee = undefined\n }\n\n try {\n const result = await this._algorand\n .newGroup()\n .addAppCallMethodCall(await this.params.call(readonlyParams))\n .simulate({\n allowUnnamedResources: params.populateAppCallResources ?? true,\n // Simulate calls for a readonly method shouldn't invoke signing\n skipSignatures: true,\n // Simulate calls for a readonly method can use the max opcode budget\n extraOpcodeBudget: MAX_SIMULATE_OPCODE_BUDGET,\n })\n return this.processMethodCallReturn(\n {\n ...result,\n transaction: result.transactions.at(-1)!,\n confirmation: result.confirmations.at(-1)!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n return: (result.returns?.length ?? 0 > 0) ? result.returns?.at(-1)! : undefined,\n } satisfies SendAppTransactionResult,\n getArc56Method(params.method, this._appSpec),\n )\n } catch (e) {\n const error = e as Error\n // For read-only calls with max opcode budget, fee issues should be rare\n // but we can still provide helpful error message if they occur\n if (params.coverAppCallInnerTransactionFees && error && error.message && error.message.match(/fee too small/)) {\n throw Error(`Fees were too small. You may need to increase the transaction maxFee.`)\n }\n throw e\n }\n }\n\n return this.processMethodCallReturn(\n this._algorand.send.appCallMethodCall(await this.params.call(params)),\n getArc56Method(params.method, this._appSpec),\n )\n },\n }\n }\n\n private getMethodCallCreateTransactionMethods() {\n return {\n /** Return transaction for a payment transaction to fund the app account\n * @param params The parameters for the fund app account payment transaction\n * @returns A transaction which can be used to fund the app account\n */\n fundAppAccount: (params: FundAppParams) => {\n return this._algorand.createTransaction.payment(this.params.fundAppAccount(params))\n },\n /**\n * Return transactions for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The transactions which can be used to create an update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams) => {\n return this._algorand.createTransaction.appUpdateMethodCall(await this.params.update(params))\n },\n /**\n * Return transactions for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The transactions which can be used to create an opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.optIn(params))\n },\n /**\n * Return transactions for a delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The transactions which can be used to create a delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appDeleteMethodCall(await this.params.delete(params))\n },\n /**\n * Return transactions for a close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The transactions which can be used to create a close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.closeOut(params))\n },\n /**\n * Return transactions for an ABI call (defaults to no-op)\n * @param params The parameters for the ABI method call\n * @returns The transactions which can be used to create an ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.call(params))\n },\n }\n }\n\n /** Returns the sender for a call, using the provided sender or using the `defaultSender`\n * if none provided and throws an error if neither provided */\n private getSender(sender: Address | string | undefined): Address {\n if (!sender && !this._defaultSender) {\n throw new Error(`No sender provided and no default sender present in app client for call to app ${this._appName}`)\n }\n return typeof sender === 'string' ? Address.fromString(sender) : (sender ?? this._defaultSender!)\n }\n\n /** Returns the signer for a call, using the provided signer or the `defaultSigner`\n * if no signer was provided and the sender resolves to the default sender, the call will use default signer\n * or `undefined` otherwise (so the signer is resolved from `AlgorandClient`) */\n private getSigner(\n sender: Address | string | undefined,\n signer: TransactionSigner | TransactionSignerAccount | undefined,\n ): TransactionSigner | TransactionSignerAccount | undefined {\n return signer ?? (!sender || sender === this._defaultSender ? this._defaultSigner : undefined)\n }\n\n private getBareParams<\n TParams extends { sender?: Address | string; signer?: TransactionSigner | TransactionSignerAccount } | undefined,\n TOnComplete extends OnApplicationComplete,\n >(params: TParams, onComplete: TOnComplete) {\n return {\n ...params,\n appId: this._appId,\n sender: this.getSender(params?.sender),\n signer: this.getSigner(params?.sender, params?.signer),\n onComplete,\n }\n }\n\n private async getABIParams<\n TParams extends {\n method: string\n sender?: Address | string\n signer?: TransactionSigner | TransactionSignerAccount\n args?: AppClientMethodCallParams['args']\n },\n TOnComplete extends OnApplicationComplete,\n >(params: TParams, onComplete: TOnComplete) {\n const sender = this.getSender(params.sender)\n const method = getArc56Method(params.method, this._appSpec)\n const args = await this.getABIArgsWithDefaultValues(params.method, params.args, sender)\n return {\n ...params,\n appId: this._appId,\n sender: sender,\n signer: this.getSigner(params.sender, params.signer),\n method,\n onComplete,\n args,\n }\n }\n\n /** Make the given call and catch any errors, augmenting with debugging information before re-throwing. */\n private handleCallErrors = async (e: Error & { sentTransactions?: algosdk.Transaction[] }) => {\n // We can't use the app ID in an error to identify new apps, so instead we check the programs\n // to identify if this is the correct app\n if (this.appId === 0n) {\n if (e.sentTransactions === undefined) return e\n\n const txns = e.sentTransactions\n\n const txn = txns.find((t) => e.message.includes(t.txID()))\n\n const programsDefinedAndEqual = (a: Uint8Array | undefined, b: Uint8Array | undefined) => {\n if (a === undefined || b === undefined) return false\n if (a.length !== b.length) return false\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false\n }\n\n return true\n }\n\n if (\n !programsDefinedAndEqual(txn?.applicationCall?.clearProgram, this._lastCompiled.clear) ||\n !programsDefinedAndEqual(txn?.applicationCall?.approvalProgram, this._lastCompiled?.approval)\n ) {\n return e\n }\n } else {\n // Only handle errors for this app.\n const appIdString = `app=${this._appId.toString()}`\n if (!e.message.includes(appIdString)) return e\n }\n\n const logicError = await this.exposeLogicError(e)\n if (logicError instanceof LogicError) {\n let currentLine = logicError.teal_line - logicError.lines - 1\n const stackWithLines = logicError.stack\n ?.split('\\n')\n .map((line) => `${(currentLine += 1)}: ${line}`)\n .join('\\n')\n Config.logger.error(`${logicError.message}\\n\\n${stackWithLines}`)\n }\n\n return logicError\n }\n\n private getBoxMethods() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this\n const stateMethods = {\n /**\n * Returns all single-key state values in a record keyed by the key name and the value a decoded ABI value.\n */\n getAll: async () => {\n return Object.fromEntries(\n await Promise.all(Object.keys(that._appSpec.state.keys.box).map(async (key) => [key, await stateMethods.getValue(key)])),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as Record<string, any>\n },\n /**\n * Returns a single state value for the current app with the value a decoded ABI value.\n * @param name The name of the state value to retrieve the value for\n * @returns\n */\n getValue: async (name: string) => {\n const metadata = that._appSpec.state.keys.box[name]\n const value = await that.getBoxValue(Buffer.from(metadata.key, 'base64'))\n return getABIDecodedValue(value, metadata.valueType, that._appSpec.structs)\n },\n /**\n *\n * @param mapName The name of the map to read from\n * @param key The key within the map (without any map prefix) as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getMapValue: async (mapName: string, key: Uint8Array | any) => {\n const metadata = that._appSpec.state.maps.box[mapName]\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const encodedKey = Buffer.concat([prefix, getABIEncodedValue(key, metadata.keyType, that._appSpec.structs)])\n const base64Key = Buffer.from(encodedKey).toString('base64')\n const value = await that.getBoxValue(Buffer.from(base64Key, 'base64'))\n return getABIDecodedValue(value, metadata.valueType, that._appSpec.structs)\n },\n\n /**\n *\n * @param mapName The name of the map to read from\n * @param key The key within the map as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n * @param appState\n */\n getMap: async (mapName: string) => {\n const metadata = that._appSpec.state.maps.box[mapName]\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const boxNames = await that.getBoxNames()\n\n return new Map(\n await Promise.all(\n boxNames\n .filter((b) => binaryStartsWith(b.nameRaw, prefix))\n .map(async (b) => {\n return [\n getABIDecodedValue(b.nameRaw.slice(prefix.length), metadata.keyType, that._appSpec.structs),\n getABIDecodedValue(await that.getBoxValue(b.nameRaw), metadata.valueType, that._appSpec.structs),\n ] as const\n }),\n ),\n )\n },\n }\n return stateMethods\n }\n\n private getStateMethods(\n stateGetter: () => Promise<AppState>,\n keyGetter: () => {\n [name: string]: StorageKey\n },\n mapGetter: () => {\n [name: string]: StorageMap\n },\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this\n const stateMethods = {\n /**\n * Returns all single-key state values in a record keyed by the key name and the value a decoded ABI value.\n */\n getAll: async () => {\n const appState = await stateGetter()\n return Object.fromEntries(\n await Promise.all(Object.keys(keyGetter()).map(async (key) => [key, await stateMethods.getValue(key, appState)])),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as Record<string, any>\n },\n /**\n * Returns a single state value for the current app with the value a decoded ABI value.\n * @param name The name of the state value to retrieve the value for\n * @param appState Optional cached value of the current state\n * @returns\n */\n getValue: async (name: string, appState?: AppState) => {\n const state = Object.values(appState ?? (await stateGetter()))\n const metadata = keyGetter()[name]\n\n if (metadata === undefined) throw new Error(`Attempted to get state value ${name}, but it does not exist`)\n const value = state.find((s) => s.keyBase64 === metadata.key)\n\n if (value && 'valueRaw' in value) {\n return getABIDecodedValue(value.valueRaw, metadata.valueType, that._appSpec.structs)\n }\n\n return value?.value\n },\n /**\n * Returns a single value from the given map for the current app with the value a decoded ABI value.\n * @param mapName The name of the map to read from\n * @param key The key within the map (without any map prefix) as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n * @param appState Optional cached value of the current state\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getMapValue: async (mapName: string, key: Uint8Array | any, appState?: AppState) => {\n const state = Object.values(appState ?? (await stateGetter()))\n const metadata = mapGetter()[mapName]\n\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const encodedKey = Buffer.concat([prefix, getABIEncodedValue(key, metadata.keyType, that._appSpec.structs)])\n const base64Key = Buffer.from(encodedKey).toString('base64')\n const value = state.find((s) => s.keyBase64 === base64Key)\n\n if (value && 'valueRaw' in value) {\n return getABIDecodedValue(value.valueRaw, metadata.valueType, that._appSpec.structs)\n }\n\n return value?.value\n },\n\n /**\n * Returns all map values for the given map.\n * @param mapName The name of the map to read from\n * @param appState Optional cached value of the current state\n * @returns A map of all key-value pairs in the map as a `Record<string, ABIValue>`\n */\n getMap: async (mapName: string) => {\n const state = Object.values(await stateGetter())\n const metadata = mapGetter()[mapName]\n\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n\n return new Map(\n state\n .filter((s) => binaryStartsWith(s.keyRaw, prefix))\n .map((s) => {\n const key = s.keyRaw.slice(prefix.length)\n return [\n getABIDecodedValue(key, metadata.keyType, this._appSpec.structs),\n getABIDecodedValue('valueRaw' in s ? s.valueRaw : s.value, metadata.valueType, this._appSpec.structs),\n ] as const\n }),\n )\n },\n }\n return stateMethods\n }\n}\n\n/**\n * @deprecated Use `AppClient` instead e.g. via `algorand.client.getAppClientById` or\n * `algorand.client.getAppClientByCreatorAndName`.\n * If you want to `create` or `deploy` then use `AppFactory` e.g. via `algorand.client.getAppFactory`,\n * which will in turn give you an `AppClient` instance against the created/deployed app to make other calls.\n *\n * Application client - a class that wraps an ARC-0032 app spec and provides high productivity methods to deploy and call the app */\nexport class ApplicationClient {\n private algod: Algodv2\n private indexer?: algosdk.Indexer\n private appSpec: AppSpec\n private sender: SendTransactionFrom | undefined\n private params: SuggestedParams | undefined\n private existingDeployments: LegacyAppLookup | undefined\n private deployTimeParams?: TealTemplateParams\n\n private _appId: number | bigint\n private _appAddress: string\n private _creator: string | undefined\n private _appName: string\n\n private _approvalSourceMap: SourceMap | undefined\n private _clearSourceMap: SourceMap | undefined\n\n /**\n * @deprecated Use `AppClient` instead e.g. via `algorand.client.getAppClientById` or\n * `algorand.client.getAppClientByCreatorAndName`.\n * If you want to `create` or `deploy` then use `AppFactory` e.g. via `algorand.client.getAppFactory`,\n * which will in turn give you an `AppClient` instance against the created/deployed app to make other calls.\n *\n * Create a new ApplicationClient instance\n * @param appDetails The details of the app\n * @param algod An algod instance\n */\n constructor(appDetails: AppSpecAppDetails, algod: Algodv2) {\n const { app, sender, params, deployTimeParams, ...appIdentifier } = appDetails\n this.algod = algod\n this.appSpec = typeof app == 'string' ? (JSON.parse(app) as AppSpec) : app\n this._appName = appIdentifier.name ?? this.appSpec.contract.name\n this.deployTimeParams = deployTimeParams\n\n if (appIdentifier.resolveBy === 'id') {\n if (appIdentifier.id < 0) {\n throw new Error(`Attempt to create application client with invalid app id of ${appIdentifier.id}`)\n }\n this._appId = appIdentifier.id\n } else {\n this._appId = 0\n this._creator = appIdentifier.creatorAddress?.toString()\n if (appIdentifier.findExistingUsing instanceof Indexer) {\n this.indexer = appIdentifier.findExistingUsing\n } else {\n if (appIdentifier.findExistingUsing.creator !== this._creator) {\n throw new Error(\n `Attempt to create application client with invalid existingDeployments against a different creator (${appIdentifier.findExistingUsing.creator}) instead of expected creator ${this._creator}`,\n )\n }\n this.existingDeployments = appIdentifier.findExistingUsing\n }\n }\n\n this._appAddress = algosdk.getApplicationAddress(this._appId).toString()\n this.sender = sender\n this.params = params\n }\n\n /**\n * @deprecated Use `AppClient.compile()` instead.\n *\n * Compiles the approval and clear state programs and sets up the source map.\n * @param compilation The deploy-time parameters for the compilation\n * @returns The compiled approval and clear state programs\n */\n async compile(compilation?: AppClientCompilationParams) {\n const { deployTimeParams, updatable, deletable } = compilation ?? {}\n const approvalTemplate = Buffer.from(this.appSpec.source.approval, 'base64').toString('utf-8')\n const approval = replaceDeployTimeControlParams(\n performTemplateSubstitution(approvalTemplate, deployTimeParams ?? this.deployTimeParams),\n {\n updatable,\n deletable,\n },\n )\n const approvalCompiled = await compileTeal(approval, this.algod)\n this._approvalSourceMap = approvalCompiled?.sourceMap\n const clearTemplate = Buffer.from(this.appSpec.source.clear, 'base64').toString('utf-8')\n const clear = performTemplateSubstitution(clearTemplate, deployTimeParams ?? this.deployTimeParams)\n const clearCompiled = await compileTeal(clear, this.algod)\n this._clearSourceMap = clearCompiled?.sourceMap\n\n if (Config.debug) {\n await Config.events.emitAsync(EventType.AppCompiled, {\n sources: [\n { compiledTeal: approvalCompiled, appName: this._appName, fileName: 'approval' },\n { compiledTeal: clearCompiled, appName: this._appName, fileName: 'clear' },\n ],\n })\n }\n\n return { approvalCompiled, clearCompiled }\n }\n\n /**\n * Export the current source maps for the app.\n * @returns The source maps\n */\n exportSourceMaps(): AppSourceMaps {\n if (!this._approvalSourceMap || !this._clearSourceMap) {\n throw new Error(\n \"Unable to export source maps; they haven't been loaded into this client - you need to call create, update, or deploy first\",\n )\n }\n\n return {\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n }\n }\n\n /**\n * Import source maps for the app.\n * @param sourceMaps The source maps to import\n */\n importSourceMaps(sourceMaps: AppSourceMaps) {\n this._approvalSourceMap = new SourceMap(sourceMaps.approvalSourceMap)\n this._clearSourceMap = new SourceMap(sourceMaps.clearSourceMap)\n }\n\n /**\n * @deprecated Use `deploy` from an `AppFactory` instance instead.\n *\n * Idempotently deploy (create, update/delete if changed) an app against the given name via the given creator account, including deploy-time template placeholder substitutions.\n *\n * To understand the architecture decisions behind this functionality please see https://github.com/algorandfoundation/algokit-cli/blob/main/docs/architecture-decisions/2023-01-12_smart-contract-deployment.md\n *\n * **Note:** if there is a breaking state schema change to an existing app (and `onSchemaBreak` is set to `'replace'`) the existing app will be deleted and re-created.\n *\n * **Note:** if there is an update (different TEAL code) to an existing app (and `onUpdate` is set to `'replace'`) the existing app will be deleted and re-created.\n * @param deploy Deployment details\n * @returns The metadata and transaction result(s) of the deployment, or just the metadata if it didn't need to issue transactions\n */\n async deploy(deploy?: AppClientDeployParams) {\n const {\n schema,\n sender: deploySender,\n version,\n allowUpdate,\n allowDelete,\n sendParams,\n createArgs,\n createOnCompleteAction,\n updateArgs,\n deleteArgs,\n ...deployArgs\n } = deploy ?? {}\n\n if (this._appId !== 0) {\n throw new Error(`Attempt to deploy app which already has an app id of ${this._appId}`)\n }\n const sender = deploySender ?? this.sender\n if (!sender) {\n throw new Error('No sender provided, unable to deploy app')\n }\n const from = sender ?? this.sender!\n\n if (!this._creator) {\n throw new Error(\"Attempt to `deploy` a contract without specifying `resolveBy: 'creatorAndName'` in the constructor\")\n }\n if (this._creator !== getSenderAddress(from)) {\n throw new Error(\n `Attempt to deploy contract with a sender address (${getSenderAddress(\n from,\n )}) that differs from the given creator address for this application client: ${this._creator}`,\n )\n }\n\n const approval = Buffer.from(this.appSpec.source.approval, 'base64').toString('utf-8')\n\n const compilation = {\n deployTimeParams: deployArgs.deployTimeParams,\n updatable:\n allowUpdate !== undefined\n ? allowUpdate\n : getDeployTimeControl(approval, this.appSpec, UPDATABLE_TEMPLATE_NAME, 'update_application'),\n deletable:\n allowDelete !== undefined\n ? allowDelete\n : getDeployTimeControl(approval, this.appSpec, DELETABLE_TEMPLATE_NAME, 'delete_application'),\n }\n\n const { approvalCompiled, clearCompiled } = await this.compile(compilation)\n\n try {\n await this.getAppReference()\n const result = await deployApp(\n {\n from: sender,\n approvalProgram: approvalCompiled.compiledBase64ToBytes,\n clearStateProgram: clearCompiled.compiledBase64ToBytes,\n metadata: {\n name: this._appName,\n version: version ?? '1.0',\n updatable: compilation.updatable,\n deletable: compilation.deletable,\n },\n schema: {\n globalByteSlices: this.appSpec.state.global.num_byte_slices,\n globalInts: this.appSpec.state.global.num_uints,\n localByteSlices: this.appSpec.state.local.num_byte_slices,\n localInts: this.appSpec.state.local.num_uints,\n ...schema,\n },\n transactionParams: this.params,\n ...(sendParams ?? {}),\n existingDeployments: this.existingDeployments,\n createArgs: await this.getCallArgs(createArgs, sender),\n createOnCompleteAction: createOnCompleteAction,\n updateArgs: await this.getCallArgs(updateArgs, sender),\n deleteArgs: await this.getCallArgs(deleteArgs, sender),\n ...deployArgs,\n },\n this.algod,\n this.indexer,\n )\n\n // Nothing needed to happen\n if (result.operationPerformed === 'nothing') {\n return result\n }\n\n if (!this.existingDeployments) {\n throw new Error('Expected existingDeployments to be present')\n }\n const { transaction, confirmation, operationPerformed, ...appMetadata } = result\n this.existingDeployments = {\n creator: this.existingDeployments.creator,\n apps: { ...this.existingDeployments.apps, [this._appName]: appMetadata },\n }\n\n return { ...result, ...({ compiledApproval: approvalCompiled, compiledClear: clearCompiled } as AppCompilationResult) }\n } catch (e) {\n throw this.exposeLogicError(e as Error)\n }\n }\n\n /**\n * @deprecated Use `create` from an `AppFactory` instance instead.\n *\n * Creates a smart contract app, returns the details of the created app.\n * @param create The parameters to create the app with\n * @returns The details of the created app, or the transaction to create it if `skipSending` and the compilation result\n */\n async create(create?: AppClientCreateParams) {\n const {\n sender: createSender,\n note,\n sendParams,\n deployTimeParams,\n updatable,\n deletable,\n onCompleteAction,\n schema,\n ...args\n } = create ?? {}\n\n if (this._appId !== 0) {\n throw new Error(`Attempt to create app which already has an app id of ${this._appId}`)\n }\n\n const sender = createSender ?? this.sender\n if (!sender) {\n throw new Error('No sender provided, unable to create app')\n }\n\n const { approvalCompiled, clearCompiled } = await this.compile(create)\n\n try {\n const result = await createApp(\n {\n from: sender,\n approvalProgram: approvalCompiled.compiledBase64ToBytes,\n clearStateProgram: clearCompiled.compiledBase64ToBytes,\n schema: {\n globalByteSlices: this.appSpec.state.global.num_byte_slices,\n globalInts: this.appSpec.state.global.num_uints,\n localByteSlices: this.appSpec.state.local.num_byte_slices,\n localInts: this.appSpec.state.local.num_uints,\n ...schema,\n },\n onCompleteAction,\n args: await this.getCallArgs(args, sender),\n note: note,\n transactionParams: this.params,\n ...(sendParams ?? {}),\n },\n this.algod,\n )\n\n if (result.confirmation) {\n this._appId = result.confirmation.applicationIndex!\n this._appAddress = getApplicationAddress(this._appId).toString()\n }\n\n return { ...result, ...({ compiledApproval: approvalCompiled, compiledClear: clearCompiled } as AppCompilationResult) }\n } catch (e) {\n throw await this.exposeLogicError(e as Error)\n }\n }\n\n /**\n * @deprecated Use `appClient.send.update` or `appClient.createTransaction.update` from an `AppClient` instance instead.\n *\n * Updates the smart contract app.\n * @param update The parameters to update the app with\n * @returns The transaction send result and the compilation result\n */\n async update(update?: AppClientUpdateParams) {\n const { sender: updateSender, note, sendParams, deployTimeParams, updatable, deletable, ...args } = update ?? {}\n\n if (this._appId === 0) {\n throw new Error(`Attempt to update app which doesn't have an app id defined`)\n }\n const sender = updateSender ?? this.sender\n if (!sender) {\n throw new Error('No sender provided, unable to create app')\n }\n\n const { approvalCompiled, clearCompiled } = await this.compile(update)\n\n try {\n const result = await updateApp(\n {\n appId: this._appId,\n from: sender,\n approvalProgram: approvalCompiled.compiledBase64ToBytes,\n clearStateProgram: clearCompiled.compiledBase64ToBytes,\n args: await this.getCallArgs(args, sender),\n note: note,\n transactionParams: this.params,\n ...(sendParams ?? {}),\n },\n this.algod,\n )\n\n return { ...result, ...({ compiledApproval: approvalCompiled, compiledClear: clearCompiled } as AppCompilationResult) }\n } catch (e) {\n throw await this.exposeLogicError(e as Error)\n }\n }\n\n /**\n * @deprecated Use `appClient.send.call` or `appClient.createTransaction.call` from an `AppClient` instance instead.\n *\n * Issues a no_op (normal) call to the app.\n * @param call The call details.\n * @returns The result of the call\n */\n async call(call?: AppClientCallParams) {\n if (\n // ABI call\n call?.method &&\n // We aren't skipping the send\n !call.sendParams?.skipSending &&\n // There isn't an ATC passed in\n !call.sendParams?.atc &&\n // The method is readonly\n this.appSpec.hints[this.getABIMethodSignature(this.getABIMethod(call.method)!)].read_only\n ) {\n const atc = new AtomicTransactionComposer()\n await this.callOfType({ ...call, sendParams: { ...call.sendParams, atc } }, 'no_op')\n const result = await atc.simulate(this.algod)\n if (result.simulateResponse.txnGroups.some((group) => group.failureMessage)) {\n throw new Error(result.simulateResponse.txnGroups.find((x) => x.failureMessage)?.failureMessage)\n }\n const txns = atc.buildGroup()\n return {\n transaction: txns[txns.length - 1].txn,\n confirmation: result.simulateResponse.txnGroups[0].txnResults.at(-1)?.txnResult,\n confirmations: result.simulateResponse.txnGroups[0].txnResults.map((t) => t.txnResult),\n transactions: txns.map((t) => t.txn),\n return: (result.methodResults?.length ?? 0 > 0) ? (result.methodResults[result.methodResults.length - 1] as ABIReturn) : undefined,\n } satisfies AppCallTransactionResult\n }\n\n return await this.callOfType(call, 'no_op')\n }\n\n /**\n * @deprecated Use `appClient.send.optIn` or `appClient.createTransaction.optIn` from an `AppClient` instance instead.\n *\n * Issues a opt_in call to the app.\n * @param call The call details.\n * @returns The result of the call\n */\n async optIn(call?: AppClientCallParams) {\n return await this.callOfType(call, 'opt_in')\n }\n\n /**\n * @deprecated Use `appClient.send.closeOut` or `appClient.createTransaction.closeOut` from an `AppClient` instance instead.\n *\n * Issues a close_out call to the app.\n * @param call The call details.\n * @returns The result of the call\n */\n async closeOut(call?: AppClientCallParams) {\n return await this.callOfType(call, 'close_out')\n }\n\n /**\n * @deprecated Use `appClient.send.clearState` or `appClient.createTransaction.clearState` from an `AppClient` instance instead.\n *\n * Issues a clear_state call to the app.\n * @param call The call details.\n * @returns The result of the call\n */\n async clearState(call?: AppClientClearStateParams) {\n return await this.callOfType(call, 'clear_state')\n }\n\n /**\n * @deprecated Use `appClient.send.delete` or `appClient.createTransaction.delete` from an `AppClient` instance instead.\n *\n * Issues a delete_application call to the app.\n * @param call The call details.\n * @returns The result of the call\n */\n async delete(call?: AppClientCallParams) {\n return await this.callOfType(call, 'delete_application')\n }\n\n /**\n * @deprecated Use `appClient.send.call` or `appClient.createTransaction.call` from an `AppClient` instance instead.\n *\n * Issues a call to the app with the given call type.\n * @param call The call details.\n * @param callType The call type\n * @returns The result of the call\n */\n async callOfType(\n call: AppClientCallParams = {},\n callType: Exclude<AppCallType, 'update_application'> | Exclude<OnApplicationComplete, OnApplicationComplete.UpdateApplicationOC>,\n ) {\n const { sender: callSender, note, sendParams, ...args } = call\n\n const sender = callSender ?? this.sender\n if (!sender) {\n throw new Error('No sender provided, unable to call app')\n }\n\n const appMetadata = await this.getAppReference()\n if (appMetadata.appId === 0) {\n throw new Error(`Attempt to call an app that can't be found '${this._appName}' for creator '${this._creator}'.`)\n }\n\n try {\n return await callApp(\n {\n appId: appMetadata.appId,\n callType: callType,\n from: sender,\n args: await this.getCallArgs(args, sender),\n note: note,\n transactionParams: this.params,\n ...(sendParams ?? {}),\n },\n this.algod,\n )\n } catch (e) {\n throw this.exposeLogicError(e as Error)\n }\n }\n\n /**\n * Funds Algo into the app account for this app.\n * @param fund The parameters for the funding or the funding amount\n * @returns The result of the funding\n */\n async fundAppAccount(fund: FundAppAccountParams | AlgoAmount) {\n const { amount, sender, note, sendParams } = 'microAlgos' in fund ? ({ amount: fund } as FundAppAccountParams) : fund\n\n if (!sender && !this.sender) {\n throw new Error('No sender provided, unable to call app')\n }\n\n const ref = await this.getAppReference()\n return legacySendTransactionBridge(\n this.algod,\n sender ?? this.sender!,\n sendParams ?? {},\n {\n receiver: ref.appAddress,\n sender: getSenderAddress(sender ?? this.sender!),\n amount: amount,\n note: encodeTransactionNote(note),\n },\n (c) => c.payment,\n (c) => c.payment,\n this.params,\n )\n }\n\n /**\n * Returns global state for the current app.\n * @returns The global state\n */\n async getGlobalState(): Promise<AppState> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n return getAppGlobalState(appRef.appId, this.algod)\n }\n\n /**\n * Returns local state for the given account / account address.\n * @returns The global state\n */\n async getLocalState(account: string | SendTransactionFrom): Promise<AppState> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n return getAppLocalState(appRef.appId, account, this.algod)\n }\n\n /**\n * Returns the names of all current boxes for the current app.\n * @returns The names of the boxes\n */\n async getBoxNames(): Promise<BoxName[]> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n return await getAppBoxNames(appRef.appId, this.algod)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The name of the box to return either as a string, binary array or `BoxName`\n * @returns The current box value as a byte array\n */\n async getBoxValue(name: BoxName | string | Uint8Array): Promise<Uint8Array> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n return await getAppBoxValue(appRef.appId, name, this.algod)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The name of the box to return either as a string, binary array or `BoxName`\n * @param type\n * @returns The current box value as a byte array\n */\n async getBoxValueFromABIType(name: BoxName | string | Uint8Array, type: ABIType): Promise<ABIValue> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n return await getAppBoxValueFromABIType({ appId: appRef.appId, boxName: name, type }, this.algod)\n }\n\n /**\n * Returns the values of all current boxes for the current app.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as raw byte arrays\n */\n async getBoxValues(filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: Uint8Array }[]> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n const names = await this.getBoxNames()\n return await Promise.all(\n names\n .filter(filter ?? ((_) => true))\n .map(async (boxName) => ({ name: boxName, value: await getAppBoxValue(appRef.appId, boxName, this.algod) })),\n )\n }\n\n /**\n * Returns the values of all current boxes for the current app decoded using an ABI Type.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param type The ABI type to decode the values with\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as the ABI Value\n */\n async getBoxValuesFromABIType(type: ABIType, filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: ABIValue }[]> {\n const appRef = await this.getAppReference()\n\n if (appRef.appId === 0) {\n throw new Error('No app has been created yet, unable to get global state')\n }\n\n const names = await this.getBoxNames()\n return await Promise.all(\n names.filter(filter ?? ((_) => true)).map(async (boxName) => ({\n name: boxName,\n value: await getAppBoxValueFromABIType({ appId: appRef.appId, boxName, type }, this.algod),\n })),\n )\n }\n\n /**\n * @deprecated Use `appClient.params.*` from an `AppClient` instance instead.\n *\n * Returns the arguments for an app call for the given ABI method or raw method specification.\n * @param args The call args specific to this application client\n * @param sender The sender of this call. Will be used to fetch any default argument values if applicable\n * @returns The call args ready to pass into an app call\n */\n async getCallArgs(args: AppClientCallArgs | undefined, sender: SendTransactionFrom): Promise<AppCallArgs | undefined> {\n if (!args) {\n return undefined\n }\n\n if (args.method) {\n const abiMethod = this.getABIMethodParams(args.method)\n if (!abiMethod) {\n throw new Error(`Attempt to call ABI method ${args.method}, but it wasn't found`)\n }\n\n const methodSignature = this.getABIMethodSignature(abiMethod)\n\n return {\n ...args,\n method: abiMethod,\n methodArgs: await Promise.all(\n args.methodArgs.map(async (arg, index): Promise<ABIAppCallArg> => {\n if (arg !== undefined) return arg\n const argName = abiMethod.args[index].name\n const defaultValueStrategy = argName && this.appSpec.hints?.[methodSignature]?.default_arguments?.[argName]\n if (!defaultValueStrategy)\n throw new Error(\n `Argument at position ${index} with the name ${argName} is undefined and does not have a default value strategy`,\n )\n\n switch (defaultValueStrategy.source) {\n case 'constant':\n return defaultValueStrategy.data\n case 'abi-method': {\n const method = defaultValueStrategy.data as ABIMethodParams\n const result = await this.callOfType(\n {\n method: this.getABIMethodSignature(method),\n methodArgs: method.args.map(() => undefined),\n sender,\n },\n 'no_op',\n )\n return result.return?.returnValue\n }\n case 'local-state':\n case 'global-state': {\n const state =\n defaultValueStrategy.source === 'global-state' ? await this.getGlobalState() : await this.getLocalState(sender)\n const key = defaultValueStrategy.data\n if (key in state) {\n return state[key].value\n } else {\n throw new Error(\n `Preparing default value for argument at position ${index} with the name ${argName} resulted in the failure: The key '${key}' could not be found in ${defaultValueStrategy.source}`,\n )\n }\n }\n }\n }),\n ),\n }\n } else {\n return args as RawAppCallArgs\n }\n }\n\n /**\n * @deprecated Use `appClient.getABIMethod` instead.\n *\n * Returns the ABI Method parameters for the given method name string for the app represented by this application client instance\n * @param method Either the name of the method or the ABI method spec definition string\n * @returns The ABI method params for the given method\n */\n getABIMethodParams(method: string): ABIMethodParams | undefined {\n if (!method.includes('(')) {\n const methods = this.appSpec.contract.methods.filter((m) => m.name === method)\n if (methods.length > 1) {\n throw new Error(\n `Received a call to method ${method} in contract ${\n this._appName\n }, but this resolved to multiple methods; please pass in an ABI signature instead: ${methods\n .map(this.getABIMethodSignature)\n .join(', ')}`,\n )\n }\n return methods[0]\n }\n return this.appSpec.contract.methods.find((m) => this.getABIMethodSignature(m) === method)\n }\n\n /**\n * Returns the ABI Method for the given method name string for the app represented by this application client instance\n * @param method Either the name of the method or the ABI method spec definition string\n * @returns The ABI method for the given method\n */\n getABIMethod(method: string): ABIMethod | undefined {\n const methodParams = this.getABIMethodParams(method)\n return methodParams ? new ABIMethod(methodParams) : undefined\n }\n\n /**\n * @deprecated Use `appClient.appId` and `appClient.appAddress` from an `AppClient` instance instead.\n *\n * Gets the reference information for the current application instance.\n * `appId` will be 0 if it can't find an app.\n * @returns The app reference, or if deployed using the `deploy` method, the app metadata too\n */\n async getAppReference(): Promise<AppMetadata | AppReference> {\n if (!this.existingDeployments && this._creator) {\n this.existingDeployments = await getCreatorAppsByName(this._creator, this.indexer!)\n }\n\n if (this.existingDeployments && this._appId === 0) {\n const app = this.existingDeployments.apps[this._appName]\n if (!app) {\n return {\n appId: 0,\n appAddress: getApplicationAddress(0).toString(),\n }\n }\n return app\n }\n\n return {\n appId: this._appId,\n appAddress: this._appAddress,\n } as AppReference\n }\n\n /**\n * Takes an error that may include a logic error from a smart contract call and re-exposes the error to include source code information via the source map.\n * This is automatically used within `ApplicationClient` but if you pass `skipSending: true` e.g. if doing a group transaction\n * then you can use this in a try/catch block to get better debugging information.\n * @param e The error to parse\n * @param isClear Whether or not the code was running the clear state program\n * @returns The new error, or if there was no logic error or source map then the wrapped error with source details\n */\n exposeLogicError(e: Error, isClear?: boolean): Error {\n if ((!isClear && this._approvalSourceMap == undefined) || (isClear && this._clearSourceMap == undefined)) return e\n\n const errorDetails = LogicError.parseLogicError(e)\n\n if (errorDetails !== undefined)\n return new LogicError(\n errorDetails,\n Buffer.from(isClear ? this.appSpec.source.clear : this.appSpec.source.approval, 'base64')\n .toString()\n .split('\\n'),\n (pc: number) => (isClear ? this._clearSourceMap : this._approvalSourceMap)?.getLocationForPc(pc)?.line,\n )\n else return e\n }\n\n private getABIMethodSignature(method: ABIMethodParams | ABIMethod) {\n return 'getSignature' in method ? method.getSignature() : new ABIMethod(method).getSignature()\n }\n}\n"],"names":["LogicError","Config","Address","asJson","arc32ToArc56","getArc56Method","getArc56ReturnValue","Buffer","EventType","getABITupleFromABIStruct","getABIDecodedValue","getABIEncodedValue","binaryStartsWith","replaceDeployTimeControlParams","performTemplateSubstitution","compileTeal","getSenderAddress","UPDATABLE_TEMPLATE_NAME","DELETABLE_TEMPLATE_NAME","deployApp","createApp","updateApp","callApp","legacySendTransactionBridge","encodeTransactionNote","getAppGlobalState","getAppLocalState","getAppBoxNames","getAppBoxValue","getAppBoxValueFromABIType","getCreatorAppsByName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-client.js","names":["bytecblockOffset: number | undefined","intcblockOffset: number | undefined","getApplicationAddress","getOptionalAddress","getLocalABIStorageKeys","getLocalABIStorageMaps","getGlobalABIStorageKeys","getGlobalABIStorageMaps","asJson","arc32ToArc56","getAddress","program: Uint8Array | undefined","ProgramSourceMap","getABIMethod","LogicError","Buffer","Config","EventType","argTypeIsTransaction","getABIDecodedValue","getBoxABIStorageKeys","value","OnApplicationComplete","getBoxABIStorageKey","getBoxABIStorageMap","getABIEncodedValue","binaryStartsWith"],"sources":["../../src/types/app-client.ts"],"sourcesContent":["import {\n ABIDefaultValue,\n ABIStorageKey,\n ABIStorageMap,\n ABIType,\n ABIValue,\n Arc56Contract,\n ProgramSourceInfo,\n argTypeIsTransaction,\n getABIDecodedValue,\n getABIEncodedValue,\n getABIMethod,\n getBoxABIStorageKey,\n getBoxABIStorageKeys,\n getBoxABIStorageMap,\n getGlobalABIStorageKeys,\n getGlobalABIStorageMaps,\n getLocalABIStorageKeys,\n getLocalABIStorageMaps,\n} from '@algorandfoundation/algokit-abi'\nimport { SuggestedParams } from '@algorandfoundation/algokit-algod-client'\nimport { Address, ReadableAddress, getAddress, getApplicationAddress, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { IndexerClient } from '@algorandfoundation/algokit-indexer-client'\nimport { AddressWithTransactionSigner, OnApplicationComplete, Transaction, TransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { ProgramSourceMap } from '@algorandfoundation/sdk'\nimport { Buffer } from 'buffer'\nimport { Config } from '../config'\nimport { asJson, binaryStartsWith } from '../util'\nimport { type AlgorandClient } from './algorand-client'\nimport { AlgoAmount } from './amount'\nimport {\n ABIAppCallArgs,\n AppCompilationResult,\n AppReturn,\n AppState,\n AppStorageSchema,\n BoxName,\n AppLookup as LegacyAppLookup,\n OnSchemaBreak,\n OnUpdate,\n RawAppCallArgs,\n SendAppTransactionResult,\n TealTemplateParams,\n} from './app'\nimport { AppLookup } from './app-deployer'\nimport { AppManager, BoxIdentifier } from './app-manager'\nimport { AppSpec, arc32ToArc56 } from './app-spec'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppMethodCall,\n AppMethodCallTransactionArgument,\n AppUpdateMethodCall,\n AppUpdateParams,\n CommonAppCallParams,\n PaymentParams,\n} from './composer'\nimport { Expand } from './expand'\nimport { EventType } from './lifecycle-events'\nimport { LogicError } from './logic-error'\nimport { SendParams, SendTransactionFrom, SendTransactionParams, TransactionNote } from './transaction'\n\n/** The maximum opcode budget for a simulate call as per https://github.com/algorand/go-algorand/blob/807b29a91c371d225e12b9287c5d56e9b33c4e4c/ledger/simulation/trace.go#L104 */\nconst MAX_SIMULATE_OPCODE_BUDGET = 20_000 * 16\n\n/** Configuration to resolve app by creator and name `getCreatorAppsByName` */\nexport type ResolveAppByCreatorAndNameBase = {\n /** The address of the app creator account to resolve the app by */\n creatorAddress: ReadableAddress\n /** The optional name override to resolve the app by within the creator account (default: uses the name in the ABI contract) */\n name?: string\n /** The mechanism to find an existing app instance metadata for the given creator and name; either:\n * * An indexer instance to search the creator account apps; or\n * * The cached value of the existing apps for the given creator from `getCreatorAppsByName`\n */\n findExistingUsing: IndexerClient | LegacyAppLookup\n}\n\n/** Configuration to resolve app by creator and name `getCreatorAppsByName` */\nexport type ResolveAppByCreatorAndName = ResolveAppByCreatorAndNameBase & {\n /** How the app ID is resolved, either by `'id'` or `'creatorAndName'`; must be `'creatorAndName'` if you want to use `deploy` */\n resolveBy: 'creatorAndName'\n}\n\n/** Configuration to resolve app by ID */\nexport interface ResolveAppByIdBase {\n /** The id of an existing app to call using this client, or 0 if the app hasn't been created yet */\n id: number | bigint\n /** The optional name to use to mark the app when deploying `ApplicationClient.deploy` (default: uses the name in the ABI contract) */\n name?: string\n}\n\nexport interface ResolveAppById extends ResolveAppByIdBase {\n /** How the app ID is resolved, either by `'id'` or `'creatorAndName'`; must be `'creatorAndName'` if you want to use `deploy` */\n resolveBy: 'id'\n}\n\n/** The details of an AlgoKit Utils deployed app */\nexport type AppDetailsBase = {\n /** Default sender to use for transactions issued by this application client */\n sender?: SendTransactionFrom\n /** Default suggested params object to use */\n params?: SuggestedParams\n /** Optionally provide any deploy-time parameters to replace in the TEAL code; if specified here will get\n * used in calls to `deploy`, `create` and `update` unless overridden in those calls\n */\n deployTimeParams?: TealTemplateParams\n}\n\n/** The details of an AlgoKit Utils deployed app */\nexport type AppDetails = AppDetailsBase & (ResolveAppById | ResolveAppByCreatorAndName)\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app */\nexport type AppSpecAppDetailsBase = {\n /** The ARC-0032 application spec as either:\n * * Parsed JSON `AppSpec`\n * * Raw JSON string\n */\n app: AppSpec | string\n}\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app by id*/\nexport type AppSpecAppDetailsById = AppSpecAppDetailsBase & AppDetailsBase & ResolveAppByIdBase\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app by creator and name*/\nexport type AppSpecAppDetailsByCreatorAndName = AppSpecAppDetailsBase & AppDetailsBase & ResolveAppByCreatorAndNameBase\n\n/** The details of an ARC-0032 app spec specified, AlgoKit Utils deployed app */\nexport type AppSpecAppDetails = AppSpecAppDetailsBase & AppDetails\n\n/** Core parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployCoreParams {\n /** The version of the contract, uses \"1.0\" by default */\n version?: string\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** Parameters to control transaction sending */\n sendParams?: Omit<SendTransactionParams, 'skipSending' | 'skipWaiting'>\n /** Whether or not to allow updates in the contract using the deploy-time updatability control if present in your contract.\n * If this is not specified then it will automatically be determined based on the AppSpec definition\n **/\n allowUpdate?: boolean\n /** Whether or not to allow deletes in the contract using the deploy-time deletability control if present in your contract.\n * If this is not specified then it will automatically be determined based on the AppSpec definition\n **/\n allowDelete?: boolean\n /** What action to perform if a schema break is detected */\n onSchemaBreak?: 'replace' | 'fail' | 'append' | OnSchemaBreak\n /** What action to perform if a TEAL update is detected */\n onUpdate?: 'update' | 'replace' | 'append' | 'fail' | OnUpdate\n}\n\n/** Call interface parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployCallInterfaceParams {\n /** Any deploy-time parameters to replace in the TEAL code */\n deployTimeParams?: TealTemplateParams\n /** Any args to pass to any create transaction that is issued as part of deployment */\n createArgs?: AppClientCallArgs\n /** Override the on-completion action for the create call; defaults to NoOp */\n createOnCompleteAction?: Exclude<OnApplicationComplete, OnApplicationComplete.ClearState>\n /** Any args to pass to any update transaction that is issued as part of deployment */\n updateArgs?: AppClientCallArgs\n /** Any args to pass to any delete transaction that is issued as part of deployment */\n deleteArgs?: AppClientCallArgs\n}\n\n/** Parameters to pass into ApplicationClient.deploy */\nexport interface AppClientDeployParams extends AppClientDeployCoreParams, AppClientDeployCallInterfaceParams {\n /** Any overrides for the storage schema to request for the created app; by default the schema indicated by the app spec is used. */\n schema?: Partial<AppStorageSchema>\n}\n\nexport type AppClientCallRawArgs = RawAppCallArgs\n\nexport interface AppClientCallABIArgs extends Omit<ABIAppCallArgs, 'method'> {\n /** If calling an ABI method then either the name of the method, or the ABI signature */\n method: string\n}\n\n/** The arguments to pass to an Application Client smart contract call */\nexport type AppClientCallArgs = AppClientCallRawArgs | AppClientCallABIArgs\n\n/** Common (core) parameters to construct a ApplicationClient contract call */\nexport interface AppClientCallCoreParams {\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** The transaction note for the smart contract call */\n note?: TransactionNote\n /** Parameters to control transaction sending */\n sendParams?: SendTransactionParams\n}\n\n/** Parameters to construct a ApplicationClient contract call */\nexport type AppClientCallParams = AppClientCallArgs & AppClientCallCoreParams\n\n/** Parameters to construct a ApplicationClient clear state contract call */\nexport type AppClientClearStateParams = AppClientCallRawArgs & AppClientCallCoreParams\n\nexport interface AppClientCompilationParams {\n /** Any deploy-time parameters to replace in the TEAL code */\n deployTimeParams?: TealTemplateParams\n /** Whether or not the contract should have deploy-time immutability control set, undefined = ignore */\n updatable?: boolean\n /** Whether or not the contract should have deploy-time permanence control set, undefined = ignore */\n deletable?: boolean\n}\n\n/** On-complete action parameter for creating a contract using ApplicationClient */\nexport type AppClientCreateOnComplete = {\n /** Override the on-completion action for the create call; defaults to NoOp */\n onCompleteAction?: Exclude<OnApplicationComplete, OnApplicationComplete.ClearState>\n}\n\n/** Parameters for creating a contract using ApplicationClient */\nexport type AppClientCreateParams = AppClientCallParams &\n AppClientCompilationParams &\n AppClientCreateOnComplete & {\n /** Any overrides for the storage schema to request for the created app; by default the schema indicated by the app spec is used. */\n schema?: Partial<AppStorageSchema>\n }\n\n/** Parameters for updating a contract using ApplicationClient */\nexport type AppClientUpdateParams = AppClientCallParams & AppClientCompilationParams\n\n/** Parameters for funding an app account */\nexport interface FundAppAccountParams {\n amount: AlgoAmount\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: SendTransactionFrom\n /** The transaction note for the smart contract call */\n note?: TransactionNote\n /** Parameters to control transaction sending */\n sendParams?: SendTransactionParams\n}\n\n/** Source maps for an Algorand app */\nexport interface AppSourceMaps {\n /** The source map of the approval program */\n approvalSourceMap: SourceMapExport\n /** The source map of the clear program */\n clearSourceMap: SourceMapExport\n}\n\nexport interface SourceMapExport {\n version: number\n sources: string[]\n names: string[]\n mappings: string\n}\n\n/**\n * The result of asking an `AppClient` to compile a program.\n *\n * Always contains the compiled bytecode, and may contain the result of compiling TEAL (including sourcemap) if it was available.\n */\nexport interface AppClientCompilationResult extends Partial<AppCompilationResult> {\n /** The compiled bytecode of the approval program, ready to deploy to algod */\n approvalProgram: Uint8Array\n /** The compiled bytecode of the clear state program, ready to deploy to algod */\n clearStateProgram: Uint8Array\n}\n\n/** Parameters to create an app client */\nexport interface AppClientParams {\n /** The ID of the app instance this client should make calls against. */\n appId: bigint\n\n /** The ARC-56 or ARC-32 application spec as either:\n * * Parsed JSON ARC-56 `Contract`\n * * Parsed JSON ARC-32 `AppSpec`\n * * Raw JSON string (in either ARC-56 or ARC-32 format)\n */\n appSpec: Arc56Contract | AppSpec | string\n\n /** An `AlgorandClient` instance */\n algorand: AlgorandClient\n\n /**\n * Optional override for the app name; used for on-chain metadata and lookups.\n * Defaults to the ARC-32/ARC-56 app spec name\n */\n appName?: string\n /** Optional address to use for the account to use as the default sender for calls. */\n defaultSender?: ReadableAddress\n /** Optional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from `AlgorandClient`). */\n defaultSigner?: TransactionSigner\n /** Optional source map for the approval program */\n approvalSourceMap?: ProgramSourceMap\n /** Optional source map for the clear state program */\n clearSourceMap?: ProgramSourceMap\n}\n\n/** Parameters to clone an app client */\nexport type CloneAppClientParams = Expand<Partial<Omit<AppClientParams, 'algorand' | 'appSpec'>>>\n\n/** onComplete parameter for a non-update app call */\nexport type CallOnComplete = {\n /** On-complete of the call; defaults to no-op */\n onComplete?: Exclude<OnApplicationComplete, OnApplicationComplete.UpdateApplication>\n}\n\n/** AppClient common parameters for a bare app call */\nexport type AppClientBareCallParams = Expand<\n Omit<CommonAppCallParams, 'appId' | 'sender' | 'onComplete'> & {\n /** The address of the account sending the transaction, if undefined then the app client's defaultSender is used. */\n sender?: ReadableAddress\n }\n>\n\n/** AppClient common parameters for an ABI method call */\nexport type AppClientMethodCallParams = Expand<\n Omit<CommonAppCallParams, 'appId' | 'sender' | 'method' | 'args'> & {\n /** The address of the account sending the transaction, if undefined then the app client's defaultSender is used. */\n sender?: ReadableAddress\n /** The method name or method signature to call if an ABI call is being emitted\n * @example Method name\n * `my_method`\n * @example Method signature\n * `my_method(unit64,string)bytes`\n */\n method: string\n /** Arguments to the ABI method, either:\n * * An ABI value\n * * An ARC-56 struct\n * * A transaction with explicit signer\n * * A transaction (where the signer will be automatically assigned)\n * * An unawaited transaction (e.g. from algorand.createTransaction.transactionType())\n * * Another method call (via method call params object)\n * * undefined (this represents a placeholder for either a default argument or a transaction argument that is fulfilled by another method call argument)\n */\n args?: (ABIValue | AppMethodCallTransactionArgument | undefined)[]\n }\n>\n\n/** Parameters for funding an app account */\nexport type FundAppParams = Expand<\n Omit<PaymentParams, 'receiver' | 'sender'> &\n SendParams & {\n /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */\n sender?: ReadableAddress\n }\n>\n\n/** Resolve an app client instance by looking up an app created by the given creator with the given name */\nexport type ResolveAppClientByCreatorAndName = Expand<\n Omit<AppClientParams, 'appId'> & {\n /** The address of the creator account for the app */\n creatorAddress: ReadableAddress\n /** An optional cached app lookup that matches a name to on-chain details;\n * either this is needed or indexer is required to be passed in to this `ClientManager` on construction.\n */\n appLookupCache?: AppLookup\n /** Whether or not to ignore the `AppDeployer` lookup cache and force an on-chain lookup, default: use any cached value */\n ignoreCache?: boolean\n }\n>\n\n/** Resolve an app client instance by looking up the current network. */\nexport type ResolveAppClientByNetwork = Expand<Omit<AppClientParams, 'appId'>>\n\nconst BYTE_CBLOCK = 38\nconst INT_CBLOCK = 32\n\n/**\n * Get the offset of the last constant block at the beginning of the program\n * This value is used to calculate the program counter for an ARC56 program that has a pcOffsetMethod of \"cblocks\"\n *\n * @param program The program to parse\n * @returns The PC value of the opcode after the last constant block\n */\nfunction getConstantBlockOffset(program: Uint8Array) {\n const bytes = [...program]\n\n const programSize = bytes.length\n bytes.shift() // remove version\n\n /** The PC of the opcode after the bytecblock */\n let bytecblockOffset: number | undefined\n\n /** The PC of the opcode after the intcblock */\n let intcblockOffset: number | undefined\n\n while (bytes.length > 0) {\n /** The current byte from the beginning of the byte array */\n const byte = bytes.shift()!\n\n // If the byte is a constant block...\n if (byte === BYTE_CBLOCK || byte === INT_CBLOCK) {\n const isBytecblock = byte === BYTE_CBLOCK\n\n /** The byte following the opcode is the number of values in the constant block */\n const valuesRemaining = bytes.shift()!\n\n // Iterate over all the values in the constant block\n for (let i = 0; i < valuesRemaining; i++) {\n if (isBytecblock) {\n /** The byte following the opcode is the length of the next element */\n const length = bytes.shift()!\n bytes.splice(0, length)\n } else {\n // intcblock is a uvarint, so we need to keep reading until we find the end (MSB is not set)\n while ((bytes.shift()! & 0x80) !== 0) {\n // Do nothing...\n }\n }\n }\n\n if (isBytecblock) bytecblockOffset = programSize - bytes.length - 1\n else intcblockOffset = programSize - bytes.length - 1\n\n if (bytes[0] !== BYTE_CBLOCK && bytes[0] !== INT_CBLOCK) {\n // if the next opcode isn't a constant block, we're done\n break\n }\n }\n }\n\n return Math.max(bytecblockOffset ?? 0, intcblockOffset ?? 0)\n}\n\n/** ARC-56/ARC-32 application client that allows you to manage calls and\n * state for a specific deployed instance of an app (with a known app ID). */\nexport class AppClient {\n private _appId: bigint\n private _appAddress: Address\n private _appName: string\n private _appSpec: Arc56Contract\n private _algorand: AlgorandClient\n private _defaultSender?: Address\n private _defaultSigner?: TransactionSigner\n\n private _approvalSourceMap: ProgramSourceMap | undefined\n private _clearSourceMap: ProgramSourceMap | undefined\n\n private _localStateMethods: (address: ReadableAddress) => ReturnType<AppClient['getStateMethods']>\n private _globalStateMethods: ReturnType<AppClient['getStateMethods']>\n private _boxStateMethods: ReturnType<AppClient['getBoxMethods']>\n\n private _paramsMethods: ReturnType<AppClient['getMethodCallParamsMethods']> & {\n /** Interact with bare (raw) call parameters */ bare: ReturnType<AppClient['getBareParamsMethods']>\n }\n private _createTransactionsMethods: ReturnType<AppClient['getMethodCallCreateTransactionMethods']> & {\n /** Interact with bare (raw) call transactions */ bare: ReturnType<AppClient['getBareCreateTransactionMethods']>\n }\n private _sendMethods: ReturnType<AppClient['getMethodCallSendMethods']> & {\n /** Interact with bare (raw) calls */ bare: ReturnType<AppClient['getBareSendMethods']>\n }\n private _lastCompiled: { clear?: Uint8Array; approval?: Uint8Array }\n\n /**\n * Create a new app client.\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = new AppClient({\n * appId: 12345678n,\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n constructor(params: AppClientParams) {\n this._appId = params.appId\n this._appAddress = getApplicationAddress(this._appId)\n this._appSpec = AppClient.normaliseAppSpec(params.appSpec)\n this._appName = params.appName ?? this._appSpec.name\n this._algorand = params.algorand\n this._algorand.registerErrorTransformer!(this.handleCallErrors)\n this._defaultSender = getOptionalAddress(params.defaultSender)\n this._defaultSigner = params.defaultSigner\n this._lastCompiled = {}\n\n this._approvalSourceMap = params.approvalSourceMap\n this._clearSourceMap = params.clearSourceMap\n this._localStateMethods = (address: ReadableAddress) =>\n this.getStateMethods(\n () => this.getLocalState(address),\n () => getLocalABIStorageKeys(this._appSpec),\n () => getLocalABIStorageMaps(this._appSpec),\n )\n this._globalStateMethods = this.getStateMethods(\n () => this.getGlobalState(),\n () => getGlobalABIStorageKeys(this._appSpec),\n () => getGlobalABIStorageMaps(this._appSpec),\n )\n this._boxStateMethods = this.getBoxMethods()\n\n this._paramsMethods = {\n ...this.getMethodCallParamsMethods(),\n /** Get parameters to define bare (raw) transactions to the current app */\n bare: this.getBareParamsMethods(),\n }\n this._createTransactionsMethods = {\n ...this.getMethodCallCreateTransactionMethods(),\n\n /** Get transactions for bare (raw) calls to the current app */\n bare: this.getBareCreateTransactionMethods(),\n }\n this._sendMethods = {\n ...this.getMethodCallSendMethods(),\n\n /** Send bare (raw) transactions to the current app */\n bare: this.getBareSendMethods(),\n }\n }\n\n /**\n * Clone this app client with different params\n *\n * @param params The params to use for the the cloned app client. Omit a param to keep the original value. Set a param to override the original value. Setting to undefined will clear the original value.\n * @returns A new app client with the altered params\n * @example\n * ```typescript\n * const appClient2 = appClient.clone({ defaultSender: 'NEW_SENDER_ADDRESS' })\n * ```\n */\n public clone(params: CloneAppClientParams) {\n return new AppClient({\n appId: this._appId,\n appSpec: this._appSpec,\n algorand: this._algorand,\n appName: this._appName,\n defaultSender: this._defaultSender,\n defaultSigner: this._defaultSigner,\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n ...params,\n })\n }\n\n /**\n * Returns a new `AppClient` client, resolving the app by creator address and name\n * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note).\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = await AppClient.fromCreatorAndName({\n * creatorAddress: 'CREATOR_ADDRESS',\n * name: 'APP_NAME',\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n public static async fromCreatorAndName(params: ResolveAppClientByCreatorAndName) {\n const appSpec = AppClient.normaliseAppSpec(params.appSpec)\n const appLookup =\n params.appLookupCache ?? (await params.algorand.appDeployer.getCreatorAppsByName(params.creatorAddress, params.ignoreCache))\n const appMetadata = appLookup.apps[params.appName ?? appSpec.name]\n if (!appMetadata) {\n throw new Error(`App not found for creator ${params.creatorAddress} and name ${params.appName ?? appSpec.name}`)\n }\n return new AppClient({\n ...params,\n algorand: params.algorand,\n appId: appMetadata.appId,\n })\n }\n\n /**\n * Returns an `AppClient` instance for the current network based on\n * pre-determined network-specific app IDs specified in the ARC-56 app spec.\n *\n * If no IDs are in the app spec or the network isn't recognised, an error is thrown.\n * @param params The parameters to create the app client\n * @returns The `AppClient` instance\n * @example\n * ```typescript\n * const appClient = await AppClient.fromNetwork({\n * appSpec: appSpec,\n * algorand: AlgorandClient.mainNet(),\n * })\n */\n public static async fromNetwork(params: ResolveAppClientByNetwork): Promise<AppClient> {\n const network = await params.algorand.client.network()\n const appSpec = AppClient.normaliseAppSpec(params.appSpec)\n const networkNames = [network.genesisHash]\n if (network.isLocalNet) networkNames.push('localnet')\n if (network.isTestNet) networkNames.push('testnet')\n if (network.isMainNet) networkNames.push('mainnet')\n const availableAppSpecNetworks = Object.keys(appSpec.networks ?? {})\n const networkIndex = availableAppSpecNetworks.findIndex((n) => networkNames.includes(n))\n\n if (networkIndex === -1) {\n throw new Error(`No app ID found for network ${asJson(networkNames)} in the app spec`)\n }\n\n const appId = BigInt(appSpec.networks![networkIndex].appID)\n return new AppClient({ ...params, appId, appSpec })\n }\n\n /**\n * Takes a string or parsed JSON object that could be ARC-32 or ARC-56 format and\n * normalises it into a parsed ARC-56 contract object.\n * @param spec The spec to normalise\n * @returns The normalised ARC-56 contract object\n * @example\n * ```typescript\n * const arc56AppSpec = AppClient.normaliseAppSpec(appSpec)\n * ```\n */\n public static normaliseAppSpec(spec: Arc56Contract | AppSpec | string): Arc56Contract {\n const parsedSpec = typeof spec === 'string' ? (JSON.parse(spec) as AppSpec | Arc56Contract) : spec\n const appSpec = 'hints' in parsedSpec ? arc32ToArc56(parsedSpec) : parsedSpec\n return appSpec\n }\n\n /** The ID of the app instance this client is linked to. */\n public get appId() {\n return this._appId\n }\n\n /** The app address of the app instance this client is linked to. */\n public get appAddress() {\n return this._appAddress\n }\n\n /** The name of the app (from the ARC-32 / ARC-56 app spec or override). */\n public get appName() {\n return this._appName\n }\n\n /** The ARC-56 app spec being used */\n public get appSpec(): Arc56Contract {\n return this._appSpec\n }\n\n /** A reference to the underlying `AlgorandClient` this app client is using. */\n public get algorand(): AlgorandClient {\n return this._algorand\n }\n\n /** Get parameters to create transactions for the current app.\n *\n * A good mental model for this is that these parameters represent a deferred transaction creation.\n * @example Create a transaction in the future using Algorand Client\n * ```typescript\n * const myMethodCall = appClient.params.call({method: 'my_method', args: [123, 'hello']})\n * // ...\n * await algorand.send.AppMethodCall(myMethodCall)\n * ```\n * @example Define a nested transaction as an ABI argument\n * ```typescript\n * const myMethodCall = appClient.params.call({method: 'my_method', args: [123, 'hello']})\n * await appClient.send.call({method: 'my_method2', args: [myMethodCall]})\n * ```\n */\n public get params() {\n return this._paramsMethods\n }\n\n /** Create transactions for the current app */\n public get createTransaction() {\n return this._createTransactionsMethods\n }\n\n /** Send transactions to the current app */\n public get send() {\n return this._sendMethods\n }\n\n /** Get state (local, global, box) from the current app */\n public get state() {\n return {\n /**\n * Methods to access local state for the current app\n * @param address The address of the account to get the local state for\n */\n local: this._localStateMethods,\n /**\n * Methods to access global state for the current app\n */\n global: this._globalStateMethods,\n /**\n * Methods to access box storage for the current app\n */\n box: this._boxStateMethods,\n }\n }\n\n /**\n * Funds Algo into the app account for this app.\n *\n * An alias for `appClient.send.fundAppAccount(params)`.\n * @param params The parameters for the funding transaction\n * @returns The result of the funding\n * @example\n * ```typescript\n * await appClient.fundAppAccount({ amount: algo(1) })\n * ```\n */\n public async fundAppAccount(params: FundAppParams) {\n return this.send.fundAppAccount(params)\n }\n\n /**\n * Returns raw global state for the current app.\n * @returns The global state\n * @example\n * ```typescript\n * const globalState = await appClient.getGlobalState()\n * ```\n */\n public async getGlobalState(): Promise<AppState> {\n return await this._algorand.app.getGlobalState(this.appId)\n }\n\n /**\n * Returns raw local state for the given account address.\n * @param address The address of the account to get the local state for\n * @returns The local state\n * @example\n * ```typescript\n * const localState = await appClient.getLocalState('ACCOUNT_ADDRESS')\n * ```\n */\n public async getLocalState(address: ReadableAddress): Promise<AppState> {\n return await this._algorand.app.getLocalState(this.appId, getAddress(address))\n }\n\n /**\n * Returns the names of all current boxes for the current app.\n * @returns The names of the boxes\n * @example\n * ```typescript\n * const boxNames = await appClient.getBoxNames()\n * ```\n */\n public async getBoxNames(): Promise<BoxName[]> {\n return await this._algorand.app.getBoxNames(this.appId)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The identifier of the box to return\n * @returns The current box value as a byte array\n * @example\n * ```typescript\n * const boxValue = await appClient.getBoxValue('boxName')\n * ```\n */\n public async getBoxValue(name: BoxIdentifier): Promise<Uint8Array> {\n return await this._algorand.app.getBoxValue(this.appId, name)\n }\n\n /**\n * Returns the value of the given box for the current app.\n * @param name The identifier of the box to return\n * @param type\n * @returns The current box value as a byte array\n * @example\n * ```typescript\n * const boxValue = await appClient.getBoxValueFromABIType('boxName', new ABIUintType(32))\n * ```\n */\n public async getBoxValueFromABIType(name: BoxIdentifier, type: ABIType): Promise<ABIValue> {\n return await this._algorand.app.getBoxValueFromABIType({\n appId: this.appId,\n boxName: name,\n type,\n })\n }\n\n /**\n * Returns the values of all current boxes for the current app.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as raw byte arrays\n * @example\n * ```typescript\n * const boxValues = await appClient.getBoxValues()\n * ```\n */\n public async getBoxValues(filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: Uint8Array }[]> {\n const names = (await this.getBoxNames()).filter(filter ?? ((_) => true))\n const values = await this._algorand.app.getBoxValues(\n this.appId,\n names.map((name) => name.nameRaw),\n )\n return names.map((name, i) => ({ name, value: values[i] }))\n }\n\n /**\n * Returns the values of all current boxes for the current app decoded using an ABI Type.\n * Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.\n * @param type The ABI type to decode the values with\n * @param filter Optional filter to filter which boxes' values are returned\n * @returns The (name, value) pair of the boxes with values as the ABI Value\n * @example\n * ```typescript\n * const boxValues = await appClient.getBoxValuesFromABIType(new ABIUintType(32))\n * ```\n */\n public async getBoxValuesFromABIType(type: ABIType, filter?: (name: BoxName) => boolean): Promise<{ name: BoxName; value: ABIValue }[]> {\n const names = (await this.getBoxNames()).filter(filter ?? ((_) => true))\n const values = await this._algorand.app.getBoxValuesFromABIType({\n appId: this.appId,\n boxNames: names.map((name) => name.nameRaw),\n type,\n })\n return names.map((name, i) => ({ name, value: values[i] }))\n }\n\n /**\n * Takes an error that may include a logic error from a call to the current app and re-exposes the\n * error to include source code information via the source map and ARC-56 spec.\n * @param e The error to parse\n * @param isClearStateProgram Whether or not the code was running the clear state program (defaults to approval program)\n * @returns The new error, or if there was no logic error or source map then the wrapped error with source details\n */\n public async exposeLogicError(e: Error, isClearStateProgram?: boolean): Promise<Error> {\n const pcOffsetMethod = this._appSpec.sourceInfo?.[isClearStateProgram ? 'clear' : 'approval']?.pcOffsetMethod\n\n let program: Uint8Array | undefined\n if (pcOffsetMethod === 'cblocks') {\n // TODO: Cache this if we deploy the app and it's not updateable\n const appInfo = await this._algorand.app.getById(this.appId)\n program = isClearStateProgram ? appInfo.clearStateProgram : appInfo.approvalProgram\n }\n\n return AppClient.exposeLogicError(e, this._appSpec, {\n isClearStateProgram,\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n program,\n })\n }\n\n /**\n * Export the current source maps for the app.\n * @returns The source maps\n */\n public exportSourceMaps(): AppSourceMaps {\n if (!this._approvalSourceMap || !this._clearSourceMap) {\n throw new Error(\n \"Unable to export source maps; they haven't been loaded into this client - you need to call create, update, or deploy first\",\n )\n }\n\n return {\n approvalSourceMap: this._approvalSourceMap,\n clearSourceMap: this._clearSourceMap,\n }\n }\n\n /**\n * Import source maps for the app.\n * @param sourceMaps The source maps to import\n */\n public importSourceMaps(sourceMaps: AppSourceMaps) {\n this._approvalSourceMap = new ProgramSourceMap(sourceMaps.approvalSourceMap)\n this._clearSourceMap = new ProgramSourceMap(sourceMaps.clearSourceMap)\n }\n\n /**\n * Returns the ABI Method spec for the given method string for the app represented by this application client instance\n * @param methodNameOrSignature The method name or method signature to call if an ABI call is being emitted.\n * e.g. `my_method` or `my_method(unit64,string)bytes`\n * @returns A tuple with: [ARC-56 `Method`, algosdk `ABIMethod`]\n */\n public getABIMethod(methodNameOrSignature: string) {\n return getABIMethod(methodNameOrSignature, this._appSpec)\n }\n\n /**\n * Checks for decode errors on the SendAppTransactionResult and maps the return value to the specified type\n * on the ARC-56 method, replacing the `return` property with the decoded type.\n *\n * If the return type is an ARC-56 struct then the struct will be returned.\n *\n * @param result The SendAppTransactionResult to be mapped\n * @param method The method that was called\n * @returns The smart contract response with an updated return value\n */\n public async processMethodCallReturn<\n TReturn extends ABIValue | undefined,\n TResult extends SendAppTransactionResult = SendAppTransactionResult,\n >(result: Promise<TResult> | TResult): Promise<Omit<TResult, 'return'> & AppReturn<TReturn>> {\n const resultValue = await result\n return { ...resultValue, return: resultValue.return?.returnValue as TReturn }\n }\n\n /**\n * Compiles the approval and clear state programs (if TEAL templates provided),\n * performing any provided deploy-time parameter replacement and stores\n * the source maps.\n *\n * If no TEAL templates provided it will use any byte code provided in the app spec.\n *\n * Will store any generated source maps for later use in debugging.\n * @param compilation Any compilation parameters to use\n * @returns The compiled code and any compilation results (including source maps)\n */\n public async compile(compilation?: AppClientCompilationParams) {\n const result = await AppClient.compile(this._appSpec, this._algorand.app, compilation)\n\n if (result.compiledApproval) {\n this._approvalSourceMap = result.compiledApproval.sourceMap\n\n this._lastCompiled.approval = result.compiledApproval.compiledBase64ToBytes\n }\n if (result.compiledClear) {\n this._clearSourceMap = result.compiledClear.sourceMap\n this._lastCompiled.clear = result.compiledClear.compiledBase64ToBytes\n }\n\n return result\n }\n\n /**\n * Takes an error that may include a logic error from a call to the current app and re-exposes the\n * error to include source code information via the source map and ARC-56 spec.\n * @param e The error to parse\n * @param appSpec The app spec for the app\n * @param details Additional information to inform the error\n * @returns The new error, or if there was no logic error or source map then the wrapped error with source details\n */\n public static exposeLogicError(\n e: Error,\n appSpec: Arc56Contract,\n details: {\n /** Whether or not the code was running the clear state program (defaults to approval program) */ isClearStateProgram?: boolean\n /** Approval program source map */ approvalSourceMap?: ProgramSourceMap\n /** Clear state program source map */ clearSourceMap?: ProgramSourceMap\n /** program bytes */ program?: Uint8Array\n /** ARC56 approval source info */ approvalSourceInfo?: ProgramSourceInfo\n /** ARC56 clear source info */ clearSourceInfo?: ProgramSourceInfo\n },\n ): Error {\n const { isClearStateProgram, approvalSourceMap, clearSourceMap, program } = details\n const sourceMap = isClearStateProgram ? clearSourceMap : approvalSourceMap\n\n const errorDetails = LogicError.parseLogicError(e)\n\n // Return the error if we don't have a PC\n if (errorDetails === undefined || errorDetails?.pc === undefined) return e\n\n /** The PC value to find in the ARC56 SourceInfo */\n let arc56Pc = errorDetails?.pc\n\n const programSourceInfo = isClearStateProgram ? appSpec.sourceInfo?.clear : appSpec.sourceInfo?.approval\n\n /** The offset to apply to the PC if using the cblocks pc offset method */\n let cblocksOffset = 0\n\n // If the program uses cblocks offset, then we need to adjust the PC accordingly\n if (programSourceInfo?.pcOffsetMethod === 'cblocks') {\n if (program === undefined) throw new Error('Program bytes are required to calculate the ARC56 cblocks PC offset')\n cblocksOffset = getConstantBlockOffset(program)\n arc56Pc = errorDetails.pc - cblocksOffset\n }\n\n // Find the source info for this PC and get the error message\n const sourceInfo = programSourceInfo?.sourceInfo.find((s) => s.pc.includes(arc56Pc))\n const errorMessage = sourceInfo?.errorMessage\n\n // If we have the source we can display the TEAL in the error message\n if (appSpec.source) {\n let getLineForPc = (inputPc: number) => sourceMap?.getLocationForPc?.(inputPc)?.line\n\n // If the SourceMap is not defined, we need to provide our own function for going from a PC to TEAL based on ARC56 SourceInfo[]\n if (sourceMap === undefined) {\n getLineForPc = (inputPc: number) => {\n const teal = programSourceInfo?.sourceInfo.find((s) => s.pc.includes(inputPc - cblocksOffset))?.teal\n if (teal === undefined) return undefined\n return teal - 1\n }\n }\n e = new LogicError(\n errorDetails,\n Buffer.from(isClearStateProgram ? appSpec.source.clear : appSpec.source.approval, 'base64')\n .toString()\n .split('\\n'),\n getLineForPc,\n )\n }\n if (errorMessage) {\n const appId = asJson(e).match(/(?<=app=)\\d+/)?.[0] || ''\n const txId = asJson(e).match(/(?<=transaction )\\S+(?=:)/)?.[0]\n const error = new Error(`Runtime error when executing ${appSpec.name} (appId: ${appId}) in transaction ${txId}: ${errorMessage}`)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(error as any).cause = e\n return error\n }\n\n return e\n }\n\n /**\n * Compiles the approval and clear state programs (if TEAL templates provided),\n * performing any provided deploy-time parameter replacement and returns\n * the compiled code and any compilation results (including source maps).\n *\n * If no TEAL templates provided it will use any byte code provided in the app spec.\n *\n * Will store any generated source maps for later use in debugging.\n * @param appSpec The app spec for the app\n * @param appManager The app manager to use for compilation\n * @param compilation Any compilation parameters to use\n * @returns The compiled code and any compilation results (including source maps)\n */\n public static async compile(\n appSpec: Arc56Contract,\n appManager: AppManager,\n compilation?: AppClientCompilationParams,\n ): Promise<AppClientCompilationResult> {\n const { deployTimeParams, updatable, deletable } = compilation ?? {}\n\n if (!appSpec.source) {\n if (!appSpec.byteCode?.approval || !appSpec.byteCode?.clear) {\n throw new Error(`Attempt to compile app ${appSpec.name} without source or byteCode`)\n }\n\n return {\n approvalProgram: Buffer.from(appSpec.byteCode.approval, 'base64') as Uint8Array,\n clearStateProgram: Buffer.from(appSpec.byteCode.clear, 'base64') as Uint8Array,\n }\n }\n\n const approvalTemplate = Buffer.from(appSpec.source.approval, 'base64').toString('utf-8')\n const compiledApproval = await appManager.compileTealTemplate(approvalTemplate, deployTimeParams, {\n updatable,\n deletable,\n })\n\n const clearTemplate = Buffer.from(appSpec.source.clear, 'base64').toString('utf-8')\n const compiledClear = await appManager.compileTealTemplate(clearTemplate, deployTimeParams)\n\n if (Config.debug) {\n await Config.events.emitAsync(EventType.AppCompiled, {\n sources: [\n { compiledTeal: compiledApproval, appName: appSpec.name, fileName: 'approval' },\n { compiledTeal: compiledClear, appName: appSpec.name, fileName: 'clear' },\n ],\n })\n }\n\n return {\n approvalProgram: compiledApproval.compiledBase64ToBytes,\n compiledApproval,\n clearStateProgram: compiledClear.compiledBase64ToBytes,\n compiledClear,\n }\n }\n\n /**\n * Returns ABI method arguments ready for a method call params object with default values populated\n * and structs replaced with tuples.\n *\n * It does this by replacing any `undefined` values with the equivalent default value from the given ARC-56 app spec.\n * @param methodNameOrSignature The method name or method signature to call if an ABI call is being emitted.\n * e.g. `my_method` or `my_method(unit64,string)bytes`\n * @param args The arguments to the method with `undefined` for any that should be populated with a default value\n */\n private async getABIArgsWithDefaultValues(\n methodNameOrSignature: string,\n args: AppClientMethodCallParams['args'] | undefined,\n sender: ReadableAddress,\n ): Promise<AppMethodCall<CommonAppCallParams>['args']> {\n const m = getABIMethod(methodNameOrSignature, this._appSpec)\n return await Promise.all(\n args?.map(async (arg, i) => {\n const methodArg = m.args[i]\n if (!methodArg) {\n throw new Error(`Unexpected arg at position ${i}. ${m.name} only expects ${m.args.length} args`)\n }\n if (argTypeIsTransaction(methodArg.type)) {\n return arg\n }\n if (arg !== undefined) {\n return arg\n }\n const defaultValue = methodArg.defaultValue\n if (defaultValue) {\n switch (defaultValue.source) {\n case 'literal': {\n const bytes = Buffer.from(defaultValue.data, 'base64')\n const value_type = defaultValue.type ?? methodArg.type\n return getABIDecodedValue(value_type, bytes)\n }\n case 'method': {\n const method = this.getABIMethod(defaultValue.data)\n const result = await this.send.call({\n method: defaultValue.data,\n args: method.args.map(() => undefined),\n sender,\n })\n\n if (result.return === undefined) {\n throw new Error('Default value method call did not return a value')\n }\n return result.return\n }\n case 'local':\n case 'global':\n case 'box': {\n return await this.getDefaultValueFromStorage(\n { data: defaultValue.data, source: defaultValue.source },\n methodArg.name ?? `arg${i + 1}`,\n sender,\n )\n }\n }\n }\n }) ?? [],\n )\n }\n\n private async getDefaultValueFromStorage(defaultValue: ABIDefaultValue, argName: string, sender: ReadableAddress): Promise<ABIValue> {\n const keys =\n defaultValue.source === 'box'\n ? getBoxABIStorageKeys(this.appSpec)\n : defaultValue.source === 'global'\n ? getGlobalABIStorageKeys(this.appSpec)\n : getLocalABIStorageKeys(this.appSpec)\n\n const key = Object.values(keys).find((s) => s.key === defaultValue.data)\n if (!key) {\n throw new Error(\n `Unable to find default value for argument '${argName}': The storage key (base64: '${defaultValue.data}') is not defined in the contract's ${defaultValue.source} storage schema`,\n )\n }\n\n if (defaultValue.source === 'box') {\n const value = await this.getBoxValue(Buffer.from(defaultValue.data, 'base64'))\n return getABIDecodedValue(key.valueType, value)\n }\n\n const state = defaultValue.source === 'global' ? await this.getGlobalState() : await this.getLocalState(sender)\n const value = Object.values(state).find((s) => s.keyBase64 === defaultValue.data)\n if (!value) {\n throw new Error(\n `Unable to find default value for argument '${argName}': No value exists in ${defaultValue.source} storage for key (base64: '${defaultValue.data}')`,\n )\n }\n\n return 'valueRaw' in value ? getABIDecodedValue(key.valueType, value.valueRaw) : value.value\n }\n\n private getBareParamsMethods() {\n return {\n /** Return params for an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams) => {\n return this.getBareParams(\n {\n ...params,\n ...(await this.compile(params)),\n },\n OnApplicationComplete.UpdateApplication,\n ) as AppUpdateParams\n },\n /** Return params for an opt-in call */\n optIn: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.OptIn) as AppCallParams\n },\n /** Return params for a delete call */\n delete: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.DeleteApplication) as AppDeleteParams\n },\n /** Return params for a clear state call */\n clearState: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.ClearState) as AppCallParams\n },\n /** Return params for a close out call */\n closeOut: (params?: AppClientBareCallParams) => {\n return this.getBareParams(params, OnApplicationComplete.CloseOut) as AppCallParams\n },\n /** Return params for a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete) => {\n return this.getBareParams(params, params?.onComplete ?? OnApplicationComplete.NoOp) as AppCallParams\n },\n }\n }\n\n private getBareCreateTransactionMethods() {\n return {\n /** Returns a transaction for an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams) => {\n return this._algorand.createTransaction.appUpdate(await this.params.bare.update(params))\n },\n /** Returns a transaction for an opt-in call */\n optIn: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.optIn(params))\n },\n /** Returns a transaction for a delete call */\n delete: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appDelete(this.params.bare.delete(params))\n },\n /** Returns a transaction for a clear state call */\n clearState: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.clearState(params))\n },\n /** Returns a transaction for a close out call */\n closeOut: (params?: AppClientBareCallParams) => {\n return this._algorand.createTransaction.appCall(this.params.bare.closeOut(params))\n },\n /** Returns a transaction for a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete) => {\n return this._algorand.createTransaction.appCall(this.params.bare.call(params))\n },\n }\n }\n\n private getBareSendMethods() {\n return {\n /** Signs and sends an update call, including deploy-time TEAL template replacements and compilation if provided */\n update: async (params?: AppClientBareCallParams & AppClientCompilationParams & SendParams) => {\n const compiled = await this.compile(params)\n return {\n ...(await this._algorand.send.appUpdate(await this.params.bare.update(params))),\n ...(compiled as Partial<AppCompilationResult>),\n }\n },\n /** Signs and sends an opt-in call */\n optIn: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.optIn(params))\n },\n /** Signs and sends a delete call */\n delete: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appDelete(this.params.bare.delete(params))\n },\n /** Signs and sends a clear state call */\n clearState: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.clearState(params))\n },\n /** Signs and sends a close out call */\n closeOut: (params?: AppClientBareCallParams & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.closeOut(params))\n },\n /** Signs and sends a call (defaults to no-op) */\n call: (params?: AppClientBareCallParams & CallOnComplete & SendParams) => {\n return this._algorand.send.appCall(this.params.bare.call(params))\n },\n }\n }\n\n private getMethodCallParamsMethods() {\n return {\n /**\n * Return params for a payment transaction to fund the app account\n * @param params The parameters for the fund app accont payment transaction\n * @returns The parameters which can be used to create a fund app account payment transaction\n */\n fundAppAccount: (params: FundAppParams) => {\n return {\n ...params,\n sender: this.getSender(params.sender),\n signer: this.getSigner(params.sender, params.signer),\n receiver: this.appAddress,\n } satisfies PaymentParams\n },\n /**\n * Return params for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The parameters which can be used to create an update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams) => {\n return (await this.getABIParams(\n {\n ...params,\n ...(await this.compile(params)),\n },\n OnApplicationComplete.UpdateApplication,\n )) satisfies AppUpdateMethodCall\n },\n /**\n * Return params for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The parameters which can be used to create an opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.OptIn)) as AppCallMethodCall\n },\n /**\n * Return params for an delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The parameters which can be used to create a delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.DeleteApplication)) as AppDeleteMethodCall\n },\n /** Return params for an close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The parameters which can be used to create a close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams) => {\n return (await this.getABIParams(params, OnApplicationComplete.CloseOut)) as AppCallMethodCall\n },\n /** Return params for an ABI call\n * @param params The parameters for the ABI method call\n * @returns The parameters which can be used to create an ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete) => {\n return (await this.getABIParams(params, params.onComplete ?? OnApplicationComplete.NoOp)) as AppCallMethodCall\n },\n }\n }\n\n private getMethodCallSendMethods() {\n return {\n /** Sign and send transactions for a payment transaction to fund the app account\n * @param params The parameters for the fund app account payment transaction\n * @returns The result of send the fund app account payment transaction\n */\n fundAppAccount: (params: FundAppParams & SendParams) => {\n return this._algorand.send.payment(this.params.fundAppAccount(params))\n },\n /**\n * Sign and send transactions for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The result of sending the update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams & SendParams) => {\n const compiled = await this.compile(params)\n return {\n ...(await this.processMethodCallReturn(this._algorand.send.appUpdateMethodCall(await this.params.update({ ...params })))),\n ...(compiled as Partial<AppCompilationResult>),\n }\n },\n /**\n * Sign and send transactions for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The result of sending the opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(this._algorand.send.appCallMethodCall(await this.params.optIn(params)))\n },\n /**\n * Sign and send transactions for a delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The result of sending the delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(this._algorand.send.appDeleteMethodCall(await this.params.delete(params)))\n },\n /**\n * Sign and send transactions for a close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The result of sending the close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams & SendParams) => {\n return this.processMethodCallReturn(this._algorand.send.appCallMethodCall(await this.params.closeOut(params)))\n },\n /**\n * Sign and send transactions for a call (defaults to no-op)\n * @param params The parameters for the ABI method call\n * @returns The result of sending the ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete & SendParams) => {\n // Read-only call - do it via simulate\n if (\n (params.onComplete === OnApplicationComplete.NoOp || !params.onComplete) &&\n getABIMethod(params.method, this._appSpec).readonly\n ) {\n const readonlyParams = {\n ...params,\n }\n\n // Read-only calls do not require fees to be paid, as they are only simulated on the network.\n // With maximum opcode budget provided, ensure_budget (and similar op-up utilities) won't need to create inner transactions,\n // so fee coverage for op-up inner transactions does not need to be accounted for in readonly calls.\n // If max_fee is provided, use it as static_fee, as there may still be inner transactions sent which need to be covered by the outermost transaction,\n // even though ARC-22 specifies that readonly methods should not send inner transactions.\n if (params.coverAppCallInnerTransactionFees && params.maxFee) {\n readonlyParams.staticFee = params.maxFee\n readonlyParams.extraFee = undefined\n }\n\n try {\n const result = await this._algorand\n .newGroup()\n .addAppCallMethodCall(await this.params.call(readonlyParams))\n .simulate({\n allowUnnamedResources: params.populateAppCallResources ?? true,\n // Simulate calls for a readonly method shouldn't invoke signing\n skipSignatures: true,\n // Simulate calls for a readonly method can use the max opcode budget\n extraOpcodeBudget: MAX_SIMULATE_OPCODE_BUDGET,\n })\n return this.processMethodCallReturn({\n ...result,\n transaction: result.transactions.at(-1)!,\n confirmation: result.confirmations.at(-1)!,\n return: result.returns && result.returns.length > 0 ? result.returns.at(-1)! : undefined,\n })\n } catch (e) {\n const error = e as Error\n // For read-only calls with max opcode budget, fee issues should be rare\n // but we can still provide helpful error message if they occur\n if (params.coverAppCallInnerTransactionFees && error && error.message && error.message.match(/fee too small/)) {\n throw Error(`Fees were too small. You may need to increase the transaction maxFee.`)\n }\n throw e\n }\n }\n return this.processMethodCallReturn(this._algorand.send.appCallMethodCall(await this.params.call(params)))\n },\n }\n }\n\n private getMethodCallCreateTransactionMethods() {\n return {\n /** Return transaction for a payment transaction to fund the app account\n * @param params The parameters for the fund app account payment transaction\n * @returns A transaction which can be used to fund the app account\n */\n fundAppAccount: (params: FundAppParams) => {\n return this._algorand.createTransaction.payment(this.params.fundAppAccount(params))\n },\n /**\n * Return transactions for an update ABI call, including deploy-time TEAL template replacements and compilation if provided\n * @param params The parameters for the update ABI method call\n * @returns The transactions which can be used to create an update ABI method call\n */\n update: async (params: AppClientMethodCallParams & AppClientCompilationParams) => {\n return this._algorand.createTransaction.appUpdateMethodCall(await this.params.update(params))\n },\n /**\n * Return transactions for an opt-in ABI call\n * @param params The parameters for the opt-in ABI method call\n * @returns The transactions which can be used to create an opt-in ABI method call\n */\n optIn: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.optIn(params))\n },\n /**\n * Return transactions for a delete ABI call\n * @param params The parameters for the delete ABI method call\n * @returns The transactions which can be used to create a delete ABI method call\n */\n delete: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appDeleteMethodCall(await this.params.delete(params))\n },\n /**\n * Return transactions for a close out ABI call\n * @param params The parameters for the close out ABI method call\n * @returns The transactions which can be used to create a close out ABI method call\n */\n closeOut: async (params: AppClientMethodCallParams) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.closeOut(params))\n },\n /**\n * Return transactions for an ABI call (defaults to no-op)\n * @param params The parameters for the ABI method call\n * @returns The transactions which can be used to create an ABI method call\n */\n call: async (params: AppClientMethodCallParams & CallOnComplete) => {\n return this._algorand.createTransaction.appCallMethodCall(await this.params.call(params))\n },\n }\n }\n\n /** Returns the sender for a call, using the provided sender or using the `defaultSender`\n * if none provided and throws an error if neither provided */\n private getSender(sender: ReadableAddress | undefined): Address {\n if (!sender && !this._defaultSender) {\n throw new Error(`No sender provided and no default sender present in app client for call to app ${this._appName}`)\n }\n return getAddress(sender ?? this._defaultSender!)\n }\n\n /** Returns the signer for a call, using the provided signer or the `defaultSigner`\n * if no signer was provided and the sender resolves to the default sender, the call will use default signer\n * or `undefined` otherwise (so the signer is resolved from `AlgorandClient`) */\n private getSigner(\n sender: ReadableAddress | undefined,\n signer: TransactionSigner | AddressWithTransactionSigner | undefined,\n ): TransactionSigner | AddressWithTransactionSigner | undefined {\n return signer ?? (!sender || sender === this._defaultSender ? this._defaultSigner : undefined)\n }\n\n private getBareParams<\n TParams extends { sender?: ReadableAddress; signer?: TransactionSigner | AddressWithTransactionSigner } | undefined,\n TOnComplete extends OnApplicationComplete,\n >(params: TParams, onComplete: TOnComplete) {\n return {\n ...params,\n appId: this._appId,\n sender: this.getSender(params?.sender),\n signer: this.getSigner(params?.sender, params?.signer),\n onComplete,\n }\n }\n\n private async getABIParams<\n TParams extends {\n method: string\n sender?: ReadableAddress\n signer?: TransactionSigner | AddressWithTransactionSigner\n args?: AppClientMethodCallParams['args']\n },\n TOnComplete extends OnApplicationComplete,\n >(params: TParams, onComplete: TOnComplete) {\n const sender = this.getSender(params.sender)\n const method = getABIMethod(params.method, this._appSpec)\n const args = await this.getABIArgsWithDefaultValues(params.method, params.args, sender)\n return {\n ...params,\n appId: this._appId,\n sender: sender,\n signer: this.getSigner(params.sender, params.signer),\n method,\n onComplete,\n args,\n }\n }\n\n /** Make the given call and catch any errors, augmenting with debugging information before re-throwing. */\n private handleCallErrors = async (e: Error & { sentTransactions?: Transaction[] }) => {\n // We can't use the app ID in an error to identify new apps, so instead we check the programs\n // to identify if this is the correct app\n if (this.appId === 0n) {\n if (e.sentTransactions === undefined) return e\n\n const txns = e.sentTransactions\n\n const txn = txns.find((t) => e.message.includes(t.txId()))\n\n const programsDefinedAndEqual = (a: Uint8Array | undefined, b: Uint8Array | undefined) => {\n if (a === undefined || b === undefined) return false\n if (a.length !== b.length) return false\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false\n }\n\n return true\n }\n\n if (\n !programsDefinedAndEqual(txn?.appCall?.clearStateProgram, this._lastCompiled.clear) ||\n !programsDefinedAndEqual(txn?.appCall?.approvalProgram, this._lastCompiled?.approval)\n ) {\n return e\n }\n } else {\n // Only handle errors for this app.\n const appIdString = `app=${this._appId.toString()}`\n if (!e.message.includes(appIdString)) return e\n }\n\n const logicError = await this.exposeLogicError(e)\n if (logicError instanceof LogicError) {\n let currentLine = logicError.teal_line - logicError.lines - 1\n const stackWithLines = logicError.stack\n ?.split('\\n')\n .map((line) => `${(currentLine += 1)}: ${line}`)\n .join('\\n')\n Config.logger.error(`${logicError.message}\\n\\n${stackWithLines}`)\n }\n\n return logicError\n }\n\n private getBoxMethods() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this\n const stateMethods = {\n /**\n * Returns all single-key state values in a record keyed by the key name and the value a decoded ABI value.\n */\n getAll: async () => {\n return Object.fromEntries(\n await Promise.all(Object.keys(that._appSpec.state.keys.box).map(async (key) => [key, await stateMethods.getValue(key)])),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as Record<string, any>\n },\n /**\n * Returns a single state value for the current app with the value a decoded ABI value.\n * @param name The name of the state value to retrieve the value for\n * @returns\n */\n getValue: async (name: string) => {\n const metadata = getBoxABIStorageKey(that._appSpec, name)\n const value = await that.getBoxValue(Buffer.from(metadata.key, 'base64'))\n return getABIDecodedValue(metadata.valueType, value)\n },\n /**\n *\n * @param mapName The name of the map to read from\n * @param key The key within the map (without any map prefix) as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getMapValue: async (mapName: string, key: Uint8Array | any) => {\n const metadata = getBoxABIStorageMap(that._appSpec, mapName)\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const encodedKey = Buffer.concat([prefix, getABIEncodedValue(metadata.keyType, key)])\n const base64Key = Buffer.from(encodedKey).toString('base64')\n const value = await that.getBoxValue(Buffer.from(base64Key, 'base64'))\n return getABIDecodedValue(metadata.valueType, value)\n },\n\n /**\n *\n * @param mapName The name of the map to read from\n * @param key The key within the map as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n * @param appState\n */\n getMap: async (mapName: string) => {\n const metadata = getBoxABIStorageMap(that._appSpec, mapName)\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const boxNames = await that.getBoxNames()\n\n return new Map(\n await Promise.all(\n boxNames\n .filter((b) => binaryStartsWith(b.nameRaw, prefix))\n .map(async (b) => {\n return [\n getABIDecodedValue(metadata.keyType, b.nameRaw.slice(prefix.length)),\n getABIDecodedValue(metadata.valueType, await that.getBoxValue(b.nameRaw)),\n ] as const\n }),\n ),\n )\n },\n }\n return stateMethods\n }\n\n private getStateMethods(\n stateGetter: () => Promise<AppState>,\n keyGetter: () => {\n [name: string]: ABIStorageKey\n },\n mapGetter: () => {\n [name: string]: ABIStorageMap\n },\n ) {\n const stateMethods = {\n /**\n * Returns all single-key state values in a record keyed by the key name and the value a decoded ABI value.\n */\n getAll: async () => {\n const appState = await stateGetter()\n return Object.fromEntries(\n await Promise.all(Object.keys(keyGetter()).map(async (key) => [key, await stateMethods.getValue(key, appState)])),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as Record<string, any>\n },\n /**\n * Returns a single state value for the current app with the value a decoded ABI value.\n * @param name The name of the state value to retrieve the value for\n * @param appState Optional cached value of the current state\n * @returns\n */\n getValue: async (name: string, appState?: AppState) => {\n const state = Object.values(appState ?? (await stateGetter()))\n const metadata = keyGetter()[name]\n\n if (metadata === undefined) throw new Error(`Attempted to get state value ${name}, but it does not exist`)\n const value = state.find((s) => s.keyBase64 === metadata.key)\n\n if (value && 'valueRaw' in value) {\n return getABIDecodedValue(metadata.valueType, value.valueRaw)\n }\n\n return value?.value\n },\n /**\n * Returns a single value from the given map for the current app with the value a decoded ABI value.\n * @param mapName The name of the map to read from\n * @param key The key within the map (without any map prefix) as either a Buffer with the bytes or a value\n * that will be converted to bytes by encoding it using the specified ABI key type\n * in the ARC-56 spec\n * @param appState Optional cached value of the current state\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getMapValue: async (mapName: string, key: Uint8Array | any, appState?: AppState) => {\n const state = Object.values(appState ?? (await stateGetter()))\n const metadata = mapGetter()[mapName]\n\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n const encodedKey = Buffer.concat([prefix, getABIEncodedValue(metadata.keyType, key)])\n const base64Key = Buffer.from(encodedKey).toString('base64')\n const value = state.find((s) => s.keyBase64 === base64Key)\n\n if (value && 'valueRaw' in value) {\n return getABIDecodedValue(metadata.valueType, value.valueRaw)\n }\n\n return value?.value\n },\n\n /**\n * Returns all map values for the given map.\n * @param mapName The name of the map to read from\n * @param appState Optional cached value of the current state\n * @returns A map of all key-value pairs in the map as a `Record<string, ABIValue>`\n */\n getMap: async (mapName: string) => {\n const state = Object.values(await stateGetter())\n const metadata = mapGetter()[mapName]\n\n const prefix = Buffer.from(metadata.prefix ?? '', 'base64')\n\n return new Map(\n state\n .filter((s) => binaryStartsWith(s.keyRaw, prefix))\n .map((s) => {\n const key = s.keyRaw.slice(prefix.length)\n return [\n getABIDecodedValue(metadata.keyType, key),\n 'valueRaw' in s ? getABIDecodedValue(metadata.valueType, s.valueRaw) : s.value,\n ] as const\n }),\n )\n },\n }\n return stateMethods\n }\n}\n"],"mappings":"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"}
|