@algorandfoundation/algokit-utils 6.2.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
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var algosdk = require('algosdk');
|
|
4
|
+
var config = require('../config.js');
|
|
5
|
+
var util = require('../util.js');
|
|
6
|
+
var types_composer = require('./composer.js');
|
|
7
|
+
|
|
8
|
+
var AssetModel = algosdk.modelsv2.Asset;
|
|
9
|
+
/** Allows management of asset information. */
|
|
10
|
+
class AssetManager {
|
|
11
|
+
/**
|
|
12
|
+
* Create a new asset manager.
|
|
13
|
+
* @param algod An algod client
|
|
14
|
+
* @param newGroup A function that creates a new `AlgoKitComposer` transaction group
|
|
15
|
+
* @example Create a new asset manager
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const assetManager = new AssetManager(algod, () => new AlgoKitComposer({algod, () => signer, () => suggestedParams}))
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
constructor(algod, newGroup) {
|
|
21
|
+
this._algod = algod;
|
|
22
|
+
this._newGroup = newGroup;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns the current asset information for the asset with the given ID.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const assetInfo = await assetManager.getById(12353n);
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @param assetId The ID of the asset
|
|
33
|
+
* @returns The asset information
|
|
34
|
+
*/
|
|
35
|
+
async getById(assetId) {
|
|
36
|
+
const asset = AssetModel.from_obj_for_encoding(await this._algod.getAssetByID(Number(assetId)).do());
|
|
37
|
+
return {
|
|
38
|
+
assetId: BigInt(asset.index),
|
|
39
|
+
total: BigInt(asset.params.total),
|
|
40
|
+
decimals: Number(asset.params.decimals),
|
|
41
|
+
assetName: asset.params.name,
|
|
42
|
+
assetNameAsBytes: asset.params.nameB64,
|
|
43
|
+
unitName: asset.params.unitName,
|
|
44
|
+
unitNameAsBytes: asset.params.unitNameB64,
|
|
45
|
+
url: asset.params.url,
|
|
46
|
+
urlAsBytes: asset.params.urlB64,
|
|
47
|
+
creator: asset.params.creator,
|
|
48
|
+
manager: asset.params.manager,
|
|
49
|
+
clawback: asset.params.clawback,
|
|
50
|
+
freeze: asset.params.freeze,
|
|
51
|
+
reserve: asset.params.reserve,
|
|
52
|
+
defaultFrozen: asset.params.defaultFrozen,
|
|
53
|
+
metadataHash: asset.params.metadataHash,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns the given sender account's asset holding for a given asset.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const address = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
|
|
62
|
+
* const assetId = 123345n;
|
|
63
|
+
* const accountInfo = await algorand.asset.getAccountInformation(address, assetId);
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* [Response data schema details](https://developer.algorand.org/docs/rest-apis/algod/#get-v2accountsaddressassetsasset-id)
|
|
67
|
+
* @param sender The address of the sender/account to look up
|
|
68
|
+
* @param assetId The ID of the asset to return a holding for
|
|
69
|
+
* @returns The account asset holding information
|
|
70
|
+
*/
|
|
71
|
+
async getAccountInformation(sender, assetId) {
|
|
72
|
+
const info = await this._algod.accountAssetInformation(typeof sender === 'string' ? sender : sender.addr, Number(assetId)).do();
|
|
73
|
+
return {
|
|
74
|
+
assetId: BigInt(assetId),
|
|
75
|
+
balance: BigInt(info['asset-holding']['amount']),
|
|
76
|
+
frozen: info['asset-holding']['is-frozen'] === true,
|
|
77
|
+
round: BigInt(info['round']),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Opt an account in to a list of Algorand Standard Assets.
|
|
82
|
+
*
|
|
83
|
+
* Transactions will be sent in batches of 16 as transaction groups.
|
|
84
|
+
*
|
|
85
|
+
* @param account The account to opt-in
|
|
86
|
+
* @param assetIds The list of asset IDs to opt-in to
|
|
87
|
+
* @param options Any parameters to control the transaction or execution of the transaction
|
|
88
|
+
* @example Example using AlgorandClient
|
|
89
|
+
* ```typescript
|
|
90
|
+
* // Basic example
|
|
91
|
+
* algorand.asset.bulkOptIn("ACCOUNTADDRESS", [12345n, 67890n])
|
|
92
|
+
* // With configuration
|
|
93
|
+
* algorand.asset.bulkOptIn("ACCOUNTADDRESS", [12345n, 67890n], { maxFee: (1000).microAlgo(), suppressLog: true })
|
|
94
|
+
* ```
|
|
95
|
+
* @returns An array of records matching asset ID to transaction ID of the opt in
|
|
96
|
+
*/
|
|
97
|
+
async bulkOptIn(account, assetIds, options) {
|
|
98
|
+
const results = [];
|
|
99
|
+
for (const assetGroup of util.chunkArray(assetIds, types_composer.MAX_TRANSACTION_GROUP_SIZE)) {
|
|
100
|
+
const composer = this._newGroup();
|
|
101
|
+
for (const assetId of assetGroup) {
|
|
102
|
+
composer.addAssetOptIn({
|
|
103
|
+
...options,
|
|
104
|
+
sender: typeof account === 'string' ? account : account.addr,
|
|
105
|
+
assetId: BigInt(assetId),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const result = await composer.execute(options);
|
|
109
|
+
config.Config.getLogger(options?.suppressLog).info(`Successfully opted in ${account} for assets ${assetGroup.join(', ')} with transaction IDs ${result.txIds.join(', ')}` +
|
|
110
|
+
`\n Grouped under ${result.groupId} in round ${result.confirmations?.[0]?.confirmedRound}.`);
|
|
111
|
+
assetGroup.forEach((assetId, index) => {
|
|
112
|
+
results.push({ assetId: BigInt(assetId), transactionId: result.txIds[index] });
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return results;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Opt an account out of a list of Algorand Standard Assets.
|
|
119
|
+
*
|
|
120
|
+
* Transactions will be sent in batches of 16 as transaction groups.
|
|
121
|
+
*
|
|
122
|
+
* @param account The account to opt-in
|
|
123
|
+
* @param assetIds The list of asset IDs to opt-out of
|
|
124
|
+
* @param options Any parameters to control the transaction or execution of the transaction
|
|
125
|
+
* @example Example using AlgorandClient
|
|
126
|
+
* ```typescript
|
|
127
|
+
* // Basic example
|
|
128
|
+
* algorand.asset.bulkOptOut("ACCOUNTADDRESS", [12345n, 67890n])
|
|
129
|
+
* // With configuration
|
|
130
|
+
* algorand.asset.bulkOptOut("ACCOUNTADDRESS", [12345n, 67890n], { ensureZeroBalance: true, maxFee: (1000).microAlgo(), suppressLog: true })
|
|
131
|
+
* ```
|
|
132
|
+
* @returns An array of records matching asset ID to transaction ID of the opt in
|
|
133
|
+
*/
|
|
134
|
+
async bulkOptOut(account, assetIds, options) {
|
|
135
|
+
const results = [];
|
|
136
|
+
await this._algod.getTransactionParams().do();
|
|
137
|
+
const sender = typeof account === 'string' ? account : account.addr;
|
|
138
|
+
for (const assetGroup of util.chunkArray(assetIds, types_composer.MAX_TRANSACTION_GROUP_SIZE)) {
|
|
139
|
+
const composer = this._newGroup();
|
|
140
|
+
const notOptedInAssetIds = [];
|
|
141
|
+
const nonZeroBalanceAssetIds = [];
|
|
142
|
+
for (const assetId of assetGroup) {
|
|
143
|
+
if (options?.ensureZeroBalance !== false) {
|
|
144
|
+
try {
|
|
145
|
+
const accountAssetInfo = await this.getAccountInformation(sender, assetId);
|
|
146
|
+
if (accountAssetInfo.balance !== 0n) {
|
|
147
|
+
nonZeroBalanceAssetIds.push(BigInt(assetId));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
notOptedInAssetIds.push(BigInt(assetId));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (notOptedInAssetIds.length > 0 || nonZeroBalanceAssetIds.length > 0) {
|
|
156
|
+
throw new Error(`Account ${sender}${notOptedInAssetIds.length > 0 ? ` is not opted-in to Asset${notOptedInAssetIds.length > 1 ? 's' : ''} ${notOptedInAssetIds.join(', ')}` : ''}${nonZeroBalanceAssetIds.length > 0
|
|
157
|
+
? ` has non-zero balance for Asset${nonZeroBalanceAssetIds.length > 1 ? 's' : ''} ${nonZeroBalanceAssetIds.join(', ')}`
|
|
158
|
+
: ''}; can't opt-out.`);
|
|
159
|
+
}
|
|
160
|
+
for (const assetId of assetGroup) {
|
|
161
|
+
composer.addAssetOptOut({
|
|
162
|
+
...options,
|
|
163
|
+
creator: (await this.getById(BigInt(assetId))).creator,
|
|
164
|
+
sender,
|
|
165
|
+
assetId: BigInt(assetId),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
const result = await composer.execute(options);
|
|
169
|
+
config.Config.getLogger(options?.suppressLog).info(`Successfully opted ${account} out of assets ${assetGroup.join(', ')} with transaction IDs ${result.txIds.join(', ')}` +
|
|
170
|
+
`\n Grouped under ${result.groupId} in round ${result.confirmations?.[0]?.confirmedRound}.`);
|
|
171
|
+
assetGroup.forEach((assetId, index) => {
|
|
172
|
+
results.push({ assetId: BigInt(assetId), transactionId: result.txIds[index] });
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return results;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
exports.AssetManager = AssetManager;
|
|
180
|
+
//# sourceMappingURL=asset-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-manager.js","sources":["../../src/types/asset-manager.ts"],"sourcesContent":[null],"names":["chunkArray","MAX_TRANSACTION_GROUP_SIZE","Config"],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import algosdk from 'algosdk';
|
|
2
|
+
import { Config } from '../config.mjs';
|
|
3
|
+
import { chunkArray } from '../util.mjs';
|
|
4
|
+
import { MAX_TRANSACTION_GROUP_SIZE } from './composer.mjs';
|
|
5
|
+
|
|
6
|
+
var AssetModel = algosdk.modelsv2.Asset;
|
|
7
|
+
/** Allows management of asset information. */
|
|
8
|
+
class AssetManager {
|
|
9
|
+
/**
|
|
10
|
+
* Create a new asset manager.
|
|
11
|
+
* @param algod An algod client
|
|
12
|
+
* @param newGroup A function that creates a new `AlgoKitComposer` transaction group
|
|
13
|
+
* @example Create a new asset manager
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const assetManager = new AssetManager(algod, () => new AlgoKitComposer({algod, () => signer, () => suggestedParams}))
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
constructor(algod, newGroup) {
|
|
19
|
+
this._algod = algod;
|
|
20
|
+
this._newGroup = newGroup;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns the current asset information for the asset with the given ID.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const assetInfo = await assetManager.getById(12353n);
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @param assetId The ID of the asset
|
|
31
|
+
* @returns The asset information
|
|
32
|
+
*/
|
|
33
|
+
async getById(assetId) {
|
|
34
|
+
const asset = AssetModel.from_obj_for_encoding(await this._algod.getAssetByID(Number(assetId)).do());
|
|
35
|
+
return {
|
|
36
|
+
assetId: BigInt(asset.index),
|
|
37
|
+
total: BigInt(asset.params.total),
|
|
38
|
+
decimals: Number(asset.params.decimals),
|
|
39
|
+
assetName: asset.params.name,
|
|
40
|
+
assetNameAsBytes: asset.params.nameB64,
|
|
41
|
+
unitName: asset.params.unitName,
|
|
42
|
+
unitNameAsBytes: asset.params.unitNameB64,
|
|
43
|
+
url: asset.params.url,
|
|
44
|
+
urlAsBytes: asset.params.urlB64,
|
|
45
|
+
creator: asset.params.creator,
|
|
46
|
+
manager: asset.params.manager,
|
|
47
|
+
clawback: asset.params.clawback,
|
|
48
|
+
freeze: asset.params.freeze,
|
|
49
|
+
reserve: asset.params.reserve,
|
|
50
|
+
defaultFrozen: asset.params.defaultFrozen,
|
|
51
|
+
metadataHash: asset.params.metadataHash,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns the given sender account's asset holding for a given asset.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const address = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
|
|
60
|
+
* const assetId = 123345n;
|
|
61
|
+
* const accountInfo = await algorand.asset.getAccountInformation(address, assetId);
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* [Response data schema details](https://developer.algorand.org/docs/rest-apis/algod/#get-v2accountsaddressassetsasset-id)
|
|
65
|
+
* @param sender The address of the sender/account to look up
|
|
66
|
+
* @param assetId The ID of the asset to return a holding for
|
|
67
|
+
* @returns The account asset holding information
|
|
68
|
+
*/
|
|
69
|
+
async getAccountInformation(sender, assetId) {
|
|
70
|
+
const info = await this._algod.accountAssetInformation(typeof sender === 'string' ? sender : sender.addr, Number(assetId)).do();
|
|
71
|
+
return {
|
|
72
|
+
assetId: BigInt(assetId),
|
|
73
|
+
balance: BigInt(info['asset-holding']['amount']),
|
|
74
|
+
frozen: info['asset-holding']['is-frozen'] === true,
|
|
75
|
+
round: BigInt(info['round']),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Opt an account in to a list of Algorand Standard Assets.
|
|
80
|
+
*
|
|
81
|
+
* Transactions will be sent in batches of 16 as transaction groups.
|
|
82
|
+
*
|
|
83
|
+
* @param account The account to opt-in
|
|
84
|
+
* @param assetIds The list of asset IDs to opt-in to
|
|
85
|
+
* @param options Any parameters to control the transaction or execution of the transaction
|
|
86
|
+
* @example Example using AlgorandClient
|
|
87
|
+
* ```typescript
|
|
88
|
+
* // Basic example
|
|
89
|
+
* algorand.asset.bulkOptIn("ACCOUNTADDRESS", [12345n, 67890n])
|
|
90
|
+
* // With configuration
|
|
91
|
+
* algorand.asset.bulkOptIn("ACCOUNTADDRESS", [12345n, 67890n], { maxFee: (1000).microAlgo(), suppressLog: true })
|
|
92
|
+
* ```
|
|
93
|
+
* @returns An array of records matching asset ID to transaction ID of the opt in
|
|
94
|
+
*/
|
|
95
|
+
async bulkOptIn(account, assetIds, options) {
|
|
96
|
+
const results = [];
|
|
97
|
+
for (const assetGroup of chunkArray(assetIds, MAX_TRANSACTION_GROUP_SIZE)) {
|
|
98
|
+
const composer = this._newGroup();
|
|
99
|
+
for (const assetId of assetGroup) {
|
|
100
|
+
composer.addAssetOptIn({
|
|
101
|
+
...options,
|
|
102
|
+
sender: typeof account === 'string' ? account : account.addr,
|
|
103
|
+
assetId: BigInt(assetId),
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
const result = await composer.execute(options);
|
|
107
|
+
Config.getLogger(options?.suppressLog).info(`Successfully opted in ${account} for assets ${assetGroup.join(', ')} with transaction IDs ${result.txIds.join(', ')}` +
|
|
108
|
+
`\n Grouped under ${result.groupId} in round ${result.confirmations?.[0]?.confirmedRound}.`);
|
|
109
|
+
assetGroup.forEach((assetId, index) => {
|
|
110
|
+
results.push({ assetId: BigInt(assetId), transactionId: result.txIds[index] });
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return results;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Opt an account out of a list of Algorand Standard Assets.
|
|
117
|
+
*
|
|
118
|
+
* Transactions will be sent in batches of 16 as transaction groups.
|
|
119
|
+
*
|
|
120
|
+
* @param account The account to opt-in
|
|
121
|
+
* @param assetIds The list of asset IDs to opt-out of
|
|
122
|
+
* @param options Any parameters to control the transaction or execution of the transaction
|
|
123
|
+
* @example Example using AlgorandClient
|
|
124
|
+
* ```typescript
|
|
125
|
+
* // Basic example
|
|
126
|
+
* algorand.asset.bulkOptOut("ACCOUNTADDRESS", [12345n, 67890n])
|
|
127
|
+
* // With configuration
|
|
128
|
+
* algorand.asset.bulkOptOut("ACCOUNTADDRESS", [12345n, 67890n], { ensureZeroBalance: true, maxFee: (1000).microAlgo(), suppressLog: true })
|
|
129
|
+
* ```
|
|
130
|
+
* @returns An array of records matching asset ID to transaction ID of the opt in
|
|
131
|
+
*/
|
|
132
|
+
async bulkOptOut(account, assetIds, options) {
|
|
133
|
+
const results = [];
|
|
134
|
+
await this._algod.getTransactionParams().do();
|
|
135
|
+
const sender = typeof account === 'string' ? account : account.addr;
|
|
136
|
+
for (const assetGroup of chunkArray(assetIds, MAX_TRANSACTION_GROUP_SIZE)) {
|
|
137
|
+
const composer = this._newGroup();
|
|
138
|
+
const notOptedInAssetIds = [];
|
|
139
|
+
const nonZeroBalanceAssetIds = [];
|
|
140
|
+
for (const assetId of assetGroup) {
|
|
141
|
+
if (options?.ensureZeroBalance !== false) {
|
|
142
|
+
try {
|
|
143
|
+
const accountAssetInfo = await this.getAccountInformation(sender, assetId);
|
|
144
|
+
if (accountAssetInfo.balance !== 0n) {
|
|
145
|
+
nonZeroBalanceAssetIds.push(BigInt(assetId));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
notOptedInAssetIds.push(BigInt(assetId));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (notOptedInAssetIds.length > 0 || nonZeroBalanceAssetIds.length > 0) {
|
|
154
|
+
throw new Error(`Account ${sender}${notOptedInAssetIds.length > 0 ? ` is not opted-in to Asset${notOptedInAssetIds.length > 1 ? 's' : ''} ${notOptedInAssetIds.join(', ')}` : ''}${nonZeroBalanceAssetIds.length > 0
|
|
155
|
+
? ` has non-zero balance for Asset${nonZeroBalanceAssetIds.length > 1 ? 's' : ''} ${nonZeroBalanceAssetIds.join(', ')}`
|
|
156
|
+
: ''}; can't opt-out.`);
|
|
157
|
+
}
|
|
158
|
+
for (const assetId of assetGroup) {
|
|
159
|
+
composer.addAssetOptOut({
|
|
160
|
+
...options,
|
|
161
|
+
creator: (await this.getById(BigInt(assetId))).creator,
|
|
162
|
+
sender,
|
|
163
|
+
assetId: BigInt(assetId),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
const result = await composer.execute(options);
|
|
167
|
+
Config.getLogger(options?.suppressLog).info(`Successfully opted ${account} out of assets ${assetGroup.join(', ')} with transaction IDs ${result.txIds.join(', ')}` +
|
|
168
|
+
`\n Grouped under ${result.groupId} in round ${result.confirmations?.[0]?.confirmedRound}.`);
|
|
169
|
+
assetGroup.forEach((assetId, index) => {
|
|
170
|
+
results.push({ assetId: BigInt(assetId), transactionId: result.txIds[index] });
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
return results;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export { AssetManager };
|
|
178
|
+
//# sourceMappingURL=asset-manager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-manager.mjs","sources":["../../src/types/asset-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/types/asset.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import algosdk from 'algosdk';
|
|
|
2
2
|
import { AlgoAmount } from './amount';
|
|
3
3
|
import { SendTransactionFrom, SendTransactionParams, TransactionNote } from './transaction';
|
|
4
4
|
import SuggestedParams = algosdk.SuggestedParams;
|
|
5
|
-
/** Parameters for `createAsset` call. */
|
|
5
|
+
/** @deprecated Parameters for `createAsset` call. */
|
|
6
6
|
export interface CreateAssetParams extends SendTransactionParams {
|
|
7
7
|
/** The account to create the asset.
|
|
8
8
|
*
|
|
@@ -60,7 +60,7 @@ export interface CreateAssetParams extends SendTransactionParams {
|
|
|
60
60
|
/** An (optional) [transaction lease](https://developer.algorand.org/articles/leased-transactions-securing-advanced-smart-contract-design/) to apply */
|
|
61
61
|
lease?: string | Uint8Array;
|
|
62
62
|
}
|
|
63
|
-
/** Parameters for `assetOptIn` call. */
|
|
63
|
+
/** @deprecated Parameters for `assetOptIn` call. */
|
|
64
64
|
export interface AssetOptInParams extends SendTransactionParams {
|
|
65
65
|
/** The account to opt in/out for */
|
|
66
66
|
account: SendTransactionFrom;
|
|
@@ -73,14 +73,14 @@ export interface AssetOptInParams extends SendTransactionParams {
|
|
|
73
73
|
/** An (optional) [transaction lease](https://developer.algorand.org/articles/leased-transactions-securing-advanced-smart-contract-design/) to apply */
|
|
74
74
|
lease?: string | Uint8Array;
|
|
75
75
|
}
|
|
76
|
-
/** Parameters for `assetOptOut` call. */
|
|
76
|
+
/** @deprecated Parameters for `assetOptOut` call. */
|
|
77
77
|
export interface AssetOptOutParams extends AssetOptInParams {
|
|
78
78
|
/** The address of the creator account for the asset; if unspecified then it looks it up using algod */
|
|
79
79
|
assetCreatorAddress?: string;
|
|
80
80
|
/** Whether or not to validate the account has a zero-balance before issuing the opt-out; default = true */
|
|
81
81
|
ensureZeroBalance?: boolean;
|
|
82
82
|
}
|
|
83
|
-
/** Parameters for `assetBulkOptIn` / `assetBulkOptOut` call. */
|
|
83
|
+
/** @deprecated Parameters for `assetBulkOptIn` / `assetBulkOptOut` call. */
|
|
84
84
|
export interface AssetBulkOptInOutParams {
|
|
85
85
|
/** The account to opt in/out for */
|
|
86
86
|
account: SendTransactionFrom;
|
package/types/asset.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/types/asset.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;AAEhD,
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/types/asset.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;AAEhD,qDAAqD;AACrD,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D;;iGAE6F;IAC7F,OAAO,EAAE,mBAAmB,CAAA;IAE5B;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAEtB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB,kHAAkH;IAClH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8HAA8H;IAC9H,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC7C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC5C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;IAC9C,wMAAwM;IACxM,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,uJAAuJ;IACvJ,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAC5B;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,oCAAoC;IACpC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,uJAAuJ;IACvJ,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAC5B;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,uGAAuG;IACvG,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,2GAA2G;IAC3G,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC,oCAAoC;IACpC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,iLAAiL;IACjL,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB"}
|
|
@@ -95,10 +95,10 @@ export declare class ClientManager {
|
|
|
95
95
|
isMainNet(): Promise<boolean>;
|
|
96
96
|
/**
|
|
97
97
|
* Returns a TestNet Dispenser API client.
|
|
98
|
+
*
|
|
98
99
|
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
99
100
|
*
|
|
100
101
|
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
101
|
-
* Or null if you want the client to load the access token from the environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
102
102
|
* @example
|
|
103
103
|
* const client = clientManager.getTestNetDispenser(
|
|
104
104
|
* {
|
|
@@ -109,7 +109,23 @@ export declare class ClientManager {
|
|
|
109
109
|
*
|
|
110
110
|
* @returns An instance of the TestNetDispenserApiClient class.
|
|
111
111
|
*/
|
|
112
|
-
getTestNetDispenser(params
|
|
112
|
+
getTestNetDispenser(params: TestNetDispenserApiClientParams): TestNetDispenserApiClient;
|
|
113
|
+
/**
|
|
114
|
+
* Returns a TestNet Dispenser API client, loading the auth token from `process.env.ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
115
|
+
*
|
|
116
|
+
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
117
|
+
*
|
|
118
|
+
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
119
|
+
* @example
|
|
120
|
+
* const client = clientManager.getTestNetDispenserFromEnvironment(
|
|
121
|
+
* {
|
|
122
|
+
* requestTimeout: 15,
|
|
123
|
+
* }
|
|
124
|
+
* )
|
|
125
|
+
*
|
|
126
|
+
* @returns An instance of the TestNetDispenserApiClient class.
|
|
127
|
+
*/
|
|
128
|
+
getTestNetDispenserFromEnvironment(params?: Omit<TestNetDispenserApiClientParams, 'authToken'>): TestNetDispenserApiClient;
|
|
113
129
|
/**
|
|
114
130
|
* Returns a new `ApplicationClient` client, resolving the app by creator address and name.
|
|
115
131
|
* @param details The details to resolve the app by creator address and name
|
|
@@ -128,6 +144,21 @@ export declare class ClientManager {
|
|
|
128
144
|
* @param typedClient The typed client type to use
|
|
129
145
|
* @param details The details to resolve the app by creator address and name
|
|
130
146
|
* @param cachedAppLookup A cached app lookup that matches a name to on-chain details; either this is needed or indexer is required to be passed in to this manager on construction.
|
|
147
|
+
* @example Use name in ARC-32 app spec
|
|
148
|
+
* ```typescript
|
|
149
|
+
* const appClient = algorand.client.getTypedAppClientByCreatorAndName(MyContractClient, {
|
|
150
|
+
* creatorAddress: "CREATORADDRESS",
|
|
151
|
+
* sender: alice,
|
|
152
|
+
* })
|
|
153
|
+
* ```
|
|
154
|
+
* @example Specify name
|
|
155
|
+
* ```typescript
|
|
156
|
+
* const appClient = algorand.client.getTypedAppClientByCreatorAndName(MyContractClient, {
|
|
157
|
+
* creatorAddress: "CREATORADDRESS",
|
|
158
|
+
* name: "contract-name",
|
|
159
|
+
* sender: alice,
|
|
160
|
+
* })
|
|
161
|
+
* ```
|
|
131
162
|
* @returns The typed client instance
|
|
132
163
|
*/
|
|
133
164
|
getTypedAppClientByCreatorAndName<TClient>(typedClient: TypedAppClient<TClient>, details: TypedAppClientByCreatorAndNameDetails, cachedAppLookup?: AppLookup): TClient;
|
|
@@ -135,6 +166,13 @@ export declare class ClientManager {
|
|
|
135
166
|
* Returns a new typed client, resolving the app by app ID.
|
|
136
167
|
* @param typedClient The typed client type to use
|
|
137
168
|
* @param details The details to resolve the app by ID
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const appClient = algorand.client.getTypedAppClientById(MyContractClient, {
|
|
172
|
+
* id: 12345,
|
|
173
|
+
* sender: alice,
|
|
174
|
+
* })
|
|
175
|
+
* ```
|
|
138
176
|
* @returns The typed client instance
|
|
139
177
|
*/
|
|
140
178
|
getTypedAppClientById<TClient>(typedClient: TypedAppClient<TClient>, details: TypedAppClientByIdDetails): TClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/types/client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EACL,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,kBAAkB,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/types/client-manager.ts"],"names":[],"mappings":"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"}
|
package/types/client-manager.js
CHANGED
|
@@ -4,6 +4,7 @@ var algosdk = require('algosdk');
|
|
|
4
4
|
var types_algoHttpClientWithRetry = require('./algo-http-client-with-retry.js');
|
|
5
5
|
var types_appClient = require('./app-client.js');
|
|
6
6
|
var types_dispenserClient = require('./dispenser-client.js');
|
|
7
|
+
var types_networkClient = require('./network-client.js');
|
|
7
8
|
|
|
8
9
|
var Kmd = algosdk.Kmd;
|
|
9
10
|
var Indexer = algosdk.Indexer;
|
|
@@ -86,7 +87,7 @@ class ClientManager {
|
|
|
86
87
|
* @returns Whether the given genesis ID is associated with a LocalNet network
|
|
87
88
|
*/
|
|
88
89
|
static genesisIdIsLocalNet(genesisId) {
|
|
89
|
-
return genesisId
|
|
90
|
+
return types_networkClient.genesisIdIsLocalNet(genesisId);
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
93
|
* Returns true if the current network is LocalNet.
|
|
@@ -111,10 +112,10 @@ class ClientManager {
|
|
|
111
112
|
}
|
|
112
113
|
/**
|
|
113
114
|
* Returns a TestNet Dispenser API client.
|
|
115
|
+
*
|
|
114
116
|
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
115
117
|
*
|
|
116
118
|
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
117
|
-
* Or null if you want the client to load the access token from the environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
118
119
|
* @example
|
|
119
120
|
* const client = clientManager.getTestNetDispenser(
|
|
120
121
|
* {
|
|
@@ -125,9 +126,27 @@ class ClientManager {
|
|
|
125
126
|
*
|
|
126
127
|
* @returns An instance of the TestNetDispenserApiClient class.
|
|
127
128
|
*/
|
|
128
|
-
getTestNetDispenser(params
|
|
129
|
+
getTestNetDispenser(params) {
|
|
129
130
|
return new types_dispenserClient.TestNetDispenserApiClient(params);
|
|
130
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Returns a TestNet Dispenser API client, loading the auth token from `process.env.ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
134
|
+
*
|
|
135
|
+
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
136
|
+
*
|
|
137
|
+
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
138
|
+
* @example
|
|
139
|
+
* const client = clientManager.getTestNetDispenserFromEnvironment(
|
|
140
|
+
* {
|
|
141
|
+
* requestTimeout: 15,
|
|
142
|
+
* }
|
|
143
|
+
* )
|
|
144
|
+
*
|
|
145
|
+
* @returns An instance of the TestNetDispenserApiClient class.
|
|
146
|
+
*/
|
|
147
|
+
getTestNetDispenserFromEnvironment(params) {
|
|
148
|
+
return new types_dispenserClient.TestNetDispenserApiClient(params ? { ...params, authToken: '' } : undefined);
|
|
149
|
+
}
|
|
131
150
|
/**
|
|
132
151
|
* Returns a new `ApplicationClient` client, resolving the app by creator address and name.
|
|
133
152
|
* @param details The details to resolve the app by creator address and name
|
|
@@ -150,6 +169,21 @@ class ClientManager {
|
|
|
150
169
|
* @param typedClient The typed client type to use
|
|
151
170
|
* @param details The details to resolve the app by creator address and name
|
|
152
171
|
* @param cachedAppLookup A cached app lookup that matches a name to on-chain details; either this is needed or indexer is required to be passed in to this manager on construction.
|
|
172
|
+
* @example Use name in ARC-32 app spec
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const appClient = algorand.client.getTypedAppClientByCreatorAndName(MyContractClient, {
|
|
175
|
+
* creatorAddress: "CREATORADDRESS",
|
|
176
|
+
* sender: alice,
|
|
177
|
+
* })
|
|
178
|
+
* ```
|
|
179
|
+
* @example Specify name
|
|
180
|
+
* ```typescript
|
|
181
|
+
* const appClient = algorand.client.getTypedAppClientByCreatorAndName(MyContractClient, {
|
|
182
|
+
* creatorAddress: "CREATORADDRESS",
|
|
183
|
+
* name: "contract-name",
|
|
184
|
+
* sender: alice,
|
|
185
|
+
* })
|
|
186
|
+
* ```
|
|
153
187
|
* @returns The typed client instance
|
|
154
188
|
*/
|
|
155
189
|
getTypedAppClientByCreatorAndName(typedClient, details, cachedAppLookup) {
|
|
@@ -159,6 +193,13 @@ class ClientManager {
|
|
|
159
193
|
* Returns a new typed client, resolving the app by app ID.
|
|
160
194
|
* @param typedClient The typed client type to use
|
|
161
195
|
* @param details The details to resolve the app by ID
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* const appClient = algorand.client.getTypedAppClientById(MyContractClient, {
|
|
199
|
+
* id: 12345,
|
|
200
|
+
* sender: alice,
|
|
201
|
+
* })
|
|
202
|
+
* ```
|
|
162
203
|
* @returns The typed client instance
|
|
163
204
|
*/
|
|
164
205
|
getTypedAppClientById(typedClient, details) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-manager.js","sources":["../../src/types/client-manager.ts"],"sourcesContent":[null],"names":["TestNetDispenserApiClient","ApplicationClient","AlgoHttpClientWithRetry"],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-manager.js","sources":["../../src/types/client-manager.ts"],"sourcesContent":[null],"names":["genesisIdIsLocalNet","TestNetDispenserApiClient","ApplicationClient","AlgoHttpClientWithRetry"],"mappings":"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"}
|