@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
package/transfer/transfer.js
CHANGED
|
@@ -1,112 +1,106 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var types_dispenserClient = require('../types/dispenser-client.js');
|
|
7
|
-
|
|
1
|
+
const require_transaction = require("../transaction/transaction.js");
|
|
2
|
+
const require_legacy_bridge = require("../transaction/legacy-bridge.js");
|
|
3
|
+
const require_dispenser_client = require("../types/dispenser-client.js");
|
|
4
|
+
const require_algorand_client = require("../types/algorand-client.js");
|
|
5
|
+
//#region src/transfer/transfer.ts
|
|
8
6
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
* @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`
|
|
8
|
+
* / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead
|
|
9
|
+
*
|
|
10
|
+
* Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).
|
|
11
|
+
*
|
|
12
|
+
* https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr
|
|
13
|
+
*
|
|
14
|
+
* @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.
|
|
15
|
+
* @param algod An instance of the Algodv2 client.
|
|
16
|
+
* @param kmd An optional instance of the Kmd client.
|
|
17
|
+
* @returns
|
|
18
|
+
* - `EnsureFundedReturnType` if funds were transferred.
|
|
19
|
+
* - `undefined` if no funds were needed.
|
|
20
|
+
*/
|
|
23
21
|
async function ensureFunded(funding, algod, kmd) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
amount: Number(result.amountFunded.microAlgo),
|
|
53
|
-
transactionId: result.txIds[0],
|
|
54
|
-
}
|
|
55
|
-
: undefined;
|
|
56
|
-
}
|
|
22
|
+
const algorand = require_algorand_client.AlgorandClient.fromClients({
|
|
23
|
+
algod,
|
|
24
|
+
kmd
|
|
25
|
+
});
|
|
26
|
+
if (funding.fundingSource instanceof require_dispenser_client.TestNetDispenserApiClient) {
|
|
27
|
+
const result = await algorand.account.ensureFundedFromTestNetDispenserApi(require_transaction.getSenderAddress(funding.accountToFund), funding.fundingSource, funding.minSpendingBalance, { minFundingIncrement: funding.minFundingIncrement });
|
|
28
|
+
if (!result) return void 0;
|
|
29
|
+
return {
|
|
30
|
+
amount: Number(result.amountFunded.microAlgo),
|
|
31
|
+
transactionId: result.transactionId
|
|
32
|
+
};
|
|
33
|
+
} else {
|
|
34
|
+
const sender = funding.fundingSource ?? await algorand.account.dispenserFromEnvironment();
|
|
35
|
+
if (funding.fundingSource) algorand.setSignerFromAccount(funding.fundingSource);
|
|
36
|
+
const result = await algorand.account.ensureFunded(require_transaction.getSenderAddress(funding.accountToFund), require_transaction.getSenderAddress(sender), funding.minSpendingBalance, {
|
|
37
|
+
minFundingIncrement: funding.minFundingIncrement,
|
|
38
|
+
note: require_transaction.encodeTransactionNote(funding.note),
|
|
39
|
+
staticFee: funding.fee,
|
|
40
|
+
lease: funding.lease,
|
|
41
|
+
maxFee: funding.maxFee,
|
|
42
|
+
maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,
|
|
43
|
+
suppressLog: funding.suppressLog
|
|
44
|
+
});
|
|
45
|
+
return result ? {
|
|
46
|
+
amount: Number(result.amountFunded.microAlgo),
|
|
47
|
+
transactionId: result.txIds[0]
|
|
48
|
+
} : void 0;
|
|
49
|
+
}
|
|
57
50
|
}
|
|
58
51
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
52
|
+
* @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead
|
|
53
|
+
*
|
|
54
|
+
* Transfer asset between two accounts.
|
|
55
|
+
* @param transfer The transfer definition
|
|
56
|
+
* @param algod An algod client
|
|
57
|
+
* @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)
|
|
58
|
+
*
|
|
59
|
+
* @example Usage example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* await algokit.transferAsset({ from, to, assetId, amount }, algod)
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
71
64
|
async function transferAsset(transfer, algod) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
return require_legacy_bridge.legacySendTransactionBridge(algod, transfer.from, transfer, {
|
|
66
|
+
assetId: BigInt(transfer.assetId),
|
|
67
|
+
sender: require_transaction.getSenderAddress(transfer.from),
|
|
68
|
+
receiver: require_transaction.getSenderAddress(transfer.to),
|
|
69
|
+
clawbackTarget: transfer.clawbackFrom ? require_transaction.getSenderAddress(transfer.clawbackFrom) : void 0,
|
|
70
|
+
amount: BigInt(transfer.amount),
|
|
71
|
+
note: require_transaction.encodeTransactionNote(transfer.note),
|
|
72
|
+
lease: transfer.lease
|
|
73
|
+
}, (c) => c.assetTransfer, (c) => c.assetTransfer);
|
|
81
74
|
}
|
|
82
75
|
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
76
|
+
* @deprecated Use `algorand.account.rekeyAccount()` instead
|
|
77
|
+
*
|
|
78
|
+
* Rekey an account to a new address.
|
|
79
|
+
*
|
|
80
|
+
* **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).
|
|
81
|
+
*
|
|
82
|
+
* @param rekey The rekey definition
|
|
83
|
+
* @param algod An algod client
|
|
84
|
+
* @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)
|
|
85
|
+
*
|
|
86
|
+
* @example Usage example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* await algokit.rekeyAccount({ from, rekeyTo }, algod)
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
98
91
|
async function rekeyAccount(rekey, algod) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
92
|
+
return require_legacy_bridge.legacySendTransactionBridge(algod, rekey.from, rekey, {
|
|
93
|
+
sender: require_transaction.getSenderAddress(rekey.from),
|
|
94
|
+
receiver: require_transaction.getSenderAddress(rekey.from),
|
|
95
|
+
amount: 0 .microAlgo(),
|
|
96
|
+
rekeyTo: typeof rekey.rekeyTo === "string" ? rekey.rekeyTo : require_transaction.getSenderAddress(rekey.rekeyTo),
|
|
97
|
+
note: require_transaction.encodeTransactionNote(rekey.note),
|
|
98
|
+
lease: rekey.lease
|
|
99
|
+
}, (c) => c.payment, (c) => c.payment);
|
|
107
100
|
}
|
|
108
|
-
|
|
101
|
+
//#endregion
|
|
109
102
|
exports.ensureFunded = ensureFunded;
|
|
110
103
|
exports.rekeyAccount = rekeyAccount;
|
|
111
104
|
exports.transferAsset = transferAsset;
|
|
112
|
-
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=transfer.js.map
|
package/transfer/transfer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sources":["../../src/transfer/transfer.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { legacySendTransactionBridge } from '../transaction/legacy-bridge'\nimport { encodeTransactionNote, getSenderAddress } from '../transaction/transaction'\nimport { AlgorandClient } from '../types/algorand-client'\nimport { TestNetDispenserApiClient } from '../types/dispenser-client'\nimport { SendTransactionResult } from '../types/transaction'\nimport { AlgoRekeyParams, EnsureFundedParams, EnsureFundedReturnType, TransferAssetParams } from '../types/transfer'\nimport Algodv2 = algosdk.Algodv2\nimport Kmd = algosdk.Kmd\n\n/**\n * @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`\n * / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead\n *\n * Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).\n *\n * https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr\n *\n * @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.\n * @param algod An instance of the Algodv2 client.\n * @param kmd An optional instance of the Kmd client.\n * @returns\n * - `EnsureFundedReturnType` if funds were transferred.\n * - `undefined` if no funds were needed.\n */\nexport async function ensureFunded<T extends EnsureFundedParams>(\n funding: T,\n algod: Algodv2,\n kmd?: Kmd,\n): Promise<EnsureFundedReturnType | undefined> {\n const algorand = AlgorandClient.fromClients({ algod, kmd })\n\n if (funding.fundingSource instanceof TestNetDispenserApiClient) {\n const result = await algorand.account.ensureFundedFromTestNetDispenserApi(\n getSenderAddress(funding.accountToFund),\n funding.fundingSource,\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n },\n )\n if (!result) return undefined\n return {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.transactionId,\n }\n } else {\n const sender = funding.fundingSource ?? (await algorand.account.dispenserFromEnvironment())\n if (funding.fundingSource) {\n algorand.setSignerFromAccount(funding.fundingSource)\n }\n\n const result = await algorand.account.ensureFunded(\n getSenderAddress(funding.accountToFund),\n getSenderAddress(sender),\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n note: encodeTransactionNote(funding.note),\n staticFee: funding.fee,\n lease: funding.lease,\n maxFee: funding.maxFee,\n maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,\n suppressLog: funding.suppressLog,\n },\n )\n\n return result\n ? {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.txIds[0],\n }\n : undefined\n }\n}\n\n/**\n * @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead\n *\n * Transfer asset between two accounts.\n * @param transfer The transfer definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.transferAsset({ from, to, assetId, amount }, algod)\n * ```\n */\nexport async function transferAsset(transfer: TransferAssetParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n transfer.from,\n transfer,\n {\n assetId: BigInt(transfer.assetId),\n sender: getSenderAddress(transfer.from),\n receiver: getSenderAddress(transfer.to),\n clawbackTarget: transfer.clawbackFrom ? getSenderAddress(transfer.clawbackFrom) : undefined,\n amount: BigInt(transfer.amount),\n note: encodeTransactionNote(transfer.note),\n lease: transfer.lease,\n },\n (c) => c.assetTransfer,\n (c) => c.assetTransfer,\n )\n}\n\n/**\n * @deprecated Use `algorand.account.rekeyAccount()` instead\n *\n * Rekey an account to a new address.\n *\n * **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).\n *\n * @param rekey The rekey definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.rekeyAccount({ from, rekeyTo }, algod)\n * ```\n */\nexport async function rekeyAccount(rekey: AlgoRekeyParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n rekey.from,\n rekey,\n {\n sender: getSenderAddress(rekey.from),\n receiver: getSenderAddress(rekey.from),\n amount: (0).microAlgo(),\n rekeyTo: typeof rekey.rekeyTo === 'string' ? rekey.rekeyTo : getSenderAddress(rekey.rekeyTo),\n note: encodeTransactionNote(rekey.note),\n lease: rekey.lease,\n },\n (c) => c.payment,\n (c) => c.payment,\n )\n}\n"],"
|
|
1
|
+
{"version":3,"file":"transfer.js","names":["AlgorandClient","TestNetDispenserApiClient","getSenderAddress","encodeTransactionNote","legacySendTransactionBridge"],"sources":["../../src/transfer/transfer.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { legacySendTransactionBridge } from '../transaction/legacy-bridge'\nimport { encodeTransactionNote, getSenderAddress } from '../transaction/transaction'\nimport { AlgorandClient } from '../types/algorand-client'\nimport { TestNetDispenserApiClient } from '../types/dispenser-client'\nimport { SendTransactionResult } from '../types/transaction'\nimport { AlgoRekeyParams, EnsureFundedParams, EnsureFundedReturnType, TransferAssetParams } from '../types/transfer'\nimport Algodv2 = algosdk.Algodv2\nimport Kmd = algosdk.Kmd\n\n/**\n * @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`\n * / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead\n *\n * Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).\n *\n * https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr\n *\n * @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.\n * @param algod An instance of the Algodv2 client.\n * @param kmd An optional instance of the Kmd client.\n * @returns\n * - `EnsureFundedReturnType` if funds were transferred.\n * - `undefined` if no funds were needed.\n */\nexport async function ensureFunded<T extends EnsureFundedParams>(\n funding: T,\n algod: Algodv2,\n kmd?: Kmd,\n): Promise<EnsureFundedReturnType | undefined> {\n const algorand = AlgorandClient.fromClients({ algod, kmd })\n\n if (funding.fundingSource instanceof TestNetDispenserApiClient) {\n const result = await algorand.account.ensureFundedFromTestNetDispenserApi(\n getSenderAddress(funding.accountToFund),\n funding.fundingSource,\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n },\n )\n if (!result) return undefined\n return {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.transactionId,\n }\n } else {\n const sender = funding.fundingSource ?? (await algorand.account.dispenserFromEnvironment())\n if (funding.fundingSource) {\n algorand.setSignerFromAccount(funding.fundingSource)\n }\n\n const result = await algorand.account.ensureFunded(\n getSenderAddress(funding.accountToFund),\n getSenderAddress(sender),\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n note: encodeTransactionNote(funding.note),\n staticFee: funding.fee,\n lease: funding.lease,\n maxFee: funding.maxFee,\n maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,\n suppressLog: funding.suppressLog,\n },\n )\n\n return result\n ? {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.txIds[0],\n }\n : undefined\n }\n}\n\n/**\n * @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead\n *\n * Transfer asset between two accounts.\n * @param transfer The transfer definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.transferAsset({ from, to, assetId, amount }, algod)\n * ```\n */\nexport async function transferAsset(transfer: TransferAssetParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n transfer.from,\n transfer,\n {\n assetId: BigInt(transfer.assetId),\n sender: getSenderAddress(transfer.from),\n receiver: getSenderAddress(transfer.to),\n clawbackTarget: transfer.clawbackFrom ? getSenderAddress(transfer.clawbackFrom) : undefined,\n amount: BigInt(transfer.amount),\n note: encodeTransactionNote(transfer.note),\n lease: transfer.lease,\n },\n (c) => c.assetTransfer,\n (c) => c.assetTransfer,\n )\n}\n\n/**\n * @deprecated Use `algorand.account.rekeyAccount()` instead\n *\n * Rekey an account to a new address.\n *\n * **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).\n *\n * @param rekey The rekey definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.rekeyAccount({ from, rekeyTo }, algod)\n * ```\n */\nexport async function rekeyAccount(rekey: AlgoRekeyParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n rekey.from,\n rekey,\n {\n sender: getSenderAddress(rekey.from),\n receiver: getSenderAddress(rekey.from),\n amount: (0).microAlgo(),\n rekeyTo: typeof rekey.rekeyTo === 'string' ? rekey.rekeyTo : getSenderAddress(rekey.rekeyTo),\n note: encodeTransactionNote(rekey.note),\n lease: rekey.lease,\n },\n (c) => c.payment,\n (c) => c.payment,\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,eAAsB,aACpB,SACA,OACA,KAC6C;CAC7C,MAAM,WAAWA,wBAAAA,eAAe,YAAY;EAAE;EAAO;CAAI,CAAC;CAE1D,IAAI,QAAQ,yBAAyBC,yBAAAA,2BAA2B;EAC9D,MAAM,SAAS,MAAM,SAAS,QAAQ,oCACpCC,oBAAAA,iBAAiB,QAAQ,aAAa,GACtC,QAAQ,eACR,QAAQ,oBACR,EACE,qBAAqB,QAAQ,oBAC/B,CACF;EACA,IAAI,CAAC,QAAQ,OAAO,KAAA;EACpB,OAAO;GACL,QAAQ,OAAO,OAAO,aAAa,SAAS;GAC5C,eAAe,OAAO;EACxB;CACF,OAAO;EACL,MAAM,SAAS,QAAQ,iBAAkB,MAAM,SAAS,QAAQ,yBAAyB;EACzF,IAAI,QAAQ,eACV,SAAS,qBAAqB,QAAQ,aAAa;EAGrD,MAAM,SAAS,MAAM,SAAS,QAAQ,aACpCA,oBAAAA,iBAAiB,QAAQ,aAAa,GACtCA,oBAAAA,iBAAiB,MAAM,GACvB,QAAQ,oBACR;GACE,qBAAqB,QAAQ;GAC7B,MAAMC,oBAAAA,sBAAsB,QAAQ,IAAI;GACxC,WAAW,QAAQ;GACnB,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,gCAAgC,QAAQ;GACxC,aAAa,QAAQ;EACvB,CACF;EAEA,OAAO,SACH;GACE,QAAQ,OAAO,OAAO,aAAa,SAAS;GAC5C,eAAe,OAAO,MAAM;EAC9B,IACA,KAAA;CACN;AACF;;;;;;;;;;;;;;AAeA,eAAsB,cAAc,UAA+B,OAAgD;CACjH,OAAOC,sBAAAA,4BACL,OACA,SAAS,MACT,UACA;EACE,SAAS,OAAO,SAAS,OAAO;EAChC,QAAQF,oBAAAA,iBAAiB,SAAS,IAAI;EACtC,UAAUA,oBAAAA,iBAAiB,SAAS,EAAE;EACtC,gBAAgB,SAAS,eAAeA,oBAAAA,iBAAiB,SAAS,YAAY,IAAI,KAAA;EAClF,QAAQ,OAAO,SAAS,MAAM;EAC9B,MAAMC,oBAAAA,sBAAsB,SAAS,IAAI;EACzC,OAAO,SAAS;CAClB,IACC,MAAM,EAAE,gBACR,MAAM,EAAE,aACX;AACF;;;;;;;;;;;;;;;;;AAkBA,eAAsB,aAAa,OAAwB,OAAgD;CACzG,OAAOC,sBAAAA,4BACL,OACA,MAAM,MACN,OACA;EACE,QAAQF,oBAAAA,iBAAiB,MAAM,IAAI;EACnC,UAAUA,oBAAAA,iBAAiB,MAAM,IAAI;EACrC,QAAS,GAAG,UAAU;EACtB,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAUA,oBAAAA,iBAAiB,MAAM,OAAO;EAC3F,MAAMC,oBAAAA,sBAAsB,MAAM,IAAI;EACtC,OAAO,MAAM;CACf,IACC,MAAM,EAAE,UACR,MAAM,EAAE,OACX;AACF"}
|
package/transfer/transfer.mjs
CHANGED
|
@@ -1,108 +1,104 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { encodeTransactionNote, getSenderAddress } from "../transaction/transaction.mjs";
|
|
2
|
+
import { legacySendTransactionBridge } from "../transaction/legacy-bridge.mjs";
|
|
3
|
+
import { TestNetDispenserApiClient } from "../types/dispenser-client.mjs";
|
|
4
|
+
import { AlgorandClient } from "../types/algorand-client.mjs";
|
|
5
|
+
//#region src/transfer/transfer.ts
|
|
6
6
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
* @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`
|
|
8
|
+
* / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead
|
|
9
|
+
*
|
|
10
|
+
* Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).
|
|
11
|
+
*
|
|
12
|
+
* https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr
|
|
13
|
+
*
|
|
14
|
+
* @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.
|
|
15
|
+
* @param algod An instance of the Algodv2 client.
|
|
16
|
+
* @param kmd An optional instance of the Kmd client.
|
|
17
|
+
* @returns
|
|
18
|
+
* - `EnsureFundedReturnType` if funds were transferred.
|
|
19
|
+
* - `undefined` if no funds were needed.
|
|
20
|
+
*/
|
|
21
21
|
async function ensureFunded(funding, algod, kmd) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
amount: Number(result.amountFunded.microAlgo),
|
|
51
|
-
transactionId: result.txIds[0],
|
|
52
|
-
}
|
|
53
|
-
: undefined;
|
|
54
|
-
}
|
|
22
|
+
const algorand = AlgorandClient.fromClients({
|
|
23
|
+
algod,
|
|
24
|
+
kmd
|
|
25
|
+
});
|
|
26
|
+
if (funding.fundingSource instanceof TestNetDispenserApiClient) {
|
|
27
|
+
const result = await algorand.account.ensureFundedFromTestNetDispenserApi(getSenderAddress(funding.accountToFund), funding.fundingSource, funding.minSpendingBalance, { minFundingIncrement: funding.minFundingIncrement });
|
|
28
|
+
if (!result) return void 0;
|
|
29
|
+
return {
|
|
30
|
+
amount: Number(result.amountFunded.microAlgo),
|
|
31
|
+
transactionId: result.transactionId
|
|
32
|
+
};
|
|
33
|
+
} else {
|
|
34
|
+
const sender = funding.fundingSource ?? await algorand.account.dispenserFromEnvironment();
|
|
35
|
+
if (funding.fundingSource) algorand.setSignerFromAccount(funding.fundingSource);
|
|
36
|
+
const result = await algorand.account.ensureFunded(getSenderAddress(funding.accountToFund), getSenderAddress(sender), funding.minSpendingBalance, {
|
|
37
|
+
minFundingIncrement: funding.minFundingIncrement,
|
|
38
|
+
note: encodeTransactionNote(funding.note),
|
|
39
|
+
staticFee: funding.fee,
|
|
40
|
+
lease: funding.lease,
|
|
41
|
+
maxFee: funding.maxFee,
|
|
42
|
+
maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,
|
|
43
|
+
suppressLog: funding.suppressLog
|
|
44
|
+
});
|
|
45
|
+
return result ? {
|
|
46
|
+
amount: Number(result.amountFunded.microAlgo),
|
|
47
|
+
transactionId: result.txIds[0]
|
|
48
|
+
} : void 0;
|
|
49
|
+
}
|
|
55
50
|
}
|
|
56
51
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
52
|
+
* @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead
|
|
53
|
+
*
|
|
54
|
+
* Transfer asset between two accounts.
|
|
55
|
+
* @param transfer The transfer definition
|
|
56
|
+
* @param algod An algod client
|
|
57
|
+
* @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)
|
|
58
|
+
*
|
|
59
|
+
* @example Usage example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* await algokit.transferAsset({ from, to, assetId, amount }, algod)
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
69
64
|
async function transferAsset(transfer, algod) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
65
|
+
return legacySendTransactionBridge(algod, transfer.from, transfer, {
|
|
66
|
+
assetId: BigInt(transfer.assetId),
|
|
67
|
+
sender: getSenderAddress(transfer.from),
|
|
68
|
+
receiver: getSenderAddress(transfer.to),
|
|
69
|
+
clawbackTarget: transfer.clawbackFrom ? getSenderAddress(transfer.clawbackFrom) : void 0,
|
|
70
|
+
amount: BigInt(transfer.amount),
|
|
71
|
+
note: encodeTransactionNote(transfer.note),
|
|
72
|
+
lease: transfer.lease
|
|
73
|
+
}, (c) => c.assetTransfer, (c) => c.assetTransfer);
|
|
79
74
|
}
|
|
80
75
|
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
76
|
+
* @deprecated Use `algorand.account.rekeyAccount()` instead
|
|
77
|
+
*
|
|
78
|
+
* Rekey an account to a new address.
|
|
79
|
+
*
|
|
80
|
+
* **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).
|
|
81
|
+
*
|
|
82
|
+
* @param rekey The rekey definition
|
|
83
|
+
* @param algod An algod client
|
|
84
|
+
* @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)
|
|
85
|
+
*
|
|
86
|
+
* @example Usage example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* await algokit.rekeyAccount({ from, rekeyTo }, algod)
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
96
91
|
async function rekeyAccount(rekey, algod) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
92
|
+
return legacySendTransactionBridge(algod, rekey.from, rekey, {
|
|
93
|
+
sender: getSenderAddress(rekey.from),
|
|
94
|
+
receiver: getSenderAddress(rekey.from),
|
|
95
|
+
amount: 0 .microAlgo(),
|
|
96
|
+
rekeyTo: typeof rekey.rekeyTo === "string" ? rekey.rekeyTo : getSenderAddress(rekey.rekeyTo),
|
|
97
|
+
note: encodeTransactionNote(rekey.note),
|
|
98
|
+
lease: rekey.lease
|
|
99
|
+
}, (c) => c.payment, (c) => c.payment);
|
|
105
100
|
}
|
|
106
|
-
|
|
101
|
+
//#endregion
|
|
107
102
|
export { ensureFunded, rekeyAccount, transferAsset };
|
|
108
|
-
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=transfer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.mjs","sources":["../../src/transfer/transfer.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { legacySendTransactionBridge } from '../transaction/legacy-bridge'\nimport { encodeTransactionNote, getSenderAddress } from '../transaction/transaction'\nimport { AlgorandClient } from '../types/algorand-client'\nimport { TestNetDispenserApiClient } from '../types/dispenser-client'\nimport { SendTransactionResult } from '../types/transaction'\nimport { AlgoRekeyParams, EnsureFundedParams, EnsureFundedReturnType, TransferAssetParams } from '../types/transfer'\nimport Algodv2 = algosdk.Algodv2\nimport Kmd = algosdk.Kmd\n\n/**\n * @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`\n * / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead\n *\n * Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).\n *\n * https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr\n *\n * @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.\n * @param algod An instance of the Algodv2 client.\n * @param kmd An optional instance of the Kmd client.\n * @returns\n * - `EnsureFundedReturnType` if funds were transferred.\n * - `undefined` if no funds were needed.\n */\nexport async function ensureFunded<T extends EnsureFundedParams>(\n funding: T,\n algod: Algodv2,\n kmd?: Kmd,\n): Promise<EnsureFundedReturnType | undefined> {\n const algorand = AlgorandClient.fromClients({ algod, kmd })\n\n if (funding.fundingSource instanceof TestNetDispenserApiClient) {\n const result = await algorand.account.ensureFundedFromTestNetDispenserApi(\n getSenderAddress(funding.accountToFund),\n funding.fundingSource,\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n },\n )\n if (!result) return undefined\n return {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.transactionId,\n }\n } else {\n const sender = funding.fundingSource ?? (await algorand.account.dispenserFromEnvironment())\n if (funding.fundingSource) {\n algorand.setSignerFromAccount(funding.fundingSource)\n }\n\n const result = await algorand.account.ensureFunded(\n getSenderAddress(funding.accountToFund),\n getSenderAddress(sender),\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n note: encodeTransactionNote(funding.note),\n staticFee: funding.fee,\n lease: funding.lease,\n maxFee: funding.maxFee,\n maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,\n suppressLog: funding.suppressLog,\n },\n )\n\n return result\n ? {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.txIds[0],\n }\n : undefined\n }\n}\n\n/**\n * @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead\n *\n * Transfer asset between two accounts.\n * @param transfer The transfer definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.transferAsset({ from, to, assetId, amount }, algod)\n * ```\n */\nexport async function transferAsset(transfer: TransferAssetParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n transfer.from,\n transfer,\n {\n assetId: BigInt(transfer.assetId),\n sender: getSenderAddress(transfer.from),\n receiver: getSenderAddress(transfer.to),\n clawbackTarget: transfer.clawbackFrom ? getSenderAddress(transfer.clawbackFrom) : undefined,\n amount: BigInt(transfer.amount),\n note: encodeTransactionNote(transfer.note),\n lease: transfer.lease,\n },\n (c) => c.assetTransfer,\n (c) => c.assetTransfer,\n )\n}\n\n/**\n * @deprecated Use `algorand.account.rekeyAccount()` instead\n *\n * Rekey an account to a new address.\n *\n * **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).\n *\n * @param rekey The rekey definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.rekeyAccount({ from, rekeyTo }, algod)\n * ```\n */\nexport async function rekeyAccount(rekey: AlgoRekeyParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n rekey.from,\n rekey,\n {\n sender: getSenderAddress(rekey.from),\n receiver: getSenderAddress(rekey.from),\n amount: (0).microAlgo(),\n rekeyTo: typeof rekey.rekeyTo === 'string' ? rekey.rekeyTo : getSenderAddress(rekey.rekeyTo),\n note: encodeTransactionNote(rekey.note),\n lease: rekey.lease,\n },\n (c) => c.payment,\n (c) => c.payment,\n )\n}\n"],"
|
|
1
|
+
{"version":3,"file":"transfer.mjs","names":[],"sources":["../../src/transfer/transfer.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { legacySendTransactionBridge } from '../transaction/legacy-bridge'\nimport { encodeTransactionNote, getSenderAddress } from '../transaction/transaction'\nimport { AlgorandClient } from '../types/algorand-client'\nimport { TestNetDispenserApiClient } from '../types/dispenser-client'\nimport { SendTransactionResult } from '../types/transaction'\nimport { AlgoRekeyParams, EnsureFundedParams, EnsureFundedReturnType, TransferAssetParams } from '../types/transfer'\nimport Algodv2 = algosdk.Algodv2\nimport Kmd = algosdk.Kmd\n\n/**\n * @deprecated Use `algorand.account.ensureFunded()` / `algorand.account.ensureFundedFromEnvironment()`\n * / `algorand.account.ensureFundedFromTestNetDispenserApi()` instead\n *\n * Funds a given account using a funding source such that it has a certain amount of Algo free to spend (accounting for Algo locked in minimum balance requirement).\n *\n * https://dev.algorand.co/concepts/smart-contracts/costs-constraints#mbr\n *\n * @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.\n * @param algod An instance of the Algodv2 client.\n * @param kmd An optional instance of the Kmd client.\n * @returns\n * - `EnsureFundedReturnType` if funds were transferred.\n * - `undefined` if no funds were needed.\n */\nexport async function ensureFunded<T extends EnsureFundedParams>(\n funding: T,\n algod: Algodv2,\n kmd?: Kmd,\n): Promise<EnsureFundedReturnType | undefined> {\n const algorand = AlgorandClient.fromClients({ algod, kmd })\n\n if (funding.fundingSource instanceof TestNetDispenserApiClient) {\n const result = await algorand.account.ensureFundedFromTestNetDispenserApi(\n getSenderAddress(funding.accountToFund),\n funding.fundingSource,\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n },\n )\n if (!result) return undefined\n return {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.transactionId,\n }\n } else {\n const sender = funding.fundingSource ?? (await algorand.account.dispenserFromEnvironment())\n if (funding.fundingSource) {\n algorand.setSignerFromAccount(funding.fundingSource)\n }\n\n const result = await algorand.account.ensureFunded(\n getSenderAddress(funding.accountToFund),\n getSenderAddress(sender),\n funding.minSpendingBalance,\n {\n minFundingIncrement: funding.minFundingIncrement,\n note: encodeTransactionNote(funding.note),\n staticFee: funding.fee,\n lease: funding.lease,\n maxFee: funding.maxFee,\n maxRoundsToWaitForConfirmation: funding.maxRoundsToWaitForConfirmation,\n suppressLog: funding.suppressLog,\n },\n )\n\n return result\n ? {\n amount: Number(result.amountFunded.microAlgo),\n transactionId: result.txIds[0],\n }\n : undefined\n }\n}\n\n/**\n * @deprecated Use `algorand.send.assetTransfer()` / `algorand.createTransaction.assetTransfer()` instead\n *\n * Transfer asset between two accounts.\n * @param transfer The transfer definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.transferAsset({ from, to, assetId, amount }, algod)\n * ```\n */\nexport async function transferAsset(transfer: TransferAssetParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n transfer.from,\n transfer,\n {\n assetId: BigInt(transfer.assetId),\n sender: getSenderAddress(transfer.from),\n receiver: getSenderAddress(transfer.to),\n clawbackTarget: transfer.clawbackFrom ? getSenderAddress(transfer.clawbackFrom) : undefined,\n amount: BigInt(transfer.amount),\n note: encodeTransactionNote(transfer.note),\n lease: transfer.lease,\n },\n (c) => c.assetTransfer,\n (c) => c.assetTransfer,\n )\n}\n\n/**\n * @deprecated Use `algorand.account.rekeyAccount()` instead\n *\n * Rekey an account to a new address.\n *\n * **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://dev.algorand.co/concepts/accounts/rekeying).\n *\n * @param rekey The rekey definition\n * @param algod An algod client\n * @returns The transaction object and optionally the confirmation if it was sent to the chain (`skipSending` is `false` or unset)\n *\n * @example Usage example\n * ```typescript\n * await algokit.rekeyAccount({ from, rekeyTo }, algod)\n * ```\n */\nexport async function rekeyAccount(rekey: AlgoRekeyParams, algod: Algodv2): Promise<SendTransactionResult> {\n return legacySendTransactionBridge(\n algod,\n rekey.from,\n rekey,\n {\n sender: getSenderAddress(rekey.from),\n receiver: getSenderAddress(rekey.from),\n amount: (0).microAlgo(),\n rekeyTo: typeof rekey.rekeyTo === 'string' ? rekey.rekeyTo : getSenderAddress(rekey.rekeyTo),\n note: encodeTransactionNote(rekey.note),\n lease: rekey.lease,\n },\n (c) => c.payment,\n (c) => c.payment,\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,eAAsB,aACpB,SACA,OACA,KAC6C;CAC7C,MAAM,WAAW,eAAe,YAAY;EAAE;EAAO;CAAI,CAAC;CAE1D,IAAI,QAAQ,yBAAyB,2BAA2B;EAC9D,MAAM,SAAS,MAAM,SAAS,QAAQ,oCACpC,iBAAiB,QAAQ,aAAa,GACtC,QAAQ,eACR,QAAQ,oBACR,EACE,qBAAqB,QAAQ,oBAC/B,CACF;EACA,IAAI,CAAC,QAAQ,OAAO,KAAA;EACpB,OAAO;GACL,QAAQ,OAAO,OAAO,aAAa,SAAS;GAC5C,eAAe,OAAO;EACxB;CACF,OAAO;EACL,MAAM,SAAS,QAAQ,iBAAkB,MAAM,SAAS,QAAQ,yBAAyB;EACzF,IAAI,QAAQ,eACV,SAAS,qBAAqB,QAAQ,aAAa;EAGrD,MAAM,SAAS,MAAM,SAAS,QAAQ,aACpC,iBAAiB,QAAQ,aAAa,GACtC,iBAAiB,MAAM,GACvB,QAAQ,oBACR;GACE,qBAAqB,QAAQ;GAC7B,MAAM,sBAAsB,QAAQ,IAAI;GACxC,WAAW,QAAQ;GACnB,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,gCAAgC,QAAQ;GACxC,aAAa,QAAQ;EACvB,CACF;EAEA,OAAO,SACH;GACE,QAAQ,OAAO,OAAO,aAAa,SAAS;GAC5C,eAAe,OAAO,MAAM;EAC9B,IACA,KAAA;CACN;AACF;;;;;;;;;;;;;;AAeA,eAAsB,cAAc,UAA+B,OAAgD;CACjH,OAAO,4BACL,OACA,SAAS,MACT,UACA;EACE,SAAS,OAAO,SAAS,OAAO;EAChC,QAAQ,iBAAiB,SAAS,IAAI;EACtC,UAAU,iBAAiB,SAAS,EAAE;EACtC,gBAAgB,SAAS,eAAe,iBAAiB,SAAS,YAAY,IAAI,KAAA;EAClF,QAAQ,OAAO,SAAS,MAAM;EAC9B,MAAM,sBAAsB,SAAS,IAAI;EACzC,OAAO,SAAS;CAClB,IACC,MAAM,EAAE,gBACR,MAAM,EAAE,aACX;AACF;;;;;;;;;;;;;;;;;AAkBA,eAAsB,aAAa,OAAwB,OAAgD;CACzG,OAAO,4BACL,OACA,MAAM,MACN,OACA;EACE,QAAQ,iBAAiB,MAAM,IAAI;EACnC,UAAU,iBAAiB,MAAM,IAAI;EACrC,QAAS,GAAG,UAAU;EACtB,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,iBAAiB,MAAM,OAAO;EAC3F,MAAM,sBAAsB,MAAM,IAAI;EACtC,OAAO,MAAM;CACf,IACC,MAAM,EAAE,UACR,MAAM,EAAE,OACX;AACF"}
|