@algorandfoundation/algokit-utils 6.2.1-beta.1 → 6.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/account.d.ts +13 -5
- package/account/account.d.ts.map +1 -1
- package/account/account.js +26 -6
- package/account/account.js.map +1 -1
- package/account/account.mjs +26 -6
- package/account/account.mjs.map +1 -1
- package/account/get-account.d.ts +4 -4
- package/account/get-account.js +2 -2
- package/account/get-account.mjs +2 -2
- package/amount.d.ts +28 -6
- package/amount.d.ts.map +1 -1
- package/amount.js +31 -11
- package/amount.js.map +1 -1
- package/amount.mjs +30 -12
- package/amount.mjs.map +1 -1
- package/asset.d.ts +10 -0
- package/asset.d.ts.map +1 -1
- package/asset.js +71 -198
- package/asset.js.map +1 -1
- package/asset.mjs +72 -199
- package/asset.mjs.map +1 -1
- package/dispenser-client.d.ts +1 -1
- package/dispenser-client.js +2 -2
- package/dispenser-client.js.map +1 -1
- package/dispenser-client.mjs +2 -2
- package/dispenser-client.mjs.map +1 -1
- package/index.d.ts +4 -3
- package/index.d.ts.map +1 -1
- package/index.js +11 -8
- package/index.js.map +1 -1
- package/index.mjs +6 -4
- package/index.mjs.map +1 -1
- package/localnet/get-or-create-kmd-wallet-account.d.ts +1 -1
- package/localnet/get-or-create-kmd-wallet-account.js +1 -1
- package/localnet/get-or-create-kmd-wallet-account.mjs +1 -1
- package/package.json +3 -2
- package/testing/_asset.d.ts +2 -4
- package/testing/_asset.d.ts.map +1 -1
- package/testing/account.js +8 -2
- package/testing/account.js.map +1 -1
- package/testing/account.mjs +8 -2
- package/testing/account.mjs.map +1 -1
- package/testing/fixtures/algorand-fixture.d.ts +1 -1
- package/testing/fixtures/algorand-fixture.js +7 -2
- package/testing/fixtures/algorand-fixture.js.map +1 -1
- package/testing/fixtures/algorand-fixture.mjs +7 -2
- package/testing/fixtures/algorand-fixture.mjs.map +1 -1
- package/transaction/legacy-bridge.d.ts +10 -0
- package/transaction/legacy-bridge.d.ts.map +1 -0
- package/transaction/legacy-bridge.js +35 -0
- package/transaction/legacy-bridge.js.map +1 -0
- package/transaction/legacy-bridge.mjs +33 -0
- package/transaction/legacy-bridge.mjs.map +1 -0
- package/transaction/transaction.d.ts +1 -1
- package/transaction/transaction.js +5 -5
- package/transaction/transaction.js.map +1 -1
- package/transaction/transaction.mjs +5 -5
- package/transaction/transaction.mjs.map +1 -1
- package/transfer/transfer-algos.d.ts +4 -2
- package/transfer/transfer-algos.d.ts.map +1 -1
- package/transfer/transfer-algos.js +13 -22
- package/transfer/transfer-algos.js.map +1 -1
- package/transfer/transfer-algos.mjs +14 -23
- package/transfer/transfer-algos.mjs.map +1 -1
- package/transfer/transfer.d.ts +8 -1
- package/transfer/transfer.d.ts.map +1 -1
- package/transfer/transfer.js +57 -94
- package/transfer/transfer.js.map +1 -1
- package/transfer/transfer.mjs +58 -95
- package/transfer/transfer.mjs.map +1 -1
- package/types/account-manager.d.ts +141 -24
- package/types/account-manager.d.ts.map +1 -1
- package/types/account-manager.js +217 -44
- package/types/account-manager.js.map +1 -1
- package/types/account-manager.mjs +216 -43
- package/types/account-manager.mjs.map +1 -1
- package/types/account.d.ts +122 -7
- package/types/account.d.ts.map +1 -1
- package/types/account.js.map +1 -1
- package/types/account.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +289 -0
- package/types/algorand-client-transaction-creator.d.ts.map +1 -0
- package/types/algorand-client-transaction-creator.js +299 -0
- package/types/algorand-client-transaction-creator.js.map +1 -0
- package/types/algorand-client-transaction-creator.mjs +297 -0
- package/types/algorand-client-transaction-creator.mjs.map +1 -0
- package/types/algorand-client-transaction-sender.d.ts +433 -0
- package/types/algorand-client-transaction-sender.d.ts.map +1 -0
- package/types/algorand-client-transaction-sender.js +422 -0
- package/types/algorand-client-transaction-sender.js.map +1 -0
- package/types/algorand-client-transaction-sender.mjs +420 -0
- package/types/algorand-client-transaction-sender.mjs.map +1 -0
- package/types/algorand-client.d.ts +28 -78
- package/types/algorand-client.d.ts.map +1 -1
- package/types/algorand-client.js +33 -122
- package/types/algorand-client.js.map +1 -1
- package/types/algorand-client.mjs +34 -123
- package/types/algorand-client.mjs.map +1 -1
- package/types/amount.d.ts +18 -6
- package/types/amount.d.ts.map +1 -1
- package/types/amount.js +33 -10
- package/types/amount.js.map +1 -1
- package/types/amount.mjs +33 -10
- package/types/amount.mjs.map +1 -1
- package/types/app-client.d.ts +3 -3
- package/types/app-client.d.ts.map +1 -1
- package/types/app-client.js +7 -10
- package/types/app-client.js.map +1 -1
- package/types/app-client.mjs +8 -11
- package/types/app-client.mjs.map +1 -1
- package/types/asset-manager.d.ts +205 -0
- package/types/asset-manager.d.ts.map +1 -0
- package/types/asset-manager.js +180 -0
- package/types/asset-manager.js.map +1 -0
- package/types/asset-manager.mjs +178 -0
- package/types/asset-manager.mjs.map +1 -0
- package/types/asset.d.ts +4 -4
- package/types/asset.d.ts.map +1 -1
- package/types/client-manager.d.ts +40 -2
- package/types/client-manager.d.ts.map +1 -1
- package/types/client-manager.js +44 -3
- package/types/client-manager.js.map +1 -1
- package/types/client-manager.mjs +44 -3
- package/types/client-manager.mjs.map +1 -1
- package/types/composer.d.ts +226 -68
- package/types/composer.d.ts.map +1 -1
- package/types/composer.js +78 -64
- package/types/composer.js.map +1 -1
- package/types/composer.mjs +75 -64
- package/types/composer.mjs.map +1 -1
- package/types/dispenser-client.d.ts +12 -4
- package/types/dispenser-client.d.ts.map +1 -1
- package/types/dispenser-client.js +9 -9
- package/types/dispenser-client.js.map +1 -1
- package/types/dispenser-client.mjs +9 -9
- package/types/dispenser-client.mjs.map +1 -1
- package/types/indexer.d.ts +7 -7
- package/types/indexer.d.ts.map +1 -1
- package/types/kmd-account-manager.d.ts +3 -3
- package/types/kmd-account-manager.js +6 -6
- package/types/kmd-account-manager.js.map +1 -1
- package/types/kmd-account-manager.mjs +7 -7
- package/types/kmd-account-manager.mjs.map +1 -1
- package/types/network-client.d.ts +7 -1
- package/types/network-client.d.ts.map +1 -1
- package/types/network-client.js +10 -0
- package/types/network-client.js.map +1 -1
- package/types/network-client.mjs +9 -0
- package/types/network-client.mjs.map +1 -1
- package/types/testing.d.ts +1 -1
- package/types/testing.d.ts.map +1 -1
- package/types/transfer.d.ts +8 -7
- package/types/transfer.d.ts.map +1 -1
- package/util.d.ts +13 -0
- package/util.d.ts.map +1 -1
- package/util.js +25 -0
- package/util.js.map +1 -1
- package/util.mjs +24 -1
- package/util.mjs.map +1 -1
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import algosdk from 'algosdk';
|
|
2
|
+
import { Config } from '../config.mjs';
|
|
3
|
+
import { memoize, calculateFundAmount } from '../util.mjs';
|
|
2
4
|
import { SigningAccount, MultisigAccount, DISPENSER_ACCOUNT } from './account.mjs';
|
|
5
|
+
import { AlgoAmount } from './amount.mjs';
|
|
6
|
+
import AlgoKitComposer from './composer.mjs';
|
|
3
7
|
import { KmdAccountManager } from './kmd-account-manager.mjs';
|
|
4
8
|
|
|
5
9
|
var LogicSigAccount = algosdk.LogicSigAccount;
|
|
6
10
|
var AccountInformationModel = algosdk.modelsv2.Account;
|
|
7
|
-
const memoize = (fn) => {
|
|
8
|
-
const cache = new Map();
|
|
9
|
-
const cached = function (val) {
|
|
10
|
-
return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
|
|
11
|
-
};
|
|
12
|
-
cached.cache = cache;
|
|
13
|
-
return cached;
|
|
14
|
-
};
|
|
15
11
|
/**
|
|
16
12
|
* Returns a `TransactionSigner` for the given account that can sign a transaction.
|
|
17
13
|
* This function has memoization, so will return the same transaction signer for a given account.
|
|
@@ -40,6 +36,13 @@ class AccountManager {
|
|
|
40
36
|
this._clientManager = clientManager;
|
|
41
37
|
this._kmdAccountManager = new KmdAccountManager(clientManager);
|
|
42
38
|
}
|
|
39
|
+
_getComposer(getSuggestedParams) {
|
|
40
|
+
return new AlgoKitComposer({
|
|
41
|
+
algod: this._clientManager.algod,
|
|
42
|
+
getSigner: this.getSigner.bind(this),
|
|
43
|
+
getSuggestedParams: getSuggestedParams ?? (() => this._clientManager.algod.getTransactionParams().do()),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
43
46
|
/** KMD account manager that allows you to easily get and create accounts using KMD. */
|
|
44
47
|
get kmd() {
|
|
45
48
|
return this._kmdAccountManager;
|
|
@@ -170,12 +173,12 @@ class AccountManager {
|
|
|
170
173
|
return {
|
|
171
174
|
...account,
|
|
172
175
|
// None of these can practically overflow 2^53
|
|
173
|
-
|
|
174
|
-
amountWithoutPendingRewards: Number(account.amountWithoutPendingRewards),
|
|
175
|
-
minBalance: Number(account.minBalance),
|
|
176
|
-
pendingRewards: Number(account.pendingRewards),
|
|
177
|
-
rewards: Number(account.rewards),
|
|
178
|
-
|
|
176
|
+
balance: AlgoAmount.MicroAlgo(Number(account.amount)),
|
|
177
|
+
amountWithoutPendingRewards: AlgoAmount.MicroAlgo(Number(account.amountWithoutPendingRewards)),
|
|
178
|
+
minBalance: AlgoAmount.MicroAlgo(Number(account.minBalance)),
|
|
179
|
+
pendingRewards: AlgoAmount.MicroAlgo(Number(account.pendingRewards)),
|
|
180
|
+
rewards: AlgoAmount.MicroAlgo(Number(account.rewards)),
|
|
181
|
+
validAsOfRound: BigInt(account.round),
|
|
179
182
|
totalAppsOptedIn: Number(account.totalAppsOptedIn),
|
|
180
183
|
totalAssetsOptedIn: Number(account.totalAssetsOptedIn),
|
|
181
184
|
totalCreatedApps: Number(account.totalCreatedApps),
|
|
@@ -186,32 +189,6 @@ class AccountManager {
|
|
|
186
189
|
totalBoxes: account.totalBoxes ? Number(account.totalBoxes) : undefined,
|
|
187
190
|
};
|
|
188
191
|
}
|
|
189
|
-
/**
|
|
190
|
-
* Returns the given sender account's asset holding for a given asset.
|
|
191
|
-
*
|
|
192
|
-
* @example
|
|
193
|
-
* ```typescript
|
|
194
|
-
* const address = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
|
|
195
|
-
* const assetId = 123345;
|
|
196
|
-
* const accountInfo = await accountManager.getAssetInformation(address, assetId);
|
|
197
|
-
* ```
|
|
198
|
-
*
|
|
199
|
-
* [Response data schema details](https://developer.algorand.org/docs/rest-apis/algod/#get-v2accountsaddressassetsasset-id)
|
|
200
|
-
* @param sender The address of the sender/account to look up
|
|
201
|
-
* @param assetId The ID of the asset to return a holding for
|
|
202
|
-
* @returns The account asset holding information
|
|
203
|
-
*/
|
|
204
|
-
async getAssetInformation(sender, assetId) {
|
|
205
|
-
const info = await this._clientManager.algod
|
|
206
|
-
.accountAssetInformation(typeof sender === 'string' ? sender : sender.addr, Number(assetId))
|
|
207
|
-
.do();
|
|
208
|
-
return {
|
|
209
|
-
assetId: BigInt(assetId),
|
|
210
|
-
balance: BigInt(info['asset-holding']['amount']),
|
|
211
|
-
frozen: info['asset-holding']['is-frozen'] === true,
|
|
212
|
-
round: BigInt(info['round']),
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
192
|
/**
|
|
216
193
|
* Tracks and returns an Algorand account with secret key loaded (i.e. that can sign transactions) by taking the mnemonic secret.
|
|
217
194
|
*
|
|
@@ -241,7 +218,7 @@ class AccountManager {
|
|
|
241
218
|
* @param sender The sender address to use as the new sender
|
|
242
219
|
* @returns The account
|
|
243
220
|
*/
|
|
244
|
-
rekeyed(
|
|
221
|
+
rekeyed(sender, account) {
|
|
245
222
|
return this.signerAccount({ addr: sender, signer: account.signer });
|
|
246
223
|
}
|
|
247
224
|
/**
|
|
@@ -264,11 +241,11 @@ class AccountManager {
|
|
|
264
241
|
* const account = await accountManager.fromEnvironment('MY_ACCOUNT')
|
|
265
242
|
* ```
|
|
266
243
|
*
|
|
267
|
-
* If that code runs against LocalNet then a wallet called `MY_ACCOUNT` will automatically be created with an account that is automatically funded with 1000 (default)
|
|
244
|
+
* If that code runs against LocalNet then a wallet called `MY_ACCOUNT` will automatically be created with an account that is automatically funded with 1000 (default) ALGO from the default LocalNet dispenser.
|
|
268
245
|
* If not running against LocalNet then it will use proces.env.MY_ACCOUNT_MNEMONIC as the private key and (if present) process.env.MY_ACCOUNT_SENDER as the sender address.
|
|
269
246
|
*
|
|
270
247
|
* @param name The name identifier of the account
|
|
271
|
-
* @param fundWith The optional amount to fund the account with when it gets created (when targeting LocalNet), if not specified then 1000
|
|
248
|
+
* @param fundWith The optional amount to fund the account with when it gets created (when targeting LocalNet), if not specified then 1000 ALGO will be funded from the dispenser account
|
|
272
249
|
* @returns The account
|
|
273
250
|
*/
|
|
274
251
|
async fromEnvironment(name, fundWith) {
|
|
@@ -388,6 +365,202 @@ class AccountManager {
|
|
|
388
365
|
const dispenser = await this._kmdAccountManager.getLocalNetDispenserAccount();
|
|
389
366
|
return this.signerAccount(dispenser.account);
|
|
390
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Rekey an account to a new address.
|
|
370
|
+
*
|
|
371
|
+
* **Note:** Please be careful with this function and be sure to read the [official rekey guidance](https://developer.algorand.org/docs/get-details/accounts/rekey/).
|
|
372
|
+
*
|
|
373
|
+
* @param account The account to rekey
|
|
374
|
+
* @param rekeyTo The account address or signing account of the account that will be used to authorise transactions for the rekeyed account going forward.
|
|
375
|
+
* If a signing account is provided that will now be tracked as the signer for `account` in this `AccountManager`
|
|
376
|
+
* @param options Any parameters to control the transaction or execution of the transaction
|
|
377
|
+
*
|
|
378
|
+
* @example Basic example (with string addresses)
|
|
379
|
+
* ```typescript
|
|
380
|
+
* await algorand.account.rekeyAccount({account: "ACCOUNTADDRESS", rekeyTo: "NEWADDRESS"})
|
|
381
|
+
* ```
|
|
382
|
+
* @example Basic example (with signer accounts)
|
|
383
|
+
* ```typescript
|
|
384
|
+
* await algorand.account.rekeyAccount({account: account1, rekeyTo: newSignerAccount})
|
|
385
|
+
* ```
|
|
386
|
+
* @example Advanced example
|
|
387
|
+
* ```typescript
|
|
388
|
+
* await algorand.account.rekeyAccount({
|
|
389
|
+
* account: "ACCOUNTADDRESS",
|
|
390
|
+
* rekeyTo: "NEWADDRESS",
|
|
391
|
+
* lease: 'lease',
|
|
392
|
+
* note: 'note',
|
|
393
|
+
* firstValidRound: 1000n,
|
|
394
|
+
* validityWindow: 10,
|
|
395
|
+
* extraFee: (1000).microAlgo(),
|
|
396
|
+
* staticFee: (1000).microAlgo(),
|
|
397
|
+
* // Max fee doesn't make sense with extraFee AND staticFee
|
|
398
|
+
* // already specified, but here for completeness
|
|
399
|
+
* maxFee: (3000).microAlgo(),
|
|
400
|
+
* maxRoundsToWaitForConfirmation: 5,
|
|
401
|
+
* suppressLog: true,
|
|
402
|
+
* })
|
|
403
|
+
* ```
|
|
404
|
+
* @returns The result of the transaction and the transaction that was sent
|
|
405
|
+
*/
|
|
406
|
+
async rekeyAccount(account, rekeyTo, options) {
|
|
407
|
+
const result = await this._getComposer()
|
|
408
|
+
.addPayment({
|
|
409
|
+
...options,
|
|
410
|
+
sender: typeof account === 'string' ? account : account.addr,
|
|
411
|
+
receiver: typeof account === 'string' ? account : account.addr,
|
|
412
|
+
amount: AlgoAmount.MicroAlgo(0),
|
|
413
|
+
rekeyTo: typeof rekeyTo === 'string' ? rekeyTo : rekeyTo.addr,
|
|
414
|
+
})
|
|
415
|
+
.execute(options);
|
|
416
|
+
// If the rekey is a signing account set it as the signer for this account
|
|
417
|
+
if (typeof rekeyTo !== 'string') {
|
|
418
|
+
this.rekeyed(typeof account === 'string' ? account : account.addr, rekeyTo);
|
|
419
|
+
}
|
|
420
|
+
Config.getLogger(options?.suppressLog).info(`Rekeyed ${account} to ${rekeyTo} via transaction ${result.txIds.at(-1)}`);
|
|
421
|
+
return { ...result, transaction: result.transactions.at(-1), confirmation: result.confirmations.at(-1) };
|
|
422
|
+
}
|
|
423
|
+
async _getEnsureFundedAmount(sender, minSpendingBalance, minFundingIncrement) {
|
|
424
|
+
const accountInfo = await this.getInformation(sender);
|
|
425
|
+
const currentSpendingBalance = accountInfo.balance.microAlgo - accountInfo.minBalance.microAlgo;
|
|
426
|
+
const amountFunded = calculateFundAmount(minSpendingBalance.microAlgo, currentSpendingBalance, minFundingIncrement?.microAlgo ?? 0);
|
|
427
|
+
return amountFunded === null ? undefined : AlgoAmount.MicroAlgo(amountFunded);
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Funds a given account using a dispenser account as a funding source such that
|
|
431
|
+
* the given account has a certain amount of Algo free to spend (accounting for
|
|
432
|
+
* Algo locked in minimum balance requirement).
|
|
433
|
+
*
|
|
434
|
+
* https://developer.algorand.org/docs/get-details/accounts/#minimum-balance
|
|
435
|
+
*
|
|
436
|
+
* @param accountToFund The account to fund
|
|
437
|
+
* @param dispenserAccount The account to use as a dispenser funding source
|
|
438
|
+
* @param minSpendingBalance The minimum balance of Algo that the account should have available to spend (i.e. on top of minimum balance requirement)
|
|
439
|
+
* @param options Optional parameters to control the funding increment, transaction or execution of the transaction
|
|
440
|
+
* @example Example using AlgorandClient
|
|
441
|
+
* ```typescript
|
|
442
|
+
* // Basic example
|
|
443
|
+
* await algorand.account.ensureFunded("ACCOUNTADDRESS", "DISPENSERADDRESS", algokit.algo(1))
|
|
444
|
+
* // With configuration
|
|
445
|
+
* await algorand.account.ensureFunded("ACCOUNTADDRESS", "DISPENSERADDRESS", algokit.algo(1),
|
|
446
|
+
* { minFundingIncrement: algokit.algo(2), fee: (1000).microAlgo(), suppressLog: true }
|
|
447
|
+
* )
|
|
448
|
+
* ```
|
|
449
|
+
* @returns
|
|
450
|
+
* - The result of executing the dispensing transaction and the `amountFunded` if funds were needed.
|
|
451
|
+
* - `undefined` if no funds were needed.
|
|
452
|
+
*/
|
|
453
|
+
async ensureFunded(accountToFund, dispenserAccount, minSpendingBalance, options) {
|
|
454
|
+
const addressToFund = typeof accountToFund === 'string' ? accountToFund : accountToFund.addr;
|
|
455
|
+
const amountFunded = await this._getEnsureFundedAmount(addressToFund, minSpendingBalance, options?.minFundingIncrement);
|
|
456
|
+
if (!amountFunded)
|
|
457
|
+
return undefined;
|
|
458
|
+
const result = await this._getComposer()
|
|
459
|
+
.addPayment({
|
|
460
|
+
...options,
|
|
461
|
+
sender: typeof dispenserAccount === 'string' ? dispenserAccount : dispenserAccount.addr,
|
|
462
|
+
receiver: addressToFund,
|
|
463
|
+
amount: amountFunded,
|
|
464
|
+
})
|
|
465
|
+
.execute(options);
|
|
466
|
+
return {
|
|
467
|
+
...result,
|
|
468
|
+
transaction: result.transactions[0],
|
|
469
|
+
confirmation: result.confirmations[0],
|
|
470
|
+
transactionId: result.txIds[0],
|
|
471
|
+
amountFunded: amountFunded,
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Funds a given account using a dispenser account retrieved from the environment,
|
|
476
|
+
* per the `dispenserFromEnvironment` method, as a funding source such that
|
|
477
|
+
* the given account has a certain amount of Algo free to spend (accounting for
|
|
478
|
+
* Algo locked in minimum balance requirement).
|
|
479
|
+
*
|
|
480
|
+
* **Note:** requires a Node.js environment to execute.
|
|
481
|
+
*
|
|
482
|
+
* The dispenser account is retrieved from the account mnemonic stored in
|
|
483
|
+
* process.env.DISPENSER_MNEMONIC and optionally process.env.DISPENSER_SENDER
|
|
484
|
+
* if it's a rekeyed account, or against default LocalNet if no environment variables present.
|
|
485
|
+
*
|
|
486
|
+
* https://developer.algorand.org/docs/get-details/accounts/#minimum-balance
|
|
487
|
+
*
|
|
488
|
+
* @param accountToFund The account to fund
|
|
489
|
+
* @param minSpendingBalance The minimum balance of Algo that the account should have available to spend (i.e. on top of minimum balance requirement)
|
|
490
|
+
* @param options Optional parameters to control the funding increment, transaction or execution of the transaction
|
|
491
|
+
* @example Example using AlgorandClient
|
|
492
|
+
* ```typescript
|
|
493
|
+
* // Basic example
|
|
494
|
+
* await algorand.account.ensureFundedFromEnvironment("ACCOUNTADDRESS", algokit.algo(1))
|
|
495
|
+
* // With configuration
|
|
496
|
+
* await algorand.account.ensureFundedFromEnvironment("ACCOUNTADDRESS", algokit.algo(1),
|
|
497
|
+
* { minFundingIncrement: algokit.algo(2), fee: (1000).microAlgo(), suppressLog: true }
|
|
498
|
+
* )
|
|
499
|
+
* ```
|
|
500
|
+
* @returns
|
|
501
|
+
* - The result of executing the dispensing transaction and the `amountFunded` if funds were needed.
|
|
502
|
+
* - `undefined` if no funds were needed.
|
|
503
|
+
*/
|
|
504
|
+
async ensureFundedFromEnvironment(accountToFund, minSpendingBalance, options) {
|
|
505
|
+
const addressToFund = typeof accountToFund === 'string' ? accountToFund : accountToFund.addr;
|
|
506
|
+
const dispenserAccount = await this.dispenserFromEnvironment();
|
|
507
|
+
const amountFunded = await this._getEnsureFundedAmount(addressToFund, minSpendingBalance, options?.minFundingIncrement);
|
|
508
|
+
if (!amountFunded)
|
|
509
|
+
return undefined;
|
|
510
|
+
const result = await this._getComposer()
|
|
511
|
+
.addPayment({
|
|
512
|
+
...options,
|
|
513
|
+
sender: dispenserAccount.addr,
|
|
514
|
+
receiver: addressToFund,
|
|
515
|
+
amount: amountFunded,
|
|
516
|
+
})
|
|
517
|
+
.execute(options);
|
|
518
|
+
return {
|
|
519
|
+
...result,
|
|
520
|
+
transaction: result.transactions[0],
|
|
521
|
+
confirmation: result.confirmations[0],
|
|
522
|
+
transactionId: result.txIds[0],
|
|
523
|
+
amountFunded: amountFunded,
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Funds a given account using the TestNet Dispenser API as a funding source such that
|
|
528
|
+
* the account has a certain amount of Algo free to spend (accounting for Algo locked
|
|
529
|
+
* in minimum balance requirement).
|
|
530
|
+
*
|
|
531
|
+
* https://developer.algorand.org/docs/get-details/accounts/#minimum-balance
|
|
532
|
+
*
|
|
533
|
+
* @param accountToFund The account to fund
|
|
534
|
+
* @param dispenserClient The TestNet dispenser funding client
|
|
535
|
+
* @param minSpendingBalance The minimum balance of Algo that the account should have available to spend (i.e. on top of minimum balance requirement)
|
|
536
|
+
* @param options Optional parameters to control the funding increment, transaction or execution of the transaction
|
|
537
|
+
* @example Example using AlgorandClient
|
|
538
|
+
* ```typescript
|
|
539
|
+
* // Basic example
|
|
540
|
+
* await algorand.account.ensureFundedUsingDispenserAPI("ACCOUNTADDRESS", algorand.client.getTestNetDispenserFromEnvironment(), algokit.algo(1))
|
|
541
|
+
* // With configuration
|
|
542
|
+
* await algorand.account.ensureFundedUsingDispenserAPI("ACCOUNTADDRESS", algorand.client.getTestNetDispenserFromEnvironment(), algokit.algo(1),
|
|
543
|
+
* { minFundingIncrement: algokit.algo(2) }
|
|
544
|
+
* )
|
|
545
|
+
* ```
|
|
546
|
+
* @returns
|
|
547
|
+
* - The result of executing the dispensing transaction and the `amountFunded` if funds were needed.
|
|
548
|
+
* - `undefined` if no funds were needed.
|
|
549
|
+
*/
|
|
550
|
+
async ensureFundedFromTestNetDispenserApi(accountToFund, dispenserClient, minSpendingBalance, options) {
|
|
551
|
+
if (!(await this._clientManager.isTestNet())) {
|
|
552
|
+
throw new Error('Attempt to fund using TestNet dispenser API on non TestNet network.');
|
|
553
|
+
}
|
|
554
|
+
const addressToFund = typeof accountToFund === 'string' ? accountToFund : accountToFund.addr;
|
|
555
|
+
const amountFunded = await this._getEnsureFundedAmount(addressToFund, minSpendingBalance, options?.minFundingIncrement);
|
|
556
|
+
if (!amountFunded)
|
|
557
|
+
return undefined;
|
|
558
|
+
const result = await dispenserClient.fund(addressToFund, amountFunded.microAlgo);
|
|
559
|
+
return {
|
|
560
|
+
amountFunded: AlgoAmount.MicroAlgo(result.amount),
|
|
561
|
+
transactionId: result.txId,
|
|
562
|
+
};
|
|
563
|
+
}
|
|
391
564
|
}
|
|
392
565
|
|
|
393
566
|
export { AccountManager, getAccountTransactionSigner };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-manager.mjs","sources":["../../src/types/account-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"account-manager.mjs","sources":["../../src/types/account-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/types/account.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import algosdk from 'algosdk';
|
|
2
|
-
import
|
|
2
|
+
import { AlgoAmount } from './amount';
|
|
3
|
+
import ApplicationLocalState = algosdk.modelsv2.ApplicationLocalState;
|
|
4
|
+
import ApplicationStateSchema = algosdk.modelsv2.ApplicationStateSchema;
|
|
5
|
+
import AssetHolding = algosdk.modelsv2.AssetHolding;
|
|
6
|
+
import Application = algosdk.modelsv2.Application;
|
|
7
|
+
import Asset = algosdk.modelsv2.Asset;
|
|
8
|
+
import AccountParticipation = algosdk.modelsv2.AccountParticipation;
|
|
3
9
|
import Account = algosdk.Account;
|
|
4
10
|
import MultisigMetadata = algosdk.MultisigMetadata;
|
|
5
11
|
import Transaction = algosdk.Transaction;
|
|
@@ -57,12 +63,122 @@ export interface TransactionSignerAccount {
|
|
|
57
63
|
addr: Readonly<string>;
|
|
58
64
|
signer: TransactionSigner;
|
|
59
65
|
}
|
|
60
|
-
type NumberConverter<T extends AccountInformationModel> = {
|
|
61
|
-
[key in keyof T]: ToNumberIfExtends<T[key], number | bigint>;
|
|
62
|
-
};
|
|
63
|
-
type ToNumberIfExtends<K, E> = K extends E ? number : K;
|
|
64
66
|
/** Account information at a given round. */
|
|
65
|
-
export type AccountInformation =
|
|
67
|
+
export type AccountInformation = {
|
|
68
|
+
/**
|
|
69
|
+
* The account public key
|
|
70
|
+
*/
|
|
71
|
+
address: string;
|
|
72
|
+
/** The balance of Algo currently held by the account. */
|
|
73
|
+
balance: AlgoAmount;
|
|
74
|
+
/**
|
|
75
|
+
* The amount of Algo in the account, without the pending rewards.
|
|
76
|
+
*/
|
|
77
|
+
amountWithoutPendingRewards: AlgoAmount;
|
|
78
|
+
/**
|
|
79
|
+
* Algo balance required to be held by the account.
|
|
80
|
+
*
|
|
81
|
+
* The requirement grows based on asset and application usage.
|
|
82
|
+
*/
|
|
83
|
+
minBalance: AlgoAmount;
|
|
84
|
+
/**
|
|
85
|
+
* Amount of Algo of pending rewards in this account.
|
|
86
|
+
*/
|
|
87
|
+
pendingRewards: AlgoAmount;
|
|
88
|
+
/**
|
|
89
|
+
* Total rewards of Algo the account has received, including pending
|
|
90
|
+
* rewards.
|
|
91
|
+
*/
|
|
92
|
+
rewards: AlgoAmount;
|
|
93
|
+
/**
|
|
94
|
+
* The round number for which this information is relevant.
|
|
95
|
+
*/
|
|
96
|
+
validAsOfRound: bigint;
|
|
97
|
+
/**
|
|
98
|
+
* Delegation status of the account's Algo:
|
|
99
|
+
* * Offline - indicates that the associated account is delegated.
|
|
100
|
+
* * Online - indicates that the associated account used as part of the delegation pool.
|
|
101
|
+
* * NotParticipating - indicates that the associated account is neither a delegator nor a delegate.
|
|
102
|
+
*/
|
|
103
|
+
status: string;
|
|
104
|
+
/**
|
|
105
|
+
* The count of all applications that have been opted in, equivalent to the count
|
|
106
|
+
* of application local data (AppLocalState objects) stored in this account.
|
|
107
|
+
*/
|
|
108
|
+
totalAppsOptedIn: number;
|
|
109
|
+
/**
|
|
110
|
+
* The count of all assets that have been opted in, equivalent to the count of
|
|
111
|
+
* AssetHolding objects held by this account.
|
|
112
|
+
*/
|
|
113
|
+
totalAssetsOptedIn: number;
|
|
114
|
+
/**
|
|
115
|
+
* The count of all apps (AppParams objects) created by this account.
|
|
116
|
+
*/
|
|
117
|
+
totalCreatedApps: number;
|
|
118
|
+
/**
|
|
119
|
+
* The count of all assets (AssetParams objects) created by this account.
|
|
120
|
+
*/
|
|
121
|
+
totalCreatedAssets: number;
|
|
122
|
+
/**
|
|
123
|
+
* Applications local data stored in this account.
|
|
124
|
+
*/
|
|
125
|
+
appsLocalState?: ApplicationLocalState[];
|
|
126
|
+
/**
|
|
127
|
+
* The sum of all extra application program pages for this account.
|
|
128
|
+
*/
|
|
129
|
+
appsTotalExtraPages?: number;
|
|
130
|
+
/**
|
|
131
|
+
* (tsch) stores the sum of all of the local schemas and global schemas in this
|
|
132
|
+
* account.
|
|
133
|
+
* Note: the raw account uses `StateSchema` for this type.
|
|
134
|
+
*/
|
|
135
|
+
appsTotalSchema?: ApplicationStateSchema;
|
|
136
|
+
/**
|
|
137
|
+
* Assets held by this account.
|
|
138
|
+
*/
|
|
139
|
+
assets?: AssetHolding[];
|
|
140
|
+
/**
|
|
141
|
+
* The address against which signing should be checked. If empty, the
|
|
142
|
+
* address of the current account is used. This field can be updated in any
|
|
143
|
+
* transaction by setting the `RekeyTo` field.
|
|
144
|
+
*/
|
|
145
|
+
authAddr?: string;
|
|
146
|
+
/**
|
|
147
|
+
* Parameters of applications created by this account including app global data.
|
|
148
|
+
*/
|
|
149
|
+
createdApps?: Application[];
|
|
150
|
+
/**
|
|
151
|
+
* (apar) parameters of assets created by this account.
|
|
152
|
+
* Note: the raw account uses `map[int] -> Asset` for this type.
|
|
153
|
+
*/
|
|
154
|
+
createdAssets?: Asset[];
|
|
155
|
+
/**
|
|
156
|
+
* AccountParticipation describes the parameters used by this account in consensus
|
|
157
|
+
* protocol.
|
|
158
|
+
*/
|
|
159
|
+
participation?: AccountParticipation;
|
|
160
|
+
/**
|
|
161
|
+
* Used as part of the rewards computation. Only applicable to accounts
|
|
162
|
+
* which are participating.
|
|
163
|
+
*/
|
|
164
|
+
rewardBase?: number;
|
|
165
|
+
/**
|
|
166
|
+
* Indicates what type of signature is used by this account, must be one of:
|
|
167
|
+
* * sig
|
|
168
|
+
* * msig
|
|
169
|
+
* * lsig
|
|
170
|
+
*/
|
|
171
|
+
sigType?: string;
|
|
172
|
+
/**
|
|
173
|
+
* The total number of bytes used by this account's app's box keys and
|
|
174
|
+
* values.
|
|
175
|
+
*/
|
|
176
|
+
totalBoxBytes?: number;
|
|
177
|
+
/**
|
|
178
|
+
* The number of existing boxes created by this account's app.
|
|
179
|
+
*/
|
|
180
|
+
totalBoxes?: number;
|
|
181
|
+
};
|
|
66
182
|
/** Account asset holding information at a given round. */
|
|
67
183
|
export type AccountAssetInformation = {
|
|
68
184
|
/** The ID of the asset held. */
|
|
@@ -87,5 +203,4 @@ export interface AccountConfig {
|
|
|
87
203
|
/** @deprecated Renamed to senderAddress in 2.3.1 */
|
|
88
204
|
senderMnemonic?: string;
|
|
89
205
|
}
|
|
90
|
-
export {};
|
|
91
206
|
//# sourceMappingURL=account.d.ts.map
|
package/types/account.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"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"}
|
package/types/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sources":["../../src/types/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"account.js","sources":["../../src/types/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAaA;;AAEG;AACI,MAAM,iBAAiB,GAAG,YAAW;AAE5C;MACa,eAAe,CAAA;;AAO1B,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;;AAGD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;KAC7B;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;IAED,WAAY,CAAA,cAAgC,EAAE,eAA6C,EAAA;AACzF,QAAA,IAAI,CAAC,OAAO,GAAG,cAAc,CAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,oCAAoC,CACzD,cAAc,EACd,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CACjC,CAAA;KACF;AAED;;;;AAIG;AACI,IAAA,IAAI,CAAC,WAAqC,EAAA;AAC/C,QAAA,IAAI,SAAS,GAAG,MAAM,IAAI,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAC/D,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1C,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,GAAG,OAAO,CAAC,6BAA6B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAA;aAC3F;iBAAM;AACL,gBAAA,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC,WAA0B,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAA;aACtG;SACF;;AAED,QAAA,OAAO,SAAU,CAAA;KAClB;AACF,CAAA;AAED;MACa,cAAc,CAAA;AAKzB;;AAEG;AACH,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;AAED;;AAEG;AACH,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;KACxB;AAED;;AAEG;AACH,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;AAED;;AAEG;AACH,IAAA,IAAI,MAAM,GAAA;QACR,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO;AAClB,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;SACrB,CAAA;KACF;IAED,WAAY,CAAA,OAAgB,EAAE,MAA0B,EAAA;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAA;KAClE;AACF;;;;;;"}
|
package/types/account.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.mjs","sources":["../../src/types/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"account.mjs","sources":["../../src/types/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAaA;;AAEG;AACI,MAAM,iBAAiB,GAAG,YAAW;AAE5C;MACa,eAAe,CAAA;;AAO1B,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;;AAGD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;KAC7B;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;IAED,WAAY,CAAA,cAAgC,EAAE,eAA6C,EAAA;AACzF,QAAA,IAAI,CAAC,OAAO,GAAG,cAAc,CAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,oCAAoC,CACzD,cAAc,EACd,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CACjC,CAAA;KACF;AAED;;;;AAIG;AACI,IAAA,IAAI,CAAC,WAAqC,EAAA;AAC/C,QAAA,IAAI,SAAS,GAAG,MAAM,IAAI,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAC/D,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1C,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,GAAG,OAAO,CAAC,6BAA6B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAA;aAC3F;iBAAM;AACL,gBAAA,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC,WAA0B,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAA;aACtG;SACF;;AAED,QAAA,OAAO,SAAU,CAAA;KAClB;AACF,CAAA;AAED;MACa,cAAc,CAAA;AAKzB;;AAEG;AACH,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;AAED;;AAEG;AACH,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;KACxB;AAED;;AAEG;AACH,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;AAED;;AAEG;AACH,IAAA,IAAI,MAAM,GAAA;QACR,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO;AAClB,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;SACrB,CAAA;KACF;IAED,WAAY,CAAA,OAAgB,EAAE,MAA0B,EAAA;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAA;KAClE;AACF;;;;"}
|