@algorandfoundation/algokit-utils 10.0.0-alpha.2 → 10.0.0-alpha.20
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/_virtual/rolldown_runtime.js +10 -15
- package/algo25/index.d.ts +2 -0
- package/algo25/index.js +9 -0
- package/algo25/index.mjs +3 -0
- package/algod-client/index.d.ts +3 -7
- package/algod-client/index.js +2 -5
- package/algod-client/index.mjs +2 -2
- package/index.d.ts +1 -2
- package/index.js +0 -7
- package/index.mjs +1 -2
- package/indexer-client/index.d.ts +2 -2
- package/indexer-client/index.js +6 -6
- package/indexer-client/index.mjs +2 -2
- package/{indexer-lookup.d.ts → indexer-client/indexer-lookup.d.ts} +8 -11
- package/{indexer-lookup.mjs → indexer-client/indexer-lookup.js} +6 -10
- package/indexer-client/indexer-lookup.js.map +1 -0
- package/{indexer-lookup.js → indexer-client/indexer-lookup.mjs} +3 -18
- package/indexer-client/indexer-lookup.mjs.map +1 -0
- package/kmd-client/index.d.ts +1 -2
- package/kmd-client/index.js +0 -5
- package/kmd-client/index.mjs +1 -2
- package/package.json +1 -1
- package/packages/abi/src/abi-method.d.ts +1 -1
- package/packages/abi/src/abi-method.js +1 -1
- package/packages/abi/src/abi-method.js.map +1 -1
- package/packages/abi/src/abi-method.mjs +1 -1
- package/packages/abi/src/abi-method.mjs.map +1 -1
- package/packages/abi/src/abi-type.d.ts +1 -1
- package/packages/abi/src/abi-type.js +4 -2
- package/packages/abi/src/abi-type.js.map +1 -1
- package/packages/abi/src/abi-type.mjs +4 -2
- package/packages/abi/src/abi-type.mjs.map +1 -1
- package/packages/abi/src/arc56-contract.js +1 -0
- package/packages/abi/src/arc56-contract.js.map +1 -1
- package/packages/abi/src/arc56-contract.mjs +1 -0
- package/packages/abi/src/arc56-contract.mjs.map +1 -1
- package/packages/algo25/src/index.d.ts +40 -0
- package/packages/algo25/src/index.js +44 -0
- package/packages/algo25/src/index.js.map +1 -1
- package/packages/algo25/src/index.mjs +39 -1
- package/packages/algo25/src/index.mjs.map +1 -1
- package/packages/algod_client/src/apis/api-service.d.ts +44 -44
- package/packages/algod_client/src/apis/api-service.js +155 -155
- package/packages/algod_client/src/apis/api-service.js.map +1 -1
- package/packages/algod_client/src/apis/api-service.mjs +155 -155
- package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
- package/packages/algod_client/src/core/api-error.js +3 -1
- package/packages/algod_client/src/core/api-error.js.map +1 -1
- package/packages/algod_client/src/core/api-error.mjs +3 -1
- package/packages/algod_client/src/core/api-error.mjs.map +1 -1
- package/packages/algod_client/src/core/model-runtime.js +6 -6
- package/packages/algod_client/src/core/model-runtime.js.map +1 -1
- package/packages/algod_client/src/core/model-runtime.mjs +8 -8
- package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
- package/packages/algod_client/src/models/account-participation.js +4 -4
- package/packages/algod_client/src/models/account-participation.js.map +1 -1
- package/packages/algod_client/src/models/account-participation.mjs +4 -4
- package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
- package/packages/algod_client/src/models/application-state-schema.d.ts +2 -2
- package/packages/algod_client/src/models/application-state-schema.js +2 -2
- package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
- package/packages/algod_client/src/models/application-state-schema.mjs +2 -2
- package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
- package/packages/algod_client/src/models/asset-params.js +2 -1
- package/packages/algod_client/src/models/asset-params.js.map +1 -1
- package/packages/algod_client/src/models/asset-params.mjs +2 -1
- package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
- package/packages/algod_client/src/models/block-response.js +1 -2
- package/packages/algod_client/src/models/block-response.js.map +1 -1
- package/packages/algod_client/src/models/block-response.mjs +2 -3
- package/packages/algod_client/src/models/block-response.mjs.map +1 -1
- package/packages/algod_client/src/models/block.d.ts +60 -40
- package/packages/algod_client/src/models/block.js +184 -108
- package/packages/algod_client/src/models/block.js.map +1 -1
- package/packages/algod_client/src/models/block.mjs +184 -108
- package/packages/algod_client/src/models/block.mjs.map +1 -1
- package/packages/algod_client/src/models/ledger-state-delta.js +1 -1
- package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
- package/packages/algod_client/src/models/ledger-state-delta.mjs +2 -2
- package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
- package/packages/algod_client/src/models/simulate-request.js +1 -1
- package/packages/algod_client/src/models/simulate-request.mjs +1 -1
- package/packages/algod_client/src/models/simulate-response.d.ts +2 -1
- package/packages/algod_client/src/models/simulate-response.js +6 -1
- package/packages/algod_client/src/models/simulate-response.js.map +1 -1
- package/packages/algod_client/src/models/simulate-response.mjs +6 -2
- package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +3 -5
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +4 -6
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +3 -5
- package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
- package/packages/algod_client/src/models/transaction-parameters-response.js +2 -2
- package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
- package/packages/algod_client/src/models/transaction-parameters-response.mjs +2 -2
- package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
- package/packages/common/src/address.js +0 -14
- package/packages/common/src/address.js.map +1 -1
- package/packages/common/src/address.mjs +1 -14
- package/packages/common/src/address.mjs.map +1 -1
- package/packages/common/src/codecs/composite/map.js +7 -4
- package/packages/common/src/codecs/composite/map.js.map +1 -1
- package/packages/common/src/codecs/composite/map.mjs +7 -4
- package/packages/common/src/codecs/composite/map.mjs.map +1 -1
- package/packages/common/src/codecs/composite/record.js +0 -1
- package/packages/common/src/codecs/composite/record.js.map +1 -1
- package/packages/common/src/codecs/primitives/address.js +0 -1
- package/packages/common/src/codecs/primitives/address.js.map +1 -1
- package/packages/common/src/codecs/primitives/bytes.js +0 -1
- package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
- package/packages/common/src/codecs/primitives/fixed-bytes.js +0 -1
- package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
- package/packages/common/src/codecs/wire.js +0 -1
- package/packages/common/src/codecs/wire.js.map +1 -1
- package/packages/common/src/msgpack.js +0 -1
- package/packages/common/src/msgpack.js.map +1 -1
- package/packages/indexer_client/src/apis/api-service.d.ts +1 -1
- package/packages/indexer_client/src/apis/api-service.js +12 -12
- package/packages/indexer_client/src/apis/api-service.js.map +1 -1
- package/packages/indexer_client/src/apis/api-service.mjs +12 -12
- package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
- package/packages/indexer_client/src/core/api-error.js +3 -1
- package/packages/indexer_client/src/core/api-error.js.map +1 -1
- package/packages/indexer_client/src/core/api-error.mjs +3 -1
- package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
- package/packages/indexer_client/src/core/model-runtime.js +0 -15
- package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
- package/packages/indexer_client/src/core/model-runtime.mjs +1 -13
- package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
- package/packages/indexer_client/src/models/account-participation.js +4 -4
- package/packages/indexer_client/src/models/account-participation.js.map +1 -1
- package/packages/indexer_client/src/models/account-participation.mjs +4 -4
- package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
- package/packages/indexer_client/src/models/application-state-schema.d.ts +2 -2
- package/packages/indexer_client/src/models/application-state-schema.js +2 -2
- package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
- package/packages/indexer_client/src/models/application-state-schema.mjs +2 -2
- package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
- package/packages/indexer_client/src/models/asset-params.js +2 -1
- package/packages/indexer_client/src/models/asset-params.js.map +1 -1
- package/packages/indexer_client/src/models/asset-params.mjs +2 -1
- package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
- package/packages/indexer_client/src/models/block.d.ts +5 -5
- package/packages/indexer_client/src/models/block.js +13 -13
- package/packages/indexer_client/src/models/block.js.map +1 -1
- package/packages/indexer_client/src/models/block.mjs +13 -13
- package/packages/indexer_client/src/models/block.mjs.map +1 -1
- package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +1 -1
- package/packages/indexer_client/src/models/eval-delta-key-value.js +2 -2
- package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
- package/packages/indexer_client/src/models/eval-delta-key-value.mjs +2 -2
- package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
- package/packages/indexer_client/src/models/eval-delta.d.ts +1 -1
- package/packages/indexer_client/src/models/eval-delta.js +2 -2
- package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
- package/packages/indexer_client/src/models/eval-delta.mjs +2 -2
- package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
- package/packages/indexer_client/src/models/hb-proof-fields.js +6 -6
- package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
- package/packages/indexer_client/src/models/hb-proof-fields.mjs +6 -6
- package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
- package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
- package/packages/indexer_client/src/models/participation-updates.js +2 -2
- package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
- package/packages/indexer_client/src/models/participation-updates.mjs +2 -2
- package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
- package/packages/indexer_client/src/models/state-proof-verifier.js +2 -2
- package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
- package/packages/indexer_client/src/models/state-proof-verifier.mjs +2 -2
- package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
- package/packages/indexer_client/src/models/state-schema.d.ts +2 -2
- package/packages/indexer_client/src/models/state-schema.js +2 -2
- package/packages/indexer_client/src/models/state-schema.js.map +1 -1
- package/packages/indexer_client/src/models/state-schema.mjs +2 -2
- package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
- package/packages/indexer_client/src/models/teal-key-value.d.ts +1 -1
- package/packages/indexer_client/src/models/teal-key-value.js +2 -2
- package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
- package/packages/indexer_client/src/models/teal-key-value.mjs +2 -2
- package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
- package/packages/indexer_client/src/models/transaction-heartbeat.js +2 -1
- package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
- package/packages/indexer_client/src/models/transaction-heartbeat.mjs +2 -1
- package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
- package/packages/indexer_client/src/models/transaction-keyreg.js +4 -4
- package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
- package/packages/indexer_client/src/models/transaction-keyreg.mjs +4 -4
- package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
- package/packages/indexer_client/src/models/transaction-signature-logicsig.js +2 -1
- package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
- package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +2 -1
- package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +3 -3
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +3 -3
- package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
- package/packages/indexer_client/src/models/transaction.d.ts +2 -2
- package/packages/indexer_client/src/models/transaction.js +6 -5
- package/packages/indexer_client/src/models/transaction.js.map +1 -1
- package/packages/indexer_client/src/models/transaction.mjs +6 -5
- package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
- package/packages/kmd_client/src/apis/api-service.d.ts +5 -5
- package/packages/kmd_client/src/apis/api-service.js +32 -32
- package/packages/kmd_client/src/apis/api-service.js.map +1 -1
- package/packages/kmd_client/src/apis/api-service.mjs +32 -32
- package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
- package/packages/kmd_client/src/core/api-error.js +3 -1
- package/packages/kmd_client/src/core/api-error.js.map +1 -1
- package/packages/kmd_client/src/core/api-error.mjs +3 -1
- package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
- package/packages/kmd_client/src/core/model-runtime.js +2 -12
- package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
- package/packages/kmd_client/src/core/model-runtime.mjs +3 -11
- package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
- package/packages/sdk/src/encoding/encoding.js +12 -2
- package/packages/sdk/src/encoding/encoding.js.map +1 -1
- package/packages/sdk/src/encoding/encoding.mjs +12 -1
- package/packages/sdk/src/encoding/encoding.mjs.map +1 -1
- package/packages/sdk/src/encoding/schema/map.js +0 -2
- package/packages/sdk/src/encoding/schema/map.js.map +1 -1
- package/packages/transact/src/logicsig.d.ts +3 -15
- package/packages/transact/src/logicsig.js +16 -36
- package/packages/transact/src/logicsig.js.map +1 -1
- package/packages/transact/src/logicsig.mjs +18 -36
- package/packages/transact/src/logicsig.mjs.map +1 -1
- package/packages/transact/src/multisig.d.ts +7 -115
- package/packages/transact/src/multisig.js +86 -136
- package/packages/transact/src/multisig.js.map +1 -1
- package/packages/transact/src/multisig.mjs +87 -117
- package/packages/transact/src/multisig.mjs.map +1 -1
- package/packages/transact/src/transactions/app-call.d.ts +10 -15
- package/packages/transact/src/transactions/app-call.js.map +1 -1
- package/packages/transact/src/transactions/app-call.mjs.map +1 -1
- package/packages/transact/src/transactions/asset-config.d.ts +1 -6
- package/packages/transact/src/transactions/asset-config.js.map +1 -1
- package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
- package/packages/transact/src/transactions/asset-freeze.d.ts +1 -6
- package/packages/transact/src/transactions/asset-transfer.d.ts +1 -6
- package/packages/transact/src/transactions/key-registration.d.ts +1 -8
- package/packages/transact/src/transactions/reference-types-meta.d.ts +26 -0
- package/packages/transact/src/transactions/reference-types-meta.js +71 -0
- package/packages/transact/src/transactions/reference-types-meta.js.map +1 -0
- package/packages/transact/src/transactions/reference-types-meta.mjs +69 -0
- package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -0
- package/packages/transact/src/transactions/signed-transaction-meta.js +2 -3
- package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
- package/packages/transact/src/transactions/signed-transaction-meta.mjs +3 -3
- package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
- package/packages/transact/src/transactions/signed-transaction.d.ts +7 -3
- package/packages/transact/src/transactions/signed-transaction.js +1 -1
- package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
- package/packages/transact/src/transactions/signed-transaction.mjs +1 -2
- package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
- package/packages/transact/src/transactions/transaction-meta.js +29 -23
- package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
- package/packages/transact/src/transactions/transaction-meta.mjs +29 -23
- package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
- package/packages/transact/src/transactions/transaction.d.ts +5 -1
- package/packages/transact/src/transactions/transaction.js +1 -1
- package/packages/transact/src/transactions/transaction.js.map +1 -1
- package/packages/transact/src/transactions/transaction.mjs +1 -1
- package/packages/transact/src/transactions/transaction.mjs.map +1 -1
- package/sdk/index.js +1 -1
- package/testing/account.js +2 -5
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +2 -5
- package/testing/account.mjs.map +1 -1
- package/testing/fixtures/algorand-fixture.d.ts +3 -3
- package/testing/fixtures/algorand-fixture.js.map +1 -1
- package/testing/fixtures/algorand-fixture.mjs.map +1 -1
- package/transact/index.d.ts +11 -10
- package/transact/index.js +7 -32
- package/transact/index.mjs +7 -10
- package/transaction/transaction.js +2 -2
- package/transaction/transaction.js.map +1 -1
- package/transaction/transaction.mjs +2 -2
- package/transaction/transaction.mjs.map +1 -1
- package/transactions/app-call.d.ts +5 -4
- package/transactions/app-call.js +15 -15
- package/transactions/app-call.js.map +1 -1
- package/transactions/app-call.mjs +15 -15
- package/transactions/app-call.mjs.map +1 -1
- package/transactions/asset-config.d.ts +1 -1
- package/transactions/asset-config.js +1 -1
- package/transactions/asset-config.js.map +1 -1
- package/transactions/asset-config.mjs +1 -1
- package/transactions/asset-config.mjs.map +1 -1
- package/transactions/key-registration.d.ts +1 -1
- package/transactions/key-registration.js.map +1 -1
- package/transactions/key-registration.mjs.map +1 -1
- package/transactions/method-call.d.ts +1 -1
- package/transactions/method-call.js +69 -77
- package/transactions/method-call.js.map +1 -1
- package/transactions/method-call.mjs +69 -77
- package/transactions/method-call.mjs.map +1 -1
- package/types/account-manager.d.ts +1 -1
- package/types/account-manager.js +3 -3
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +3 -3
- package/types/account-manager.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +57 -43
- package/types/algorand-client-transaction-creator.js +8 -0
- package/types/algorand-client-transaction-creator.js.map +1 -1
- package/types/algorand-client-transaction-creator.mjs +8 -0
- package/types/algorand-client-transaction-creator.mjs.map +1 -1
- package/types/algorand-client-transaction-sender.d.ts +62 -48
- package/types/algorand-client-transaction-sender.js +8 -1
- package/types/algorand-client-transaction-sender.js.map +1 -1
- package/types/algorand-client-transaction-sender.mjs +8 -0
- package/types/algorand-client-transaction-sender.mjs.map +1 -1
- package/types/app-client.d.ts +110 -105
- package/types/app-client.js +0 -1
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +1 -1
- package/types/app-deployer.js +2 -2
- package/types/app-deployer.js.map +1 -1
- package/types/app-deployer.mjs +2 -2
- package/types/app-deployer.mjs.map +1 -1
- package/types/app-factory.d.ts +44 -41
- package/types/app-factory.js.map +1 -1
- package/types/app-factory.mjs.map +1 -1
- package/types/app-manager.d.ts +3 -1
- package/types/app-manager.js +16 -10
- package/types/app-manager.js.map +1 -1
- package/types/app-manager.mjs +16 -10
- package/types/app-manager.mjs.map +1 -1
- package/types/app-spec.js +12 -5
- package/types/app-spec.js.map +1 -1
- package/types/app-spec.mjs +12 -5
- package/types/app-spec.mjs.map +1 -1
- package/types/app.d.ts +1 -1
- package/types/app.js.map +1 -1
- package/types/app.mjs.map +1 -1
- package/types/asset-manager.js +1 -1
- package/types/asset-manager.js.map +1 -1
- package/types/asset-manager.mjs +1 -1
- package/types/asset-manager.mjs.map +1 -1
- package/types/async-event-emitter.d.ts +3 -6
- package/types/async-event-emitter.js.map +1 -1
- package/types/async-event-emitter.mjs.map +1 -1
- package/types/client-manager.d.ts +1 -1
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +9 -1
- package/types/composer.js +35 -23
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +37 -24
- package/types/composer.mjs.map +1 -1
- package/types/debugging.d.ts +13 -9
- package/types/debugging.js.map +1 -1
- package/types/debugging.mjs.map +1 -1
- package/types/expand.d.ts +2 -9
- package/types/kmd-account-manager.d.ts +1 -0
- package/types/kmd-account-manager.js +21 -10
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +22 -11
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/lifecycle-events.d.ts +0 -1
- package/types/lifecycle-events.js.map +1 -1
- package/types/lifecycle-events.mjs.map +1 -1
- package/types/testing.d.ts +2 -2
- package/types/transaction.d.ts +1 -1
- package/_virtual/rolldown_runtime.mjs +0 -13
- package/indexer-lookup.js.map +0 -1
- package/indexer-lookup.mjs.map +0 -1
- package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
- package/packages/algod_client/src/models/application-local-reference.d.ts +0 -20
- package/packages/algod_client/src/models/application-local-reference.js +0 -23
- package/packages/algod_client/src/models/application-local-reference.js.map +0 -1
- package/packages/algod_client/src/models/application-local-reference.mjs +0 -23
- package/packages/algod_client/src/models/application-local-reference.mjs.map +0 -1
- package/packages/algod_client/src/models/asset-holding-reference.d.ts +0 -20
- package/packages/algod_client/src/models/asset-holding-reference.js +0 -23
- package/packages/algod_client/src/models/asset-holding-reference.js.map +0 -1
- package/packages/algod_client/src/models/asset-holding-reference.mjs +0 -23
- package/packages/algod_client/src/models/asset-holding-reference.mjs.map +0 -1
- package/packages/algod_client/src/models/box-reference.d.ts +0 -17
- package/packages/algod_client/src/models/box-reference.js +0 -23
- package/packages/algod_client/src/models/box-reference.js.map +0 -1
- package/packages/algod_client/src/models/box-reference.mjs +0 -23
- package/packages/algod_client/src/models/box-reference.mjs.map +0 -1
- package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
- package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
- package/packages/transact/src/transactions/common.d.ts +0 -37
|
@@ -57,6 +57,9 @@ var KmdAccountManager = class {
|
|
|
57
57
|
* @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found
|
|
58
58
|
*/
|
|
59
59
|
async getWalletAccount(walletName, predicate, sender) {
|
|
60
|
+
return this.findWalletAccount(walletName, predicate, sender);
|
|
61
|
+
}
|
|
62
|
+
async findWalletAccount(walletName, predicateOrAddress, sender) {
|
|
60
63
|
const kmd = await this.kmd();
|
|
61
64
|
const wallet = (await kmd.listWallets()).wallets.filter((w) => w.name === walletName);
|
|
62
65
|
if (wallet.length === 0) return;
|
|
@@ -64,16 +67,21 @@ var KmdAccountManager = class {
|
|
|
64
67
|
walletId: wallet[0].id,
|
|
65
68
|
walletPassword: ""
|
|
66
69
|
})).walletHandleToken;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
70
|
+
let matchedAddress = void 0;
|
|
71
|
+
if (predicateOrAddress && typeof predicateOrAddress === "string") matchedAddress = require_address.Address.fromString(predicateOrAddress);
|
|
72
|
+
else {
|
|
73
|
+
const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses;
|
|
74
|
+
if (addresses.length > 0) if (predicateOrAddress && typeof predicateOrAddress === "function") {
|
|
75
|
+
for (let i = 0; i < addresses.length; i++) if (predicateOrAddress(await this._clientManager.algod.accountInformation(addresses[i]))) {
|
|
76
|
+
matchedAddress = addresses[i];
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
} else matchedAddress = addresses[0];
|
|
72
80
|
}
|
|
73
|
-
if (
|
|
81
|
+
if (!matchedAddress) return;
|
|
74
82
|
const accountKey = (await kmd.exportKey({
|
|
75
83
|
walletHandleToken: walletHandle,
|
|
76
|
-
address:
|
|
84
|
+
address: matchedAddress
|
|
77
85
|
})).privateKey;
|
|
78
86
|
const keys = tweetnacl.default.sign.keyPair.fromSecretKey(accountKey);
|
|
79
87
|
const rawSigner = async (bytesToSign) => {
|
|
@@ -145,9 +153,12 @@ var KmdAccountManager = class {
|
|
|
145
153
|
*/
|
|
146
154
|
async getLocalNetDispenserAccount() {
|
|
147
155
|
if (!await this._clientManager.isLocalNet()) throw new Error("Can't get LocalNet dispenser account from non LocalNet network");
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
|
|
156
|
+
const dispenserAddresses = (await this._clientManager.algod.genesis()).alloc.filter((a) => a.comment === "Wallet1").map((a) => a.addr);
|
|
157
|
+
if (dispenserAddresses.length > 0) {
|
|
158
|
+
const dispenser = await this.findWalletAccount("unencrypted-default-wallet", dispenserAddresses[0]);
|
|
159
|
+
if (dispenser) return dispenser;
|
|
160
|
+
}
|
|
161
|
+
throw new Error("Error retrieving LocalNet dispenser account; couldn't find the default account in KMD");
|
|
151
162
|
}
|
|
152
163
|
};
|
|
153
164
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmd-account-manager.js","names":["ClientManager","nacl","generateAddressWithSigners","getOptionalAddress","TransactionComposer","AlgoAmount"],"sources":["../../src/types/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { Config } from '../config'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n\n const walletId = wallet[0].id\n\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n\n let i = 0\n if (predicate) {\n for (i = 0; i < addresses.length; i++) {\n const address = addresses[i]\n const account = await this._clientManager.algod.accountInformation(address)\n if (predicate(account)) {\n break\n }\n }\n }\n\n if (i >= addresses.length) {\n return undefined\n }\n\n const accountKey = (\n await kmd.exportKey({\n walletHandleToken: walletHandle,\n address: addresses[i],\n })\n ).privateKey\n\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({\n amount: fundWith ?? AlgoAmount.Algo(1000),\n receiver: account.addr,\n sender: dispenser.addr,\n })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n\n const dispenser = await this.getWalletAccount('unencrypted-default-wallet', (a) => a.status !== 'Offline' && a.amount > 1_000_000_000)\n if (!dispenser) {\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n\n return dispenser\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kmd-account-manager.js","names":["ClientManager","matchedAddress: Address | undefined","Address","nacl","generateAddressWithSigners","getOptionalAddress","TransactionComposer","AlgoAmount"],"sources":["../../src/types/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\nimport { Config } from '../config'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n return this.findWalletAccount(walletName, predicate, sender)\n }\n\n private async findWalletAccount(\n walletName: string,\n predicateOrAddress?: ((account: Account) => boolean) | string,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n const walletId = wallet[0].id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n\n let matchedAddress: Address | undefined = undefined\n if (predicateOrAddress && typeof predicateOrAddress === 'string') {\n matchedAddress = Address.fromString(predicateOrAddress)\n } else {\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n if (addresses.length > 0) {\n if (predicateOrAddress && typeof predicateOrAddress === 'function') {\n for (let i = 0; i < addresses.length; i++) {\n const account = await this._clientManager.algod.accountInformation(addresses[i])\n if (predicateOrAddress(account)) {\n matchedAddress = addresses[i]\n break\n }\n }\n } else {\n matchedAddress = addresses[0]\n }\n }\n }\n\n if (!matchedAddress) {\n return undefined\n }\n\n const accountKey = (await kmd.exportKey({ walletHandleToken: walletHandle, address: matchedAddress })).privateKey\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({ amount: fundWith ?? AlgoAmount.Algo(1000), receiver: account.addr, sender: dispenser.addr })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n const genesisResponse = await this._clientManager.algod.genesis()\n const dispenserAddresses = genesisResponse.alloc.filter((a) => a.comment === 'Wallet1').map((a) => a.addr)\n if (dispenserAddresses.length > 0) {\n const dispenser = await this.findWalletAccount('unencrypted-default-wallet', dispenserAddresses[0])\n if (dispenser) {\n return dispenser\n }\n }\n\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getOptionalAddress } from "../packages/common/src/address.mjs";
|
|
1
|
+
import { Address, getOptionalAddress } from "../packages/common/src/address.mjs";
|
|
2
2
|
import { generateAddressWithSigners } from "../packages/transact/src/signer.mjs";
|
|
3
3
|
import { AlgoAmount } from "./amount.mjs";
|
|
4
4
|
import { Config } from "../config.mjs";
|
|
@@ -55,6 +55,9 @@ var KmdAccountManager = class {
|
|
|
55
55
|
* @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found
|
|
56
56
|
*/
|
|
57
57
|
async getWalletAccount(walletName, predicate, sender) {
|
|
58
|
+
return this.findWalletAccount(walletName, predicate, sender);
|
|
59
|
+
}
|
|
60
|
+
async findWalletAccount(walletName, predicateOrAddress, sender) {
|
|
58
61
|
const kmd = await this.kmd();
|
|
59
62
|
const wallet = (await kmd.listWallets()).wallets.filter((w) => w.name === walletName);
|
|
60
63
|
if (wallet.length === 0) return;
|
|
@@ -62,16 +65,21 @@ var KmdAccountManager = class {
|
|
|
62
65
|
walletId: wallet[0].id,
|
|
63
66
|
walletPassword: ""
|
|
64
67
|
})).walletHandleToken;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
68
|
+
let matchedAddress = void 0;
|
|
69
|
+
if (predicateOrAddress && typeof predicateOrAddress === "string") matchedAddress = Address.fromString(predicateOrAddress);
|
|
70
|
+
else {
|
|
71
|
+
const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses;
|
|
72
|
+
if (addresses.length > 0) if (predicateOrAddress && typeof predicateOrAddress === "function") {
|
|
73
|
+
for (let i = 0; i < addresses.length; i++) if (predicateOrAddress(await this._clientManager.algod.accountInformation(addresses[i]))) {
|
|
74
|
+
matchedAddress = addresses[i];
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
} else matchedAddress = addresses[0];
|
|
70
78
|
}
|
|
71
|
-
if (
|
|
79
|
+
if (!matchedAddress) return;
|
|
72
80
|
const accountKey = (await kmd.exportKey({
|
|
73
81
|
walletHandleToken: walletHandle,
|
|
74
|
-
address:
|
|
82
|
+
address: matchedAddress
|
|
75
83
|
})).privateKey;
|
|
76
84
|
const keys = nacl.sign.keyPair.fromSecretKey(accountKey);
|
|
77
85
|
const rawSigner = async (bytesToSign) => {
|
|
@@ -143,9 +151,12 @@ var KmdAccountManager = class {
|
|
|
143
151
|
*/
|
|
144
152
|
async getLocalNetDispenserAccount() {
|
|
145
153
|
if (!await this._clientManager.isLocalNet()) throw new Error("Can't get LocalNet dispenser account from non LocalNet network");
|
|
146
|
-
const
|
|
147
|
-
if (
|
|
148
|
-
|
|
154
|
+
const dispenserAddresses = (await this._clientManager.algod.genesis()).alloc.filter((a) => a.comment === "Wallet1").map((a) => a.addr);
|
|
155
|
+
if (dispenserAddresses.length > 0) {
|
|
156
|
+
const dispenser = await this.findWalletAccount("unencrypted-default-wallet", dispenserAddresses[0]);
|
|
157
|
+
if (dispenser) return dispenser;
|
|
158
|
+
}
|
|
159
|
+
throw new Error("Error retrieving LocalNet dispenser account; couldn't find the default account in KMD");
|
|
149
160
|
}
|
|
150
161
|
};
|
|
151
162
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmd-account-manager.mjs","names":[],"sources":["../../src/types/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { Config } from '../config'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n\n const walletId = wallet[0].id\n\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n\n let i = 0\n if (predicate) {\n for (i = 0; i < addresses.length; i++) {\n const address = addresses[i]\n const account = await this._clientManager.algod.accountInformation(address)\n if (predicate(account)) {\n break\n }\n }\n }\n\n if (i >= addresses.length) {\n return undefined\n }\n\n const accountKey = (\n await kmd.exportKey({\n walletHandleToken: walletHandle,\n address: addresses[i],\n })\n ).privateKey\n\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({\n amount: fundWith ?? AlgoAmount.Algo(1000),\n receiver: account.addr,\n sender: dispenser.addr,\n })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n\n const dispenser = await this.getWalletAccount('unencrypted-default-wallet', (a) => a.status !== 'Offline' && a.amount > 1_000_000_000)\n if (!dispenser) {\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n\n return dispenser\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kmd-account-manager.mjs","names":["matchedAddress: Address | undefined"],"sources":["../../src/types/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\nimport { Config } from '../config'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n return this.findWalletAccount(walletName, predicate, sender)\n }\n\n private async findWalletAccount(\n walletName: string,\n predicateOrAddress?: ((account: Account) => boolean) | string,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n const walletId = wallet[0].id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n\n let matchedAddress: Address | undefined = undefined\n if (predicateOrAddress && typeof predicateOrAddress === 'string') {\n matchedAddress = Address.fromString(predicateOrAddress)\n } else {\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n if (addresses.length > 0) {\n if (predicateOrAddress && typeof predicateOrAddress === 'function') {\n for (let i = 0; i < addresses.length; i++) {\n const account = await this._clientManager.algod.accountInformation(addresses[i])\n if (predicateOrAddress(account)) {\n matchedAddress = addresses[i]\n break\n }\n }\n } else {\n matchedAddress = addresses[0]\n }\n }\n }\n\n if (!matchedAddress) {\n return undefined\n }\n\n const accountKey = (await kmd.exportKey({ walletHandleToken: walletHandle, address: matchedAddress })).privateKey\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({ amount: fundWith ?? AlgoAmount.Algo(1000), receiver: account.addr, sender: dispenser.addr })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n const genesisResponse = await this._clientManager.algod.genesis()\n const dispenserAddresses = genesisResponse.alloc.filter((a) => a.comment === 'Wallet1').map((a) => a.addr)\n if (dispenserAddresses.length > 0) {\n const dispenser = await this.findWalletAccount('unencrypted-default-wallet', dispenserAddresses[0])\n if (dispenser) {\n return dispenser\n }\n }\n\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-events.js","names":[],"sources":["../../src/types/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n
|
|
1
|
+
{"version":3,"file":"lifecycle-events.js","names":[],"sources":["../../src/types/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n}\n"],"mappings":";;AAEA,IAAY,kDAAL;AACL;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-events.mjs","names":[],"sources":["../../src/types/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n
|
|
1
|
+
{"version":3,"file":"lifecycle-events.mjs","names":[],"sources":["../../src/types/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n}\n"],"mappings":";AAEA,IAAY,kDAAL;AACL;AACA"}
|
package/types/testing.d.ts
CHANGED
|
@@ -94,7 +94,7 @@ interface AlgorandFixture {
|
|
|
94
94
|
* ```typescript
|
|
95
95
|
* describe('MY MODULE', () => {
|
|
96
96
|
* const fixture = algorandFixture()
|
|
97
|
-
* beforeEach(fixture.newScope
|
|
97
|
+
* beforeEach(fixture.newScope)
|
|
98
98
|
*
|
|
99
99
|
* test('MY TEST', async () => {
|
|
100
100
|
* const { algorand, testAccount } = fixture.context
|
|
@@ -108,7 +108,7 @@ interface AlgorandFixture {
|
|
|
108
108
|
* ```typescript
|
|
109
109
|
* describe('MY MODULE', () => {
|
|
110
110
|
* const fixture = algorandFixture()
|
|
111
|
-
* beforeAll(fixture.newScope
|
|
111
|
+
* beforeAll(fixture.newScope)
|
|
112
112
|
*
|
|
113
113
|
* test('test1', async () => {
|
|
114
114
|
* const { algorand, testAccount } = fixture.context
|
package/types/transaction.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { Expand } from "../packages/common/src/expand.js";
|
|
1
2
|
import { ABIReturn } from "../packages/abi/src/abi-method.js";
|
|
2
3
|
import { Transaction } from "../packages/transact/src/transactions/transaction.js";
|
|
3
4
|
import { AddressWithTransactionSigner, SendingAddress, TransactionSigner } from "../packages/transact/src/signer.js";
|
|
4
5
|
import { PendingTransactionResponse } from "../packages/algod_client/src/models/pending-transaction-response.js";
|
|
5
6
|
import { AlgoAmount } from "./amount.js";
|
|
6
|
-
import { Expand } from "./expand.js";
|
|
7
7
|
import { TransactionComposer } from "./composer.js";
|
|
8
8
|
|
|
9
9
|
//#region src/types/transaction.d.ts
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
//#region rolldown:runtime
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __export = (all) => {
|
|
4
|
-
let target = {};
|
|
5
|
-
for (var name in all) __defProp(target, name, {
|
|
6
|
-
get: all[name],
|
|
7
|
-
enumerable: true
|
|
8
|
-
});
|
|
9
|
-
return target;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
export { __export };
|
package/indexer-lookup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexer-lookup.js","names":["nextToken: string | undefined"],"sources":["../src/indexer-lookup.ts"],"sourcesContent":["import { Address } from '@algorandfoundation/algokit-common'\nimport {\n Application,\n ApplicationsResponse,\n AssetBalancesResponse,\n IndexerClient,\n MiniAssetHolding,\n TransactionsResponse,\n} from '@algorandfoundation/algokit-indexer-client'\nimport { LookupAssetHoldingsOptions } from './types/indexer'\nexport type SearchForTransactionsCriteria = Omit<NonNullable<Parameters<IndexerClient['searchForTransactions']>[0]>, 'limit' | 'next'>\n\nconst DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT = 1000 //MaxAPIResourcesPerAccount: This is the default maximum, though may be provider specific\n\n/**\n * Looks up applications that were created by the given address; will automatically paginate through all data.\n * @param indexer An indexer instance\n * @param address The address of the creator to look up\n * @param getAll Whether or not to include deleted applications. Default true.\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The list of application results\n */\nexport async function lookupAccountCreatedApplicationByAddress(\n indexer: IndexerClient,\n address: string | Address,\n getAll: boolean = true,\n paginationLimit?: number,\n): Promise<Application[]> {\n return await executePaginatedRequest(\n (response: ApplicationsResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n return response.applications\n },\n (nextToken) => {\n return indexer.lookupAccountCreatedApplications(address, {\n includeAll: getAll,\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n ...(nextToken && { next: nextToken }),\n })\n },\n )\n}\n\n/**\n * Looks up asset holdings for the given asset; will automatically paginate through all data.\n * @param indexer An indexer instance\n * @param assetId The ID of the asset to look up holdings for\n * @param options Optional options to control the lookup\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The list of application results\n */\nexport async function lookupAssetHoldings(\n indexer: IndexerClient,\n assetId: number | bigint,\n options?: LookupAssetHoldingsOptions,\n paginationLimit?: number,\n): Promise<MiniAssetHolding[]> {\n return await executePaginatedRequest(\n (response: AssetBalancesResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n return response.balances\n },\n (nextToken) => {\n return indexer.lookupAssetBalances(assetId, {\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n ...(options?.currencyGreaterThan !== undefined && { currencyGreaterThan: options.currencyGreaterThan }),\n ...(options?.currencyLessThan !== undefined && { currencyLessThan: options.currencyLessThan }),\n ...(options?.includeAll !== undefined && { includeAll: options.includeAll }),\n ...(nextToken && { next: nextToken }),\n })\n },\n )\n}\n\n/**\n * Allows transactions to be searched for the given criteria.\n * @param indexer An indexer client\n * @param searchCriteria The criteria to search for\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The search results\n */\nexport async function searchTransactions(\n indexer: IndexerClient,\n searchCriteria: SearchForTransactionsCriteria,\n paginationLimit?: number,\n): Promise<TransactionsResponse> {\n let currentRound = 0n\n const transactions = await executePaginatedRequest(\n (response: TransactionsResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n if (response.currentRound > currentRound) {\n currentRound = response.currentRound\n }\n return response.transactions\n },\n (nextToken) => {\n return indexer.searchForTransactions({\n ...searchCriteria,\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n next: nextToken,\n })\n },\n )\n\n return {\n currentRound,\n nextToken: undefined,\n transactions,\n } satisfies TransactionsResponse\n}\n\n// https://dev.algorand.co/reference/rest-apis/indexer\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function executePaginatedRequest<TResult, TRequest extends Promise<any>>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extractItems: (response: any) => TResult[],\n buildRequest: (nextToken?: string) => TRequest,\n): Promise<TResult[]> {\n const results = []\n\n let nextToken: string | undefined = undefined\n while (true) {\n const request = buildRequest(nextToken)\n const response = await request\n const items = extractItems(response)\n if (items == null || items.length === 0) {\n break\n }\n results.push(...items)\n nextToken = response['nextToken']\n if (!nextToken) {\n break\n }\n }\n\n return results\n}\n"],"mappings":";;;;;;;;;AAYA,MAAM,gDAAgD;;;;;;;;;AAUtD,eAAsB,yCACpB,SACA,SACA,SAAkB,MAClB,iBACwB;AACxB,QAAO,MAAM,yBACV,aAAyD;AACxD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,iCAAiC,SAAS;GACvD,YAAY;GACZ,OAAO,mBAAmB;GAC1B,GAAI,aAAa,EAAE,MAAM,WAAW;GACrC,CAAC;GAEL;;;;;;;;;;AAWH,eAAsB,oBACpB,SACA,SACA,SACA,iBAC6B;AAC7B,QAAO,MAAM,yBACV,aAA0D;AACzD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,oBAAoB,SAAS;GAC1C,OAAO,mBAAmB;GAC1B,GAAI,SAAS,wBAAwB,UAAa,EAAE,qBAAqB,QAAQ,qBAAqB;GACtG,GAAI,SAAS,qBAAqB,UAAa,EAAE,kBAAkB,QAAQ,kBAAkB;GAC7F,GAAI,SAAS,eAAe,UAAa,EAAE,YAAY,QAAQ,YAAY;GAC3E,GAAI,aAAa,EAAE,MAAM,WAAW;GACrC,CAAC;GAEL;;;;;;;;;AAUH,eAAsB,mBACpB,SACA,gBACA,iBAC+B;CAC/B,IAAI,eAAe;CACnB,MAAM,eAAe,MAAM,yBACxB,aAAyD;AACxD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,MAAI,SAAS,eAAe,aAC1B,gBAAe,SAAS;AAE1B,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,sBAAsB;GACnC,GAAG;GACH,OAAO,mBAAmB;GAC1B,MAAM;GACP,CAAC;GAEL;AAED,QAAO;EACL;EACA,WAAW;EACX;EACD;;AAKH,eAAsB,wBAEpB,cACA,cACoB;CACpB,MAAM,UAAU,EAAE;CAElB,IAAIA,YAAgC;AACpC,QAAO,MAAM;EAEX,MAAM,WAAW,MADD,aAAa,UAAU;EAEvC,MAAM,QAAQ,aAAa,SAAS;AACpC,MAAI,SAAS,QAAQ,MAAM,WAAW,EACpC;AAEF,UAAQ,KAAK,GAAG,MAAM;AACtB,cAAY,SAAS;AACrB,MAAI,CAAC,UACH;;AAIJ,QAAO"}
|
package/indexer-lookup.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexer-lookup.mjs","names":["nextToken: string | undefined"],"sources":["../src/indexer-lookup.ts"],"sourcesContent":["import { Address } from '@algorandfoundation/algokit-common'\nimport {\n Application,\n ApplicationsResponse,\n AssetBalancesResponse,\n IndexerClient,\n MiniAssetHolding,\n TransactionsResponse,\n} from '@algorandfoundation/algokit-indexer-client'\nimport { LookupAssetHoldingsOptions } from './types/indexer'\nexport type SearchForTransactionsCriteria = Omit<NonNullable<Parameters<IndexerClient['searchForTransactions']>[0]>, 'limit' | 'next'>\n\nconst DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT = 1000 //MaxAPIResourcesPerAccount: This is the default maximum, though may be provider specific\n\n/**\n * Looks up applications that were created by the given address; will automatically paginate through all data.\n * @param indexer An indexer instance\n * @param address The address of the creator to look up\n * @param getAll Whether or not to include deleted applications. Default true.\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The list of application results\n */\nexport async function lookupAccountCreatedApplicationByAddress(\n indexer: IndexerClient,\n address: string | Address,\n getAll: boolean = true,\n paginationLimit?: number,\n): Promise<Application[]> {\n return await executePaginatedRequest(\n (response: ApplicationsResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n return response.applications\n },\n (nextToken) => {\n return indexer.lookupAccountCreatedApplications(address, {\n includeAll: getAll,\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n ...(nextToken && { next: nextToken }),\n })\n },\n )\n}\n\n/**\n * Looks up asset holdings for the given asset; will automatically paginate through all data.\n * @param indexer An indexer instance\n * @param assetId The ID of the asset to look up holdings for\n * @param options Optional options to control the lookup\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The list of application results\n */\nexport async function lookupAssetHoldings(\n indexer: IndexerClient,\n assetId: number | bigint,\n options?: LookupAssetHoldingsOptions,\n paginationLimit?: number,\n): Promise<MiniAssetHolding[]> {\n return await executePaginatedRequest(\n (response: AssetBalancesResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n return response.balances\n },\n (nextToken) => {\n return indexer.lookupAssetBalances(assetId, {\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n ...(options?.currencyGreaterThan !== undefined && { currencyGreaterThan: options.currencyGreaterThan }),\n ...(options?.currencyLessThan !== undefined && { currencyLessThan: options.currencyLessThan }),\n ...(options?.includeAll !== undefined && { includeAll: options.includeAll }),\n ...(nextToken && { next: nextToken }),\n })\n },\n )\n}\n\n/**\n * Allows transactions to be searched for the given criteria.\n * @param indexer An indexer client\n * @param searchCriteria The criteria to search for\n * @param paginationLimit The number of records to return per paginated request, default 1000\n * @returns The search results\n */\nexport async function searchTransactions(\n indexer: IndexerClient,\n searchCriteria: SearchForTransactionsCriteria,\n paginationLimit?: number,\n): Promise<TransactionsResponse> {\n let currentRound = 0n\n const transactions = await executePaginatedRequest(\n (response: TransactionsResponse | { message: string }) => {\n if ('message' in response) {\n throw { status: 404, ...response }\n }\n if (response.currentRound > currentRound) {\n currentRound = response.currentRound\n }\n return response.transactions\n },\n (nextToken) => {\n return indexer.searchForTransactions({\n ...searchCriteria,\n limit: paginationLimit ?? DEFAULT_INDEXER_MAX_API_RESOURCES_PER_ACCOUNT,\n next: nextToken,\n })\n },\n )\n\n return {\n currentRound,\n nextToken: undefined,\n transactions,\n } satisfies TransactionsResponse\n}\n\n// https://dev.algorand.co/reference/rest-apis/indexer\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function executePaginatedRequest<TResult, TRequest extends Promise<any>>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extractItems: (response: any) => TResult[],\n buildRequest: (nextToken?: string) => TRequest,\n): Promise<TResult[]> {\n const results = []\n\n let nextToken: string | undefined = undefined\n while (true) {\n const request = buildRequest(nextToken)\n const response = await request\n const items = extractItems(response)\n if (items == null || items.length === 0) {\n break\n }\n results.push(...items)\n nextToken = response['nextToken']\n if (!nextToken) {\n break\n }\n }\n\n return results\n}\n"],"mappings":";;;;;;;;;AAYA,MAAM,gDAAgD;;;;;;;;;AAUtD,eAAsB,yCACpB,SACA,SACA,SAAkB,MAClB,iBACwB;AACxB,QAAO,MAAM,yBACV,aAAyD;AACxD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,iCAAiC,SAAS;GACvD,YAAY;GACZ,OAAO,mBAAmB;GAC1B,GAAI,aAAa,EAAE,MAAM,WAAW;GACrC,CAAC;GAEL;;;;;;;;;;AAWH,eAAsB,oBACpB,SACA,SACA,SACA,iBAC6B;AAC7B,QAAO,MAAM,yBACV,aAA0D;AACzD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,oBAAoB,SAAS;GAC1C,OAAO,mBAAmB;GAC1B,GAAI,SAAS,wBAAwB,UAAa,EAAE,qBAAqB,QAAQ,qBAAqB;GACtG,GAAI,SAAS,qBAAqB,UAAa,EAAE,kBAAkB,QAAQ,kBAAkB;GAC7F,GAAI,SAAS,eAAe,UAAa,EAAE,YAAY,QAAQ,YAAY;GAC3E,GAAI,aAAa,EAAE,MAAM,WAAW;GACrC,CAAC;GAEL;;;;;;;;;AAUH,eAAsB,mBACpB,SACA,gBACA,iBAC+B;CAC/B,IAAI,eAAe;CACnB,MAAM,eAAe,MAAM,yBACxB,aAAyD;AACxD,MAAI,aAAa,SACf,OAAM;GAAE,QAAQ;GAAK,GAAG;GAAU;AAEpC,MAAI,SAAS,eAAe,aAC1B,gBAAe,SAAS;AAE1B,SAAO,SAAS;KAEjB,cAAc;AACb,SAAO,QAAQ,sBAAsB;GACnC,GAAG;GACH,OAAO,mBAAmB;GAC1B,MAAM;GACP,CAAC;GAEL;AAED,QAAO;EACL;EACA,WAAW;EACX;EACD;;AAKH,eAAsB,wBAEpB,cACA,cACoB;CACpB,MAAM,UAAU,EAAE;CAElB,IAAIA,YAAgC;AACpC,QAAO,MAAM;EAEX,MAAM,WAAW,MADD,aAAa,UAAU;EAEvC,MAAM,QAAQ,aAAa,SAAS;AACpC,MAAI,SAAS,QAAQ,MAAM,WAAW,EACpC;AAEF,UAAQ,KAAK,GAAG,MAAM;AACtB,cAAY,SAAS;AACrB,MAAI,CAAC,UACH;;AAIJ,QAAO"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ObjectModelMetadata } from "../../../common/src/codecs/types.js";
|
|
2
|
-
|
|
3
|
-
//#region packages/algod_client/src/core/model-runtime.d.ts
|
|
4
|
-
declare function encodeJson<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): string;
|
|
5
|
-
declare function encodeMsgpack<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): Uint8Array;
|
|
6
|
-
declare function decodeJson<T extends Record<string, unknown>>(value: Record<string, unknown>, meta: ObjectModelMetadata<T>): T;
|
|
7
|
-
declare function decodeMsgpack<T extends Record<string, unknown>>(value: Uint8Array, meta: ObjectModelMetadata<T>): T;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { decodeJson, decodeMsgpack, encodeJson, encodeMsgpack };
|
|
10
|
-
//# sourceMappingURL=model-runtime.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Address } from "../../../common/src/address.js";
|
|
2
|
-
|
|
3
|
-
//#region packages/algod_client/src/models/application-local-reference.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* References an account's local state for an application.
|
|
7
|
-
*/
|
|
8
|
-
type ApplicationLocalReference = {
|
|
9
|
-
/**
|
|
10
|
-
* Address of the account with the local state.
|
|
11
|
-
*/
|
|
12
|
-
account: Address;
|
|
13
|
-
/**
|
|
14
|
-
* Application ID of the local state application.
|
|
15
|
-
*/
|
|
16
|
-
app: bigint;
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
export { ApplicationLocalReference };
|
|
20
|
-
//# sourceMappingURL=application-local-reference.d.ts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const require_address = require('../../../common/src/codecs/primitives/address.js');
|
|
2
|
-
const require_bigint = require('../../../common/src/codecs/primitives/bigint.js');
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/application-local-reference.ts
|
|
5
|
-
const ApplicationLocalReferenceMeta = {
|
|
6
|
-
name: "ApplicationLocalReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "account",
|
|
10
|
-
wireKey: "account",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: require_address.addressCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "app",
|
|
15
|
-
wireKey: "app",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: require_bigint.bigIntCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
exports.ApplicationLocalReferenceMeta = ApplicationLocalReferenceMeta;
|
|
23
|
-
//# sourceMappingURL=application-local-reference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-local-reference.js","names":["ApplicationLocalReferenceMeta: ObjectModelMetadata<ApplicationLocalReference>","addressCodec","bigIntCodec"],"sources":["../../../../../packages/algod_client/src/models/application-local-reference.ts"],"sourcesContent":["import type { Address, ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, addressCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References an account's local state for an application.\n */\nexport type ApplicationLocalReference = {\n /**\n * Address of the account with the local state.\n */\n account: Address\n\n /**\n * Application ID of the local state application.\n */\n app: bigint\n}\n\nexport const ApplicationLocalReferenceMeta: ObjectModelMetadata<ApplicationLocalReference> = {\n name: 'ApplicationLocalReference',\n kind: 'object',\n fields: [\n {\n name: 'account',\n wireKey: 'account',\n optional: false,\n codec: addressCodec,\n },\n {\n name: 'app',\n wireKey: 'app',\n optional: false,\n codec: bigIntCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,gCAAgF;CAC3F,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,CACF;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { addressCodec } from "../../../common/src/codecs/primitives/address.mjs";
|
|
2
|
-
import { bigIntCodec } from "../../../common/src/codecs/primitives/bigint.mjs";
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/application-local-reference.ts
|
|
5
|
-
const ApplicationLocalReferenceMeta = {
|
|
6
|
-
name: "ApplicationLocalReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "account",
|
|
10
|
-
wireKey: "account",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: addressCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "app",
|
|
15
|
-
wireKey: "app",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: bigIntCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { ApplicationLocalReferenceMeta };
|
|
23
|
-
//# sourceMappingURL=application-local-reference.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-local-reference.mjs","names":["ApplicationLocalReferenceMeta: ObjectModelMetadata<ApplicationLocalReference>"],"sources":["../../../../../packages/algod_client/src/models/application-local-reference.ts"],"sourcesContent":["import type { Address, ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, addressCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References an account's local state for an application.\n */\nexport type ApplicationLocalReference = {\n /**\n * Address of the account with the local state.\n */\n account: Address\n\n /**\n * Application ID of the local state application.\n */\n app: bigint\n}\n\nexport const ApplicationLocalReferenceMeta: ObjectModelMetadata<ApplicationLocalReference> = {\n name: 'ApplicationLocalReference',\n kind: 'object',\n fields: [\n {\n name: 'account',\n wireKey: 'account',\n optional: false,\n codec: addressCodec,\n },\n {\n name: 'app',\n wireKey: 'app',\n optional: false,\n codec: bigIntCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,gCAAgF;CAC3F,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,CACF;CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Address } from "../../../common/src/address.js";
|
|
2
|
-
|
|
3
|
-
//#region packages/algod_client/src/models/asset-holding-reference.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* References an asset held by an account.
|
|
7
|
-
*/
|
|
8
|
-
type AssetHoldingReference = {
|
|
9
|
-
/**
|
|
10
|
-
* Address of the account holding the asset.
|
|
11
|
-
*/
|
|
12
|
-
account: Address;
|
|
13
|
-
/**
|
|
14
|
-
* Asset ID of the holding.
|
|
15
|
-
*/
|
|
16
|
-
asset: bigint;
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
export { AssetHoldingReference };
|
|
20
|
-
//# sourceMappingURL=asset-holding-reference.d.ts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const require_address = require('../../../common/src/codecs/primitives/address.js');
|
|
2
|
-
const require_bigint = require('../../../common/src/codecs/primitives/bigint.js');
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/asset-holding-reference.ts
|
|
5
|
-
const AssetHoldingReferenceMeta = {
|
|
6
|
-
name: "AssetHoldingReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "account",
|
|
10
|
-
wireKey: "account",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: require_address.addressCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "asset",
|
|
15
|
-
wireKey: "asset",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: require_bigint.bigIntCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
exports.AssetHoldingReferenceMeta = AssetHoldingReferenceMeta;
|
|
23
|
-
//# sourceMappingURL=asset-holding-reference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-holding-reference.js","names":["AssetHoldingReferenceMeta: ObjectModelMetadata<AssetHoldingReference>","addressCodec","bigIntCodec"],"sources":["../../../../../packages/algod_client/src/models/asset-holding-reference.ts"],"sourcesContent":["import type { Address, ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, addressCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References an asset held by an account.\n */\nexport type AssetHoldingReference = {\n /**\n * Address of the account holding the asset.\n */\n account: Address\n\n /**\n * Asset ID of the holding.\n */\n asset: bigint\n}\n\nexport const AssetHoldingReferenceMeta: ObjectModelMetadata<AssetHoldingReference> = {\n name: 'AssetHoldingReference',\n kind: 'object',\n fields: [\n {\n name: 'account',\n wireKey: 'account',\n optional: false,\n codec: addressCodec,\n },\n {\n name: 'asset',\n wireKey: 'asset',\n optional: false,\n codec: bigIntCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,4BAAwE;CACnF,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,CACF;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { addressCodec } from "../../../common/src/codecs/primitives/address.mjs";
|
|
2
|
-
import { bigIntCodec } from "../../../common/src/codecs/primitives/bigint.mjs";
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/asset-holding-reference.ts
|
|
5
|
-
const AssetHoldingReferenceMeta = {
|
|
6
|
-
name: "AssetHoldingReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "account",
|
|
10
|
-
wireKey: "account",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: addressCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "asset",
|
|
15
|
-
wireKey: "asset",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: bigIntCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { AssetHoldingReferenceMeta };
|
|
23
|
-
//# sourceMappingURL=asset-holding-reference.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-holding-reference.mjs","names":["AssetHoldingReferenceMeta: ObjectModelMetadata<AssetHoldingReference>"],"sources":["../../../../../packages/algod_client/src/models/asset-holding-reference.ts"],"sourcesContent":["import type { Address, ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, addressCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References an asset held by an account.\n */\nexport type AssetHoldingReference = {\n /**\n * Address of the account holding the asset.\n */\n account: Address\n\n /**\n * Asset ID of the holding.\n */\n asset: bigint\n}\n\nexport const AssetHoldingReferenceMeta: ObjectModelMetadata<AssetHoldingReference> = {\n name: 'AssetHoldingReference',\n kind: 'object',\n fields: [\n {\n name: 'account',\n wireKey: 'account',\n optional: false,\n codec: addressCodec,\n },\n {\n name: 'asset',\n wireKey: 'asset',\n optional: false,\n codec: bigIntCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,4BAAwE;CACnF,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,CACF;CACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//#region packages/algod_client/src/models/box-reference.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* References a box of an application.
|
|
4
|
-
*/
|
|
5
|
-
type BoxReference = {
|
|
6
|
-
/**
|
|
7
|
-
* Application ID which this box belongs to
|
|
8
|
-
*/
|
|
9
|
-
app: bigint;
|
|
10
|
-
/**
|
|
11
|
-
* Base64 encoded box name
|
|
12
|
-
*/
|
|
13
|
-
name: Uint8Array;
|
|
14
|
-
};
|
|
15
|
-
//#endregion
|
|
16
|
-
export { BoxReference };
|
|
17
|
-
//# sourceMappingURL=box-reference.d.ts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const require_bigint = require('../../../common/src/codecs/primitives/bigint.js');
|
|
2
|
-
const require_bytes = require('../../../common/src/codecs/primitives/bytes.js');
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/box-reference.ts
|
|
5
|
-
const BoxReferenceMeta = {
|
|
6
|
-
name: "BoxReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "app",
|
|
10
|
-
wireKey: "app",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: require_bigint.bigIntCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "name",
|
|
15
|
-
wireKey: "name",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: require_bytes.bytesCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
exports.BoxReferenceMeta = BoxReferenceMeta;
|
|
23
|
-
//# sourceMappingURL=box-reference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"box-reference.js","names":["BoxReferenceMeta: ObjectModelMetadata<BoxReference>","bigIntCodec","bytesCodec"],"sources":["../../../../../packages/algod_client/src/models/box-reference.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, bytesCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References a box of an application.\n */\nexport type BoxReference = {\n /**\n * Application ID which this box belongs to\n */\n app: bigint\n\n /**\n * Base64 encoded box name\n */\n name: Uint8Array\n}\n\nexport const BoxReferenceMeta: ObjectModelMetadata<BoxReference> = {\n name: 'BoxReference',\n kind: 'object',\n fields: [\n {\n name: 'app',\n wireKey: 'app',\n optional: false,\n codec: bigIntCodec,\n },\n {\n name: 'name',\n wireKey: 'name',\n optional: false,\n codec: bytesCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,mBAAsD;CACjE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAOC;EACR,CACF;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { bigIntCodec } from "../../../common/src/codecs/primitives/bigint.mjs";
|
|
2
|
-
import { bytesCodec } from "../../../common/src/codecs/primitives/bytes.mjs";
|
|
3
|
-
|
|
4
|
-
//#region packages/algod_client/src/models/box-reference.ts
|
|
5
|
-
const BoxReferenceMeta = {
|
|
6
|
-
name: "BoxReference",
|
|
7
|
-
kind: "object",
|
|
8
|
-
fields: [{
|
|
9
|
-
name: "app",
|
|
10
|
-
wireKey: "app",
|
|
11
|
-
optional: false,
|
|
12
|
-
codec: bigIntCodec
|
|
13
|
-
}, {
|
|
14
|
-
name: "name",
|
|
15
|
-
wireKey: "name",
|
|
16
|
-
optional: false,
|
|
17
|
-
codec: bytesCodec
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { BoxReferenceMeta };
|
|
23
|
-
//# sourceMappingURL=box-reference.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"box-reference.mjs","names":["BoxReferenceMeta: ObjectModelMetadata<BoxReference>"],"sources":["../../../../../packages/algod_client/src/models/box-reference.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { bigIntCodec, bytesCodec } from '@algorandfoundation/algokit-common'\n\n/**\n * References a box of an application.\n */\nexport type BoxReference = {\n /**\n * Application ID which this box belongs to\n */\n app: bigint\n\n /**\n * Base64 encoded box name\n */\n name: Uint8Array\n}\n\nexport const BoxReferenceMeta: ObjectModelMetadata<BoxReference> = {\n name: 'BoxReference',\n kind: 'object',\n fields: [\n {\n name: 'app',\n wireKey: 'app',\n optional: false,\n codec: bigIntCodec,\n },\n {\n name: 'name',\n wireKey: 'name',\n optional: false,\n codec: bytesCodec,\n },\n ],\n}\n"],"mappings":";;;;AAkBA,MAAaA,mBAAsD;CACjE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,CACF;CACF"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ObjectModelMetadata } from "../../../common/src/codecs/types.js";
|
|
2
|
-
|
|
3
|
-
//#region packages/indexer_client/src/core/model-runtime.d.ts
|
|
4
|
-
declare function encodeJson<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): string;
|
|
5
|
-
declare function encodeMsgpack<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): Uint8Array;
|
|
6
|
-
declare function decodeJson<T extends Record<string, unknown>>(value: Record<string, unknown>, meta: ObjectModelMetadata<T>): T;
|
|
7
|
-
declare function decodeMsgpack<T extends Record<string, unknown>>(value: Uint8Array, meta: ObjectModelMetadata<T>): T;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { decodeJson, decodeMsgpack, encodeJson, encodeMsgpack };
|
|
10
|
-
//# sourceMappingURL=model-runtime.d.ts.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ObjectModelMetadata } from "../../../common/src/codecs/types.js";
|
|
2
|
-
|
|
3
|
-
//#region packages/kmd_client/src/core/model-runtime.d.ts
|
|
4
|
-
declare function encodeJson<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): string;
|
|
5
|
-
declare function encodeMsgpack<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): Uint8Array;
|
|
6
|
-
declare function decodeJson<T extends Record<string, unknown>>(value: Record<string, unknown>, meta: ObjectModelMetadata<T>): T;
|
|
7
|
-
declare function decodeMsgpack<T extends Record<string, unknown>>(value: Uint8Array, meta: ObjectModelMetadata<T>): T;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { decodeJson, decodeMsgpack, encodeJson, encodeMsgpack };
|
|
10
|
-
//# sourceMappingURL=model-runtime.d.ts.map
|