@algorandfoundation/algokit-utils 10.0.0-alpha.3 → 10.0.0-alpha.31
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/abi/index.d.ts +2 -1
- package/abi/index.js +3 -0
- package/abi/index.mjs +2 -1
- 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 +5 -6
- 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 -3
- package/packages/abi/src/abi-type.js +7 -36
- package/packages/abi/src/abi-type.js.map +1 -1
- package/packages/abi/src/abi-type.mjs +7 -36
- 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/abi/src/utils.d.ts +22 -0
- package/packages/abi/src/utils.js +57 -0
- package/packages/abi/src/utils.js.map +1 -0
- package/packages/abi/src/utils.mjs +55 -0
- package/packages/abi/src/utils.mjs.map +1 -0
- package/packages/algo25/src/index.js +1 -1
- package/packages/algo25/src/index.mjs +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/eval-delta-key-value.js +2 -2
- package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -1
- package/packages/algod_client/src/models/eval-delta-key-value.mjs +2 -2
- package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -1
- package/packages/algod_client/src/models/eval-delta.js +2 -2
- package/packages/algod_client/src/models/eval-delta.js.map +1 -1
- package/packages/algod_client/src/models/eval-delta.mjs +2 -2
- package/packages/algod_client/src/models/eval-delta.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.d.ts +0 -1
- package/packages/common/src/address.js +4 -17
- package/packages/common/src/address.js.map +1 -1
- package/packages/common/src/address.mjs +5 -17
- 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-base64.js +26 -0
- package/packages/common/src/codecs/primitives/bytes-base64.js.map +1 -0
- package/packages/common/src/codecs/primitives/bytes-base64.mjs +25 -0
- package/packages/common/src/codecs/primitives/bytes-base64.mjs.map +1 -0
- 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/json.mjs +2 -2
- package/packages/common/src/json.mjs.map +1 -1
- package/packages/common/src/msgpack.js +0 -1
- package/packages/common/src/msgpack.js.map +1 -1
- package/packages/{sdk/src/logic → common/src}/sourcemap.d.ts +2 -2
- package/packages/{sdk/src/logic → common/src}/sourcemap.js +2 -2
- package/packages/{sdk/src/logic → common/src}/sourcemap.js.map +1 -1
- package/packages/{sdk/src/logic → common/src}/sourcemap.mjs +1 -1
- package/packages/{sdk/src/logic → common/src}/sourcemap.mjs.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-state-proof.d.ts +1 -1
- package/packages/indexer_client/src/models/transaction-state-proof.js +2 -2
- package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -1
- package/packages/indexer_client/src/models/transaction-state-proof.mjs +2 -2
- package/packages/indexer_client/src/models/transaction-state-proof.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/transact/src/logicsig.d.ts +35 -33
- package/packages/transact/src/logicsig.js +74 -76
- package/packages/transact/src/logicsig.js.map +1 -1
- package/packages/transact/src/logicsig.mjs +77 -78
- package/packages/transact/src/logicsig.mjs.map +1 -1
- package/packages/transact/src/multisig.d.ts +11 -116
- package/packages/transact/src/multisig.js +106 -136
- package/packages/transact/src/multisig.js.map +1 -1
- package/packages/transact/src/multisig.mjs +108 -118
- package/packages/transact/src/multisig.mjs.map +1 -1
- package/packages/transact/src/signer.js +9 -2
- package/packages/transact/src/signer.js.map +1 -1
- package/packages/transact/src/signer.mjs +10 -3
- package/packages/transact/src/signer.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 +8 -9
- package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
- package/packages/transact/src/transactions/signed-transaction-meta.mjs +8 -8
- package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
- package/packages/transact/src/transactions/signed-transaction.d.ts +10 -6
- 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/state-proof.d.ts +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 -2
- package/packages/transact/src/transactions/transaction.js +5 -4
- package/packages/transact/src/transactions/transaction.js.map +1 -1
- package/packages/transact/src/transactions/transaction.mjs +5 -4
- package/packages/transact/src/transactions/transaction.mjs.map +1 -1
- package/testing/account.js +1 -2
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +1 -2
- 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/testing/transaction-logger.js +1 -1
- package/testing/transaction-logger.mjs +1 -1
- package/transact/index.d.ts +11 -10
- package/transact/index.js +7 -31
- 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 +16 -16
- package/transactions/app-call.js.map +1 -1
- package/transactions/app-call.mjs +16 -16
- 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 +77 -84
- package/transactions/method-call.js.map +1 -1
- package/transactions/method-call.mjs +77 -84
- package/transactions/method-call.mjs.map +1 -1
- package/types/account-manager.d.ts +7 -9
- package/types/account-manager.js +17 -7
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +17 -7
- package/types/account-manager.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +53 -39
- 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 +58 -44
- 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/amount.js +23 -4
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +20 -2
- package/types/amount.mjs.map +1 -1
- package/types/app-client.d.ts +111 -106
- package/types/app-client.js +2 -3
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +2 -2
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +1 -1
- package/types/app-deployer.js +3 -3
- package/types/app-deployer.js.map +1 -1
- package/types/app-deployer.mjs +3 -3
- package/types/app-deployer.mjs.map +1 -1
- package/types/app-factory.d.ts +44 -41
- package/types/app-factory.js +2 -2
- package/types/app-factory.js.map +1 -1
- package/types/app-factory.mjs +2 -2
- package/types/app-factory.mjs.map +1 -1
- package/types/app-manager.d.ts +3 -1
- package/types/app-manager.js +17 -11
- package/types/app-manager.js.map +1 -1
- package/types/app-manager.mjs +17 -11
- 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 +2 -2
- 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 +11 -3
- package/types/composer.js +55 -46
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +46 -36
- 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 +22 -11
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +23 -12
- 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 +4 -4
- 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/sdk/src/convert.d.ts +0 -17
- package/packages/sdk/src/convert.js +0 -28
- package/packages/sdk/src/convert.js.map +0 -1
- package/packages/sdk/src/convert.mjs +0 -25
- package/packages/sdk/src/convert.mjs.map +0 -1
- package/packages/sdk/src/encoding/binarydata.d.ts +0 -34
- package/packages/sdk/src/encoding/binarydata.js +0 -65
- package/packages/sdk/src/encoding/binarydata.js.map +0 -1
- package/packages/sdk/src/encoding/binarydata.mjs +0 -60
- package/packages/sdk/src/encoding/binarydata.mjs.map +0 -1
- package/packages/sdk/src/encoding/encoding.d.ts +0 -237
- package/packages/sdk/src/encoding/encoding.js +0 -302
- package/packages/sdk/src/encoding/encoding.js.map +0 -1
- package/packages/sdk/src/encoding/encoding.mjs +0 -287
- package/packages/sdk/src/encoding/encoding.mjs.map +0 -1
- package/packages/sdk/src/encoding/schema/array.js +0 -35
- package/packages/sdk/src/encoding/schema/array.js.map +0 -1
- package/packages/sdk/src/encoding/schema/array.mjs +0 -35
- package/packages/sdk/src/encoding/schema/array.mjs.map +0 -1
- package/packages/sdk/src/encoding/schema/bytearray.js +0 -49
- package/packages/sdk/src/encoding/schema/bytearray.js.map +0 -1
- package/packages/sdk/src/encoding/schema/bytearray.mjs +0 -49
- package/packages/sdk/src/encoding/schema/bytearray.mjs.map +0 -1
- package/packages/sdk/src/encoding/schema/map.d.ts +0 -58
- package/packages/sdk/src/encoding/schema/map.js +0 -110
- package/packages/sdk/src/encoding/schema/map.js.map +0 -1
- package/packages/sdk/src/encoding/schema/map.mjs +0 -107
- package/packages/sdk/src/encoding/schema/map.mjs.map +0 -1
- package/packages/sdk/src/encoding/schema/optional.js +0 -46
- package/packages/sdk/src/encoding/schema/optional.js.map +0 -1
- package/packages/sdk/src/encoding/schema/optional.mjs +0 -46
- package/packages/sdk/src/encoding/schema/optional.mjs.map +0 -1
- package/packages/sdk/src/encoding/schema/uint64.js +0 -30
- package/packages/sdk/src/encoding/schema/uint64.js.map +0 -1
- package/packages/sdk/src/encoding/schema/uint64.mjs +0 -30
- package/packages/sdk/src/encoding/schema/uint64.mjs.map +0 -1
- package/packages/sdk/src/encoding/uint64.d.ts +0 -34
- package/packages/sdk/src/encoding/uint64.js +0 -34
- package/packages/sdk/src/encoding/uint64.js.map +0 -1
- package/packages/sdk/src/encoding/uint64.mjs +0 -33
- package/packages/sdk/src/encoding/uint64.mjs.map +0 -1
- package/packages/sdk/src/index.d.ts +0 -44
- package/packages/sdk/src/index.js +0 -62
- package/packages/sdk/src/index.js.map +0 -1
- package/packages/sdk/src/index.mjs +0 -58
- package/packages/sdk/src/index.mjs.map +0 -1
- package/packages/sdk/src/nacl/naclWrappers.js +0 -14
- package/packages/sdk/src/nacl/naclWrappers.js.map +0 -1
- package/packages/sdk/src/nacl/naclWrappers.mjs +0 -11
- package/packages/sdk/src/nacl/naclWrappers.mjs.map +0 -1
- package/packages/sdk/src/types/intDecoding.d.ts +0 -28
- package/packages/sdk/src/types/intDecoding.js +0 -32
- package/packages/sdk/src/types/intDecoding.js.map +0 -1
- package/packages/sdk/src/types/intDecoding.mjs +0 -31
- package/packages/sdk/src/types/intDecoding.mjs.map +0 -1
- package/packages/sdk/src/types/transactions/encoded.d.ts +0 -40
- package/packages/sdk/src/types/transactions/encoded.js +0 -64
- package/packages/sdk/src/types/transactions/encoded.js.map +0 -1
- package/packages/sdk/src/types/transactions/encoded.mjs +0 -59
- package/packages/sdk/src/types/transactions/encoded.mjs.map +0 -1
- package/packages/sdk/src/utils/utils.d.ts +0 -64
- package/packages/sdk/src/utils/utils.js +0 -140
- package/packages/sdk/src/utils/utils.js.map +0 -1
- package/packages/sdk/src/utils/utils.mjs +0 -128
- package/packages/sdk/src/utils/utils.mjs.map +0 -1
- package/packages/transact/src/transactions/common.d.ts +0 -37
- package/sdk/index.d.ts +0 -10
- package/sdk/index.js +0 -59
- package/sdk/index.mjs +0 -11
|
@@ -4,7 +4,9 @@ var ApiError = class extends Error {
|
|
|
4
4
|
status;
|
|
5
5
|
body;
|
|
6
6
|
constructor(url, status, body) {
|
|
7
|
-
|
|
7
|
+
let message = `Request to ${url} failed with status ${status}`;
|
|
8
|
+
if (body && typeof body === "object" && "message" in body && body.message) message += `: ${body.message}`;
|
|
9
|
+
super(message);
|
|
8
10
|
this.url = url;
|
|
9
11
|
this.status = status;
|
|
10
12
|
this.body = body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-error.mjs","names":[],"sources":["../../../../../packages/kmd_client/src/core/api-error.ts"],"sourcesContent":["export class ApiError<T = unknown> extends Error {\n public readonly url: string\n public readonly status: number\n public readonly body: T | undefined\n\n constructor(url: string, status: number, body?: T) {\n
|
|
1
|
+
{"version":3,"file":"api-error.mjs","names":[],"sources":["../../../../../packages/kmd_client/src/core/api-error.ts"],"sourcesContent":["export class ApiError<T = unknown> extends Error {\n public readonly url: string\n public readonly status: number\n public readonly body: T | undefined\n\n constructor(url: string, status: number, body?: T) {\n let message = `Request to ${url} failed with status ${status}`\n if (body && typeof body === 'object' && 'message' in body && body.message) {\n message += `: ${body.message}`\n }\n\n super(message)\n this.url = url\n this.status = status\n this.body = body\n }\n}\n"],"mappings":";AAAA,IAAa,WAAb,cAA2C,MAAM;CAC/C,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAEhB,YAAY,KAAa,QAAgB,MAAU;EACjD,IAAI,UAAU,cAAc,IAAI,sBAAsB;AACtD,MAAI,QAAQ,OAAO,SAAS,YAAY,aAAa,QAAQ,KAAK,QAChE,YAAW,KAAK,KAAK;AAGvB,QAAM,QAAQ;AACd,OAAK,MAAM;AACX,OAAK,SAAS;AACd,OAAK,OAAO"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
const require_object_model = require('../../../common/src/codecs/models/object-model.js');
|
|
2
2
|
const require_json = require('../../../common/src/json.js');
|
|
3
|
-
const require_msgpack = require('../../../common/src/msgpack.js');
|
|
4
3
|
|
|
5
4
|
//#region packages/kmd_client/src/core/model-runtime.ts
|
|
6
|
-
function encodeJson(value, meta) {
|
|
7
|
-
return require_json.stringifyJson(new require_object_model.ObjectModelCodec(meta).encode(value, "json"));
|
|
8
|
-
}
|
|
9
|
-
function encodeMsgpack$1(value, meta) {
|
|
10
|
-
return require_msgpack.encodeMsgpack(new require_object_model.ObjectModelCodec(meta).encode(value, "msgpack"));
|
|
5
|
+
function encodeJson(value, meta, space) {
|
|
6
|
+
return require_json.stringifyJson(new require_object_model.ObjectModelCodec(meta).encode(value, "json"), void 0, space);
|
|
11
7
|
}
|
|
12
8
|
function decodeJson(value, meta) {
|
|
13
9
|
return new require_object_model.ObjectModelCodec(meta).decode(value, "json");
|
|
14
10
|
}
|
|
15
|
-
function decodeMsgpack$1(value, meta) {
|
|
16
|
-
const wire = require_msgpack.decodeMsgpack(value);
|
|
17
|
-
return new require_object_model.ObjectModelCodec(meta).decode(wire, "msgpack");
|
|
18
|
-
}
|
|
19
11
|
|
|
20
12
|
//#endregion
|
|
21
13
|
exports.decodeJson = decodeJson;
|
|
22
|
-
exports.decodeMsgpack = decodeMsgpack$1;
|
|
23
14
|
exports.encodeJson = encodeJson;
|
|
24
|
-
exports.encodeMsgpack = encodeMsgpack$1;
|
|
25
15
|
//# sourceMappingURL=model-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-runtime.js","names":["stringifyJson","ObjectModelCodec"
|
|
1
|
+
{"version":3,"file":"model-runtime.js","names":["stringifyJson","ObjectModelCodec"],"sources":["../../../../../packages/kmd_client/src/core/model-runtime.ts"],"sourcesContent":["import {\n ObjectModelCodec,\n decodeMsgpack as rawDecodeMsgpack,\n encodeMsgpack as rawEncodeMsgpack,\n stringifyJson,\n type ObjectModelMetadata,\n} from '@algorandfoundation/algokit-common'\n\nexport function encodeJson<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>, space?: string | number): string {\n const wire = new ObjectModelCodec(meta).encode(value, 'json')\n return stringifyJson(wire, undefined, space)\n}\nexport function encodeMsgpack<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): Uint8Array {\n const wire = new ObjectModelCodec(meta).encode(value, 'msgpack')\n return rawEncodeMsgpack(wire)\n}\nexport function decodeJson<T extends Record<string, unknown>>(value: Record<string, unknown>, meta: ObjectModelMetadata<T>): T {\n return new ObjectModelCodec<T>(meta).decode(value, 'json')\n}\nexport function decodeMsgpack<T extends Record<string, unknown>>(value: Uint8Array, meta: ObjectModelMetadata<T>): T {\n const wire = rawDecodeMsgpack(value)\n return new ObjectModelCodec<T>(meta).decode(wire, 'msgpack')\n}\n"],"mappings":";;;;AAQA,SAAgB,WAA8C,OAAU,MAA8B,OAAiC;AAErI,QAAOA,2BADM,IAAIC,sCAAiB,KAAK,CAAC,OAAO,OAAO,OAAO,EAClC,QAAW,MAAM;;AAM9C,SAAgB,WAA8C,OAAgC,MAAiC;AAC7H,QAAO,IAAIA,sCAAoB,KAAK,CAAC,OAAO,OAAO,OAAO"}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import { ObjectModelCodec } from "../../../common/src/codecs/models/object-model.mjs";
|
|
2
2
|
import { stringifyJson } from "../../../common/src/json.mjs";
|
|
3
|
-
import { decodeMsgpack, encodeMsgpack } from "../../../common/src/msgpack.mjs";
|
|
4
3
|
|
|
5
4
|
//#region packages/kmd_client/src/core/model-runtime.ts
|
|
6
|
-
function encodeJson(value, meta) {
|
|
7
|
-
return stringifyJson(new ObjectModelCodec(meta).encode(value, "json"));
|
|
8
|
-
}
|
|
9
|
-
function encodeMsgpack$1(value, meta) {
|
|
10
|
-
return encodeMsgpack(new ObjectModelCodec(meta).encode(value, "msgpack"));
|
|
5
|
+
function encodeJson(value, meta, space) {
|
|
6
|
+
return stringifyJson(new ObjectModelCodec(meta).encode(value, "json"), void 0, space);
|
|
11
7
|
}
|
|
12
8
|
function decodeJson(value, meta) {
|
|
13
9
|
return new ObjectModelCodec(meta).decode(value, "json");
|
|
14
10
|
}
|
|
15
|
-
function decodeMsgpack$1(value, meta) {
|
|
16
|
-
const wire = decodeMsgpack(value);
|
|
17
|
-
return new ObjectModelCodec(meta).decode(wire, "msgpack");
|
|
18
|
-
}
|
|
19
11
|
|
|
20
12
|
//#endregion
|
|
21
|
-
export { decodeJson,
|
|
13
|
+
export { decodeJson, encodeJson };
|
|
22
14
|
//# sourceMappingURL=model-runtime.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-runtime.mjs","names":[
|
|
1
|
+
{"version":3,"file":"model-runtime.mjs","names":[],"sources":["../../../../../packages/kmd_client/src/core/model-runtime.ts"],"sourcesContent":["import {\n ObjectModelCodec,\n decodeMsgpack as rawDecodeMsgpack,\n encodeMsgpack as rawEncodeMsgpack,\n stringifyJson,\n type ObjectModelMetadata,\n} from '@algorandfoundation/algokit-common'\n\nexport function encodeJson<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>, space?: string | number): string {\n const wire = new ObjectModelCodec(meta).encode(value, 'json')\n return stringifyJson(wire, undefined, space)\n}\nexport function encodeMsgpack<T extends Record<string, unknown>>(value: T, meta: ObjectModelMetadata<T>): Uint8Array {\n const wire = new ObjectModelCodec(meta).encode(value, 'msgpack')\n return rawEncodeMsgpack(wire)\n}\nexport function decodeJson<T extends Record<string, unknown>>(value: Record<string, unknown>, meta: ObjectModelMetadata<T>): T {\n return new ObjectModelCodec<T>(meta).decode(value, 'json')\n}\nexport function decodeMsgpack<T extends Record<string, unknown>>(value: Uint8Array, meta: ObjectModelMetadata<T>): T {\n const wire = rawDecodeMsgpack(value)\n return new ObjectModelCodec<T>(meta).decode(wire, 'msgpack')\n}\n"],"mappings":";;;;AAQA,SAAgB,WAA8C,OAAU,MAA8B,OAAiC;AAErI,QAAO,cADM,IAAI,iBAAiB,KAAK,CAAC,OAAO,OAAO,OAAO,EAClC,QAAW,MAAM;;AAM9C,SAAgB,WAA8C,OAAgC,MAAiC;AAC7H,QAAO,IAAI,iBAAoB,KAAK,CAAC,OAAO,OAAO,OAAO"}
|
|
@@ -1,47 +1,49 @@
|
|
|
1
|
-
import { Address } from "../../common/src/address.js";
|
|
2
|
-
import {
|
|
1
|
+
import { Address, Addressable } from "../../common/src/address.js";
|
|
2
|
+
import { LogicSigSignature, MultisigSignature } from "./transactions/signed-transaction.js";
|
|
3
3
|
import { MultisigAccount } from "./multisig.js";
|
|
4
|
-
import { TransactionSigner } from "./signer.js";
|
|
4
|
+
import { AddressWithDelegatedLsigSigner, TransactionSigner } from "./signer.js";
|
|
5
5
|
|
|
6
6
|
//#region packages/transact/src/logicsig.d.ts
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
/** Function for signing logic signatures for delegation
|
|
9
|
+
* @param lsig - The logic signature that is being signed for delegation
|
|
10
|
+
* @param msig - Optional multisig account that should be set when a public key is signing as a subsigner of a multisig
|
|
11
|
+
* @returns The address of the delegator
|
|
12
|
+
* */
|
|
13
|
+
type DelegatedLsigSigner = (lsig: LogicSigAccount, msig?: MultisigAccount) => Promise<{
|
|
14
|
+
addr: Address;
|
|
15
|
+
} & ({
|
|
16
|
+
sig?: Uint8Array;
|
|
17
|
+
} | {
|
|
18
|
+
lmsig?: MultisigSignature;
|
|
19
|
+
})>;
|
|
16
20
|
/** Function for signing program data for a logic signature */
|
|
17
|
-
type ProgramDataSigner = (data: Uint8Array, lsig:
|
|
18
|
-
declare class
|
|
21
|
+
type ProgramDataSigner = (data: Uint8Array, lsig: LogicSig) => Promise<Uint8Array>;
|
|
22
|
+
declare class LogicSig implements Addressable {
|
|
19
23
|
logic: Uint8Array;
|
|
20
24
|
args: Uint8Array[];
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
get signer(): TransactionSigner;
|
|
26
|
-
get addr(): Address;
|
|
27
|
-
/**
|
|
28
|
-
* Compute hash of the logic sig program (that is the same as escrow account address) as string address
|
|
29
|
-
* @returns String representation of the address
|
|
30
|
-
*/
|
|
25
|
+
protected _addr: Address;
|
|
26
|
+
constructor(program: Uint8Array, programArgs?: Array<Uint8Array>);
|
|
27
|
+
static fromSignature(signature: LogicSigSignature): LogicSig;
|
|
28
|
+
static fromBytes(encodedLsig: Uint8Array): LogicSig;
|
|
31
29
|
address(): Address;
|
|
32
|
-
|
|
33
|
-
delegateMultisig(msig: MultisigAccount): Promise<void>;
|
|
30
|
+
get addr(): Address;
|
|
34
31
|
bytesToSignForDelegation(msig?: MultisigAccount): Uint8Array;
|
|
35
32
|
signProgramData(data: Uint8Array, signer: ProgramDataSigner): Promise<Uint8Array>;
|
|
36
33
|
programDataToSign(data: Uint8Array): Uint8Array;
|
|
34
|
+
account(): LogicSigAccount;
|
|
35
|
+
delegatedAccount(delegator: Address): LogicSigAccount;
|
|
36
|
+
}
|
|
37
|
+
declare class LogicSigAccount extends LogicSig {
|
|
38
|
+
sig?: Uint8Array;
|
|
39
|
+
msig?: MultisigSignature;
|
|
40
|
+
lmsig?: MultisigSignature;
|
|
41
|
+
static fromSignature(signature: LogicSigSignature, delegator?: Address): LogicSigAccount;
|
|
42
|
+
static fromBytes(encodedLsig: Uint8Array, delegator?: Address): LogicSigAccount;
|
|
43
|
+
constructor(program: Uint8Array, programArgs?: Array<Uint8Array> | null, delegator?: Address);
|
|
44
|
+
get signer(): TransactionSigner;
|
|
45
|
+
signForDelegation(delegator: AddressWithDelegatedLsigSigner): Promise<void>;
|
|
37
46
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Decodes MsgPack bytes into a logic signature.
|
|
40
|
-
*
|
|
41
|
-
* @param encodedLogicSignature - The MsgPack encoded logic signature
|
|
42
|
-
* @returns The decoded LogicSignature or an error if decoding fails.
|
|
43
|
-
*/
|
|
44
|
-
declare function decodeLogicSignature(encodedLogicSignature: Uint8Array): LogicSignature;
|
|
45
47
|
//#endregion
|
|
46
|
-
export { DelegatedLsigSigner, LogicSigAccount, ProgramDataSigner
|
|
48
|
+
export { DelegatedLsigSigner, LogicSig, LogicSigAccount, ProgramDataSigner };
|
|
47
49
|
//# sourceMappingURL=logicsig.d.ts.map
|
|
@@ -4,43 +4,81 @@ const require_crypto = require('../../common/src/crypto.js');
|
|
|
4
4
|
const require_msgpack = require('../../common/src/msgpack.js');
|
|
5
5
|
const require_signed_transaction_meta = require('./transactions/signed-transaction-meta.js');
|
|
6
6
|
const require_signed_transaction = require('./transactions/signed-transaction.js');
|
|
7
|
+
const require_multisig = require('./multisig.js');
|
|
7
8
|
|
|
8
9
|
//#region packages/transact/src/logicsig.ts
|
|
9
|
-
const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
|
|
10
|
-
/** sanityCheckProgram performs heuristic program validation:
|
|
11
|
-
* check if passed in bytes are Algorand address or is B64 encoded, rather than Teal bytes
|
|
12
|
-
*
|
|
13
|
-
* @param program - Program bytes to check
|
|
14
|
-
*/
|
|
15
|
-
function sanityCheckProgram(program) {
|
|
16
|
-
if (!program || program.length === 0) throw new Error("empty program");
|
|
17
|
-
const lineBreakOrd = "\n".charCodeAt(0);
|
|
18
|
-
const blankSpaceOrd = " ".charCodeAt(0);
|
|
19
|
-
const tildeOrd = "~".charCodeAt(0);
|
|
20
|
-
const isPrintable = (x) => blankSpaceOrd <= x && x <= tildeOrd;
|
|
21
|
-
if (program.every((x) => x === lineBreakOrd || isPrintable(x))) {
|
|
22
|
-
const programStr = new TextDecoder().decode(program);
|
|
23
|
-
if (require_address.isValidAddress(programStr)) throw new Error("requesting program bytes, get Algorand address");
|
|
24
|
-
if (base64regex.test(programStr)) throw new Error("program should not be b64 encoded");
|
|
25
|
-
throw new Error("program bytes are all ASCII printable characters, not looking like Teal byte code");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
10
|
const PROGRAM_TAG = new TextEncoder().encode("Program");
|
|
29
11
|
const MSIG_PROGRAM_TAG = new TextEncoder().encode("MsigProgram");
|
|
30
12
|
const SIGN_PROGRAM_DATA_PREFIX = new TextEncoder().encode("ProgData");
|
|
31
|
-
var
|
|
13
|
+
var LogicSig = class LogicSig {
|
|
32
14
|
logic;
|
|
33
15
|
args;
|
|
16
|
+
_addr;
|
|
17
|
+
constructor(program, programArgs) {
|
|
18
|
+
this.logic = program;
|
|
19
|
+
this.args = programArgs ?? [];
|
|
20
|
+
this._addr = new require_address.Address(require_crypto.hash(require_array.concatArrays(PROGRAM_TAG, this.logic)));
|
|
21
|
+
}
|
|
22
|
+
static fromSignature(signature) {
|
|
23
|
+
return new LogicSig(signature.logic, signature.args || []);
|
|
24
|
+
}
|
|
25
|
+
static fromBytes(encodedLsig) {
|
|
26
|
+
const decoded = require_msgpack.decodeMsgpack(encodedLsig);
|
|
27
|
+
const lsigSignature = require_signed_transaction_meta.logicSigSignatureCodec.decode(decoded, "msgpack");
|
|
28
|
+
return LogicSig.fromSignature(lsigSignature);
|
|
29
|
+
}
|
|
30
|
+
address() {
|
|
31
|
+
return this._addr;
|
|
32
|
+
}
|
|
33
|
+
get addr() {
|
|
34
|
+
return this._addr;
|
|
35
|
+
}
|
|
36
|
+
bytesToSignForDelegation(msig) {
|
|
37
|
+
if (msig) return require_array.concatArrays(MSIG_PROGRAM_TAG, msig.addr.publicKey, this.logic);
|
|
38
|
+
else return require_array.concatArrays(PROGRAM_TAG, this.logic);
|
|
39
|
+
}
|
|
40
|
+
signProgramData(data, signer) {
|
|
41
|
+
return signer(data, this);
|
|
42
|
+
}
|
|
43
|
+
programDataToSign(data) {
|
|
44
|
+
return require_array.concatArrays(SIGN_PROGRAM_DATA_PREFIX, this.address().publicKey, data);
|
|
45
|
+
}
|
|
46
|
+
account() {
|
|
47
|
+
return new LogicSigAccount(this.logic, this.args);
|
|
48
|
+
}
|
|
49
|
+
delegatedAccount(delegator) {
|
|
50
|
+
return new LogicSigAccount(this.logic, this.args, delegator);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var LogicSigAccount = class LogicSigAccount extends LogicSig {
|
|
34
54
|
sig;
|
|
35
55
|
msig;
|
|
36
56
|
lmsig;
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
57
|
+
static fromSignature(signature, delegator) {
|
|
58
|
+
if (signature.lmsig || signature.msig) {
|
|
59
|
+
const msigAddr = require_multisig.MultisigAccount.fromSignature(signature.lmsig || signature.msig).addr;
|
|
60
|
+
if (delegator && !msigAddr.equals(delegator)) throw new Error("Provided delegator address does not match multisig address");
|
|
61
|
+
const lsig = new LogicSigAccount(signature.logic, signature.args || [], msigAddr);
|
|
62
|
+
lsig.lmsig = signature.lmsig;
|
|
63
|
+
lsig.msig = signature.msig;
|
|
64
|
+
return lsig;
|
|
65
|
+
}
|
|
66
|
+
const lsigAccount = new LogicSigAccount(signature.logic, signature.args || [], delegator);
|
|
67
|
+
if (signature.sig && delegator === void 0) throw new Error("Delegated address must be provided when logic sig has a signature");
|
|
68
|
+
if (signature.sig) {
|
|
69
|
+
lsigAccount.sig = signature.sig;
|
|
70
|
+
return lsigAccount;
|
|
71
|
+
}
|
|
72
|
+
return lsigAccount;
|
|
73
|
+
}
|
|
74
|
+
static fromBytes(encodedLsig, delegator) {
|
|
75
|
+
const decoded = require_msgpack.decodeMsgpack(encodedLsig);
|
|
76
|
+
const lsigSignature = require_signed_transaction_meta.logicSigSignatureCodec.decode(decoded, "msgpack");
|
|
77
|
+
return LogicSigAccount.fromSignature(lsigSignature, delegator);
|
|
78
|
+
}
|
|
79
|
+
constructor(program, programArgs, delegator) {
|
|
80
|
+
super(program, programArgs ?? void 0);
|
|
81
|
+
this._addr = delegator ?? this._addr;
|
|
44
82
|
}
|
|
45
83
|
get signer() {
|
|
46
84
|
return async (txns, indexes) => {
|
|
@@ -56,63 +94,23 @@ var LogicSigAccount = class {
|
|
|
56
94
|
sig: this.sig
|
|
57
95
|
}
|
|
58
96
|
};
|
|
97
|
+
if (!stxn.txn.sender.equals(this.addr)) stxn.authAddress = this.addr;
|
|
98
|
+
require_signed_transaction.validateSignedTransaction(stxn);
|
|
59
99
|
signedTxns.push(require_signed_transaction.encodeSignedTransaction(stxn));
|
|
60
100
|
}
|
|
61
101
|
return signedTxns;
|
|
62
102
|
};
|
|
63
103
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*/
|
|
71
|
-
address() {
|
|
72
|
-
return new require_address.Address(require_crypto.hash(require_array.concatArrays(PROGRAM_TAG, this.logic)));
|
|
73
|
-
}
|
|
74
|
-
async delegate(signer) {
|
|
75
|
-
this.sig = await signer(this);
|
|
76
|
-
}
|
|
77
|
-
async delegateMultisig(msig) {
|
|
78
|
-
if (this.lmsig == void 0) this.lmsig = {
|
|
79
|
-
subsignatures: [],
|
|
80
|
-
version: msig.params.version,
|
|
81
|
-
threshold: msig.params.threshold
|
|
82
|
-
};
|
|
83
|
-
for (const addrWithSigner of msig.subSigners) {
|
|
84
|
-
const { lsigSigner, addr } = addrWithSigner;
|
|
85
|
-
const signature = await lsigSigner(this, msig);
|
|
86
|
-
this.lmsig.subsignatures.push({
|
|
87
|
-
publicKey: addr.publicKey,
|
|
88
|
-
signature
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
bytesToSignForDelegation(msig) {
|
|
93
|
-
if (msig) return require_array.concatArrays(MSIG_PROGRAM_TAG, msig.addr.publicKey, this.logic);
|
|
94
|
-
else return require_array.concatArrays(PROGRAM_TAG, this.logic);
|
|
95
|
-
}
|
|
96
|
-
signProgramData(data, signer) {
|
|
97
|
-
return signer(data, this);
|
|
98
|
-
}
|
|
99
|
-
programDataToSign(data) {
|
|
100
|
-
return require_array.concatArrays(SIGN_PROGRAM_DATA_PREFIX, this.address().publicKey, data);
|
|
104
|
+
async signForDelegation(delegator) {
|
|
105
|
+
const result = await delegator.lsigSigner(this);
|
|
106
|
+
if (!result.addr.equals(this._addr)) throw new Error(`Delegator address from signer does not match expected delegator address. Expected: ${this._addr.toString()}, got: ${result.addr.toString()}`);
|
|
107
|
+
if ("sig" in result && result.sig) this.sig = result.sig;
|
|
108
|
+
else if ("lmsig" in result && result.lmsig) this.lmsig = result.lmsig;
|
|
109
|
+
else throw new Error("Delegated lsig signer must return either a sig or lmsig");
|
|
101
110
|
}
|
|
102
111
|
};
|
|
103
|
-
/**
|
|
104
|
-
* Decodes MsgPack bytes into a logic signature.
|
|
105
|
-
*
|
|
106
|
-
* @param encodedLogicSignature - The MsgPack encoded logic signature
|
|
107
|
-
* @returns The decoded LogicSignature or an error if decoding fails.
|
|
108
|
-
*/
|
|
109
|
-
function decodeLogicSignature(encodedLogicSignature) {
|
|
110
|
-
const decodedData = require_msgpack.decodeMsgpack(encodedLogicSignature);
|
|
111
|
-
return require_signed_transaction_meta.logicSignatureCodec.decode(decodedData, "msgpack");
|
|
112
|
-
}
|
|
113
112
|
|
|
114
113
|
//#endregion
|
|
114
|
+
exports.LogicSig = LogicSig;
|
|
115
115
|
exports.LogicSigAccount = LogicSigAccount;
|
|
116
|
-
exports.decodeLogicSignature = decodeLogicSignature;
|
|
117
|
-
exports.sanityCheckProgram = sanityCheckProgram;
|
|
118
116
|
//# sourceMappingURL=logicsig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logicsig.js","names":["
|
|
1
|
+
{"version":3,"file":"logicsig.js","names":["Address","hash","concatArrays","decodeMsgpack","logicSigSignatureCodec","MultisigAccount","signedTxns: Uint8Array[]","stxn: SignedTransaction","encodeSignedTransaction"],"sources":["../../../../packages/transact/src/logicsig.ts"],"sourcesContent":["import { Address, Addressable, concatArrays, decodeMsgpack, hash } from '@algorandfoundation/algokit-common'\nimport { MultisigAccount } from './multisig'\nimport { AddressWithDelegatedLsigSigner, TransactionSigner } from './signer'\nimport {\n LogicSigSignature,\n MultisigSignature,\n SignedTransaction,\n encodeSignedTransaction,\n validateSignedTransaction,\n} from './transactions/signed-transaction'\nimport { logicSigSignatureCodec } from './transactions/signed-transaction-meta'\nimport { Transaction } from './transactions/transaction'\n\nconst PROGRAM_TAG = new TextEncoder().encode('Program')\nconst MSIG_PROGRAM_TAG = new TextEncoder().encode('MsigProgram')\nconst SIGN_PROGRAM_DATA_PREFIX = new TextEncoder().encode('ProgData')\n\n/** Function for signing logic signatures for delegation\n * @param lsig - The logic signature that is being signed for delegation\n * @param msig - Optional multisig account that should be set when a public key is signing as a subsigner of a multisig\n * @returns The address of the delegator\n * */\nexport type DelegatedLsigSigner = (\n lsig: LogicSigAccount,\n msig?: MultisigAccount,\n) => Promise<{ addr: Address } & ({ sig?: Uint8Array } | { lmsig?: MultisigSignature })>\n\n/** Function for signing program data for a logic signature */\nexport type ProgramDataSigner = (data: Uint8Array, lsig: LogicSig) => Promise<Uint8Array>\n\nexport class LogicSig implements Addressable {\n logic: Uint8Array\n args: Uint8Array[]\n protected _addr: Address\n\n constructor(program: Uint8Array, programArgs?: Array<Uint8Array>) {\n this.logic = program\n this.args = programArgs ?? []\n const toBeSigned = concatArrays(PROGRAM_TAG, this.logic)\n const h = hash(toBeSigned)\n this._addr = new Address(h)\n }\n\n static fromSignature(signature: LogicSigSignature): LogicSig {\n return new LogicSig(signature.logic, signature.args || [])\n }\n\n static fromBytes(encodedLsig: Uint8Array): LogicSig {\n const decoded = decodeMsgpack(encodedLsig)\n const lsigSignature = logicSigSignatureCodec.decode(decoded, 'msgpack')\n return LogicSig.fromSignature(lsigSignature)\n }\n\n address(): Address {\n return this._addr\n }\n\n get addr(): Address {\n return this._addr\n }\n\n bytesToSignForDelegation(msig?: MultisigAccount): Uint8Array {\n if (msig) {\n return concatArrays(MSIG_PROGRAM_TAG, msig.addr.publicKey, this.logic)\n } else {\n return concatArrays(PROGRAM_TAG, this.logic)\n }\n }\n\n signProgramData(data: Uint8Array, signer: ProgramDataSigner): Promise<Uint8Array> {\n return signer(data, this)\n }\n\n programDataToSign(data: Uint8Array): Uint8Array {\n return concatArrays(SIGN_PROGRAM_DATA_PREFIX, this.address().publicKey, data)\n }\n\n account(): LogicSigAccount {\n return new LogicSigAccount(this.logic, this.args)\n }\n\n delegatedAccount(delegator: Address): LogicSigAccount {\n return new LogicSigAccount(this.logic, this.args, delegator)\n }\n}\n\nexport class LogicSigAccount extends LogicSig {\n sig?: Uint8Array\n msig?: MultisigSignature\n lmsig?: MultisigSignature\n\n static fromSignature(signature: LogicSigSignature, delegator?: Address): LogicSigAccount {\n if (signature.lmsig || signature.msig) {\n const msigAddr = MultisigAccount.fromSignature((signature.lmsig || signature.msig)!).addr\n\n if (delegator && !msigAddr.equals(delegator)) {\n throw new Error('Provided delegator address does not match multisig address')\n }\n\n const lsig = new LogicSigAccount(signature.logic, signature.args || [], msigAddr)\n lsig.lmsig = signature.lmsig\n lsig.msig = signature.msig\n return lsig\n }\n\n const lsigAccount = new LogicSigAccount(signature.logic, signature.args || [], delegator)\n\n if (signature.sig && delegator === undefined) {\n throw new Error('Delegated address must be provided when logic sig has a signature')\n }\n\n if (signature.sig) {\n lsigAccount.sig = signature.sig\n return lsigAccount\n }\n\n return lsigAccount\n }\n\n static fromBytes(encodedLsig: Uint8Array, delegator?: Address): LogicSigAccount {\n const decoded = decodeMsgpack(encodedLsig)\n const lsigSignature = logicSigSignatureCodec.decode(decoded, 'msgpack')\n return LogicSigAccount.fromSignature(lsigSignature, delegator)\n }\n\n constructor(program: Uint8Array, programArgs?: Array<Uint8Array> | null, delegator?: Address) {\n super(program, programArgs ?? undefined)\n this._addr = delegator ?? this._addr\n }\n\n get signer(): TransactionSigner {\n return async (txns: Transaction[], indexes: number[]) => {\n const signedTxns: Uint8Array[] = []\n for (const index of indexes) {\n const txn = txns[index]\n\n const stxn: SignedTransaction = {\n txn,\n lsig: { logic: this.logic, args: this.args, msig: this.msig, lmsig: this.lmsig, sig: this.sig },\n }\n\n if (!stxn.txn.sender.equals(this.addr)) {\n stxn.authAddress = this.addr\n }\n\n validateSignedTransaction(stxn)\n signedTxns.push(encodeSignedTransaction(stxn))\n }\n\n return signedTxns\n }\n }\n\n async signForDelegation(delegator: AddressWithDelegatedLsigSigner) {\n const result = await delegator.lsigSigner(this)\n\n if (!result.addr.equals(this._addr)) {\n throw new Error(\n `Delegator address from signer does not match expected delegator address. Expected: ${this._addr.toString()}, got: ${result.addr.toString()}`,\n )\n }\n\n if ('sig' in result && result.sig) {\n this.sig = result.sig\n } else if ('lmsig' in result && result.lmsig) {\n this.lmsig = result.lmsig\n } else {\n throw new Error('Delegated lsig signer must return either a sig or lmsig')\n }\n }\n}\n"],"mappings":";;;;;;;;;AAaA,MAAM,cAAc,IAAI,aAAa,CAAC,OAAO,UAAU;AACvD,MAAM,mBAAmB,IAAI,aAAa,CAAC,OAAO,cAAc;AAChE,MAAM,2BAA2B,IAAI,aAAa,CAAC,OAAO,WAAW;AAerE,IAAa,WAAb,MAAa,SAAgC;CAC3C;CACA;CACA,AAAU;CAEV,YAAY,SAAqB,aAAiC;AAChE,OAAK,QAAQ;AACb,OAAK,OAAO,eAAe,EAAE;AAG7B,OAAK,QAAQ,IAAIA,wBADPC,oBADSC,2BAAa,aAAa,KAAK,MAAM,CAC9B,CACC;;CAG7B,OAAO,cAAc,WAAwC;AAC3D,SAAO,IAAI,SAAS,UAAU,OAAO,UAAU,QAAQ,EAAE,CAAC;;CAG5D,OAAO,UAAU,aAAmC;EAClD,MAAM,UAAUC,8BAAc,YAAY;EAC1C,MAAM,gBAAgBC,uDAAuB,OAAO,SAAS,UAAU;AACvE,SAAO,SAAS,cAAc,cAAc;;CAG9C,UAAmB;AACjB,SAAO,KAAK;;CAGd,IAAI,OAAgB;AAClB,SAAO,KAAK;;CAGd,yBAAyB,MAAoC;AAC3D,MAAI,KACF,QAAOF,2BAAa,kBAAkB,KAAK,KAAK,WAAW,KAAK,MAAM;MAEtE,QAAOA,2BAAa,aAAa,KAAK,MAAM;;CAIhD,gBAAgB,MAAkB,QAAgD;AAChF,SAAO,OAAO,MAAM,KAAK;;CAG3B,kBAAkB,MAA8B;AAC9C,SAAOA,2BAAa,0BAA0B,KAAK,SAAS,CAAC,WAAW,KAAK;;CAG/E,UAA2B;AACzB,SAAO,IAAI,gBAAgB,KAAK,OAAO,KAAK,KAAK;;CAGnD,iBAAiB,WAAqC;AACpD,SAAO,IAAI,gBAAgB,KAAK,OAAO,KAAK,MAAM,UAAU;;;AAIhE,IAAa,kBAAb,MAAa,wBAAwB,SAAS;CAC5C;CACA;CACA;CAEA,OAAO,cAAc,WAA8B,WAAsC;AACvF,MAAI,UAAU,SAAS,UAAU,MAAM;GACrC,MAAM,WAAWG,iCAAgB,cAAe,UAAU,SAAS,UAAU,KAAO,CAAC;AAErF,OAAI,aAAa,CAAC,SAAS,OAAO,UAAU,CAC1C,OAAM,IAAI,MAAM,6DAA6D;GAG/E,MAAM,OAAO,IAAI,gBAAgB,UAAU,OAAO,UAAU,QAAQ,EAAE,EAAE,SAAS;AACjF,QAAK,QAAQ,UAAU;AACvB,QAAK,OAAO,UAAU;AACtB,UAAO;;EAGT,MAAM,cAAc,IAAI,gBAAgB,UAAU,OAAO,UAAU,QAAQ,EAAE,EAAE,UAAU;AAEzF,MAAI,UAAU,OAAO,cAAc,OACjC,OAAM,IAAI,MAAM,oEAAoE;AAGtF,MAAI,UAAU,KAAK;AACjB,eAAY,MAAM,UAAU;AAC5B,UAAO;;AAGT,SAAO;;CAGT,OAAO,UAAU,aAAyB,WAAsC;EAC9E,MAAM,UAAUF,8BAAc,YAAY;EAC1C,MAAM,gBAAgBC,uDAAuB,OAAO,SAAS,UAAU;AACvE,SAAO,gBAAgB,cAAc,eAAe,UAAU;;CAGhE,YAAY,SAAqB,aAAwC,WAAqB;AAC5F,QAAM,SAAS,eAAe,OAAU;AACxC,OAAK,QAAQ,aAAa,KAAK;;CAGjC,IAAI,SAA4B;AAC9B,SAAO,OAAO,MAAqB,YAAsB;GACvD,MAAME,aAA2B,EAAE;AACnC,QAAK,MAAM,SAAS,SAAS;IAG3B,MAAMC,OAA0B;KAC9B,KAHU,KAAK;KAIf,MAAM;MAAE,OAAO,KAAK;MAAO,MAAM,KAAK;MAAM,MAAM,KAAK;MAAM,OAAO,KAAK;MAAO,KAAK,KAAK;MAAK;KAChG;AAED,QAAI,CAAC,KAAK,IAAI,OAAO,OAAO,KAAK,KAAK,CACpC,MAAK,cAAc,KAAK;AAG1B,yDAA0B,KAAK;AAC/B,eAAW,KAAKC,mDAAwB,KAAK,CAAC;;AAGhD,UAAO;;;CAIX,MAAM,kBAAkB,WAA2C;EACjE,MAAM,SAAS,MAAM,UAAU,WAAW,KAAK;AAE/C,MAAI,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,CACjC,OAAM,IAAI,MACR,sFAAsF,KAAK,MAAM,UAAU,CAAC,SAAS,OAAO,KAAK,UAAU,GAC5I;AAGH,MAAI,SAAS,UAAU,OAAO,IAC5B,MAAK,MAAM,OAAO;WACT,WAAW,UAAU,OAAO,MACrC,MAAK,QAAQ,OAAO;MAEpB,OAAM,IAAI,MAAM,0DAA0D"}
|
|
@@ -1,46 +1,84 @@
|
|
|
1
1
|
import { concatArrays } from "../../common/src/array.mjs";
|
|
2
|
-
import { Address
|
|
2
|
+
import { Address } from "../../common/src/address.mjs";
|
|
3
3
|
import { hash } from "../../common/src/crypto.mjs";
|
|
4
4
|
import { decodeMsgpack } from "../../common/src/msgpack.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { encodeSignedTransaction } from "./transactions/signed-transaction.mjs";
|
|
5
|
+
import { logicSigSignatureCodec } from "./transactions/signed-transaction-meta.mjs";
|
|
6
|
+
import { encodeSignedTransaction, validateSignedTransaction } from "./transactions/signed-transaction.mjs";
|
|
7
|
+
import { MultisigAccount } from "./multisig.mjs";
|
|
7
8
|
|
|
8
9
|
//#region packages/transact/src/logicsig.ts
|
|
9
|
-
const base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
|
|
10
|
-
/** sanityCheckProgram performs heuristic program validation:
|
|
11
|
-
* check if passed in bytes are Algorand address or is B64 encoded, rather than Teal bytes
|
|
12
|
-
*
|
|
13
|
-
* @param program - Program bytes to check
|
|
14
|
-
*/
|
|
15
|
-
function sanityCheckProgram(program) {
|
|
16
|
-
if (!program || program.length === 0) throw new Error("empty program");
|
|
17
|
-
const lineBreakOrd = "\n".charCodeAt(0);
|
|
18
|
-
const blankSpaceOrd = " ".charCodeAt(0);
|
|
19
|
-
const tildeOrd = "~".charCodeAt(0);
|
|
20
|
-
const isPrintable = (x) => blankSpaceOrd <= x && x <= tildeOrd;
|
|
21
|
-
if (program.every((x) => x === lineBreakOrd || isPrintable(x))) {
|
|
22
|
-
const programStr = new TextDecoder().decode(program);
|
|
23
|
-
if (isValidAddress(programStr)) throw new Error("requesting program bytes, get Algorand address");
|
|
24
|
-
if (base64regex.test(programStr)) throw new Error("program should not be b64 encoded");
|
|
25
|
-
throw new Error("program bytes are all ASCII printable characters, not looking like Teal byte code");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
10
|
const PROGRAM_TAG = new TextEncoder().encode("Program");
|
|
29
11
|
const MSIG_PROGRAM_TAG = new TextEncoder().encode("MsigProgram");
|
|
30
12
|
const SIGN_PROGRAM_DATA_PREFIX = new TextEncoder().encode("ProgData");
|
|
31
|
-
var
|
|
13
|
+
var LogicSig = class LogicSig {
|
|
32
14
|
logic;
|
|
33
15
|
args;
|
|
16
|
+
_addr;
|
|
17
|
+
constructor(program, programArgs) {
|
|
18
|
+
this.logic = program;
|
|
19
|
+
this.args = programArgs ?? [];
|
|
20
|
+
this._addr = new Address(hash(concatArrays(PROGRAM_TAG, this.logic)));
|
|
21
|
+
}
|
|
22
|
+
static fromSignature(signature) {
|
|
23
|
+
return new LogicSig(signature.logic, signature.args || []);
|
|
24
|
+
}
|
|
25
|
+
static fromBytes(encodedLsig) {
|
|
26
|
+
const decoded = decodeMsgpack(encodedLsig);
|
|
27
|
+
const lsigSignature = logicSigSignatureCodec.decode(decoded, "msgpack");
|
|
28
|
+
return LogicSig.fromSignature(lsigSignature);
|
|
29
|
+
}
|
|
30
|
+
address() {
|
|
31
|
+
return this._addr;
|
|
32
|
+
}
|
|
33
|
+
get addr() {
|
|
34
|
+
return this._addr;
|
|
35
|
+
}
|
|
36
|
+
bytesToSignForDelegation(msig) {
|
|
37
|
+
if (msig) return concatArrays(MSIG_PROGRAM_TAG, msig.addr.publicKey, this.logic);
|
|
38
|
+
else return concatArrays(PROGRAM_TAG, this.logic);
|
|
39
|
+
}
|
|
40
|
+
signProgramData(data, signer) {
|
|
41
|
+
return signer(data, this);
|
|
42
|
+
}
|
|
43
|
+
programDataToSign(data) {
|
|
44
|
+
return concatArrays(SIGN_PROGRAM_DATA_PREFIX, this.address().publicKey, data);
|
|
45
|
+
}
|
|
46
|
+
account() {
|
|
47
|
+
return new LogicSigAccount(this.logic, this.args);
|
|
48
|
+
}
|
|
49
|
+
delegatedAccount(delegator) {
|
|
50
|
+
return new LogicSigAccount(this.logic, this.args, delegator);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var LogicSigAccount = class LogicSigAccount extends LogicSig {
|
|
34
54
|
sig;
|
|
35
55
|
msig;
|
|
36
56
|
lmsig;
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
57
|
+
static fromSignature(signature, delegator) {
|
|
58
|
+
if (signature.lmsig || signature.msig) {
|
|
59
|
+
const msigAddr = MultisigAccount.fromSignature(signature.lmsig || signature.msig).addr;
|
|
60
|
+
if (delegator && !msigAddr.equals(delegator)) throw new Error("Provided delegator address does not match multisig address");
|
|
61
|
+
const lsig = new LogicSigAccount(signature.logic, signature.args || [], msigAddr);
|
|
62
|
+
lsig.lmsig = signature.lmsig;
|
|
63
|
+
lsig.msig = signature.msig;
|
|
64
|
+
return lsig;
|
|
65
|
+
}
|
|
66
|
+
const lsigAccount = new LogicSigAccount(signature.logic, signature.args || [], delegator);
|
|
67
|
+
if (signature.sig && delegator === void 0) throw new Error("Delegated address must be provided when logic sig has a signature");
|
|
68
|
+
if (signature.sig) {
|
|
69
|
+
lsigAccount.sig = signature.sig;
|
|
70
|
+
return lsigAccount;
|
|
71
|
+
}
|
|
72
|
+
return lsigAccount;
|
|
73
|
+
}
|
|
74
|
+
static fromBytes(encodedLsig, delegator) {
|
|
75
|
+
const decoded = decodeMsgpack(encodedLsig);
|
|
76
|
+
const lsigSignature = logicSigSignatureCodec.decode(decoded, "msgpack");
|
|
77
|
+
return LogicSigAccount.fromSignature(lsigSignature, delegator);
|
|
78
|
+
}
|
|
79
|
+
constructor(program, programArgs, delegator) {
|
|
80
|
+
super(program, programArgs ?? void 0);
|
|
81
|
+
this._addr = delegator ?? this._addr;
|
|
44
82
|
}
|
|
45
83
|
get signer() {
|
|
46
84
|
return async (txns, indexes) => {
|
|
@@ -56,61 +94,22 @@ var LogicSigAccount = class {
|
|
|
56
94
|
sig: this.sig
|
|
57
95
|
}
|
|
58
96
|
};
|
|
97
|
+
if (!stxn.txn.sender.equals(this.addr)) stxn.authAddress = this.addr;
|
|
98
|
+
validateSignedTransaction(stxn);
|
|
59
99
|
signedTxns.push(encodeSignedTransaction(stxn));
|
|
60
100
|
}
|
|
61
101
|
return signedTxns;
|
|
62
102
|
};
|
|
63
103
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*/
|
|
71
|
-
address() {
|
|
72
|
-
return new Address(hash(concatArrays(PROGRAM_TAG, this.logic)));
|
|
73
|
-
}
|
|
74
|
-
async delegate(signer) {
|
|
75
|
-
this.sig = await signer(this);
|
|
76
|
-
}
|
|
77
|
-
async delegateMultisig(msig) {
|
|
78
|
-
if (this.lmsig == void 0) this.lmsig = {
|
|
79
|
-
subsignatures: [],
|
|
80
|
-
version: msig.params.version,
|
|
81
|
-
threshold: msig.params.threshold
|
|
82
|
-
};
|
|
83
|
-
for (const addrWithSigner of msig.subSigners) {
|
|
84
|
-
const { lsigSigner, addr } = addrWithSigner;
|
|
85
|
-
const signature = await lsigSigner(this, msig);
|
|
86
|
-
this.lmsig.subsignatures.push({
|
|
87
|
-
publicKey: addr.publicKey,
|
|
88
|
-
signature
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
bytesToSignForDelegation(msig) {
|
|
93
|
-
if (msig) return concatArrays(MSIG_PROGRAM_TAG, msig.addr.publicKey, this.logic);
|
|
94
|
-
else return concatArrays(PROGRAM_TAG, this.logic);
|
|
95
|
-
}
|
|
96
|
-
signProgramData(data, signer) {
|
|
97
|
-
return signer(data, this);
|
|
98
|
-
}
|
|
99
|
-
programDataToSign(data) {
|
|
100
|
-
return concatArrays(SIGN_PROGRAM_DATA_PREFIX, this.address().publicKey, data);
|
|
104
|
+
async signForDelegation(delegator) {
|
|
105
|
+
const result = await delegator.lsigSigner(this);
|
|
106
|
+
if (!result.addr.equals(this._addr)) throw new Error(`Delegator address from signer does not match expected delegator address. Expected: ${this._addr.toString()}, got: ${result.addr.toString()}`);
|
|
107
|
+
if ("sig" in result && result.sig) this.sig = result.sig;
|
|
108
|
+
else if ("lmsig" in result && result.lmsig) this.lmsig = result.lmsig;
|
|
109
|
+
else throw new Error("Delegated lsig signer must return either a sig or lmsig");
|
|
101
110
|
}
|
|
102
111
|
};
|
|
103
|
-
/**
|
|
104
|
-
* Decodes MsgPack bytes into a logic signature.
|
|
105
|
-
*
|
|
106
|
-
* @param encodedLogicSignature - The MsgPack encoded logic signature
|
|
107
|
-
* @returns The decoded LogicSignature or an error if decoding fails.
|
|
108
|
-
*/
|
|
109
|
-
function decodeLogicSignature(encodedLogicSignature) {
|
|
110
|
-
const decodedData = decodeMsgpack(encodedLogicSignature);
|
|
111
|
-
return logicSignatureCodec.decode(decodedData, "msgpack");
|
|
112
|
-
}
|
|
113
112
|
|
|
114
113
|
//#endregion
|
|
115
|
-
export {
|
|
114
|
+
export { LogicSig, LogicSigAccount };
|
|
116
115
|
//# sourceMappingURL=logicsig.mjs.map
|