@algorandfoundation/algokit-utils 9.2.0 → 9.2.1-beta.2
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 +33 -0
- package/_virtual/_rolldown/runtime.mjs +13 -0
- package/account/account.d.ts +25 -30
- package/account/account.js +151 -146
- package/account/account.js.map +1 -1
- package/account/account.mjs +149 -144
- package/account/account.mjs.map +1 -1
- package/account/get-account-config-from-environment.d.ts +7 -2
- package/account/get-account-config-from-environment.js +19 -21
- package/account/get-account-config-from-environment.js.map +1 -1
- package/account/get-account-config-from-environment.mjs +19 -19
- package/account/get-account-config-from-environment.mjs.map +1 -1
- package/account/get-account.d.ts +14 -12
- package/account/get-account.js +56 -59
- package/account/get-account.js.map +1 -1
- package/account/get-account.mjs +56 -57
- package/account/get-account.mjs.map +1 -1
- package/account/get-dispenser-account.d.ts +9 -5
- package/account/get-dispenser-account.js +20 -18
- package/account/get-dispenser-account.js.map +1 -1
- package/account/get-dispenser-account.mjs +20 -16
- package/account/get-dispenser-account.mjs.map +1 -1
- package/account/mnemonic-account.d.ts +7 -3
- package/account/mnemonic-account.js +17 -17
- package/account/mnemonic-account.js.map +1 -1
- package/account/mnemonic-account.mjs +15 -15
- package/account/mnemonic-account.mjs.map +1 -1
- package/amount.d.ts +40 -35
- package/amount.js +33 -34
- package/amount.js.map +1 -1
- package/amount.mjs +33 -32
- package/amount.mjs.map +1 -1
- package/app-client.d.ts +10 -6
- package/app-client.js +91 -86
- package/app-client.js.map +1 -1
- package/app-client.mjs +91 -84
- package/app-client.mjs.map +1 -1
- package/app-deploy.d.ts +26 -24
- package/app-deploy.js +235 -253
- package/app-deploy.js.map +1 -1
- package/app-deploy.mjs +233 -251
- package/app-deploy.mjs.map +1 -1
- package/app.d.ts +45 -46
- package/app.js +253 -271
- package/app.js.map +1 -1
- package/app.mjs +249 -267
- package/app.mjs.map +1 -1
- package/asset.d.ts +16 -12
- package/asset.js +116 -122
- package/asset.js.map +1 -1
- package/asset.mjs +116 -120
- package/asset.mjs.map +1 -1
- package/config.d.ts +7 -2
- package/config.js +5 -7
- package/config.js.map +1 -1
- package/config.mjs +5 -4
- package/config.mjs.map +1 -1
- package/debugging/debugging.d.ts +5 -1
- package/debugging/debugging.js +11 -11
- package/debugging/debugging.js.map +1 -1
- package/debugging/debugging.mjs +11 -9
- package/debugging/debugging.mjs.map +1 -1
- package/dispenser-client.d.ts +7 -2
- package/dispenser-client.js +23 -24
- package/dispenser-client.js.map +1 -1
- package/dispenser-client.mjs +23 -22
- package/dispenser-client.mjs.map +1 -1
- package/index.d.ts +27 -18
- package/index.js +140 -143
- package/index.mjs +27 -29
- package/indexer-lookup.d.ts +18 -11
- package/indexer-lookup.js +112 -120
- package/indexer-lookup.js.map +1 -1
- package/indexer-lookup.mjs +105 -118
- package/indexer-lookup.mjs.map +1 -1
- package/localnet/get-kmd-wallet-account.d.ts +9 -7
- package/localnet/get-kmd-wallet-account.js +28 -26
- package/localnet/get-kmd-wallet-account.js.map +1 -1
- package/localnet/get-kmd-wallet-account.mjs +28 -24
- package/localnet/get-kmd-wallet-account.mjs.map +1 -1
- package/localnet/get-localnet-dispenser-account.d.ts +7 -5
- package/localnet/get-localnet-dispenser-account.js +17 -15
- package/localnet/get-localnet-dispenser-account.js.map +1 -1
- package/localnet/get-localnet-dispenser-account.mjs +17 -13
- package/localnet/get-localnet-dispenser-account.mjs.map +1 -1
- package/localnet/get-or-create-kmd-wallet-account.d.ts +10 -8
- package/localnet/get-or-create-kmd-wallet-account.js +28 -26
- package/localnet/get-or-create-kmd-wallet-account.js.map +1 -1
- package/localnet/get-or-create-kmd-wallet-account.mjs +28 -24
- package/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -1
- package/localnet/is-localnet.d.ts +7 -3
- package/localnet/is-localnet.js +9 -10
- package/localnet/is-localnet.js.map +1 -1
- package/localnet/is-localnet.mjs +9 -8
- package/localnet/is-localnet.mjs.map +1 -1
- package/network-client.d.ts +17 -15
- package/network-client.js +115 -116
- package/network-client.js.map +1 -1
- package/network-client.mjs +115 -114
- package/network-client.mjs.map +1 -1
- package/package.json +12 -3
- package/testing/account.d.ts +11 -9
- package/testing/account.js +31 -33
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +29 -31
- package/testing/account.mjs.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.d.ts +7 -2
- package/testing/fixtures/algokit-log-capture-fixture.js +36 -41
- package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
- package/testing/fixtures/algokit-log-capture-fixture.mjs +36 -39
- package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
- package/testing/fixtures/algorand-fixture.d.ts +9 -4
- package/testing/fixtures/algorand-fixture.js +67 -62
- package/testing/fixtures/algorand-fixture.js.map +1 -1
- package/testing/fixtures/algorand-fixture.mjs +66 -59
- package/testing/fixtures/algorand-fixture.mjs.map +1 -1
- package/testing/index.d.ts +7 -5
- package/testing/index.js +13 -18
- package/testing/index.mjs +7 -7
- package/testing/indexer.d.ts +5 -1
- package/testing/indexer.js +28 -37
- package/testing/indexer.js.map +1 -1
- package/testing/indexer.mjs +28 -35
- package/testing/indexer.mjs.map +1 -1
- package/testing/test-logger.d.ts +41 -36
- package/testing/test-logger.js +71 -76
- package/testing/test-logger.js.map +1 -1
- package/testing/test-logger.mjs +71 -74
- package/testing/test-logger.mjs.map +1 -1
- package/testing/transaction-logger.d.ts +30 -27
- package/testing/transaction-logger.js +77 -93
- package/testing/transaction-logger.js.map +1 -1
- package/testing/transaction-logger.mjs +74 -90
- package/testing/transaction-logger.mjs.map +1 -1
- package/transaction/legacy-bridge.js +100 -111
- package/transaction/legacy-bridge.js.map +1 -1
- package/transaction/legacy-bridge.mjs +97 -108
- package/transaction/legacy-bridge.mjs.map +1 -1
- package/transaction/perform-atomic-transaction-composer-simulate.d.ts +7 -5
- package/transaction/perform-atomic-transaction-composer-simulate.js +31 -36
- package/transaction/perform-atomic-transaction-composer-simulate.js.map +1 -1
- package/transaction/perform-atomic-transaction-composer-simulate.mjs +28 -33
- package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +1 -1
- package/transaction/transaction.d.ts +34 -35
- package/transaction/transaction.js +716 -914
- package/transaction/transaction.js.map +1 -1
- package/transaction/transaction.mjs +713 -911
- package/transaction/transaction.mjs.map +1 -1
- package/transfer/transfer-algos.d.ts +9 -5
- package/transfer/transfer-algos.js +26 -27
- package/transfer/transfer-algos.js.map +1 -1
- package/transfer/transfer-algos.mjs +26 -25
- package/transfer/transfer-algos.mjs.map +1 -1
- package/transfer/transfer.d.ts +11 -8
- package/transfer/transfer.js +94 -100
- package/transfer/transfer.js.map +1 -1
- package/transfer/transfer.mjs +94 -98
- package/transfer/transfer.mjs.map +1 -1
- package/types/account-manager.d.ts +432 -429
- package/types/account-manager.js +591 -602
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +587 -599
- package/types/account-manager.mjs.map +1 -1
- package/types/account.d.ts +192 -202
- package/types/account.js +91 -88
- package/types/account.js.map +1 -1
- package/types/account.mjs +88 -86
- package/types/account.mjs.map +1 -1
- package/types/algo-http-client-with-retry.d.ts +15 -10
- package/types/algo-http-client-with-retry.js +70 -92
- package/types/algo-http-client-with-retry.js.map +1 -1
- package/types/algo-http-client-with-retry.mjs +69 -90
- package/types/algo-http-client-with-retry.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +778 -771
- package/types/algorand-client-transaction-creator.js +733 -732
- package/types/algorand-client-transaction-creator.js.map +1 -1
- package/types/algorand-client-transaction-creator.mjs +732 -730
- package/types/algorand-client-transaction-creator.mjs.map +1 -1
- package/types/algorand-client-transaction-sender.d.ts +1090 -1360
- package/types/algorand-client-transaction-sender.js +930 -961
- package/types/algorand-client-transaction-sender.js.map +1 -1
- package/types/algorand-client-transaction-sender.mjs +927 -959
- package/types/algorand-client-transaction-sender.mjs.map +1 -1
- package/types/algorand-client.d.ts +239 -236
- package/types/algorand-client.js +322 -320
- package/types/algorand-client.js.map +1 -1
- package/types/algorand-client.mjs +321 -318
- package/types/algorand-client.mjs.map +1 -1
- package/types/amount.d.ts +47 -43
- package/types/amount.js +66 -70
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +63 -68
- package/types/amount.mjs.map +1 -1
- package/types/app-arc56.d.ts +235 -272
- package/types/app-arc56.js +124 -170
- package/types/app-arc56.js.map +1 -1
- package/types/app-arc56.mjs +121 -168
- package/types/app-arc56.mjs.map +1 -1
- package/types/app-client.d.ts +1128 -2009
- package/types/app-client.js +1633 -1791
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +1624 -1783
- package/types/app-client.mjs.map +1 -1
- package/types/app-deployer.d.ts +139 -141
- package/types/app-deployer.js +344 -384
- package/types/app-deployer.js.map +1 -1
- package/types/app-deployer.mjs +341 -382
- package/types/app-deployer.mjs.map +1 -1
- package/types/app-factory.d.ts +762 -932
- package/types/app-factory.js +496 -488
- package/types/app-factory.js.map +1 -1
- package/types/app-factory.mjs +491 -484
- package/types/app-factory.mjs.map +1 -1
- package/types/app-manager.d.ts +304 -310
- package/types/app-manager.js +422 -475
- package/types/app-manager.js.map +1 -1
- package/types/app-manager.mjs +419 -473
- package/types/app-manager.mjs.map +1 -1
- package/types/app-spec.d.ts +118 -117
- package/types/app-spec.js +125 -135
- package/types/app-spec.js.map +1 -1
- package/types/app-spec.mjs +121 -132
- package/types/app-spec.mjs.map +1 -1
- package/types/app.d.ts +229 -241
- package/types/app.js +36 -28
- package/types/app.js.map +1 -1
- package/types/app.mjs +33 -26
- package/types/app.mjs.map +1 -1
- package/types/asset-manager.d.ts +204 -199
- package/types/asset-manager.js +165 -174
- package/types/asset-manager.js.map +1 -1
- package/types/asset-manager.mjs +164 -172
- package/types/asset-manager.mjs.map +1 -1
- package/types/asset.d.ts +95 -91
- package/types/asset.js +0 -3
- package/types/asset.mjs +0 -2
- package/types/async-event-emitter.d.ts +18 -13
- package/types/async-event-emitter.js +37 -49
- package/types/async-event-emitter.js.map +1 -1
- package/types/async-event-emitter.mjs +36 -47
- package/types/async-event-emitter.mjs.map +1 -1
- package/types/client-manager.d.ts +453 -451
- package/types/client-manager.js +602 -598
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs +597 -594
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +1211 -1258
- package/types/composer.js +1436 -1498
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +1430 -1493
- package/types/composer.mjs.map +1 -1
- package/types/config.d.ts +53 -48
- package/types/config.js +78 -77
- package/types/config.js.map +1 -1
- package/types/config.mjs +77 -75
- package/types/config.mjs.map +1 -1
- package/types/debugging.d.ts +25 -23
- package/types/debugging.js +9 -11
- package/types/debugging.js.map +1 -1
- package/types/debugging.mjs +8 -9
- package/types/debugging.mjs.map +1 -1
- package/types/dispenser-client.d.ts +57 -52
- package/types/dispenser-client.js +120 -141
- package/types/dispenser-client.js.map +1 -1
- package/types/dispenser-client.mjs +119 -139
- package/types/dispenser-client.mjs.map +1 -1
- package/types/expand.d.ts +5 -3
- package/types/expand.js +0 -3
- package/types/expand.mjs +0 -2
- package/types/indexer.d.ts +104 -100
- package/types/indexer.js +36 -31
- package/types/indexer.js.map +1 -1
- package/types/indexer.mjs +32 -30
- package/types/indexer.mjs.map +1 -1
- package/types/instance-of.d.ts +5 -3
- package/types/instance-of.js +0 -3
- package/types/instance-of.mjs +0 -2
- package/types/kmd-account-manager.d.ts +75 -70
- package/types/kmd-account-manager.js +150 -184
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +147 -182
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/lifecycle-events.d.ts +13 -8
- package/types/lifecycle-events.js +10 -7
- package/types/lifecycle-events.js.map +1 -1
- package/types/lifecycle-events.mjs +9 -7
- package/types/lifecycle-events.mjs.map +1 -1
- package/types/logging.d.ts +15 -11
- package/types/logging.js +30 -31
- package/types/logging.js.map +1 -1
- package/types/logging.mjs +29 -29
- package/types/logging.mjs.map +1 -1
- package/types/logic-error.d.ts +33 -29
- package/types/logic-error.js +50 -49
- package/types/logic-error.js.map +1 -1
- package/types/logic-error.mjs +49 -47
- package/types/logic-error.mjs.map +1 -1
- package/types/network-client.d.ts +32 -27
- package/types/network-client.js +10 -9
- package/types/network-client.js.map +1 -1
- package/types/network-client.mjs +9 -7
- package/types/network-client.mjs.map +1 -1
- package/types/testing.d.ts +131 -132
- package/types/testing.js +0 -3
- package/types/testing.mjs +0 -2
- package/types/transaction.d.ts +110 -110
- package/types/transaction.js +0 -3
- package/types/transaction.mjs +0 -2
- package/types/transfer.d.ts +70 -66
- package/types/transfer.js +0 -3
- package/types/transfer.mjs +0 -2
- package/util.js +73 -118
- package/util.js.map +1 -1
- package/util.mjs +73 -116
- package/util.mjs.map +1 -1
- package/account/index.d.ts +0 -5
- package/debugging/index.d.ts +0 -1
- package/index.js.map +0 -1
- package/index.mjs.map +0 -1
- package/localnet/index.d.ts +0 -4
- package/testing/_asset.d.ts +0 -3
- package/testing/fixtures/index.d.ts +0 -2
- package/testing/index.js.map +0 -1
- package/testing/index.mjs.map +0 -1
- package/transaction/index.d.ts +0 -2
- package/transaction/legacy-bridge.d.ts +0 -35
- package/transfer/index.d.ts +0 -2
- package/types/asset.js.map +0 -1
- package/types/asset.mjs.map +0 -1
- package/types/expand.js.map +0 -1
- package/types/expand.mjs.map +0 -1
- package/types/instance-of.js.map +0 -1
- package/types/instance-of.mjs.map +0 -1
- package/types/testing.js.map +0 -1
- package/types/testing.mjs.map +0 -1
- package/types/transaction.js.map +0 -1
- package/types/transaction.mjs.map +0 -1
- package/types/transfer.js.map +0 -1
- package/types/transfer.mjs.map +0 -1
- package/util.d.ts +0 -48
|
@@ -1,129 +1,118 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var ABIMethod = algosdk.ABIMethod;
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_transaction = require("./transaction.js");
|
|
3
|
+
const require_app_manager = require("../types/app-manager.js");
|
|
4
|
+
const require_composer = require("../types/composer.js");
|
|
5
|
+
const require_algorand_client_transaction_creator = require("../types/algorand-client-transaction-creator.js");
|
|
6
|
+
const require_algorand_client_transaction_sender = require("../types/algorand-client-transaction-sender.js");
|
|
7
|
+
const require_asset_manager = require("../types/asset-manager.js");
|
|
8
|
+
let algosdk = require("algosdk");
|
|
9
|
+
algosdk = require_runtime.__toESM(algosdk);
|
|
10
|
+
//#region src/transaction/legacy-bridge.ts
|
|
11
|
+
var ABIMethod = algosdk.default.ABIMethod;
|
|
12
12
|
/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */
|
|
13
13
|
async function legacySendTransactionBridge(algod, from, sendParams, params, txn, send, suggestedParams) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return { transaction: txns.at(-1), transactions: txns };
|
|
46
|
-
}
|
|
47
|
-
return { ...(await send(transactionSender)({ ...sendParams, ...params })) };
|
|
14
|
+
const appManager = new require_app_manager.AppManager(algod);
|
|
15
|
+
const newGroup = () => new require_composer.TransactionComposer({
|
|
16
|
+
algod,
|
|
17
|
+
getSigner: () => require_transaction.getSenderTransactionSigner(from),
|
|
18
|
+
getSuggestedParams: async () => suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do(),
|
|
19
|
+
appManager
|
|
20
|
+
});
|
|
21
|
+
const transactionSender = new require_algorand_client_transaction_sender.AlgorandClientTransactionSender(newGroup, new require_asset_manager.AssetManager(algod, newGroup), appManager);
|
|
22
|
+
const transactionCreator = new require_algorand_client_transaction_creator.AlgorandClientTransactionCreator(newGroup);
|
|
23
|
+
if (sendParams.fee) params.staticFee = sendParams.fee;
|
|
24
|
+
if (sendParams.maxFee) params.maxFee = sendParams.maxFee;
|
|
25
|
+
if (sendParams.atc || sendParams.skipSending) {
|
|
26
|
+
const transaction = await txn(transactionCreator)(params);
|
|
27
|
+
const txns = "transactions" in transaction ? transaction.transactions : [transaction];
|
|
28
|
+
if (sendParams.atc) {
|
|
29
|
+
const baseIndex = sendParams.atc.count();
|
|
30
|
+
txns.map((txn, i) => ({
|
|
31
|
+
txn,
|
|
32
|
+
signer: "signers" in transaction ? transaction.signers.get(i) ?? require_transaction.getSenderTransactionSigner(from) : require_transaction.getSenderTransactionSigner(from)
|
|
33
|
+
})).forEach((t) => sendParams.atc.addTransaction(t));
|
|
34
|
+
if ("transactions" in transaction) transaction.methodCalls.forEach((m, i) => sendParams.atc["methodCalls"].set(i + baseIndex, m));
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
transaction: txns.at(-1),
|
|
38
|
+
transactions: txns
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return { ...await send(transactionSender)({
|
|
42
|
+
...sendParams,
|
|
43
|
+
...params
|
|
44
|
+
}) };
|
|
48
45
|
}
|
|
49
46
|
/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */
|
|
50
47
|
async function legacySendAppTransactionBridge(algod, from, appArgs, sendParams, params, txn, send, suggestedParams) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams);
|
|
48
|
+
const encoder = new TextEncoder();
|
|
49
|
+
return await legacySendTransactionBridge(algod, from, sendParams, {
|
|
50
|
+
...params,
|
|
51
|
+
accountReferences: appArgs?.accounts?.map((a) => typeof a === "string" ? a : algosdk.default.encodeAddress(a.publicKey)),
|
|
52
|
+
appReferences: appArgs?.apps?.map((a) => BigInt(a)),
|
|
53
|
+
assetReferences: appArgs?.assets?.map((a) => BigInt(a)),
|
|
54
|
+
boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({
|
|
55
|
+
appId: BigInt(r.appIndex),
|
|
56
|
+
name: r.name
|
|
57
|
+
})),
|
|
58
|
+
lease: appArgs?.lease,
|
|
59
|
+
rekeyTo: appArgs?.rekeyTo ? require_transaction.getSenderAddress(appArgs?.rekeyTo) : void 0,
|
|
60
|
+
args: appArgs ? "methodArgs" in appArgs ? (await _getAppArgsForABICall(appArgs, from)).methodArgs : appArgs?.appArgs?.map((a) => typeof a === "string" ? encoder.encode(a) : a) : void 0,
|
|
61
|
+
note: require_transaction.encodeTransactionNote(sendParams?.note)
|
|
62
|
+
}, txn, send, suggestedParams);
|
|
68
63
|
}
|
|
69
64
|
/**
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
* @deprecated
|
|
66
|
+
*/
|
|
72
67
|
async function _getAppArgsForABICall(args, from) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
appAccounts: args.accounts?.map(_getAccountAddress),
|
|
101
|
-
methodArgs: methodArgs,
|
|
102
|
-
rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : transaction.getSenderAddress(args.rekeyTo)) : undefined,
|
|
103
|
-
};
|
|
68
|
+
const signer = require_transaction.getSenderTransactionSigner(from);
|
|
69
|
+
const methodArgs = await Promise.all(("methodArgs" in args ? args.methodArgs : args)?.map(async (a, index) => {
|
|
70
|
+
if (a === void 0) throw new Error(`Argument at position ${index} does not have a value`);
|
|
71
|
+
if (typeof a !== "object") return a;
|
|
72
|
+
return "txn" in a ? a : a instanceof Promise ? {
|
|
73
|
+
txn: (await a).transaction,
|
|
74
|
+
signer
|
|
75
|
+
} : "transaction" in a ? {
|
|
76
|
+
txn: a.transaction,
|
|
77
|
+
signer: "signer" in a ? require_transaction.getSenderTransactionSigner(a.signer) : signer
|
|
78
|
+
} : "txID" in a ? {
|
|
79
|
+
txn: a,
|
|
80
|
+
signer
|
|
81
|
+
} : a;
|
|
82
|
+
}));
|
|
83
|
+
return {
|
|
84
|
+
method: "txnCount" in args.method ? args.method : new ABIMethod(args.method),
|
|
85
|
+
sender: require_transaction.getSenderAddress(from),
|
|
86
|
+
signer,
|
|
87
|
+
boxes: args.boxes?.map(_getBoxReference),
|
|
88
|
+
lease: require_transaction.encodeLease(args.lease),
|
|
89
|
+
appForeignApps: args.apps,
|
|
90
|
+
appForeignAssets: args.assets,
|
|
91
|
+
appAccounts: args.accounts?.map(_getAccountAddress),
|
|
92
|
+
methodArgs,
|
|
93
|
+
rekeyTo: args?.rekeyTo ? typeof args.rekeyTo === "string" ? args.rekeyTo : require_transaction.getSenderAddress(args.rekeyTo) : void 0
|
|
94
|
+
};
|
|
104
95
|
}
|
|
105
96
|
function _getAccountAddress(account) {
|
|
106
|
-
|
|
97
|
+
return typeof account === "string" ? account : algosdk.default.encodeAddress(account.publicKey);
|
|
107
98
|
}
|
|
108
99
|
/** @deprecated */
|
|
109
100
|
function _getBoxReference(box) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
? ref.name
|
|
121
|
-
: algosdk.decodeAddress(transaction.getSenderAddress(ref.name)).publicKey,
|
|
122
|
-
};
|
|
101
|
+
const encoder = new TextEncoder();
|
|
102
|
+
if (typeof box === "object" && "appIndex" in box) return box;
|
|
103
|
+
const ref = typeof box === "object" && "appId" in box ? box : {
|
|
104
|
+
appId: 0,
|
|
105
|
+
name: box
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
appIndex: ref.appId,
|
|
109
|
+
name: typeof ref.name === "string" ? encoder.encode(ref.name) : "length" in ref.name ? ref.name : algosdk.default.decodeAddress(require_transaction.getSenderAddress(ref.name)).publicKey
|
|
110
|
+
};
|
|
123
111
|
}
|
|
124
|
-
|
|
112
|
+
//#endregion
|
|
125
113
|
exports._getAppArgsForABICall = _getAppArgsForABICall;
|
|
126
114
|
exports._getBoxReference = _getBoxReference;
|
|
127
115
|
exports.legacySendAppTransactionBridge = legacySendAppTransactionBridge;
|
|
128
116
|
exports.legacySendTransactionBridge = legacySendTransactionBridge;
|
|
129
|
-
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=legacy-bridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-bridge.js","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":["AppManager","TransactionComposer","getSenderTransactionSigner","AlgorandClientTransactionSender","AssetManager","AlgorandClientTransactionCreator","transaction","getSenderAddress","encodeTransactionNote","encodeLease"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"legacy-bridge.js","names":["AppManager","TransactionComposer","getSenderTransactionSigner","AlgorandClientTransactionSender","AssetManager","AlgorandClientTransactionCreator","getSenderAddress","encodeTransactionNote","encodeLease"],"sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"mappings":"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"}
|
|
@@ -1,124 +1,113 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
|
|
1
|
+
import { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from "./transaction.mjs";
|
|
2
|
+
import { AppManager } from "../types/app-manager.mjs";
|
|
3
|
+
import { TransactionComposer } from "../types/composer.mjs";
|
|
4
|
+
import { AlgorandClientTransactionCreator } from "../types/algorand-client-transaction-creator.mjs";
|
|
5
|
+
import { AlgorandClientTransactionSender } from "../types/algorand-client-transaction-sender.mjs";
|
|
6
|
+
import { AssetManager } from "../types/asset-manager.mjs";
|
|
7
|
+
import algosdk from "algosdk";
|
|
8
|
+
//#region src/transaction/legacy-bridge.ts
|
|
9
9
|
var ABIMethod = algosdk.ABIMethod;
|
|
10
10
|
/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */
|
|
11
11
|
async function legacySendTransactionBridge(algod, from, sendParams, params, txn, send, suggestedParams) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return { transaction: txns.at(-1), transactions: txns };
|
|
44
|
-
}
|
|
45
|
-
return { ...(await send(transactionSender)({ ...sendParams, ...params })) };
|
|
12
|
+
const appManager = new AppManager(algod);
|
|
13
|
+
const newGroup = () => new TransactionComposer({
|
|
14
|
+
algod,
|
|
15
|
+
getSigner: () => getSenderTransactionSigner(from),
|
|
16
|
+
getSuggestedParams: async () => suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do(),
|
|
17
|
+
appManager
|
|
18
|
+
});
|
|
19
|
+
const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager);
|
|
20
|
+
const transactionCreator = new AlgorandClientTransactionCreator(newGroup);
|
|
21
|
+
if (sendParams.fee) params.staticFee = sendParams.fee;
|
|
22
|
+
if (sendParams.maxFee) params.maxFee = sendParams.maxFee;
|
|
23
|
+
if (sendParams.atc || sendParams.skipSending) {
|
|
24
|
+
const transaction = await txn(transactionCreator)(params);
|
|
25
|
+
const txns = "transactions" in transaction ? transaction.transactions : [transaction];
|
|
26
|
+
if (sendParams.atc) {
|
|
27
|
+
const baseIndex = sendParams.atc.count();
|
|
28
|
+
txns.map((txn, i) => ({
|
|
29
|
+
txn,
|
|
30
|
+
signer: "signers" in transaction ? transaction.signers.get(i) ?? getSenderTransactionSigner(from) : getSenderTransactionSigner(from)
|
|
31
|
+
})).forEach((t) => sendParams.atc.addTransaction(t));
|
|
32
|
+
if ("transactions" in transaction) transaction.methodCalls.forEach((m, i) => sendParams.atc["methodCalls"].set(i + baseIndex, m));
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
transaction: txns.at(-1),
|
|
36
|
+
transactions: txns
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return { ...await send(transactionSender)({
|
|
40
|
+
...sendParams,
|
|
41
|
+
...params
|
|
42
|
+
}) };
|
|
46
43
|
}
|
|
47
44
|
/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */
|
|
48
45
|
async function legacySendAppTransactionBridge(algod, from, appArgs, sendParams, params, txn, send, suggestedParams) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams);
|
|
46
|
+
const encoder = new TextEncoder();
|
|
47
|
+
return await legacySendTransactionBridge(algod, from, sendParams, {
|
|
48
|
+
...params,
|
|
49
|
+
accountReferences: appArgs?.accounts?.map((a) => typeof a === "string" ? a : algosdk.encodeAddress(a.publicKey)),
|
|
50
|
+
appReferences: appArgs?.apps?.map((a) => BigInt(a)),
|
|
51
|
+
assetReferences: appArgs?.assets?.map((a) => BigInt(a)),
|
|
52
|
+
boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({
|
|
53
|
+
appId: BigInt(r.appIndex),
|
|
54
|
+
name: r.name
|
|
55
|
+
})),
|
|
56
|
+
lease: appArgs?.lease,
|
|
57
|
+
rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : void 0,
|
|
58
|
+
args: appArgs ? "methodArgs" in appArgs ? (await _getAppArgsForABICall(appArgs, from)).methodArgs : appArgs?.appArgs?.map((a) => typeof a === "string" ? encoder.encode(a) : a) : void 0,
|
|
59
|
+
note: encodeTransactionNote(sendParams?.note)
|
|
60
|
+
}, txn, send, suggestedParams);
|
|
66
61
|
}
|
|
67
62
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
* @deprecated
|
|
64
|
+
*/
|
|
70
65
|
async function _getAppArgsForABICall(args, from) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
appAccounts: args.accounts?.map(_getAccountAddress),
|
|
99
|
-
methodArgs: methodArgs,
|
|
100
|
-
rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,
|
|
101
|
-
};
|
|
66
|
+
const signer = getSenderTransactionSigner(from);
|
|
67
|
+
const methodArgs = await Promise.all(("methodArgs" in args ? args.methodArgs : args)?.map(async (a, index) => {
|
|
68
|
+
if (a === void 0) throw new Error(`Argument at position ${index} does not have a value`);
|
|
69
|
+
if (typeof a !== "object") return a;
|
|
70
|
+
return "txn" in a ? a : a instanceof Promise ? {
|
|
71
|
+
txn: (await a).transaction,
|
|
72
|
+
signer
|
|
73
|
+
} : "transaction" in a ? {
|
|
74
|
+
txn: a.transaction,
|
|
75
|
+
signer: "signer" in a ? getSenderTransactionSigner(a.signer) : signer
|
|
76
|
+
} : "txID" in a ? {
|
|
77
|
+
txn: a,
|
|
78
|
+
signer
|
|
79
|
+
} : a;
|
|
80
|
+
}));
|
|
81
|
+
return {
|
|
82
|
+
method: "txnCount" in args.method ? args.method : new ABIMethod(args.method),
|
|
83
|
+
sender: getSenderAddress(from),
|
|
84
|
+
signer,
|
|
85
|
+
boxes: args.boxes?.map(_getBoxReference),
|
|
86
|
+
lease: encodeLease(args.lease),
|
|
87
|
+
appForeignApps: args.apps,
|
|
88
|
+
appForeignAssets: args.assets,
|
|
89
|
+
appAccounts: args.accounts?.map(_getAccountAddress),
|
|
90
|
+
methodArgs,
|
|
91
|
+
rekeyTo: args?.rekeyTo ? typeof args.rekeyTo === "string" ? args.rekeyTo : getSenderAddress(args.rekeyTo) : void 0
|
|
92
|
+
};
|
|
102
93
|
}
|
|
103
94
|
function _getAccountAddress(account) {
|
|
104
|
-
|
|
95
|
+
return typeof account === "string" ? account : algosdk.encodeAddress(account.publicKey);
|
|
105
96
|
}
|
|
106
97
|
/** @deprecated */
|
|
107
98
|
function _getBoxReference(box) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
? ref.name
|
|
119
|
-
: algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,
|
|
120
|
-
};
|
|
99
|
+
const encoder = new TextEncoder();
|
|
100
|
+
if (typeof box === "object" && "appIndex" in box) return box;
|
|
101
|
+
const ref = typeof box === "object" && "appId" in box ? box : {
|
|
102
|
+
appId: 0,
|
|
103
|
+
name: box
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
appIndex: ref.appId,
|
|
107
|
+
name: typeof ref.name === "string" ? encoder.encode(ref.name) : "length" in ref.name ? ref.name : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey
|
|
108
|
+
};
|
|
121
109
|
}
|
|
122
|
-
|
|
110
|
+
//#endregion
|
|
123
111
|
export { _getAppArgsForABICall, _getBoxReference, legacySendAppTransactionBridge, legacySendTransactionBridge };
|
|
124
|
-
|
|
112
|
+
|
|
113
|
+
//# sourceMappingURL=legacy-bridge.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-bridge.mjs","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"legacy-bridge.mjs","names":[],"sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import algosdk from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import modelsv2 = algosdk.modelsv2;
|
|
1
|
+
import algosdk from "algosdk";
|
|
2
|
+
|
|
3
|
+
//#region src/transaction/perform-atomic-transaction-composer-simulate.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Performs a simulation of the transactions loaded into the given AtomicTransactionComposer.
|
|
7
6
|
* Uses empty transaction signers for all transactions.
|
|
@@ -10,4 +9,7 @@ import modelsv2 = algosdk.modelsv2;
|
|
|
10
9
|
* @param algod An Algod client to perform the simulation.
|
|
11
10
|
* @returns The simulation result, which includes various details about how the transactions would be processed.
|
|
12
11
|
*/
|
|
13
|
-
|
|
12
|
+
declare function performAtomicTransactionComposerSimulate(atc: AtomicTransactionComposer, algod: Algodv2, options?: Omit<ConstructorParameters<typeof modelsv2.SimulateRequest>[0], 'txnGroups'>): Promise<algosdk.modelsv2.SimulateResponse>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { performAtomicTransactionComposerSimulate };
|
|
15
|
+
//# sourceMappingURL=perform-atomic-transaction-composer-simulate.d.ts.map
|