@algorandfoundation/algokit-utils 10.0.0-alpha.3 → 10.0.0-alpha.32
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/account-manager.d.ts +448 -0
- package/account-manager.js +623 -0
- package/account-manager.js.map +1 -0
- package/account-manager.mjs +620 -0
- package/account-manager.mjs.map +1 -0
- package/account.d.ts +156 -0
- package/account.js +10 -0
- package/account.js.map +1 -0
- package/account.mjs +9 -0
- package/account.mjs.map +1 -0
- package/algod-client/index.d.ts +3 -7
- package/algod-client/index.js +2 -5
- package/algod-client/index.mjs +2 -2
- package/algorand-client-transaction-creator.d.ts +1103 -0
- package/algorand-client-transaction-creator.js +735 -0
- package/algorand-client-transaction-creator.js.map +1 -0
- package/algorand-client-transaction-creator.mjs +734 -0
- package/algorand-client-transaction-creator.mjs.map +1 -0
- package/algorand-client-transaction-sender.d.ts +1317 -0
- package/algorand-client-transaction-sender.js +933 -0
- package/algorand-client-transaction-sender.js.map +1 -0
- package/algorand-client-transaction-sender.mjs +932 -0
- package/algorand-client-transaction-sender.mjs.map +1 -0
- package/algorand-client.d.ts +246 -0
- package/algorand-client.js +325 -0
- package/algorand-client.js.map +1 -0
- package/algorand-client.mjs +325 -0
- package/algorand-client.mjs.map +1 -0
- package/amount.d.ts +46 -3
- package/amount.js +92 -13
- package/amount.js.map +1 -1
- package/amount.mjs +80 -3
- package/amount.mjs.map +1 -1
- package/app-client.d.ts +2130 -0
- package/app-client.js +909 -0
- package/app-client.js.map +1 -0
- package/app-client.mjs +908 -0
- package/app-client.mjs.map +1 -0
- package/app-deployer.d.ts +166 -0
- package/app-deployer.js +353 -0
- package/app-deployer.js.map +1 -0
- package/app-deployer.mjs +353 -0
- package/app-deployer.mjs.map +1 -0
- package/app-factory.d.ts +965 -0
- package/app-factory.js +448 -0
- package/app-factory.js.map +1 -0
- package/app-factory.mjs +448 -0
- package/app-factory.mjs.map +1 -0
- package/app-manager.d.ts +323 -0
- package/app-manager.js +468 -0
- package/app-manager.js.map +1 -0
- package/app-manager.mjs +468 -0
- package/app-manager.mjs.map +1 -0
- package/app-spec.d.ts +203 -0
- package/app-spec.js +137 -0
- package/app-spec.js.map +1 -0
- package/app-spec.mjs +137 -0
- package/app-spec.mjs.map +1 -0
- package/app.d.ts +257 -0
- package/app.js +49 -0
- package/app.js.map +1 -0
- package/app.mjs +42 -0
- package/app.mjs.map +1 -0
- package/asset-manager.d.ts +212 -0
- package/asset-manager.js +166 -0
- package/asset-manager.js.map +1 -0
- package/asset-manager.mjs +166 -0
- package/asset-manager.mjs.map +1 -0
- package/async-event-emitter.d.ts +16 -0
- package/async-event-emitter.js +38 -0
- package/async-event-emitter.js.map +1 -0
- package/async-event-emitter.mjs +37 -0
- package/async-event-emitter.mjs.map +1 -0
- package/client-manager.d.ts +475 -0
- package/client-manager.js +616 -0
- package/client-manager.js.map +1 -0
- package/client-manager.mjs +616 -0
- package/client-manager.mjs.map +1 -0
- package/composer.d.ts +947 -0
- package/composer.js +1584 -0
- package/composer.js.map +1 -0
- package/composer.mjs +1583 -0
- package/composer.mjs.map +1 -0
- package/config.d.ts +1 -1
- package/config.js +2 -2
- package/config.js.map +1 -1
- package/config.mjs +1 -1
- package/config.mjs.map +1 -1
- package/debugging.d.ts +47 -0
- package/debugging.js +20 -0
- package/debugging.js.map +1 -0
- package/debugging.mjs +15 -0
- package/debugging.mjs.map +1 -0
- package/dispenser-client.d.ts +90 -0
- package/dispenser-client.js +127 -0
- package/dispenser-client.js.map +1 -0
- package/dispenser-client.mjs +127 -0
- package/dispenser-client.mjs.map +1 -0
- package/expand.d.ts +2 -0
- package/expand.js +0 -0
- package/expand.mjs +0 -0
- package/index.d.ts +6 -6
- package/index.js +4 -10
- package/index.mjs +5 -6
- 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/indexer.d.ts +40 -0
- package/indexer.js +38 -0
- package/indexer.js.map +1 -0
- package/indexer.mjs +35 -0
- package/indexer.mjs.map +1 -0
- package/instance-of.d.ts +8 -0
- package/kmd-account-manager.d.ts +74 -0
- package/kmd-account-manager.js +167 -0
- package/kmd-account-manager.js.map +1 -0
- package/kmd-account-manager.mjs +165 -0
- package/kmd-account-manager.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/lifecycle-events.d.ts +14 -0
- package/lifecycle-events.js +11 -0
- package/lifecycle-events.js.map +1 -0
- package/lifecycle-events.mjs +10 -0
- package/lifecycle-events.mjs.map +1 -0
- package/logging.d.ts +13 -0
- package/logging.js +47 -0
- package/logging.js.map +1 -0
- package/logging.mjs +42 -0
- package/logging.mjs.map +1 -0
- package/logic-error.d.ts +39 -0
- package/logic-error.js +54 -0
- package/logic-error.js.map +1 -0
- package/logic-error.mjs +53 -0
- package/logic-error.mjs.map +1 -0
- package/network-client.d.ts +43 -0
- package/network-client.js +14 -0
- package/network-client.js.map +1 -0
- package/network-client.mjs +13 -0
- package/network-client.mjs.map +1 -0
- package/package.json +14 -5
- 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.d.ts +2 -2
- package/testing/account.js +2 -3
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +2 -3
- package/testing/account.mjs.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.d.ts +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
- package/testing/fixtures/algorand-fixture.d.ts +5 -5
- package/testing/fixtures/algorand-fixture.js +2 -2
- package/testing/fixtures/algorand-fixture.js.map +1 -1
- package/testing/fixtures/algorand-fixture.mjs +2 -2
- package/testing/fixtures/algorand-fixture.mjs.map +1 -1
- package/testing/index.d.ts +2 -1
- package/testing/test-logger.d.ts +1 -1
- package/testing/test-logger.js.map +1 -1
- package/testing/test-logger.mjs.map +1 -1
- package/testing/transaction-logger.js +1 -1
- package/testing/transaction-logger.mjs +1 -1
- package/testing/types.d.ts +156 -0
- package/transact/index.d.ts +11 -10
- package/transact/index.js +7 -31
- package/transact/index.mjs +7 -10
- package/transaction/index.d.ts +4 -0
- package/transaction/index.js +9 -0
- package/transaction/index.mjs +4 -0
- package/transaction/perform-transaction-composer-simulate.d.ts +1 -1
- package/transaction/perform-transaction-composer-simulate.js.map +1 -1
- package/transaction/perform-transaction-composer-simulate.mjs.map +1 -1
- package/transaction/transaction.d.ts +2 -2
- 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/transaction/types.d.ts +133 -0
- package/transactions/app-call.d.ts +6 -5
- package/transactions/app-call.js +17 -17
- package/transactions/app-call.js.map +1 -1
- package/transactions/app-call.mjs +17 -17
- 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/common.d.ts +1 -1
- package/transactions/common.js.map +1 -1
- package/transactions/common.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 +2 -2
- package/transactions/method-call.js +78 -85
- package/transactions/method-call.js.map +1 -1
- package/transactions/method-call.mjs +78 -85
- package/transactions/method-call.mjs.map +1 -1
- package/transactions/payment.d.ts +1 -1
- package/transactions/payment.js.map +1 -1
- package/transactions/payment.mjs.map +1 -1
- package/types/account-manager.d.ts +11 -444
- package/types/account-manager.js +5 -606
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +5 -604
- package/types/account-manager.mjs.map +1 -1
- package/types/account.d.ts +8 -150
- package/types/account.js +3 -4
- package/types/account.js.map +1 -1
- package/types/account.mjs +4 -4
- package/types/account.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +5 -1084
- package/types/algorand-client-transaction-creator.js +3 -721
- package/types/algorand-client-transaction-creator.js.map +1 -1
- package/types/algorand-client-transaction-creator.mjs +4 -721
- package/types/algorand-client-transaction-creator.mjs.map +1 -1
- package/types/algorand-client-transaction-sender.d.ts +5 -1298
- package/types/algorand-client-transaction-sender.js +3 -920
- package/types/algorand-client-transaction-sender.js.map +1 -1
- package/types/algorand-client-transaction-sender.mjs +3 -918
- package/types/algorand-client-transaction-sender.mjs.map +1 -1
- package/types/algorand-client.d.ts +5 -241
- package/types/algorand-client.js +3 -319
- package/types/algorand-client.js.map +1 -1
- package/types/algorand-client.mjs +3 -319
- package/types/algorand-client.mjs.map +1 -1
- package/types/amount.d.ts +6 -45
- package/types/amount.js +3 -60
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +3 -60
- package/types/amount.mjs.map +1 -1
- package/types/app-client.d.ts +75 -2120
- package/types/app-client.js +3 -904
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +3 -902
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +21 -161
- package/types/app-deployer.js +3 -347
- package/types/app-deployer.js.map +1 -1
- package/types/app-deployer.mjs +3 -347
- package/types/app-deployer.mjs.map +1 -1
- package/types/app-factory.d.ts +21 -957
- package/types/app-factory.js +3 -442
- package/types/app-factory.js.map +1 -1
- package/types/app-factory.mjs +3 -442
- package/types/app-factory.mjs.map +1 -1
- package/types/app-manager.d.ts +15 -316
- package/types/app-manager.js +3 -456
- package/types/app-manager.js.map +1 -1
- package/types/app-manager.mjs +3 -456
- package/types/app-manager.mjs.map +1 -1
- package/types/app-spec.d.ts +39 -198
- package/types/app-spec.js +3 -124
- package/types/app-spec.js.map +1 -1
- package/types/app-spec.mjs +3 -124
- package/types/app-spec.mjs.map +1 -1
- package/types/app.d.ts +62 -247
- package/types/app.js +15 -37
- package/types/app.js.map +1 -1
- package/types/app.mjs +16 -37
- package/types/app.mjs.map +1 -1
- package/types/asset-manager.d.ts +9 -207
- package/types/asset-manager.js +3 -160
- package/types/asset-manager.js.map +1 -1
- package/types/asset-manager.mjs +3 -160
- package/types/asset-manager.mjs.map +1 -1
- package/types/async-event-emitter.d.ts +7 -14
- package/types/async-event-emitter.js +3 -32
- package/types/async-event-emitter.js.map +1 -1
- package/types/async-event-emitter.mjs +4 -32
- package/types/async-event-emitter.mjs.map +1 -1
- package/types/client-manager.d.ts +27 -470
- package/types/client-manager.js +3 -610
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs +3 -610
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +79 -935
- package/types/composer.js +3 -1569
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +3 -1567
- package/types/composer.mjs.map +1 -1
- package/types/config.d.ts +7 -52
- package/types/config.js +3 -74
- package/types/config.js.map +1 -1
- package/types/config.mjs +3 -74
- package/types/config.mjs.map +1 -1
- package/types/debugging.d.ts +12 -33
- package/types/debugging.js +11 -10
- package/types/debugging.js.map +1 -1
- package/types/debugging.mjs +12 -10
- package/types/debugging.mjs.map +1 -1
- package/types/dispenser-client.d.ts +11 -85
- package/types/dispenser-client.js +3 -121
- package/types/dispenser-client.js.map +1 -1
- package/types/dispenser-client.mjs +3 -121
- package/types/dispenser-client.mjs.map +1 -1
- package/types/expand.d.ts +4 -5
- package/types/indexer.d.ts +16 -36
- package/types/indexer.js +7 -30
- package/types/indexer.js.map +1 -1
- package/types/indexer.mjs +8 -30
- package/types/indexer.mjs.map +1 -1
- package/types/instance-of.d.ts +4 -4
- package/types/kmd-account-manager.d.ts +5 -68
- package/types/kmd-account-manager.js +3 -150
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +3 -148
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/lifecycle-events.d.ts +7 -10
- package/types/lifecycle-events.js +3 -5
- package/types/lifecycle-events.js.map +1 -1
- package/types/lifecycle-events.mjs +4 -5
- package/types/lifecycle-events.mjs.map +1 -1
- package/types/logging.d.ts +14 -9
- package/types/logging.js +11 -37
- package/types/logging.js.map +1 -1
- package/types/logging.mjs +12 -37
- package/types/logging.mjs.map +1 -1
- package/types/logic-error.d.ts +8 -35
- package/types/logic-error.js +3 -48
- package/types/logic-error.js.map +1 -1
- package/types/logic-error.mjs +4 -48
- package/types/logic-error.mjs.map +1 -1
- package/types/network-client.d.ts +10 -39
- package/types/network-client.js +3 -8
- package/types/network-client.js.map +1 -1
- package/types/network-client.mjs +4 -8
- package/types/network-client.mjs.map +1 -1
- package/types/testing.d.ts +13 -151
- package/types/transaction.d.ts +33 -128
- package/updatable-config.d.ts +57 -0
- package/updatable-config.js +80 -0
- package/updatable-config.js.map +1 -0
- package/updatable-config.mjs +80 -0
- package/updatable-config.mjs.map +1 -0
- package/util.js +1 -1
- package/util.js.map +1 -1
- package/util.mjs +1 -1
- package/util.mjs.map +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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logicsig.mjs","names":["
|
|
1
|
+
{"version":3,"file":"logicsig.mjs","names":["signedTxns: Uint8Array[]","stxn: SignedTransaction"],"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,IAAI,QADP,KADS,aAAa,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,UAAU,cAAc,YAAY;EAC1C,MAAM,gBAAgB,uBAAuB,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,QAAO,aAAa,kBAAkB,KAAK,KAAK,WAAW,KAAK,MAAM;MAEtE,QAAO,aAAa,aAAa,KAAK,MAAM;;CAIhD,gBAAgB,MAAkB,QAAgD;AAChF,SAAO,OAAO,MAAM,KAAK;;CAG3B,kBAAkB,MAA8B;AAC9C,SAAO,aAAa,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,WAAW,gBAAgB,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,UAAU,cAAc,YAAY;EAC1C,MAAM,gBAAgB,uBAAuB,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,MAAMA,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,8BAA0B,KAAK;AAC/B,eAAW,KAAK,wBAAwB,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,115 +1,10 @@
|
|
|
1
1
|
import { Address } from "../../common/src/address.js";
|
|
2
2
|
import { Transaction } from "./transactions/transaction.js";
|
|
3
|
-
import { MultisigSignature } from "./transactions/signed-transaction.js";
|
|
3
|
+
import { MultisigSignature, SignedTransaction } from "./transactions/signed-transaction.js";
|
|
4
|
+
import { DelegatedLsigSigner } from "./logicsig.js";
|
|
4
5
|
import { AddressWithDelegatedLsigSigner, AddressWithTransactionSigner, TransactionSigner } from "./signer.js";
|
|
5
6
|
|
|
6
7
|
//#region packages/transact/src/multisig.d.ts
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Creates an empty multisignature signature from a list of participant public keys.
|
|
10
|
-
*/
|
|
11
|
-
declare function newMultisigSignature(version: number, threshold: number, participants: Uint8Array[]): MultisigSignature;
|
|
12
|
-
/**
|
|
13
|
-
* Returns the list of participant public keys from a multisignature signature.
|
|
14
|
-
*/
|
|
15
|
-
declare function participantsFromMultisigSignature(multisigSignature: MultisigSignature): Uint8Array[];
|
|
16
|
-
/**
|
|
17
|
-
* Returns the address of the multisignature account.
|
|
18
|
-
*/
|
|
19
|
-
declare function addressFromMultisigSignature(multisigSignature: MultisigSignature): Address;
|
|
20
|
-
/**
|
|
21
|
-
* Applies a subsignature for a participant to a multisignature signature, replacing any existing signature.
|
|
22
|
-
*
|
|
23
|
-
* This method applies the signature to ALL instances of the given public key (to support weighted multisig).
|
|
24
|
-
* Since ed25519 signatures are deterministic, there's only one valid signature for a given message and public key.
|
|
25
|
-
*/
|
|
26
|
-
declare function applyMultisigSubsignature(multisigSignature: MultisigSignature, participant: Uint8Array, signature: Uint8Array): MultisigSignature;
|
|
27
|
-
/**
|
|
28
|
-
* Merges two multisignature signatures, replacing signatures in the first with those from the second where present.
|
|
29
|
-
* For each participant, the resulting signature will be taken from the second multisig if present, otherwise from the first.
|
|
30
|
-
*/
|
|
31
|
-
declare function mergeMultisignatures(multisigSignatureA: MultisigSignature, multisigSignatureB: MultisigSignature): MultisigSignature;
|
|
32
|
-
declare const MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = "Not enough multisig transactions to merge. Need at least two";
|
|
33
|
-
declare const MULTISIG_MERGE_MISMATCH_ERROR_MSG = "Cannot merge txs. txIDs differ";
|
|
34
|
-
declare const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = "Cannot merge txs. Auth addrs differ";
|
|
35
|
-
declare const MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = "Cannot merge txs. Multisig preimages differ";
|
|
36
|
-
declare const MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = "Cannot merge txs. subsigs are mismatched.";
|
|
37
|
-
declare const MULTISIG_NO_MUTATE_ERROR_MSG = "Cannot mutate a multisig field as it would invalidate all existing signatures.";
|
|
38
|
-
declare const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = "Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.";
|
|
39
|
-
declare const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = "Cannot add multisig signature. Signature is not of the correct length.";
|
|
40
|
-
/**
|
|
41
|
-
* creates a raw, multisig transaction blob without any signatures.
|
|
42
|
-
* @param txn - the actual transaction.
|
|
43
|
-
* @param version - multisig version
|
|
44
|
-
* @param threshold - multisig threshold
|
|
45
|
-
* @param pks - ordered list of public keys in this multisig
|
|
46
|
-
* @returns encoded multisig blob
|
|
47
|
-
*/
|
|
48
|
-
declare function createMultisigTransaction(txn: Transaction, {
|
|
49
|
-
version,
|
|
50
|
-
threshold,
|
|
51
|
-
addrs
|
|
52
|
-
}: MultisigMetadata): Uint8Array;
|
|
53
|
-
/**
|
|
54
|
-
* takes a list of multisig transaction blobs, and merges them.
|
|
55
|
-
* @param multisigTxnBlobs - a list of blobs representing encoded multisig txns
|
|
56
|
-
* @returns typed array msg-pack encoded multisig txn
|
|
57
|
-
*/
|
|
58
|
-
declare function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]): Uint8Array;
|
|
59
|
-
/**
|
|
60
|
-
* Takes a multisig transaction blob, and appends a given raw signature to it.
|
|
61
|
-
* This makes it possible to compile a multisig signature using only raw signatures from external methods.
|
|
62
|
-
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
63
|
-
* @param version - multisig version
|
|
64
|
-
* @param threshold - multisig threshold
|
|
65
|
-
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
66
|
-
* @param signerAddr - address of the signer
|
|
67
|
-
* @param signature - raw multisig signature
|
|
68
|
-
* @returns object containing txID, and blob representing encoded multisig txn
|
|
69
|
-
*/
|
|
70
|
-
declare function appendSignRawMultisigSignature(multisigTxnBlob: Uint8Array, {
|
|
71
|
-
version,
|
|
72
|
-
threshold,
|
|
73
|
-
addrs
|
|
74
|
-
}: MultisigMetadata, signerAddr: string | Address, signature: Uint8Array): {
|
|
75
|
-
txID: string;
|
|
76
|
-
blob: Uint8Array;
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Takes multisig parameters and returns a 32 byte typed array public key,
|
|
80
|
-
* representing an address that identifies the "exact group, version, and public keys" that are required for signing.
|
|
81
|
-
* Hash("MultisigAddr" || version uint8 || threshold uint8 || PK1 || PK2 || ...)
|
|
82
|
-
* Encoding this output yields a human readable address.
|
|
83
|
-
* @param version - multisig version
|
|
84
|
-
* @param threshold - multisig threshold
|
|
85
|
-
* @param pks - array of typed array public keys
|
|
86
|
-
*/
|
|
87
|
-
declare function addressFromMultisigPreImg({
|
|
88
|
-
version,
|
|
89
|
-
threshold,
|
|
90
|
-
pks
|
|
91
|
-
}: Omit<MultisigMetadata, 'addrs'> & {
|
|
92
|
-
pks: Uint8Array[];
|
|
93
|
-
}): Address;
|
|
94
|
-
/**
|
|
95
|
-
* Takes multisig parameters and returns a human readable Algorand address.
|
|
96
|
-
* This is equivalent to fromMultisigPreImg, but interfaces with encoded addresses.
|
|
97
|
-
* @param version - multisig version
|
|
98
|
-
* @param threshold - multisig threshold
|
|
99
|
-
* @param addrs - array of encoded addresses
|
|
100
|
-
*/
|
|
101
|
-
declare function addressFromMultisigPreImgAddrs({
|
|
102
|
-
version,
|
|
103
|
-
threshold,
|
|
104
|
-
addrs
|
|
105
|
-
}: MultisigMetadata): Address;
|
|
106
|
-
/**
|
|
107
|
-
* Takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
|
|
108
|
-
* @param version - multisig version
|
|
109
|
-
* @param threshold - multisig threshold
|
|
110
|
-
* @param addrs - list of Algorand addresses
|
|
111
|
-
*/
|
|
112
|
-
declare const multisigAddress: typeof addressFromMultisigPreImgAddrs;
|
|
113
8
|
interface MultisigMetadata {
|
|
114
9
|
/**
|
|
115
10
|
* Multisig version
|
|
@@ -126,11 +21,12 @@ interface MultisigMetadata {
|
|
|
126
21
|
addrs: Array<Address>;
|
|
127
22
|
}
|
|
128
23
|
/** Account wrapper that supports partial or full multisig signing. */
|
|
129
|
-
declare class MultisigAccount implements AddressWithTransactionSigner {
|
|
24
|
+
declare class MultisigAccount implements AddressWithTransactionSigner, AddressWithDelegatedLsigSigner {
|
|
130
25
|
_params: MultisigMetadata;
|
|
131
26
|
_subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[];
|
|
132
27
|
_addr: Address;
|
|
133
28
|
_signer: TransactionSigner;
|
|
29
|
+
_lsigSigner: DelegatedLsigSigner;
|
|
134
30
|
/** The parameters for the multisig account */
|
|
135
31
|
get params(): Readonly<MultisigMetadata>;
|
|
136
32
|
/** The list of accounts that are present to sign transactions or lsigs */
|
|
@@ -139,15 +35,14 @@ declare class MultisigAccount implements AddressWithTransactionSigner {
|
|
|
139
35
|
get addr(): Readonly<Address>;
|
|
140
36
|
/** The transaction signer for the multisig account */
|
|
141
37
|
get signer(): TransactionSigner;
|
|
38
|
+
get lsigSigner(): DelegatedLsigSigner;
|
|
39
|
+
static fromSignature(signature: MultisigSignature): MultisigAccount;
|
|
142
40
|
constructor(multisigParams: MultisigMetadata, subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[]);
|
|
41
|
+
createMultisigTransaction(txn: Transaction): SignedTransaction;
|
|
42
|
+
createMultisigSignature(): MultisigSignature;
|
|
43
|
+
applySignatureToTxn(txn: SignedTransaction, pubkey: Uint8Array, signature: Uint8Array): void;
|
|
44
|
+
applySignature(msigSignature: MultisigSignature, pubkey: Uint8Array, signature: Uint8Array): MultisigSignature;
|
|
143
45
|
}
|
|
144
|
-
/**
|
|
145
|
-
* Decodes MsgPack bytes into a multi signature.
|
|
146
|
-
*
|
|
147
|
-
* @param encodedMultiSignature - The MsgPack encoded multi signature
|
|
148
|
-
* @returns The decoded MultisigSignature or an error if decoding fails.
|
|
149
|
-
*/
|
|
150
|
-
declare function decodeMultiSignature(encodedMultiSignature: Uint8Array): MultisigSignature;
|
|
151
46
|
//#endregion
|
|
152
|
-
export {
|
|
47
|
+
export { MultisigAccount, MultisigMetadata };
|
|
153
48
|
//# sourceMappingURL=multisig.d.ts.map
|
|
@@ -2,42 +2,11 @@ const require_array = require('../../common/src/array.js');
|
|
|
2
2
|
const require_constants = require('../../common/src/constants.js');
|
|
3
3
|
const require_address = require('../../common/src/address.js');
|
|
4
4
|
const require_crypto = require('../../common/src/crypto.js');
|
|
5
|
-
const require_msgpack = require('../../common/src/msgpack.js');
|
|
6
|
-
const require_signed_transaction_meta = require('./transactions/signed-transaction-meta.js');
|
|
7
5
|
const require_signed_transaction = require('./transactions/signed-transaction.js');
|
|
8
6
|
|
|
9
7
|
//#region packages/transact/src/multisig.ts
|
|
10
|
-
/**
|
|
11
|
-
* Creates an empty multisignature signature from a list of participant public keys.
|
|
12
|
-
*/
|
|
13
|
-
function newMultisigSignature(version, threshold, participants) {
|
|
14
|
-
if (version === 0) throw new Error("Version cannot be zero");
|
|
15
|
-
if (participants.length === 0) throw new Error("Participants cannot be empty");
|
|
16
|
-
if (threshold === 0 || threshold > participants.length) throw new Error("Threshold must be greater than zero and less than or equal to the number of participants");
|
|
17
|
-
return {
|
|
18
|
-
version,
|
|
19
|
-
threshold,
|
|
20
|
-
subsignatures: participants.map((publicKey) => ({ publicKey }))
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Returns the list of participant public keys from a multisignature signature.
|
|
25
|
-
*/
|
|
26
|
-
function participantsFromMultisigSignature(multisigSignature) {
|
|
27
|
-
return multisigSignature.subsignatures.map((subsig) => subsig.publicKey);
|
|
28
|
-
}
|
|
29
8
|
const toPublicKeys = (addrs) => addrs.map((addr) => require_address.getAddress(addr).publicKey);
|
|
30
9
|
/**
|
|
31
|
-
* Returns the address of the multisignature account.
|
|
32
|
-
*/
|
|
33
|
-
function addressFromMultisigSignature(multisigSignature) {
|
|
34
|
-
return addressFromMultisigPreImg({
|
|
35
|
-
version: multisigSignature.version,
|
|
36
|
-
threshold: multisigSignature.threshold,
|
|
37
|
-
pks: multisigSignature.subsignatures.map((subsig) => subsig.publicKey)
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
10
|
* Applies a subsignature for a participant to a multisignature signature, replacing any existing signature.
|
|
42
11
|
*
|
|
43
12
|
* This method applies the signature to ALL instances of the given public key (to support weighted multisig).
|
|
@@ -45,12 +14,12 @@ function addressFromMultisigSignature(multisigSignature) {
|
|
|
45
14
|
*/
|
|
46
15
|
function applyMultisigSubsignature(multisigSignature, participant, signature) {
|
|
47
16
|
let found = false;
|
|
48
|
-
const newSubsignatures = multisigSignature.
|
|
17
|
+
const newSubsignatures = multisigSignature.subsigs.map((subsig) => {
|
|
49
18
|
if (require_array.arrayEqual(subsig.publicKey, participant)) {
|
|
50
19
|
found = true;
|
|
51
20
|
return {
|
|
52
21
|
...subsig,
|
|
53
|
-
signature
|
|
22
|
+
sig: signature
|
|
54
23
|
};
|
|
55
24
|
}
|
|
56
25
|
return subsig;
|
|
@@ -58,30 +27,7 @@ function applyMultisigSubsignature(multisigSignature, participant, signature) {
|
|
|
58
27
|
if (!found) throw new Error("Public key not found in multisig signature");
|
|
59
28
|
return {
|
|
60
29
|
...multisigSignature,
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Merges two multisignature signatures, replacing signatures in the first with those from the second where present.
|
|
66
|
-
* For each participant, the resulting signature will be taken from the second multisig if present, otherwise from the first.
|
|
67
|
-
*/
|
|
68
|
-
function mergeMultisignatures(multisigSignatureA, multisigSignatureB) {
|
|
69
|
-
if (multisigSignatureA.version !== multisigSignatureB.version) throw new Error("Cannot merge multisig signatures with different versions");
|
|
70
|
-
if (multisigSignatureA.threshold !== multisigSignatureB.threshold) throw new Error("Cannot merge multisig signatures with different thresholds");
|
|
71
|
-
const participantsA = participantsFromMultisigSignature(multisigSignatureA);
|
|
72
|
-
const participantsB = participantsFromMultisigSignature(multisigSignatureB);
|
|
73
|
-
if (!(participantsA.length === participantsB.length && participantsA.every((pk, i) => require_array.arrayEqual(pk, participantsB[i])))) throw new Error("Cannot merge multisig signatures with different participants");
|
|
74
|
-
const mergedSubsignatures = multisigSignatureA.subsignatures.map((s1, index) => {
|
|
75
|
-
const s2 = multisigSignatureB.subsignatures[index];
|
|
76
|
-
return {
|
|
77
|
-
publicKey: s1.publicKey,
|
|
78
|
-
signature: s2.signature || s1.signature
|
|
79
|
-
};
|
|
80
|
-
});
|
|
81
|
-
return {
|
|
82
|
-
version: multisigSignatureA.version,
|
|
83
|
-
threshold: multisigSignatureA.threshold,
|
|
84
|
-
subsignatures: mergedSubsignatures
|
|
30
|
+
subsigs: newSubsignatures
|
|
85
31
|
};
|
|
86
32
|
}
|
|
87
33
|
const MULTISIG_PREIMG2ADDR_PREFIX = new Uint8Array([
|
|
@@ -107,8 +53,6 @@ const MULTISIG_MERGE_MISMATCH_ERROR_MSG = "Cannot merge txs. txIDs differ";
|
|
|
107
53
|
const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = "Cannot merge txs. Auth addrs differ";
|
|
108
54
|
const MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = "Cannot merge txs. Multisig preimages differ";
|
|
109
55
|
const MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = "Cannot merge txs. subsigs are mismatched.";
|
|
110
|
-
const MULTISIG_NO_MUTATE_ERROR_MSG = "Cannot mutate a multisig field as it would invalidate all existing signatures.";
|
|
111
|
-
const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = "Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.";
|
|
112
56
|
const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = "Cannot add multisig signature. Signature is not of the correct length.";
|
|
113
57
|
const MULTISIG_KEY_NOT_EXIST_ERROR_MSG = "Key does not exist";
|
|
114
58
|
/**
|
|
@@ -124,23 +68,23 @@ function createMultisigTransaction(txn, { version, threshold, addrs }) {
|
|
|
124
68
|
const msig = {
|
|
125
69
|
version,
|
|
126
70
|
threshold,
|
|
127
|
-
|
|
71
|
+
subsigs: pks.map((pk) => ({
|
|
128
72
|
publicKey: pk,
|
|
129
|
-
|
|
73
|
+
sig: void 0
|
|
130
74
|
}))
|
|
131
75
|
};
|
|
132
76
|
const msigAddr = addressFromMultisigPreImg({
|
|
133
77
|
version,
|
|
134
78
|
threshold,
|
|
135
|
-
pks
|
|
79
|
+
publicKeys: pks
|
|
136
80
|
});
|
|
137
81
|
let authAddress;
|
|
138
82
|
if (!msigAddr.equals(txn.sender)) authAddress = msigAddr;
|
|
139
|
-
return
|
|
83
|
+
return {
|
|
140
84
|
txn,
|
|
141
85
|
msig,
|
|
142
86
|
authAddress
|
|
143
|
-
}
|
|
87
|
+
};
|
|
144
88
|
}
|
|
145
89
|
/**
|
|
146
90
|
* creates a multisig transaction blob with an included signature.
|
|
@@ -152,31 +96,31 @@ function createMultisigTransaction(txn, { version, threshold, addrs }) {
|
|
|
152
96
|
* @param pks - ordered list of public keys in this multisig
|
|
153
97
|
* @returns encoded multisig blob
|
|
154
98
|
*/
|
|
155
|
-
function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version, threshold,
|
|
156
|
-
const signedTxn =
|
|
99
|
+
function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version, threshold, publicKeys }) {
|
|
100
|
+
const signedTxn = createMultisigTransaction(txn, {
|
|
157
101
|
version,
|
|
158
102
|
threshold,
|
|
159
|
-
addrs:
|
|
160
|
-
})
|
|
103
|
+
addrs: publicKeys.map((pk) => new require_address.Address(pk))
|
|
104
|
+
});
|
|
161
105
|
let keyExist = false;
|
|
162
|
-
const updatedSubsigs = signedTxn.msig.
|
|
106
|
+
const updatedSubsigs = signedTxn.msig.subsigs.map((subsig) => {
|
|
163
107
|
if (require_array.arrayEqual(subsig.publicKey, myPk)) {
|
|
164
108
|
keyExist = true;
|
|
165
109
|
return {
|
|
166
110
|
...subsig,
|
|
167
|
-
|
|
111
|
+
sig: rawSig
|
|
168
112
|
};
|
|
169
113
|
}
|
|
170
114
|
return subsig;
|
|
171
115
|
});
|
|
172
116
|
if (!keyExist) throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG);
|
|
173
|
-
return
|
|
117
|
+
return {
|
|
174
118
|
...signedTxn,
|
|
175
119
|
msig: {
|
|
176
120
|
...signedTxn.msig,
|
|
177
|
-
|
|
121
|
+
subsigs: updatedSubsigs
|
|
178
122
|
}
|
|
179
|
-
}
|
|
123
|
+
};
|
|
180
124
|
}
|
|
181
125
|
/**
|
|
182
126
|
* takes a list of multisig transaction blobs, and merges them.
|
|
@@ -185,44 +129,44 @@ function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version
|
|
|
185
129
|
*/
|
|
186
130
|
function mergeMultisigTransactions(multisigTxnBlobs) {
|
|
187
131
|
if (multisigTxnBlobs.length < 2) throw new Error(MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG);
|
|
188
|
-
const refSigTx =
|
|
132
|
+
const refSigTx = multisigTxnBlobs[0];
|
|
189
133
|
if (!refSigTx.msig) throw new Error("Invalid multisig transaction, multisig structure missing at index 0");
|
|
190
134
|
const refTxID = refSigTx.txn.txId();
|
|
191
135
|
const refAuthAddr = refSigTx.authAddress;
|
|
192
136
|
const refMsigAddr = addressFromMultisigPreImg({
|
|
193
137
|
version: refSigTx.msig.version,
|
|
194
138
|
threshold: refSigTx.msig.threshold,
|
|
195
|
-
|
|
139
|
+
publicKeys: refSigTx.msig.subsigs.map((subsig) => subsig.publicKey)
|
|
196
140
|
});
|
|
197
|
-
const newSubsigs = refSigTx.msig.
|
|
141
|
+
const newSubsigs = refSigTx.msig.subsigs.map((sig) => ({ ...sig }));
|
|
198
142
|
for (let i = 1; i < multisigTxnBlobs.length; i++) {
|
|
199
|
-
const unisig =
|
|
143
|
+
const unisig = multisigTxnBlobs[i];
|
|
200
144
|
if (!unisig.msig) throw new Error(`Invalid multisig transaction, multisig structure missing at index ${i}`);
|
|
201
145
|
if (unisig.txn.txId() !== refTxID) throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG);
|
|
202
146
|
if (refAuthAddr !== unisig.authAddress) throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG);
|
|
203
|
-
if (unisig.msig.
|
|
147
|
+
if (unisig.msig.subsigs.length !== refSigTx.msig.subsigs.length) throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
204
148
|
const msgigAddr = addressFromMultisigPreImg({
|
|
205
149
|
version: unisig.msig.version,
|
|
206
150
|
threshold: unisig.msig.threshold,
|
|
207
|
-
|
|
151
|
+
publicKeys: unisig.msig.subsigs.map((subsig) => subsig.publicKey)
|
|
208
152
|
});
|
|
209
153
|
if (refMsigAddr.toString() !== msgigAddr.toString()) throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
210
|
-
unisig.msig.
|
|
211
|
-
if (!uniSubsig.
|
|
154
|
+
unisig.msig.subsigs.forEach((uniSubsig, index) => {
|
|
155
|
+
if (!uniSubsig.sig) return;
|
|
212
156
|
const current = newSubsigs[index];
|
|
213
|
-
if (current.
|
|
214
|
-
current.
|
|
157
|
+
if (current.sig && !require_array.arrayEqual(uniSubsig.sig, current.sig)) throw new Error(MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG);
|
|
158
|
+
current.sig = uniSubsig.sig;
|
|
215
159
|
});
|
|
216
160
|
}
|
|
217
|
-
return
|
|
161
|
+
return {
|
|
218
162
|
txn: refSigTx.txn,
|
|
219
163
|
msig: {
|
|
220
164
|
version: refSigTx.msig.version,
|
|
221
165
|
threshold: refSigTx.msig.threshold,
|
|
222
|
-
|
|
166
|
+
subsigs: newSubsigs
|
|
223
167
|
},
|
|
224
168
|
authAddress: refAuthAddr
|
|
225
|
-
}
|
|
169
|
+
};
|
|
226
170
|
}
|
|
227
171
|
/**
|
|
228
172
|
* Partially signs this transaction with an external raw multisig signature and returns
|
|
@@ -251,18 +195,13 @@ function partialSignWithMultisigSignature(transaction, metadata, signerAddr, sig
|
|
|
251
195
|
* @param signature - raw multisig signature
|
|
252
196
|
* @returns object containing txID, and blob representing encoded multisig txn
|
|
253
197
|
*/
|
|
254
|
-
function appendSignRawMultisigSignature(
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
const partialSignedBlob = partialSignWithMultisigSignature(multisigTxObj.txn, {
|
|
198
|
+
function appendSignRawMultisigSignature(multisigTxn, { version, threshold, addrs }, signerAddr, signature) {
|
|
199
|
+
const publicKeys = toPublicKeys(addrs);
|
|
200
|
+
return mergeMultisigTransactions([multisigTxn, partialSignWithMultisigSignature(multisigTxn.txn, {
|
|
258
201
|
version,
|
|
259
202
|
threshold,
|
|
260
|
-
|
|
261
|
-
}, signerAddr, signature);
|
|
262
|
-
return {
|
|
263
|
-
txID: multisigTxObj.txn.txId(),
|
|
264
|
-
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob])
|
|
265
|
-
};
|
|
203
|
+
publicKeys
|
|
204
|
+
}, signerAddr, signature)]);
|
|
266
205
|
}
|
|
267
206
|
/**
|
|
268
207
|
* Takes multisig parameters and returns a 32 byte typed array public key,
|
|
@@ -273,18 +212,18 @@ function appendSignRawMultisigSignature(multisigTxnBlob, { version, threshold, a
|
|
|
273
212
|
* @param threshold - multisig threshold
|
|
274
213
|
* @param pks - array of typed array public keys
|
|
275
214
|
*/
|
|
276
|
-
function addressFromMultisigPreImg({ version, threshold,
|
|
215
|
+
function addressFromMultisigPreImg({ version, threshold, publicKeys }) {
|
|
277
216
|
if (version > 255 || version < 0) throw new Error(`${INVALID_MSIG_VERSION_ERROR_MSG}: ${version}`);
|
|
278
|
-
if (threshold === 0 ||
|
|
217
|
+
if (threshold === 0 || publicKeys.length === 0 || threshold > publicKeys.length || threshold > 255) throw new Error(INVALID_MSIG_THRESHOLD_ERROR_MSG);
|
|
279
218
|
const pkLen = require_address.ALGORAND_ADDRESS_BYTE_LENGTH - require_address.ALGORAND_CHECKSUM_BYTE_LENGTH;
|
|
280
219
|
if (pkLen !== require_constants.PUBLIC_KEY_BYTE_LENGTH) throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG);
|
|
281
|
-
const merged = new Uint8Array(MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen *
|
|
220
|
+
const merged = new Uint8Array(MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen * publicKeys.length);
|
|
282
221
|
merged.set(MULTISIG_PREIMG2ADDR_PREFIX, 0);
|
|
283
222
|
merged.set([version], MULTISIG_PREIMG2ADDR_PREFIX.length);
|
|
284
223
|
merged.set([threshold], MULTISIG_PREIMG2ADDR_PREFIX.length + 1);
|
|
285
|
-
for (let i = 0; i <
|
|
286
|
-
if (
|
|
287
|
-
merged.set(
|
|
224
|
+
for (let i = 0; i < publicKeys.length; i++) {
|
|
225
|
+
if (publicKeys[i].length !== pkLen) throw new Error(INVALID_MSIG_PK_ERROR_MSG);
|
|
226
|
+
merged.set(publicKeys[i], MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + i * pkLen);
|
|
288
227
|
}
|
|
289
228
|
return new require_address.Address(Uint8Array.from(require_crypto.hash(merged)));
|
|
290
229
|
}
|
|
@@ -299,7 +238,7 @@ function addressFromMultisigPreImgAddrs({ version, threshold, addrs }) {
|
|
|
299
238
|
return addressFromMultisigPreImg({
|
|
300
239
|
version,
|
|
301
240
|
threshold,
|
|
302
|
-
|
|
241
|
+
publicKeys: toPublicKeys(addrs)
|
|
303
242
|
});
|
|
304
243
|
}
|
|
305
244
|
/**
|
|
@@ -310,11 +249,12 @@ function addressFromMultisigPreImgAddrs({ version, threshold, addrs }) {
|
|
|
310
249
|
*/
|
|
311
250
|
const multisigAddress = addressFromMultisigPreImgAddrs;
|
|
312
251
|
/** Account wrapper that supports partial or full multisig signing. */
|
|
313
|
-
var MultisigAccount = class {
|
|
252
|
+
var MultisigAccount = class MultisigAccount {
|
|
314
253
|
_params;
|
|
315
254
|
_subSigners;
|
|
316
255
|
_addr;
|
|
317
256
|
_signer;
|
|
257
|
+
_lsigSigner;
|
|
318
258
|
/** The parameters for the multisig account */
|
|
319
259
|
get params() {
|
|
320
260
|
return this._params;
|
|
@@ -331,6 +271,16 @@ var MultisigAccount = class {
|
|
|
331
271
|
get signer() {
|
|
332
272
|
return this._signer;
|
|
333
273
|
}
|
|
274
|
+
get lsigSigner() {
|
|
275
|
+
return this._lsigSigner;
|
|
276
|
+
}
|
|
277
|
+
static fromSignature(signature) {
|
|
278
|
+
return new MultisigAccount({
|
|
279
|
+
version: signature.version,
|
|
280
|
+
threshold: signature.threshold,
|
|
281
|
+
addrs: signature.subsigs.map((subsig) => new require_address.Address(subsig.publicKey))
|
|
282
|
+
}, []);
|
|
283
|
+
}
|
|
334
284
|
constructor(multisigParams, subSigners) {
|
|
335
285
|
this._params = multisigParams;
|
|
336
286
|
this._subSigners = subSigners;
|
|
@@ -344,45 +294,65 @@ var MultisigAccount = class {
|
|
|
344
294
|
const stxn = (await subSigner.signer([txn], [0]))[0];
|
|
345
295
|
const sig = require_signed_transaction.decodeSignedTransaction(stxn).sig;
|
|
346
296
|
if (!sig) throw new Error(`Signer for address ${subSigner.addr.toString()} did not produce a valid signature when signing ${txn.txId()} for multisig account ${this._addr.toString()}`);
|
|
347
|
-
signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig)
|
|
297
|
+
signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig);
|
|
348
298
|
}
|
|
349
299
|
signedMsigTxns.push(signedMsigTxn);
|
|
350
300
|
}
|
|
351
|
-
return signedMsigTxns
|
|
301
|
+
return signedMsigTxns.map((stxn) => {
|
|
302
|
+
require_signed_transaction.validateSignedTransaction(stxn);
|
|
303
|
+
return require_signed_transaction.encodeSignedTransaction(stxn);
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
this._lsigSigner = async (lsig, _) => {
|
|
307
|
+
let lmsig = lsig.lmsig ?? this.createMultisigSignature();
|
|
308
|
+
for (const addrWithSigner of this.subSigners) {
|
|
309
|
+
const { lsigSigner, addr } = addrWithSigner;
|
|
310
|
+
const result = await lsigSigner(lsig, this);
|
|
311
|
+
if (!("sig" in result) || !result.sig) throw new Error(`Signer for address ${addr.toString()} did not produce a valid signature when signing logic sig for multisig account ${this._addr.toString()}`);
|
|
312
|
+
lmsig = this.applySignature(lmsig, addr.publicKey, result.sig);
|
|
313
|
+
}
|
|
314
|
+
return {
|
|
315
|
+
addr: this.addr,
|
|
316
|
+
lmsig
|
|
317
|
+
};
|
|
352
318
|
};
|
|
353
319
|
}
|
|
320
|
+
createMultisigTransaction(txn) {
|
|
321
|
+
return createMultisigTransaction(txn, this._params);
|
|
322
|
+
}
|
|
323
|
+
createMultisigSignature() {
|
|
324
|
+
const subsignatures = toPublicKeys(this._params.addrs).map((pk) => ({
|
|
325
|
+
publicKey: pk,
|
|
326
|
+
sig: void 0
|
|
327
|
+
}));
|
|
328
|
+
return {
|
|
329
|
+
version: this._params.version,
|
|
330
|
+
threshold: this._params.threshold,
|
|
331
|
+
subsigs: subsignatures
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
applySignatureToTxn(txn, pubkey, signature) {
|
|
335
|
+
if (!txn.msig) txn.msig = this.createMultisigTransaction(txn.txn).msig;
|
|
336
|
+
txn.msig = applyMultisigSubsignature(txn.msig, pubkey, signature);
|
|
337
|
+
}
|
|
338
|
+
applySignature(msigSignature, pubkey, signature) {
|
|
339
|
+
if (msigSignature.version !== this._params.version || msigSignature.threshold !== this._params.threshold) {
|
|
340
|
+
const thisParams = {
|
|
341
|
+
version: this._params.version,
|
|
342
|
+
threshold: this._params.threshold,
|
|
343
|
+
participants: this._params.addrs.map((addr) => addr.toString())
|
|
344
|
+
};
|
|
345
|
+
const givenParams = {
|
|
346
|
+
version: msigSignature.version,
|
|
347
|
+
threshold: msigSignature.threshold,
|
|
348
|
+
participants: msigSignature.subsigs.map((subsig) => new require_address.Address(subsig.publicKey).toString())
|
|
349
|
+
};
|
|
350
|
+
throw new Error(`Multisig signature parameters do not match expected multisig parameters. Multisig params: ${JSON.stringify(thisParams)}, signature: ${JSON.stringify(givenParams)}`);
|
|
351
|
+
}
|
|
352
|
+
return applyMultisigSubsignature(msigSignature, pubkey, signature);
|
|
353
|
+
}
|
|
354
354
|
};
|
|
355
|
-
/**
|
|
356
|
-
* Decodes MsgPack bytes into a multi signature.
|
|
357
|
-
*
|
|
358
|
-
* @param encodedMultiSignature - The MsgPack encoded multi signature
|
|
359
|
-
* @returns The decoded MultisigSignature or an error if decoding fails.
|
|
360
|
-
*/
|
|
361
|
-
function decodeMultiSignature(encodedMultiSignature) {
|
|
362
|
-
const decodedData = require_msgpack.decodeMsgpack(encodedMultiSignature);
|
|
363
|
-
return require_signed_transaction_meta.multiSignatureCodec.decode(decodedData, "msgpack");
|
|
364
|
-
}
|
|
365
355
|
|
|
366
356
|
//#endregion
|
|
367
|
-
exports.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG;
|
|
368
|
-
exports.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG;
|
|
369
|
-
exports.MULTISIG_MERGE_MISMATCH_ERROR_MSG = MULTISIG_MERGE_MISMATCH_ERROR_MSG;
|
|
370
|
-
exports.MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG;
|
|
371
|
-
exports.MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG;
|
|
372
|
-
exports.MULTISIG_NO_MUTATE_ERROR_MSG = MULTISIG_NO_MUTATE_ERROR_MSG;
|
|
373
|
-
exports.MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = MULTISIG_SIGNATURE_LENGTH_ERROR_MSG;
|
|
374
|
-
exports.MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG;
|
|
375
357
|
exports.MultisigAccount = MultisigAccount;
|
|
376
|
-
exports.addressFromMultisigPreImg = addressFromMultisigPreImg;
|
|
377
|
-
exports.addressFromMultisigPreImgAddrs = addressFromMultisigPreImgAddrs;
|
|
378
|
-
exports.addressFromMultisigSignature = addressFromMultisigSignature;
|
|
379
|
-
exports.appendSignRawMultisigSignature = appendSignRawMultisigSignature;
|
|
380
|
-
exports.applyMultisigSubsignature = applyMultisigSubsignature;
|
|
381
|
-
exports.createMultisigTransaction = createMultisigTransaction;
|
|
382
|
-
exports.decodeMultiSignature = decodeMultiSignature;
|
|
383
|
-
exports.mergeMultisigTransactions = mergeMultisigTransactions;
|
|
384
|
-
exports.mergeMultisignatures = mergeMultisignatures;
|
|
385
|
-
exports.multisigAddress = multisigAddress;
|
|
386
|
-
exports.newMultisigSignature = newMultisigSignature;
|
|
387
|
-
exports.participantsFromMultisigSignature = participantsFromMultisigSignature;
|
|
388
358
|
//# sourceMappingURL=multisig.js.map
|