@algorandfoundation/algokit-utils 6.2.1 → 7.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +22 -26
- package/account/account.d.ts +21 -11
- package/account/get-account-config-from-environment.d.ts +0 -1
- package/account/get-account.d.ts +6 -7
- package/account/get-dispenser-account.d.ts +2 -3
- package/account/index.d.ts +0 -1
- package/account/mnemonic-account.d.ts +1 -2
- package/amount.d.ts +41 -9
- package/app-client.d.ts +19 -5
- package/app-deploy.d.ts +18 -2
- package/app.d.ts +39 -3
- package/asset.d.ts +10 -1
- package/config.d.ts +0 -1
- package/debugging/debugging.d.ts +3 -5
- package/debugging/index.d.ts +0 -2
- package/dispenser-client.d.ts +1 -2
- package/index.d.ts +8 -6
- package/index.js +61 -48
- package/index.js.map +1 -1
- package/index.mjs +27 -24
- package/index.mjs.map +1 -1
- package/indexer-lookup.d.ts +10 -9
- package/localnet/get-kmd-wallet-account.d.ts +1 -2
- package/localnet/get-localnet-dispenser-account.d.ts +1 -2
- package/localnet/get-or-create-kmd-wallet-account.d.ts +2 -3
- package/localnet/index.d.ts +0 -1
- package/localnet/is-localnet.d.ts +1 -2
- package/network-client.d.ts +3 -10
- package/package.json +5 -5
- package/{account → src/account}/account.js +38 -15
- package/src/account/account.js.map +1 -0
- package/{account → src/account}/account.mjs +39 -16
- package/src/account/account.mjs.map +1 -0
- package/src/account/get-account-config-from-environment.js.map +1 -0
- package/src/account/get-account-config-from-environment.mjs.map +1 -0
- package/{account → src/account}/get-account.js +5 -5
- package/src/account/get-account.js.map +1 -0
- package/{account → src/account}/get-account.mjs +5 -5
- package/src/account/get-account.mjs.map +1 -0
- package/{account → src/account}/get-dispenser-account.js +3 -3
- package/src/account/get-dispenser-account.js.map +1 -0
- package/{account → src/account}/get-dispenser-account.mjs +3 -3
- package/src/account/get-dispenser-account.mjs.map +1 -0
- package/{account → src/account}/mnemonic-account.js +1 -1
- package/src/account/mnemonic-account.js.map +1 -0
- package/{account → src/account}/mnemonic-account.mjs +1 -1
- package/src/account/mnemonic-account.mjs.map +1 -0
- package/src/amount.js +61 -0
- package/src/amount.js.map +1 -0
- package/src/amount.mjs +54 -0
- package/src/amount.mjs.map +1 -0
- package/{app-client.js → src/app-client.js} +20 -5
- package/src/app-client.js.map +1 -0
- package/{app-client.mjs → src/app-client.mjs} +20 -5
- package/src/app-client.mjs.map +1 -0
- package/src/app-deploy.js +285 -0
- package/src/app-deploy.js.map +1 -0
- package/src/app-deploy.mjs +276 -0
- package/src/app-deploy.mjs.map +1 -0
- package/src/app.js +349 -0
- package/src/app.js.map +1 -0
- package/src/app.mjs +329 -0
- package/src/app.mjs.map +1 -0
- package/src/asset.js +142 -0
- package/src/asset.js.map +1 -0
- package/src/asset.mjs +136 -0
- package/src/asset.mjs.map +1 -0
- package/{config.js → src/config.js} +1 -1
- package/src/config.js.map +1 -0
- package/{config.mjs → src/config.mjs} +1 -1
- package/src/config.mjs.map +1 -0
- package/src/debugging/debugging.js +15 -0
- package/src/debugging/debugging.js.map +1 -0
- package/src/debugging/debugging.mjs +13 -0
- package/src/debugging/debugging.mjs.map +1 -0
- package/{dispenser-client.js → src/dispenser-client.js} +3 -3
- package/src/dispenser-client.js.map +1 -0
- package/{dispenser-client.mjs → src/dispenser-client.mjs} +3 -3
- package/src/dispenser-client.mjs.map +1 -0
- package/{indexer-lookup.js → src/indexer-lookup.js} +14 -10
- package/src/indexer-lookup.js.map +1 -0
- package/{indexer-lookup.mjs → src/indexer-lookup.mjs} +14 -10
- package/src/indexer-lookup.mjs.map +1 -0
- package/{localnet → src/localnet}/get-kmd-wallet-account.js +3 -3
- package/src/localnet/get-kmd-wallet-account.js.map +1 -0
- package/{localnet → src/localnet}/get-kmd-wallet-account.mjs +3 -3
- package/src/localnet/get-kmd-wallet-account.mjs.map +1 -0
- package/{localnet → src/localnet}/get-localnet-dispenser-account.js +3 -3
- package/src/localnet/get-localnet-dispenser-account.js.map +1 -0
- package/{localnet → src/localnet}/get-localnet-dispenser-account.mjs +3 -3
- package/src/localnet/get-localnet-dispenser-account.mjs.map +1 -0
- package/{localnet → src/localnet}/get-or-create-kmd-wallet-account.js +4 -4
- package/src/localnet/get-or-create-kmd-wallet-account.js.map +1 -0
- package/{localnet → src/localnet}/get-or-create-kmd-wallet-account.mjs +4 -4
- package/src/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -0
- package/{localnet → src/localnet}/is-localnet.js +2 -2
- package/src/localnet/is-localnet.js.map +1 -0
- package/{localnet → src/localnet}/is-localnet.mjs +2 -2
- package/src/localnet/is-localnet.mjs.map +1 -0
- package/{network-client.js → src/network-client.js} +5 -12
- package/src/network-client.js.map +1 -0
- package/{network-client.mjs → src/network-client.mjs} +5 -12
- package/src/network-client.mjs.map +1 -0
- package/{testing → src/testing}/account.js +16 -4
- package/src/testing/account.js.map +1 -0
- package/{testing → src/testing}/account.mjs +17 -5
- package/src/testing/account.mjs.map +1 -0
- package/src/testing/fixtures/algokit-log-capture-fixture.js.map +1 -0
- package/src/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -0
- package/{testing → src/testing}/fixtures/algorand-fixture.js +18 -14
- package/src/testing/fixtures/algorand-fixture.js.map +1 -0
- package/{testing → src/testing}/fixtures/algorand-fixture.mjs +18 -14
- package/src/testing/fixtures/algorand-fixture.mjs.map +1 -0
- package/src/testing/indexer.js.map +1 -0
- package/src/testing/indexer.mjs.map +1 -0
- package/{testing → src/testing}/test-logger.js +7 -3
- package/src/testing/test-logger.js.map +1 -0
- package/{testing → src/testing}/test-logger.mjs +7 -3
- package/src/testing/test-logger.mjs.map +1 -0
- package/src/testing/transaction-logger.js.map +1 -0
- package/src/testing/transaction-logger.mjs.map +1 -0
- package/src/transaction/legacy-bridge.js +129 -0
- package/src/transaction/legacy-bridge.js.map +1 -0
- package/src/transaction/legacy-bridge.mjs +124 -0
- package/src/transaction/legacy-bridge.mjs.map +1 -0
- package/{transaction → src/transaction}/perform-atomic-transaction-composer-simulate.js +14 -9
- package/src/transaction/perform-atomic-transaction-composer-simulate.js.map +1 -0
- package/{transaction → src/transaction}/perform-atomic-transaction-composer-simulate.mjs +15 -10
- package/src/transaction/perform-atomic-transaction-composer-simulate.mjs.map +1 -0
- package/{transaction → src/transaction}/transaction.js +221 -141
- package/src/transaction/transaction.js.map +1 -0
- package/{transaction → src/transaction}/transaction.mjs +222 -142
- package/src/transaction/transaction.mjs.map +1 -0
- package/src/transfer/transfer-algos.js +31 -0
- package/src/transfer/transfer-algos.js.map +1 -0
- package/src/transfer/transfer-algos.mjs +29 -0
- package/src/transfer/transfer-algos.mjs.map +1 -0
- package/src/transfer/transfer.js +112 -0
- package/src/transfer/transfer.js.map +1 -0
- package/src/transfer/transfer.mjs +108 -0
- package/src/transfer/transfer.mjs.map +1 -0
- package/{util.js → src/util.js} +33 -7
- package/src/util.js.map +1 -0
- package/{util.mjs → src/util.mjs} +31 -7
- package/src/util.mjs.map +1 -0
- package/testing/_asset.d.ts +3 -5
- package/testing/account.d.ts +4 -4
- package/testing/fixtures/algokit-log-capture-fixture.d.ts +0 -1
- package/testing/fixtures/algorand-fixture.d.ts +1 -2
- package/testing/fixtures/index.d.ts +0 -1
- package/testing/index.d.ts +0 -1
- package/testing/index.js +6 -6
- package/testing/index.mjs +6 -6
- package/testing/indexer.d.ts +0 -1
- package/testing/test-logger.d.ts +0 -1
- package/testing/transaction-logger.d.ts +0 -1
- package/transaction/index.d.ts +0 -1
- package/transaction/legacy-bridge.d.ts +35 -0
- package/transaction/perform-atomic-transaction-composer-simulate.d.ts +4 -2
- package/transaction/transaction.d.ts +39 -20
- package/transfer/index.d.ts +0 -1
- package/transfer/transfer-algos.d.ts +4 -3
- package/transfer/transfer.d.ts +8 -2
- package/types/account-manager.d.ts +165 -40
- package/types/account-manager.js +255 -59
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +255 -59
- package/types/account-manager.mjs.map +1 -1
- package/types/account.d.ts +137 -14
- package/types/account.js +2 -2
- package/types/account.js.map +1 -1
- package/types/account.mjs +3 -3
- package/types/account.mjs.map +1 -1
- package/types/algo-http-client-with-retry.d.ts +1 -3
- package/types/algo-http-client-with-retry.js +34 -4
- package/types/algo-http-client-with-retry.js.map +1 -1
- package/types/algo-http-client-with-retry.mjs +33 -3
- package/types/algo-http-client-with-retry.mjs.map +1 -1
- package/types/algorand-client-interface.d.ts +28 -0
- package/types/algorand-client-interface.js +3 -0
- package/types/algorand-client-interface.js.map +1 -0
- package/types/algorand-client-interface.mjs +2 -0
- package/types/algorand-client-interface.mjs.map +1 -0
- package/types/algorand-client-transaction-creator.d.ts +718 -0
- package/types/algorand-client-transaction-creator.js +683 -0
- package/types/algorand-client-transaction-creator.js.map +1 -0
- package/types/algorand-client-transaction-creator.mjs +681 -0
- package/types/algorand-client-transaction-creator.mjs.map +1 -0
- package/types/algorand-client-transaction-sender.d.ts +1158 -0
- package/types/algorand-client-transaction-sender.js +852 -0
- package/types/algorand-client-transaction-sender.js.map +1 -0
- package/types/algorand-client-transaction-sender.mjs +850 -0
- package/types/algorand-client-transaction-sender.mjs.map +1 -0
- package/types/algorand-client.d.ts +48 -91
- package/types/algorand-client.js +53 -132
- package/types/algorand-client.js.map +1 -1
- package/types/algorand-client.mjs +55 -131
- package/types/algorand-client.mjs.map +1 -1
- package/types/amount.d.ts +23 -12
- package/types/amount.js +33 -10
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +33 -10
- package/types/amount.mjs.map +1 -1
- package/types/app-arc56.d.ts +359 -0
- package/types/app-arc56.js +184 -0
- package/types/app-arc56.js.map +1 -0
- package/types/app-arc56.mjs +175 -0
- package/types/app-arc56.mjs.map +1 -0
- package/types/app-client.d.ts +1511 -15
- package/types/app-client.js +1029 -43
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +1030 -45
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +126 -0
- package/types/app-deployer.js +353 -0
- package/types/app-deployer.js.map +1 -0
- package/types/app-deployer.mjs +351 -0
- package/types/app-deployer.mjs.map +1 -0
- package/types/app-factory.d.ts +846 -0
- package/types/app-factory.js +410 -0
- package/types/app-factory.js.map +1 -0
- package/types/app-factory.mjs +408 -0
- package/types/app-factory.mjs.map +1 -0
- package/types/app-manager.d.ts +244 -0
- package/types/app-manager.js +423 -0
- package/types/app-manager.js.map +1 -0
- package/types/app-manager.mjs +421 -0
- package/types/app-manager.mjs.map +1 -0
- package/types/app-spec.d.ts +2 -1
- package/types/app-spec.js +127 -0
- package/types/app-spec.js.map +1 -1
- package/types/app-spec.mjs +126 -0
- package/types/app-spec.mjs.map +1 -1
- package/types/app.d.ts +57 -18
- package/types/app.js +1 -1
- package/types/app.js.map +1 -1
- package/types/app.mjs +1 -1
- package/types/app.mjs.map +1 -1
- package/types/asset-manager.d.ts +205 -0
- package/types/asset-manager.js +176 -0
- package/types/asset-manager.js.map +1 -0
- package/types/asset-manager.mjs +174 -0
- package/types/asset-manager.mjs.map +1 -0
- package/types/asset.d.ts +4 -5
- package/types/async-event-emitter.d.ts +14 -0
- package/types/async-event-emitter.js +50 -0
- package/types/async-event-emitter.js.map +1 -0
- package/types/async-event-emitter.mjs +48 -0
- package/types/async-event-emitter.mjs.map +1 -0
- package/types/client-manager.d.ts +171 -58
- package/types/client-manager.js +198 -43
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs +199 -44
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +474 -132
- package/types/composer.js +461 -167
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +461 -168
- package/types/composer.mjs.map +1 -1
- package/types/config.d.ts +3 -6
- package/types/config.js +5 -44
- package/types/config.js.map +1 -1
- package/types/config.mjs +5 -27
- package/types/config.mjs.map +1 -1
- package/types/debugging.d.ts +29 -101
- package/types/debugging.js +16 -109
- package/types/debugging.js.map +1 -1
- package/types/debugging.mjs +12 -107
- package/types/debugging.mjs.map +1 -1
- package/types/dispenser-client.d.ts +14 -6
- package/types/dispenser-client.js +19 -14
- package/types/dispenser-client.js.map +1 -1
- package/types/dispenser-client.mjs +19 -14
- package/types/dispenser-client.mjs.map +1 -1
- package/types/expand.d.ts +7 -0
- package/types/expand.js +3 -0
- package/types/expand.js.map +1 -0
- package/types/expand.mjs +2 -0
- package/types/expand.mjs.map +1 -0
- package/types/indexer.d.ts +74 -756
- package/types/indexer.js.map +1 -1
- package/types/indexer.mjs.map +1 -1
- package/types/kmd-account-manager.d.ts +5 -6
- package/types/kmd-account-manager.js +9 -9
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +10 -10
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/lifecycle-events.d.ts +10 -0
- package/types/lifecycle-events.js +8 -0
- package/types/lifecycle-events.js.map +1 -0
- package/types/lifecycle-events.mjs +8 -0
- package/types/lifecycle-events.mjs.map +1 -0
- package/types/logging.d.ts +0 -1
- package/types/logging.js.map +1 -1
- package/types/logging.mjs.map +1 -1
- package/types/logic-error.d.ts +2 -4
- package/types/logic-error.js +3 -3
- package/types/logic-error.js.map +1 -1
- package/types/logic-error.mjs +3 -3
- package/types/logic-error.mjs.map +1 -1
- package/types/network-client.d.ts +21 -3
- package/types/network-client.js +10 -0
- package/types/network-client.js.map +1 -1
- package/types/network-client.mjs +9 -0
- package/types/network-client.mjs.map +1 -1
- package/types/testing.d.ts +9 -11
- package/types/transaction.d.ts +17 -4
- package/types/transfer.d.ts +8 -8
- package/util.d.ts +15 -2
- package/account/account.d.ts.map +0 -1
- package/account/account.js.map +0 -1
- package/account/account.mjs.map +0 -1
- package/account/get-account-config-from-environment.d.ts.map +0 -1
- package/account/get-account-config-from-environment.js.map +0 -1
- package/account/get-account-config-from-environment.mjs.map +0 -1
- package/account/get-account.d.ts.map +0 -1
- package/account/get-account.js.map +0 -1
- package/account/get-account.mjs.map +0 -1
- package/account/get-dispenser-account.d.ts.map +0 -1
- package/account/get-dispenser-account.js.map +0 -1
- package/account/get-dispenser-account.mjs.map +0 -1
- package/account/index.d.ts.map +0 -1
- package/account/mnemonic-account.d.ts.map +0 -1
- package/account/mnemonic-account.js.map +0 -1
- package/account/mnemonic-account.mjs.map +0 -1
- package/amount.d.ts.map +0 -1
- package/amount.js +0 -34
- package/amount.js.map +0 -1
- package/amount.mjs +0 -30
- package/amount.mjs.map +0 -1
- package/app-client.d.ts.map +0 -1
- package/app-client.js.map +0 -1
- package/app-client.mjs.map +0 -1
- package/app-deploy.d.ts.map +0 -1
- package/app-deploy.js +0 -468
- package/app-deploy.js.map +0 -1
- package/app-deploy.mjs +0 -459
- package/app-deploy.mjs.map +0 -1
- package/app.d.ts.map +0 -1
- package/app.js +0 -599
- package/app.js.map +0 -1
- package/app.mjs +0 -579
- package/app.mjs.map +0 -1
- package/asset.d.ts.map +0 -1
- package/asset.js +0 -272
- package/asset.js.map +0 -1
- package/asset.mjs +0 -266
- package/asset.mjs.map +0 -1
- package/config.d.ts.map +0 -1
- package/config.js.map +0 -1
- package/config.mjs.map +0 -1
- package/debugging/debugging.d.ts.map +0 -1
- package/debugging/debugging.js +0 -139
- package/debugging/debugging.js.map +0 -1
- package/debugging/debugging.mjs +0 -118
- package/debugging/debugging.mjs.map +0 -1
- package/debugging/index.d.ts.map +0 -1
- package/debugging/simulate-and-persist-response.d.ts +0 -20
- package/debugging/simulate-and-persist-response.d.ts.map +0 -1
- package/debugging/simulate-and-persist-response.js +0 -108
- package/debugging/simulate-and-persist-response.js.map +0 -1
- package/debugging/simulate-and-persist-response.mjs +0 -89
- package/debugging/simulate-and-persist-response.mjs.map +0 -1
- package/dispenser-client.d.ts.map +0 -1
- package/dispenser-client.js.map +0 -1
- package/dispenser-client.mjs.map +0 -1
- package/index.d.ts.map +0 -1
- package/indexer-lookup.d.ts.map +0 -1
- package/indexer-lookup.js.map +0 -1
- package/indexer-lookup.mjs.map +0 -1
- package/localnet/get-kmd-wallet-account.d.ts.map +0 -1
- package/localnet/get-kmd-wallet-account.js.map +0 -1
- package/localnet/get-kmd-wallet-account.mjs.map +0 -1
- package/localnet/get-localnet-dispenser-account.d.ts.map +0 -1
- package/localnet/get-localnet-dispenser-account.js.map +0 -1
- package/localnet/get-localnet-dispenser-account.mjs.map +0 -1
- package/localnet/get-or-create-kmd-wallet-account.d.ts.map +0 -1
- package/localnet/get-or-create-kmd-wallet-account.js.map +0 -1
- package/localnet/get-or-create-kmd-wallet-account.mjs.map +0 -1
- package/localnet/index.d.ts.map +0 -1
- package/localnet/is-localnet.d.ts.map +0 -1
- package/localnet/is-localnet.js.map +0 -1
- package/localnet/is-localnet.mjs.map +0 -1
- package/network-client.d.ts.map +0 -1
- package/network-client.js.map +0 -1
- package/network-client.mjs.map +0 -1
- package/testing/_asset.d.ts.map +0 -1
- package/testing/account.d.ts.map +0 -1
- package/testing/account.js.map +0 -1
- package/testing/account.mjs.map +0 -1
- package/testing/fixtures/algokit-log-capture-fixture.d.ts.map +0 -1
- package/testing/fixtures/algokit-log-capture-fixture.js.map +0 -1
- package/testing/fixtures/algokit-log-capture-fixture.mjs.map +0 -1
- package/testing/fixtures/algorand-fixture.d.ts.map +0 -1
- package/testing/fixtures/algorand-fixture.js.map +0 -1
- package/testing/fixtures/algorand-fixture.mjs.map +0 -1
- package/testing/fixtures/index.d.ts.map +0 -1
- package/testing/index.d.ts.map +0 -1
- package/testing/indexer.d.ts.map +0 -1
- package/testing/indexer.js.map +0 -1
- package/testing/indexer.mjs.map +0 -1
- package/testing/test-logger.d.ts.map +0 -1
- package/testing/test-logger.js.map +0 -1
- package/testing/test-logger.mjs.map +0 -1
- package/testing/transaction-logger.d.ts.map +0 -1
- package/testing/transaction-logger.js.map +0 -1
- package/testing/transaction-logger.mjs.map +0 -1
- package/transaction/index.d.ts.map +0 -1
- package/transaction/perform-atomic-transaction-composer-simulate.d.ts.map +0 -1
- package/transaction/perform-atomic-transaction-composer-simulate.js.map +0 -1
- package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +0 -1
- package/transaction/transaction.d.ts.map +0 -1
- package/transaction/transaction.js.map +0 -1
- package/transaction/transaction.mjs.map +0 -1
- package/transfer/index.d.ts.map +0 -1
- package/transfer/transfer-algos.d.ts.map +0 -1
- package/transfer/transfer-algos.js +0 -40
- package/transfer/transfer-algos.js.map +0 -1
- package/transfer/transfer-algos.mjs +0 -38
- package/transfer/transfer-algos.mjs.map +0 -1
- package/transfer/transfer.d.ts.map +0 -1
- package/transfer/transfer.js +0 -147
- package/transfer/transfer.js.map +0 -1
- package/transfer/transfer.mjs +0 -143
- package/transfer/transfer.mjs.map +0 -1
- package/types/account-manager.d.ts.map +0 -1
- package/types/account.d.ts.map +0 -1
- package/types/algo-http-client-with-retry.d.ts.map +0 -1
- package/types/algorand-client.d.ts.map +0 -1
- package/types/amount.d.ts.map +0 -1
- package/types/app-client.d.ts.map +0 -1
- package/types/app-spec.d.ts.map +0 -1
- package/types/app.d.ts.map +0 -1
- package/types/asset.d.ts.map +0 -1
- package/types/client-manager.d.ts.map +0 -1
- package/types/composer.d.ts.map +0 -1
- package/types/config.d.ts.map +0 -1
- package/types/debugging.d.ts.map +0 -1
- package/types/dispenser-client.d.ts.map +0 -1
- package/types/indexer.d.ts.map +0 -1
- package/types/kmd-account-manager.d.ts.map +0 -1
- package/types/logging.d.ts.map +0 -1
- package/types/logic-error.d.ts.map +0 -1
- package/types/network-client.d.ts.map +0 -1
- package/types/testing.d.ts.map +0 -1
- package/types/transaction.d.ts.map +0 -1
- package/types/transfer.d.ts.map +0 -1
- package/types/urlTokenBaseHTTPClient.d.ts +0 -41
- package/types/urlTokenBaseHTTPClient.d.ts.map +0 -1
- package/types/urlTokenBaseHTTPClient.js +0 -153
- package/types/urlTokenBaseHTTPClient.js.map +0 -1
- package/types/urlTokenBaseHTTPClient.mjs +0 -151
- package/types/urlTokenBaseHTTPClient.mjs.map +0 -1
- package/util.d.ts.map +0 -1
- package/util.js.map +0 -1
- package/util.mjs.map +0 -1
- /package/{account → src/account}/get-account-config-from-environment.js +0 -0
- /package/{account → src/account}/get-account-config-from-environment.mjs +0 -0
- /package/{testing → src/testing}/fixtures/algokit-log-capture-fixture.js +0 -0
- /package/{testing → src/testing}/fixtures/algokit-log-capture-fixture.mjs +0 -0
- /package/{testing → src/testing}/indexer.js +0 -0
- /package/{testing → src/testing}/indexer.mjs +0 -0
- /package/{testing → src/testing}/transaction-logger.js +0 -0
- /package/{testing → src/testing}/transaction-logger.mjs +0 -0
package/types/composer.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var algosdk = require('algosdk');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var config = require('../src/config.js');
|
|
5
|
+
var transaction = require('../src/transaction/transaction.js');
|
|
6
|
+
var types_app = require('./app.js');
|
|
7
|
+
var types_appManager = require('./app-manager.js');
|
|
8
|
+
var types_lifecycleEvents = require('./lifecycle-events.js');
|
|
9
|
+
var types_networkClient = require('./network-client.js');
|
|
6
10
|
|
|
11
|
+
var AtomicTransactionComposer = algosdk.AtomicTransactionComposer;
|
|
7
12
|
var isTransactionWithSigner = algosdk.isTransactionWithSigner;
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class AlgokitComposer {
|
|
13
|
+
var modelsv2 = algosdk.modelsv2;
|
|
14
|
+
const address = (address) => {
|
|
15
|
+
return typeof address === 'string' ? algosdk.Address.fromString(address) : address;
|
|
16
|
+
};
|
|
17
|
+
const MAX_TRANSACTION_GROUP_SIZE = 16;
|
|
18
|
+
/** TransactionComposer helps you compose and execute transactions as a transaction group. */
|
|
19
|
+
class TransactionComposer {
|
|
16
20
|
/**
|
|
17
|
-
* Create
|
|
21
|
+
* Create a `TransactionComposer`.
|
|
18
22
|
* @param params The configuration for this composer
|
|
19
23
|
*/
|
|
20
24
|
constructor(params) {
|
|
@@ -25,7 +29,7 @@ class AlgokitComposer {
|
|
|
25
29
|
/** Transactions that have not yet been composed */
|
|
26
30
|
this.txns = [];
|
|
27
31
|
/** The default transaction validity window */
|
|
28
|
-
this.defaultValidityWindow =
|
|
32
|
+
this.defaultValidityWindow = 10n;
|
|
29
33
|
/** Whether the validity window was explicitly set on construction */
|
|
30
34
|
this.defaultValidityWindowIsExplicit = false;
|
|
31
35
|
this.algod = params.algod;
|
|
@@ -34,6 +38,21 @@ class AlgokitComposer {
|
|
|
34
38
|
this.getSigner = params.getSigner;
|
|
35
39
|
this.defaultValidityWindow = params.defaultValidityWindow ?? this.defaultValidityWindow;
|
|
36
40
|
this.defaultValidityWindowIsExplicit = params.defaultValidityWindow !== undefined;
|
|
41
|
+
this.appManager = params.appManager ?? new types_appManager.AppManager(params.algod);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Add a pre-built transaction to the transaction group.
|
|
45
|
+
* @param transaction The pre-built transaction
|
|
46
|
+
* @param signer Optional signer override for the transaction
|
|
47
|
+
* @returns The composer so you can chain method calls
|
|
48
|
+
*/
|
|
49
|
+
addTransaction(transaction, signer) {
|
|
50
|
+
this.txns.push({
|
|
51
|
+
txn: transaction,
|
|
52
|
+
signer: signer ?? this.getSigner(transaction.sender),
|
|
53
|
+
type: 'txnWithSigner',
|
|
54
|
+
});
|
|
55
|
+
return this;
|
|
37
56
|
}
|
|
38
57
|
/**
|
|
39
58
|
* Add a payment transaction to the transaction group.
|
|
@@ -98,9 +117,53 @@ class AlgokitComposer {
|
|
|
98
117
|
this.txns.push({ ...params, type: 'assetOptIn' });
|
|
99
118
|
return this;
|
|
100
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Add an asset opt-out transaction to the transaction group.
|
|
122
|
+
* @param params The asset opt-out transaction parameters
|
|
123
|
+
* @returns The composer so you can chain method calls
|
|
124
|
+
*/
|
|
125
|
+
addAssetOptOut(params) {
|
|
126
|
+
this.txns.push({ ...params, type: 'assetOptOut' });
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Add an application create transaction to the transaction group.
|
|
131
|
+
*
|
|
132
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
133
|
+
* @param params The application create transaction parameters
|
|
134
|
+
* @returns The composer so you can chain method calls
|
|
135
|
+
*/
|
|
136
|
+
addAppCreate(params) {
|
|
137
|
+
this.txns.push({ ...params, type: 'appCall' });
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Add an application update transaction to the transaction group.
|
|
142
|
+
*
|
|
143
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
144
|
+
* @param params The application update transaction parameters
|
|
145
|
+
* @returns The composer so you can chain method calls
|
|
146
|
+
*/
|
|
147
|
+
addAppUpdate(params) {
|
|
148
|
+
this.txns.push({ ...params, type: 'appCall', onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC });
|
|
149
|
+
return this;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Add an application delete transaction to the transaction group.
|
|
153
|
+
*
|
|
154
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
155
|
+
* @param params The application delete transaction parameters
|
|
156
|
+
* @returns The composer so you can chain method calls
|
|
157
|
+
*/
|
|
158
|
+
addAppDelete(params) {
|
|
159
|
+
this.txns.push({ ...params, type: 'appCall', onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC });
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
101
162
|
/**
|
|
102
163
|
* Add an application call transaction to the transaction group.
|
|
103
164
|
*
|
|
165
|
+
* If you want to create or update an app use `addAppCreate` or `addAppUpdate`.
|
|
166
|
+
*
|
|
104
167
|
* Note: we recommend using app clients to make it easier to make app calls.
|
|
105
168
|
* @param params The application call transaction parameters
|
|
106
169
|
* @returns The composer so you can chain method calls
|
|
@@ -110,13 +173,46 @@ class AlgokitComposer {
|
|
|
110
173
|
return this;
|
|
111
174
|
}
|
|
112
175
|
/**
|
|
113
|
-
* Add an ABI method application call transaction to the transaction group.
|
|
176
|
+
* Add an ABI method create application call transaction to the transaction group.
|
|
177
|
+
*
|
|
178
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
179
|
+
* @param params The ABI create method application call transaction parameters
|
|
180
|
+
* @returns The composer so you can chain method calls
|
|
181
|
+
*/
|
|
182
|
+
addAppCreateMethodCall(params) {
|
|
183
|
+
this.txns.push({ ...params, type: 'methodCall' });
|
|
184
|
+
return this;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Add an ABI method update application call transaction to the transaction group.
|
|
188
|
+
*
|
|
189
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
190
|
+
* @param params The ABI update method application call transaction parameters
|
|
191
|
+
* @returns The composer so you can chain method calls
|
|
192
|
+
*/
|
|
193
|
+
addAppUpdateMethodCall(params) {
|
|
194
|
+
this.txns.push({ ...params, type: 'methodCall', onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC });
|
|
195
|
+
return this;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Add an ABI method delete application call transaction to the transaction group.
|
|
199
|
+
*
|
|
200
|
+
* Note: we recommend using app clients to make it easier to make app calls.
|
|
201
|
+
* @param params The ABI delete method application call transaction parameters
|
|
202
|
+
* @returns The composer so you can chain method calls
|
|
203
|
+
*/
|
|
204
|
+
addAppDeleteMethodCall(params) {
|
|
205
|
+
this.txns.push({ ...params, type: 'methodCall', onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC });
|
|
206
|
+
return this;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Add a non-create/non-update ABI method application call transaction to the transaction group.
|
|
114
210
|
*
|
|
115
211
|
* Note: we recommend using app clients to make it easier to make app calls.
|
|
116
212
|
* @param params The ABI method application call transaction parameters
|
|
117
213
|
* @returns The composer so you can chain method calls
|
|
118
214
|
*/
|
|
119
|
-
|
|
215
|
+
addAppCallMethodCall(params) {
|
|
120
216
|
this.txns.push({ ...params, type: 'methodCall' });
|
|
121
217
|
return this;
|
|
122
218
|
}
|
|
@@ -138,150 +234,206 @@ class AlgokitComposer {
|
|
|
138
234
|
this.txns.push({ atc, type: 'atc' });
|
|
139
235
|
return this;
|
|
140
236
|
}
|
|
237
|
+
/** Build an ATC and return transactions ready to be incorporated into a broader set of transactions this composer is composing */
|
|
141
238
|
buildAtc(atc) {
|
|
142
239
|
const group = atc.buildGroup();
|
|
143
|
-
const txnWithSigners = group.map((ts) => {
|
|
240
|
+
const txnWithSigners = group.map((ts, idx) => {
|
|
241
|
+
// Remove underlying group ID from the transaction since it will be re-grouped when this TransactionComposer is built
|
|
144
242
|
ts.txn.group = undefined;
|
|
243
|
+
// If this was a method call stash the ABIMethod for later
|
|
244
|
+
if (atc['methodCalls'].get(idx)) {
|
|
245
|
+
this.txnMethodMap.set(ts.txn.txID(), atc['methodCalls'].get(idx));
|
|
246
|
+
}
|
|
145
247
|
return ts;
|
|
146
248
|
});
|
|
147
|
-
const method = atc['methodCalls'].get(group.length - 1);
|
|
148
|
-
if (method)
|
|
149
|
-
this.txnMethodMap.set(txnWithSigners.at(-1).txn.txID(), method);
|
|
150
249
|
return txnWithSigners;
|
|
151
250
|
}
|
|
152
|
-
commonTxnBuildStep(
|
|
251
|
+
commonTxnBuildStep(buildTxn, params, txnParams) {
|
|
252
|
+
// We are going to mutate suggested params, let's create a clone first
|
|
253
|
+
txnParams.suggestedParams = { ...txnParams.suggestedParams };
|
|
153
254
|
if (params.lease)
|
|
154
|
-
|
|
255
|
+
txnParams.lease = transaction.encodeLease(params.lease);
|
|
155
256
|
if (params.rekeyTo)
|
|
156
|
-
|
|
257
|
+
txnParams.rekeyTo = address(params.rekeyTo);
|
|
258
|
+
const encoder = new TextEncoder();
|
|
157
259
|
if (params.note)
|
|
158
|
-
|
|
260
|
+
txnParams.note = (typeof params.note === 'string' ? encoder.encode(params.note) : params.note);
|
|
159
261
|
if (params.firstValidRound) {
|
|
160
|
-
|
|
262
|
+
txnParams.suggestedParams.firstValid = params.firstValidRound;
|
|
161
263
|
}
|
|
162
264
|
if (params.lastValidRound) {
|
|
163
|
-
|
|
265
|
+
txnParams.suggestedParams.lastValid = params.lastValidRound;
|
|
164
266
|
}
|
|
165
267
|
else {
|
|
166
268
|
// If the validity window isn't set in this transaction or by default and we are pointing at
|
|
167
269
|
// LocalNet set a bigger window to avoid dead transactions
|
|
168
|
-
const window = params.validityWindow
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
270
|
+
const window = params.validityWindow
|
|
271
|
+
? BigInt(params.validityWindow)
|
|
272
|
+
: !this.defaultValidityWindowIsExplicit && types_networkClient.genesisIdIsLocalNet(txnParams.suggestedParams.genesisID ?? 'unknown')
|
|
273
|
+
? 1000n
|
|
274
|
+
: this.defaultValidityWindow;
|
|
275
|
+
txnParams.suggestedParams.lastValid = BigInt(txnParams.suggestedParams.firstValid) + window;
|
|
173
276
|
}
|
|
174
277
|
if (params.staticFee !== undefined && params.extraFee !== undefined) {
|
|
175
278
|
throw Error('Cannot set both staticFee and extraFee');
|
|
176
279
|
}
|
|
177
280
|
if (params.staticFee !== undefined) {
|
|
178
|
-
|
|
281
|
+
txnParams.suggestedParams.fee = params.staticFee.microAlgo;
|
|
282
|
+
txnParams.suggestedParams.flatFee = true;
|
|
179
283
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
txn.flatFee = true;
|
|
186
|
-
if (params.maxFee !== undefined && txn.fee > params.maxFee.microAlgos) {
|
|
187
|
-
throw Error(`Transaction fee ${txn.fee} is greater than maxFee ${params.maxFee}`);
|
|
284
|
+
const txn = buildTxn(txnParams);
|
|
285
|
+
if (params.extraFee)
|
|
286
|
+
txn.fee += params.extraFee.microAlgo;
|
|
287
|
+
if (params.maxFee !== undefined && txn.fee > params.maxFee.microAlgo) {
|
|
288
|
+
throw Error(`Transaction fee ${txn.fee} µALGO is greater than maxFee ${params.maxFee}`);
|
|
188
289
|
}
|
|
189
290
|
return txn;
|
|
190
291
|
}
|
|
191
|
-
|
|
292
|
+
/**
|
|
293
|
+
* Builds an ABI method call transaction and any other associated transactions represented in the ABI args.
|
|
294
|
+
* @param includeSigner Whether to include the actual signer for the transactions.
|
|
295
|
+
* If you are just building transactions without signers yet then set this to `false`.
|
|
296
|
+
*/
|
|
297
|
+
async buildMethodCall(params, suggestedParams, includeSigner) {
|
|
192
298
|
const methodArgs = [];
|
|
299
|
+
const transactionsForGroup = [];
|
|
193
300
|
const isAbiValue = (x) => {
|
|
194
301
|
if (Array.isArray(x))
|
|
195
302
|
return x.length == 0 || x.every(isAbiValue);
|
|
196
|
-
return
|
|
303
|
+
return typeof x === 'bigint' || typeof x === 'boolean' || typeof x === 'number' || typeof x === 'string' || x instanceof Uint8Array;
|
|
197
304
|
};
|
|
198
|
-
for (
|
|
305
|
+
for (let i = (params.args ?? []).length - 1; i >= 0; i--) {
|
|
306
|
+
const arg = params.args[i];
|
|
307
|
+
if (arg === undefined) {
|
|
308
|
+
// An undefined transaction argument signals that the value will be supplied by a method call argument
|
|
309
|
+
if (algosdk.abiTypeIsTransaction(params.method.args[i].type) && transactionsForGroup.length > 0) {
|
|
310
|
+
// Move the last transaction from the group to the method call arguments to appease algosdk
|
|
311
|
+
const placeholderTransaction = transactionsForGroup.splice(-1, 1)[0];
|
|
312
|
+
methodArgs.push(placeholderTransaction);
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
throw Error(`No value provided for argument ${i + 1} within call to ${params.method.name}`);
|
|
316
|
+
}
|
|
199
317
|
if (isAbiValue(arg)) {
|
|
200
318
|
methodArgs.push(arg);
|
|
201
319
|
continue;
|
|
202
320
|
}
|
|
321
|
+
// Underlying ATC only supports addresses as strings
|
|
322
|
+
if (arg instanceof algosdk.Address) {
|
|
323
|
+
methodArgs.push(arg.toString());
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
203
326
|
if (isTransactionWithSigner(arg)) {
|
|
204
327
|
methodArgs.push(arg);
|
|
205
328
|
continue;
|
|
206
329
|
}
|
|
207
330
|
if ('method' in arg) {
|
|
208
|
-
const tempTxnWithSigners = await this.buildMethodCall(arg, suggestedParams);
|
|
209
|
-
|
|
331
|
+
const tempTxnWithSigners = await this.buildMethodCall(arg, suggestedParams, includeSigner);
|
|
332
|
+
// If there is any transaction args, add to the atc
|
|
333
|
+
// Everything else should be added as method args
|
|
334
|
+
methodArgs.push(...tempTxnWithSigners.slice(-1)); // Add the method call itself as a method arg
|
|
335
|
+
transactionsForGroup.push(...tempTxnWithSigners.slice(0, -1).reverse()); // Add any transaction arguments to the atc
|
|
210
336
|
continue;
|
|
211
337
|
}
|
|
212
338
|
const txn = await arg;
|
|
213
339
|
methodArgs.push({
|
|
214
340
|
txn,
|
|
215
|
-
signer:
|
|
216
|
-
?
|
|
217
|
-
? params.signer
|
|
218
|
-
|
|
219
|
-
|
|
341
|
+
signer: includeSigner
|
|
342
|
+
? params.signer
|
|
343
|
+
? 'signer' in params.signer
|
|
344
|
+
? params.signer.signer
|
|
345
|
+
: params.signer
|
|
346
|
+
: this.getSigner(txn.sender)
|
|
347
|
+
: TransactionComposer.NULL_SIGNER,
|
|
220
348
|
});
|
|
221
349
|
}
|
|
222
350
|
const methodAtc = new algosdk.AtomicTransactionComposer();
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
351
|
+
transactionsForGroup.reverse().forEach((txn) => methodAtc.addTransaction(txn));
|
|
352
|
+
const appId = Number('appId' in params ? params.appId : 0n);
|
|
353
|
+
const approvalProgram = 'approvalProgram' in params
|
|
354
|
+
? typeof params.approvalProgram === 'string'
|
|
355
|
+
? (await this.appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes
|
|
356
|
+
: params.approvalProgram
|
|
357
|
+
: undefined;
|
|
358
|
+
const clearStateProgram = 'clearStateProgram' in params
|
|
359
|
+
? typeof params.clearStateProgram === 'string'
|
|
360
|
+
? (await this.appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes
|
|
361
|
+
: params.clearStateProgram
|
|
362
|
+
: undefined;
|
|
363
|
+
const txnParams = {
|
|
364
|
+
appID: appId,
|
|
226
365
|
sender: params.sender,
|
|
227
366
|
suggestedParams,
|
|
228
|
-
onComplete: params.onComplete,
|
|
367
|
+
onComplete: params.onComplete ?? algosdk.OnApplicationComplete.NoOpOC,
|
|
229
368
|
appAccounts: params.accountReferences,
|
|
230
369
|
appForeignApps: params.appReferences?.map((x) => Number(x)),
|
|
231
370
|
appForeignAssets: params.assetReferences?.map((x) => Number(x)),
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
371
|
+
boxes: params.boxReferences?.map(types_appManager.AppManager.getBoxReference),
|
|
372
|
+
approvalProgram,
|
|
373
|
+
clearProgram: clearStateProgram,
|
|
374
|
+
extraPages: appId === 0
|
|
375
|
+
? 'extraProgramPages' in params && params.extraProgramPages !== undefined
|
|
376
|
+
? params.extraProgramPages
|
|
377
|
+
: approvalProgram
|
|
378
|
+
? Math.floor((approvalProgram.length + (clearStateProgram?.length ?? 0)) / types_app.APP_PAGE_MAX_SIZE)
|
|
379
|
+
: 0
|
|
380
|
+
: undefined,
|
|
381
|
+
numLocalInts: appId === 0 ? ('schema' in params ? (params.schema?.localInts ?? 0) : 0) : undefined,
|
|
382
|
+
numLocalByteSlices: appId === 0 ? ('schema' in params ? (params.schema?.localByteSlices ?? 0) : 0) : undefined,
|
|
383
|
+
numGlobalInts: appId === 0 ? ('schema' in params ? (params.schema?.globalInts ?? 0) : 0) : undefined,
|
|
384
|
+
numGlobalByteSlices: appId === 0 ? ('schema' in params ? (params.schema?.globalByteSlices ?? 0) : 0) : undefined,
|
|
239
385
|
method: params.method,
|
|
240
|
-
signer:
|
|
241
|
-
|
|
386
|
+
signer: includeSigner
|
|
387
|
+
? params.signer
|
|
388
|
+
? 'signer' in params.signer
|
|
389
|
+
? params.signer.signer
|
|
390
|
+
: params.signer
|
|
391
|
+
: this.getSigner(params.sender)
|
|
392
|
+
: TransactionComposer.NULL_SIGNER,
|
|
393
|
+
methodArgs: methodArgs.reverse(),
|
|
242
394
|
// note, lease, and rekeyTo are set in the common build step
|
|
243
395
|
note: undefined,
|
|
244
396
|
lease: undefined,
|
|
245
397
|
rekeyTo: undefined,
|
|
246
|
-
}
|
|
247
|
-
//
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
398
|
+
};
|
|
399
|
+
// Build the transaction
|
|
400
|
+
this.commonTxnBuildStep((txnParams) => {
|
|
401
|
+
methodAtc.addMethodCall(txnParams);
|
|
402
|
+
return methodAtc.buildGroup()[methodAtc.count() - 1].txn;
|
|
403
|
+
}, params, txnParams);
|
|
404
|
+
// Process the ATC to get a set of transactions ready for broader grouping
|
|
251
405
|
return this.buildAtc(methodAtc);
|
|
252
406
|
}
|
|
253
407
|
buildPayment(params, suggestedParams) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
amount: params.amount.
|
|
408
|
+
return this.commonTxnBuildStep(algosdk.makePaymentTxnWithSuggestedParamsFromObject, params, {
|
|
409
|
+
sender: params.sender,
|
|
410
|
+
receiver: params.receiver,
|
|
411
|
+
amount: params.amount.microAlgo,
|
|
258
412
|
closeRemainderTo: params.closeRemainderTo,
|
|
259
413
|
suggestedParams,
|
|
260
414
|
});
|
|
261
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
262
415
|
}
|
|
263
416
|
buildAssetCreate(params, suggestedParams) {
|
|
264
|
-
|
|
265
|
-
|
|
417
|
+
return this.commonTxnBuildStep(algosdk.makeAssetCreateTxnWithSuggestedParamsFromObject, params, {
|
|
418
|
+
sender: params.sender,
|
|
266
419
|
total: params.total,
|
|
267
420
|
decimals: params.decimals ?? 0,
|
|
268
421
|
assetName: params.assetName,
|
|
269
422
|
unitName: params.unitName,
|
|
270
423
|
assetURL: params.url,
|
|
271
424
|
defaultFrozen: params.defaultFrozen ?? false,
|
|
272
|
-
assetMetadataHash: params.metadataHash,
|
|
425
|
+
assetMetadataHash: typeof params.metadataHash === 'string' ? Buffer.from(params.metadataHash, 'utf-8') : params.metadataHash,
|
|
273
426
|
manager: params.manager,
|
|
274
427
|
reserve: params.reserve,
|
|
275
428
|
freeze: params.freeze,
|
|
276
429
|
clawback: params.clawback,
|
|
277
430
|
suggestedParams,
|
|
278
431
|
});
|
|
279
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
280
432
|
}
|
|
281
433
|
buildAssetConfig(params, suggestedParams) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
assetIndex:
|
|
434
|
+
return this.commonTxnBuildStep(algosdk.makeAssetConfigTxnWithSuggestedParamsFromObject, params, {
|
|
435
|
+
sender: params.sender,
|
|
436
|
+
assetIndex: params.assetId,
|
|
285
437
|
suggestedParams,
|
|
286
438
|
manager: params.manager,
|
|
287
439
|
reserve: params.reserve,
|
|
@@ -289,76 +441,120 @@ class AlgokitComposer {
|
|
|
289
441
|
clawback: params.clawback,
|
|
290
442
|
strictEmptyAddressChecking: false,
|
|
291
443
|
});
|
|
292
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
293
444
|
}
|
|
294
445
|
buildAssetDestroy(params, suggestedParams) {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
assetIndex:
|
|
446
|
+
return this.commonTxnBuildStep(algosdk.makeAssetDestroyTxnWithSuggestedParamsFromObject, params, {
|
|
447
|
+
sender: params.sender,
|
|
448
|
+
assetIndex: params.assetId,
|
|
298
449
|
suggestedParams,
|
|
299
450
|
});
|
|
300
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
301
451
|
}
|
|
302
452
|
buildAssetFreeze(params, suggestedParams) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
assetIndex:
|
|
453
|
+
return this.commonTxnBuildStep(algosdk.makeAssetFreezeTxnWithSuggestedParamsFromObject, params, {
|
|
454
|
+
sender: params.sender,
|
|
455
|
+
assetIndex: params.assetId,
|
|
306
456
|
freezeTarget: params.account,
|
|
307
|
-
|
|
457
|
+
frozen: params.frozen,
|
|
308
458
|
suggestedParams,
|
|
309
459
|
});
|
|
310
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
311
460
|
}
|
|
312
461
|
buildAssetTransfer(params, suggestedParams) {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
assetIndex:
|
|
462
|
+
return this.commonTxnBuildStep(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject, params, {
|
|
463
|
+
sender: params.sender,
|
|
464
|
+
receiver: params.receiver,
|
|
465
|
+
assetIndex: params.assetId,
|
|
317
466
|
amount: params.amount,
|
|
318
467
|
suggestedParams,
|
|
319
468
|
closeRemainderTo: params.closeAssetTo,
|
|
320
|
-
|
|
469
|
+
assetSender: params.clawbackTarget,
|
|
321
470
|
});
|
|
322
|
-
return this.commonTxnBuildStep(params, txn, suggestedParams);
|
|
323
471
|
}
|
|
324
|
-
buildAppCall(params, suggestedParams) {
|
|
472
|
+
async buildAppCall(params, suggestedParams) {
|
|
473
|
+
const appId = 'appId' in params ? params.appId : 0n;
|
|
474
|
+
const approvalProgram = 'approvalProgram' in params
|
|
475
|
+
? typeof params.approvalProgram === 'string'
|
|
476
|
+
? (await this.appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes
|
|
477
|
+
: params.approvalProgram
|
|
478
|
+
: undefined;
|
|
479
|
+
const clearStateProgram = 'clearStateProgram' in params
|
|
480
|
+
? typeof params.clearStateProgram === 'string'
|
|
481
|
+
? (await this.appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes
|
|
482
|
+
: params.clearStateProgram
|
|
483
|
+
: undefined;
|
|
325
484
|
const sdkParams = {
|
|
326
|
-
|
|
485
|
+
sender: params.sender,
|
|
327
486
|
suggestedParams,
|
|
328
|
-
onComplete: params.onComplete,
|
|
329
|
-
approvalProgram: params.approvalProgram,
|
|
330
|
-
clearProgram: params.clearProgram,
|
|
331
487
|
appArgs: params.args,
|
|
488
|
+
onComplete: params.onComplete ?? algosdk.OnApplicationComplete.NoOpOC,
|
|
332
489
|
accounts: params.accountReferences,
|
|
333
490
|
foreignApps: params.appReferences?.map((x) => Number(x)),
|
|
334
491
|
foreignAssets: params.assetReferences?.map((x) => Number(x)),
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
numGlobalInts: params.schema?.globalUints || 0,
|
|
339
|
-
numGlobalByteSlices: params.schema?.globalByteSlices || 0,
|
|
492
|
+
boxes: params.boxReferences?.map(types_appManager.AppManager.getBoxReference),
|
|
493
|
+
approvalProgram,
|
|
494
|
+
clearProgram: clearStateProgram,
|
|
340
495
|
};
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if (params.approvalProgram === undefined || params.clearProgram === undefined) {
|
|
345
|
-
throw new Error('approvalProgram and clearProgram are required for application creation');
|
|
496
|
+
if (appId === 0n) {
|
|
497
|
+
if (sdkParams.approvalProgram === undefined || sdkParams.clearProgram === undefined) {
|
|
498
|
+
throw new Error('approvalProgram and clearStateProgram are required for application creation');
|
|
346
499
|
}
|
|
347
|
-
|
|
500
|
+
return this.commonTxnBuildStep(algosdk.makeApplicationCreateTxnFromObject, params, {
|
|
348
501
|
...sdkParams,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
502
|
+
extraPages: 'extraProgramPages' in params
|
|
503
|
+
? (params.extraProgramPages ?? Math.floor((approvalProgram.length + clearStateProgram.length) / types_app.APP_PAGE_MAX_SIZE))
|
|
504
|
+
: 0,
|
|
505
|
+
numLocalInts: 'schema' in params ? (params.schema?.localInts ?? 0) : 0,
|
|
506
|
+
numLocalByteSlices: 'schema' in params ? (params.schema?.localByteSlices ?? 0) : 0,
|
|
507
|
+
numGlobalInts: 'schema' in params ? (params.schema?.globalInts ?? 0) : 0,
|
|
508
|
+
numGlobalByteSlices: 'schema' in params ? (params.schema?.globalByteSlices ?? 0) : 0,
|
|
509
|
+
approvalProgram: approvalProgram,
|
|
510
|
+
clearProgram: clearStateProgram,
|
|
352
511
|
});
|
|
353
512
|
}
|
|
354
|
-
|
|
355
|
-
|
|
513
|
+
else {
|
|
514
|
+
return this.commonTxnBuildStep(algosdk.makeApplicationCallTxnFromObject, params, { ...sdkParams, appIndex: appId });
|
|
515
|
+
}
|
|
356
516
|
}
|
|
357
517
|
buildKeyReg(params, suggestedParams) {
|
|
358
|
-
|
|
359
|
-
|
|
518
|
+
return this.commonTxnBuildStep(algosdk.makeKeyRegistrationTxnWithSuggestedParamsFromObject, params, {
|
|
519
|
+
sender: params.sender,
|
|
520
|
+
voteKey: params.voteKey,
|
|
521
|
+
selectionKey: params.selectionKey,
|
|
522
|
+
voteFirst: params.voteFirst,
|
|
523
|
+
voteLast: params.voteLast,
|
|
524
|
+
voteKeyDilution: params.voteKeyDilution,
|
|
525
|
+
stateProofKey: params.stateProofKey,
|
|
526
|
+
nonParticipation: false,
|
|
527
|
+
suggestedParams,
|
|
528
|
+
});
|
|
360
529
|
}
|
|
530
|
+
/** Builds all transaction types apart from `txnWithSigner`, `atc` and `methodCall` since those ones can have custom signers that need to be retrieved. */
|
|
361
531
|
async buildTxn(txn, suggestedParams) {
|
|
532
|
+
switch (txn.type) {
|
|
533
|
+
case 'pay':
|
|
534
|
+
return [this.buildPayment(txn, suggestedParams)];
|
|
535
|
+
case 'assetCreate':
|
|
536
|
+
return [this.buildAssetCreate(txn, suggestedParams)];
|
|
537
|
+
case 'appCall':
|
|
538
|
+
return [await this.buildAppCall(txn, suggestedParams)];
|
|
539
|
+
case 'assetConfig':
|
|
540
|
+
return [this.buildAssetConfig(txn, suggestedParams)];
|
|
541
|
+
case 'assetDestroy':
|
|
542
|
+
return [this.buildAssetDestroy(txn, suggestedParams)];
|
|
543
|
+
case 'assetFreeze':
|
|
544
|
+
return [this.buildAssetFreeze(txn, suggestedParams)];
|
|
545
|
+
case 'assetTransfer':
|
|
546
|
+
return [this.buildAssetTransfer(txn, suggestedParams)];
|
|
547
|
+
case 'assetOptIn':
|
|
548
|
+
return [this.buildAssetTransfer({ ...txn, receiver: txn.sender, amount: 0n }, suggestedParams)];
|
|
549
|
+
case 'assetOptOut':
|
|
550
|
+
return [this.buildAssetTransfer({ ...txn, receiver: txn.sender, amount: 0n, closeAssetTo: txn.creator }, suggestedParams)];
|
|
551
|
+
case 'keyReg':
|
|
552
|
+
return [this.buildKeyReg(txn, suggestedParams)];
|
|
553
|
+
default:
|
|
554
|
+
throw Error(`Unsupported txn type`);
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
async buildTxnWithSigner(txn, suggestedParams) {
|
|
362
558
|
if (txn.type === 'txnWithSigner') {
|
|
363
559
|
return [txn];
|
|
364
560
|
}
|
|
@@ -366,75 +562,83 @@ class AlgokitComposer {
|
|
|
366
562
|
return this.buildAtc(txn.atc);
|
|
367
563
|
}
|
|
368
564
|
if (txn.type === 'methodCall') {
|
|
369
|
-
return await this.buildMethodCall(txn, suggestedParams);
|
|
565
|
+
return await this.buildMethodCall(txn, suggestedParams, true);
|
|
370
566
|
}
|
|
371
567
|
const signer = txn.signer ? ('signer' in txn.signer ? txn.signer.signer : txn.signer) : this.getSigner(txn.sender);
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
return [{ txn: assetConfig, signer }];
|
|
388
|
-
}
|
|
389
|
-
case 'assetDestroy': {
|
|
390
|
-
const assetDestroy = this.buildAssetDestroy(txn, suggestedParams);
|
|
391
|
-
return [{ txn: assetDestroy, signer }];
|
|
392
|
-
}
|
|
393
|
-
case 'assetFreeze': {
|
|
394
|
-
const assetFreeze = this.buildAssetFreeze(txn, suggestedParams);
|
|
395
|
-
return [{ txn: assetFreeze, signer }];
|
|
396
|
-
}
|
|
397
|
-
case 'assetTransfer': {
|
|
398
|
-
const assetTransfer = this.buildAssetTransfer(txn, suggestedParams);
|
|
399
|
-
return [{ txn: assetTransfer, signer }];
|
|
400
|
-
}
|
|
401
|
-
case 'assetOptIn': {
|
|
402
|
-
const assetTransfer = this.buildAssetTransfer({ ...txn, receiver: txn.sender, amount: 0n }, suggestedParams);
|
|
403
|
-
return [{ txn: assetTransfer, signer }];
|
|
568
|
+
return (await this.buildTxn(txn, suggestedParams)).map((txn) => ({ txn, signer }));
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Compose all of the transactions without signers and return the transaction objects directly along with any ABI method calls.
|
|
572
|
+
*
|
|
573
|
+
* @returns The array of built transactions and any corresponding method calls
|
|
574
|
+
*/
|
|
575
|
+
async buildTransactions() {
|
|
576
|
+
const suggestedParams = await this.getSuggestedParams();
|
|
577
|
+
const transactions = [];
|
|
578
|
+
const methodCalls = new Map();
|
|
579
|
+
const signers = new Map();
|
|
580
|
+
for (const txn of this.txns) {
|
|
581
|
+
if (!['txnWithSigner', 'atc', 'methodCall'].includes(txn.type)) {
|
|
582
|
+
transactions.push(...(await this.buildTxn(txn, suggestedParams)));
|
|
404
583
|
}
|
|
405
|
-
|
|
406
|
-
const
|
|
407
|
-
|
|
584
|
+
else {
|
|
585
|
+
const transactionsWithSigner = txn.type === 'txnWithSigner'
|
|
586
|
+
? [txn]
|
|
587
|
+
: txn.type === 'atc'
|
|
588
|
+
? this.buildAtc(txn.atc)
|
|
589
|
+
: txn.type === 'methodCall'
|
|
590
|
+
? await this.buildMethodCall(txn, suggestedParams, false)
|
|
591
|
+
: [];
|
|
592
|
+
transactions.push(...transactionsWithSigner.map((ts) => ts.txn));
|
|
593
|
+
transactionsWithSigner.forEach((ts, idx) => {
|
|
594
|
+
if (ts.signer && ts.signer !== TransactionComposer.NULL_SIGNER) {
|
|
595
|
+
signers.set(idx, ts.signer);
|
|
596
|
+
}
|
|
597
|
+
});
|
|
408
598
|
}
|
|
409
|
-
default:
|
|
410
|
-
throw Error(`Unsupported txn type`);
|
|
411
599
|
}
|
|
600
|
+
for (let i = 0; i < transactions.length; i++) {
|
|
601
|
+
const method = this.txnMethodMap.get(transactions[i].txID());
|
|
602
|
+
if (method)
|
|
603
|
+
methodCalls.set(i, method);
|
|
604
|
+
}
|
|
605
|
+
return { transactions, methodCalls, signers };
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Get the number of transactions currently added to this composer.
|
|
609
|
+
*/
|
|
610
|
+
async count() {
|
|
611
|
+
return (await this.buildTransactions()).transactions.length;
|
|
412
612
|
}
|
|
413
613
|
/**
|
|
414
614
|
* Compose all of the transactions in a single atomic transaction group and an atomic transaction composer.
|
|
415
615
|
*
|
|
416
616
|
* You can then use the transactions standalone, or use the composer to execute or simulate the transactions.
|
|
617
|
+
*
|
|
618
|
+
* Once this method is called, no further transactions will be able to be added.
|
|
619
|
+
* You can safely call this method multiple times to get the same result.
|
|
417
620
|
* @returns The built atomic transaction composer and the transactions
|
|
418
621
|
*/
|
|
419
622
|
async build() {
|
|
420
623
|
if (this.atc.getStatus() === algosdk.AtomicTransactionComposerStatus.BUILDING) {
|
|
421
624
|
const suggestedParams = await this.getSuggestedParams();
|
|
625
|
+
// Build all of the transactions
|
|
422
626
|
const txnWithSigners = [];
|
|
423
627
|
for (const txn of this.txns) {
|
|
424
|
-
txnWithSigners.push(...(await this.
|
|
628
|
+
txnWithSigners.push(...(await this.buildTxnWithSigner(txn, suggestedParams)));
|
|
425
629
|
}
|
|
426
|
-
|
|
427
|
-
this.atc.addTransaction(ts);
|
|
428
|
-
});
|
|
630
|
+
// Add all of the transactions to the underlying ATC
|
|
429
631
|
const methodCalls = new Map();
|
|
430
632
|
txnWithSigners.forEach((ts, idx) => {
|
|
633
|
+
this.atc.addTransaction(ts);
|
|
634
|
+
// Populate consolidated set of all ABI method calls
|
|
431
635
|
const method = this.txnMethodMap.get(ts.txn.txID());
|
|
432
636
|
if (method)
|
|
433
637
|
methodCalls.set(idx, method);
|
|
434
638
|
});
|
|
435
639
|
this.atc['methodCalls'] = methodCalls;
|
|
436
640
|
}
|
|
437
|
-
return { atc: this.atc, transactions: this.atc.buildGroup() };
|
|
641
|
+
return { atc: this.atc, transactions: this.atc.buildGroup(), methodCalls: this.atc['methodCalls'] };
|
|
438
642
|
}
|
|
439
643
|
/**
|
|
440
644
|
* Rebuild the group, discarding any previously built transactions.
|
|
@@ -446,24 +650,114 @@ class AlgokitComposer {
|
|
|
446
650
|
return await this.build();
|
|
447
651
|
}
|
|
448
652
|
/**
|
|
449
|
-
* Compose the atomic transaction group and send it to the network
|
|
653
|
+
* Compose the atomic transaction group and send it to the network.
|
|
450
654
|
* @param params The parameters to control execution with
|
|
451
655
|
* @returns The execution result
|
|
452
656
|
*/
|
|
453
|
-
async
|
|
657
|
+
async send(params) {
|
|
454
658
|
const group = (await this.build()).transactions;
|
|
455
659
|
let waitRounds = params?.maxRoundsToWaitForConfirmation;
|
|
456
660
|
if (waitRounds === undefined) {
|
|
457
|
-
const lastRound = group.reduce((max, txn) =>
|
|
458
|
-
const { firstRound } = await this.getSuggestedParams();
|
|
459
|
-
waitRounds = lastRound - firstRound + 1;
|
|
661
|
+
const lastRound = group.reduce((max, txn) => (txn.txn.lastValid > max ? txn.txn.lastValid : BigInt(max)), 0n);
|
|
662
|
+
const { firstValid: firstRound } = await this.getSuggestedParams();
|
|
663
|
+
waitRounds = Number(BigInt(lastRound) - BigInt(firstRound)) + 1;
|
|
460
664
|
}
|
|
461
665
|
return await transaction.sendAtomicTransactionComposer({
|
|
462
666
|
atc: this.atc,
|
|
463
|
-
|
|
667
|
+
suppressLog: params?.suppressLog,
|
|
668
|
+
maxRoundsToWaitForConfirmation: waitRounds,
|
|
669
|
+
populateAppCallResources: params?.populateAppCallResources,
|
|
464
670
|
}, this.algod);
|
|
465
671
|
}
|
|
672
|
+
/**
|
|
673
|
+
* @deprecated Use `send` instead.
|
|
674
|
+
*
|
|
675
|
+
* Compose the atomic transaction group and send it to the network
|
|
676
|
+
*
|
|
677
|
+
* An alias for `composer.send(params)`.
|
|
678
|
+
* @param params The parameters to control execution with
|
|
679
|
+
* @returns The execution result
|
|
680
|
+
*/
|
|
681
|
+
async execute(params) {
|
|
682
|
+
return this.send(params);
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* Compose the atomic transaction group and simulate sending it to the network
|
|
686
|
+
* @returns The simulation result
|
|
687
|
+
*/
|
|
688
|
+
async simulate(options) {
|
|
689
|
+
const atc = options?.skipSignatures ? new AtomicTransactionComposer() : this.atc;
|
|
690
|
+
// Build the transactions
|
|
691
|
+
if (options?.skipSignatures) {
|
|
692
|
+
options.allowEmptySignatures = true;
|
|
693
|
+
options.fixSigners = true;
|
|
694
|
+
// Build transactions uses empty signers
|
|
695
|
+
const transactions = await this.buildTransactions();
|
|
696
|
+
for (const txn of transactions.transactions) {
|
|
697
|
+
atc.addTransaction({ txn, signer: TransactionComposer.NULL_SIGNER });
|
|
698
|
+
}
|
|
699
|
+
atc['methodCalls'] = transactions.methodCalls;
|
|
700
|
+
}
|
|
701
|
+
else {
|
|
702
|
+
// Build creates real signatures
|
|
703
|
+
await this.build();
|
|
704
|
+
}
|
|
705
|
+
const { methodResults, simulateResponse } = await atc.simulate(this.algod, new modelsv2.SimulateRequest({
|
|
706
|
+
txnGroups: [],
|
|
707
|
+
...options,
|
|
708
|
+
...(config.Config.debug
|
|
709
|
+
? {
|
|
710
|
+
allowEmptySignatures: true,
|
|
711
|
+
fixSigners: true,
|
|
712
|
+
allowMoreLogging: true,
|
|
713
|
+
execTraceConfig: new modelsv2.SimulateTraceConfig({
|
|
714
|
+
enable: true,
|
|
715
|
+
scratchChange: true,
|
|
716
|
+
stackChange: true,
|
|
717
|
+
stateChange: true,
|
|
718
|
+
}),
|
|
719
|
+
}
|
|
720
|
+
: undefined),
|
|
721
|
+
}));
|
|
722
|
+
const failedGroup = simulateResponse?.txnGroups[0];
|
|
723
|
+
if (failedGroup?.failureMessage) {
|
|
724
|
+
const errorMessage = `Transaction failed at transaction(s) ${failedGroup.failedAt?.join(', ') || 'unknown'} in the group. ${failedGroup.failureMessage}`;
|
|
725
|
+
const error = new Error(errorMessage);
|
|
726
|
+
if (config.Config.debug) {
|
|
727
|
+
await config.Config.events.emitAsync(types_lifecycleEvents.EventType.TxnGroupSimulated, { simulateResponse });
|
|
728
|
+
}
|
|
729
|
+
error.simulateResponse = simulateResponse;
|
|
730
|
+
throw error;
|
|
731
|
+
}
|
|
732
|
+
if (config.Config.debug && config.Config.traceAll) {
|
|
733
|
+
await config.Config.events.emitAsync(types_lifecycleEvents.EventType.TxnGroupSimulated, { simulateResponse });
|
|
734
|
+
}
|
|
735
|
+
const transactions = atc.buildGroup().map((t) => t.txn);
|
|
736
|
+
return {
|
|
737
|
+
confirmations: simulateResponse.txnGroups[0].txnResults.map((t) => t.txnResult),
|
|
738
|
+
transactions: transactions,
|
|
739
|
+
txIds: transactions.map((t) => t.txID()),
|
|
740
|
+
groupId: Buffer.from(transactions[0].group ?? new Uint8Array()).toString('base64'),
|
|
741
|
+
simulateResponse,
|
|
742
|
+
returns: methodResults.map(transaction.getABIReturnValue),
|
|
743
|
+
};
|
|
744
|
+
}
|
|
745
|
+
/**
|
|
746
|
+
* Create an encoded transaction note that follows the ARC-2 spec.
|
|
747
|
+
*
|
|
748
|
+
* https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0002.md
|
|
749
|
+
* @param note The ARC-2 transaction note data
|
|
750
|
+
* @returns The binary encoded transaction note
|
|
751
|
+
*/
|
|
752
|
+
static arc2Note(note) {
|
|
753
|
+
const arc2Payload = `${note.dAppName}:${note.format}${typeof note.data === 'string' ? note.data : JSON.stringify(note.data)}`;
|
|
754
|
+
const encoder = new TextEncoder();
|
|
755
|
+
return encoder.encode(arc2Payload);
|
|
756
|
+
}
|
|
466
757
|
}
|
|
758
|
+
/** Signer used to represent a lack of signer */
|
|
759
|
+
TransactionComposer.NULL_SIGNER = algosdk.makeEmptyTransactionSigner();
|
|
467
760
|
|
|
468
|
-
|
|
761
|
+
exports.MAX_TRANSACTION_GROUP_SIZE = MAX_TRANSACTION_GROUP_SIZE;
|
|
762
|
+
exports.TransactionComposer = TransactionComposer;
|
|
469
763
|
//# sourceMappingURL=composer.js.map
|