@algorandfoundation/algokit-utils 6.2.1 → 7.0.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
package/types/algorand-client.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var config = require('../config.js');
|
|
6
5
|
var types_accountManager = require('./account-manager.js');
|
|
6
|
+
var types_algorandClientTransactionCreator = require('./algorand-client-transaction-creator.js');
|
|
7
|
+
var types_algorandClientTransactionSender = require('./algorand-client-transaction-sender.js');
|
|
8
|
+
var types_assetManager = require('./asset-manager.js');
|
|
7
9
|
var types_clientManager = require('./client-manager.js');
|
|
8
10
|
var types_composer = require('./composer.js');
|
|
9
11
|
|
|
@@ -14,98 +16,11 @@ class AlgorandClient {
|
|
|
14
16
|
constructor(config) {
|
|
15
17
|
this._cachedSuggestedParamsTimeout = 3000; // three seconds
|
|
16
18
|
this._defaultValidityWindow = undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Methods for sending a single transaction.
|
|
19
|
-
*/
|
|
20
|
-
this.send = {
|
|
21
|
-
/**
|
|
22
|
-
* Send a payment transaction.
|
|
23
|
-
*/
|
|
24
|
-
payment: this._send((c) => c.addPayment, {
|
|
25
|
-
preLog: (params, transaction) => `Sending ${params.amount.microAlgos} µALGOs from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
|
|
26
|
-
}),
|
|
27
|
-
/**
|
|
28
|
-
* Create an asset.
|
|
29
|
-
*/
|
|
30
|
-
assetCreate: this._send((c) => c.addAssetCreate, {
|
|
31
|
-
postLog: (params, result) => `Created asset${params.assetName ? ` ${params.assetName} ` : ''}${params.unitName ? ` (${params.unitName}) ` : ''} with ${params.total} units and ${params.decimals ?? 0} decimals created by ${params.sender} with ID ${result.confirmation.assetIndex} via transaction ${result.txIds.at(-1)}`,
|
|
32
|
-
}),
|
|
33
|
-
/**
|
|
34
|
-
* Configure an existing asset.
|
|
35
|
-
*/
|
|
36
|
-
assetConfig: this._send((c) => c.addAssetConfig, {
|
|
37
|
-
preLog: (params, transaction) => `Configuring asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
38
|
-
}),
|
|
39
|
-
/**
|
|
40
|
-
* Freeze or unfreeze an asset.
|
|
41
|
-
*/
|
|
42
|
-
assetFreeze: this._send((c) => c.addAssetFreeze, {
|
|
43
|
-
preLog: (params, transaction) => `Freezing asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
44
|
-
}),
|
|
45
|
-
/**
|
|
46
|
-
* Destroy an asset.
|
|
47
|
-
*/
|
|
48
|
-
assetDestroy: this._send((c) => c.addAssetDestroy, {
|
|
49
|
-
preLog: (params, transaction) => `Destroying asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
50
|
-
}),
|
|
51
|
-
/**
|
|
52
|
-
* Transfer an asset.
|
|
53
|
-
*/
|
|
54
|
-
assetTransfer: this._send((c) => c.addAssetTransfer, {
|
|
55
|
-
preLog: (params, transaction) => `Transferring ${params.amount} units of asset with ID ${params.assetId} from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
|
|
56
|
-
}),
|
|
57
|
-
/**
|
|
58
|
-
* Opt an account into an asset.
|
|
59
|
-
*/
|
|
60
|
-
assetOptIn: this._send((c) => c.addAssetOptIn, {
|
|
61
|
-
preLog: (params, transaction) => `Opting in ${params.sender} to asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
62
|
-
}),
|
|
63
|
-
/**
|
|
64
|
-
* Call a smart contract.
|
|
65
|
-
*
|
|
66
|
-
* Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
|
|
67
|
-
*/
|
|
68
|
-
appCall: this._send((c) => c.addAppCall),
|
|
69
|
-
/**
|
|
70
|
-
* Call a smart contract ABI method.
|
|
71
|
-
*
|
|
72
|
-
* Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
|
|
73
|
-
*/
|
|
74
|
-
methodCall: this._send((c) => c.addMethodCall),
|
|
75
|
-
/** Register an online key. */
|
|
76
|
-
onlineKeyRegistration: this._send((c) => c.addOnlineKeyRegistration, {
|
|
77
|
-
preLog: (params, transaction) => `Registering online key for ${params.sender} via transaction ${transaction.txID()}`,
|
|
78
|
-
}),
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Methods for building transactions
|
|
82
|
-
*/
|
|
83
|
-
this.transactions = {
|
|
84
|
-
/** Create a payment transaction. */
|
|
85
|
-
payment: this._transaction((c) => c.addPayment),
|
|
86
|
-
/** Create an asset creation transaction. */
|
|
87
|
-
assetCreate: this._transaction((c) => c.addAssetCreate),
|
|
88
|
-
/** Create an asset config transaction. */
|
|
89
|
-
assetConfig: this._transaction((c) => c.addAssetConfig),
|
|
90
|
-
/** Create an asset freeze transaction. */
|
|
91
|
-
assetFreeze: this._transaction((c) => c.addAssetFreeze),
|
|
92
|
-
/** Create an asset destroy transaction. */
|
|
93
|
-
assetDestroy: this._transaction((c) => c.addAssetDestroy),
|
|
94
|
-
/** Create an asset transfer transaction. */
|
|
95
|
-
assetTransfer: this._transaction((c) => c.addAssetTransfer),
|
|
96
|
-
/** Create an asset opt-in transaction. */
|
|
97
|
-
assetOptIn: this._transaction((c) => c.addAssetOptIn),
|
|
98
|
-
/** Create an application call transaction. */
|
|
99
|
-
appCall: this._transaction((c) => c.addAppCall),
|
|
100
|
-
/** Create an application call with ABI method call transaction. */
|
|
101
|
-
methodCall: async (params) => {
|
|
102
|
-
return (await this.newGroup().addMethodCall(params).build()).transactions.map((ts) => ts.txn);
|
|
103
|
-
},
|
|
104
|
-
/** Create an online key registration transaction. */
|
|
105
|
-
onlineKeyRegistration: this._transaction((c) => c.addOnlineKeyRegistration),
|
|
106
|
-
};
|
|
107
19
|
this._clientManager = new types_clientManager.ClientManager(config);
|
|
108
20
|
this._accountManager = new types_accountManager.AccountManager(this._clientManager);
|
|
21
|
+
this._assetManager = new types_assetManager.AssetManager(this._clientManager.algod, () => this.newGroup());
|
|
22
|
+
this._transactionSender = new types_algorandClientTransactionSender.AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager);
|
|
23
|
+
this._transactionCreator = new types_algorandClientTransactionCreator.AlgorandClientTransactionCreator(() => this.newGroup());
|
|
109
24
|
}
|
|
110
25
|
/**
|
|
111
26
|
* Sets the default validity window for transactions.
|
|
@@ -127,7 +42,17 @@ class AlgorandClient {
|
|
|
127
42
|
}
|
|
128
43
|
/**
|
|
129
44
|
* Tracks the given account for later signing.
|
|
130
|
-
* @param account The account to register
|
|
45
|
+
* @param account The account to register, which can be a `TransactionSignerAccount` or
|
|
46
|
+
* a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const accountManager = AlgorandClient.mainnet()
|
|
50
|
+
* .setSignerFromAccount(algosdk.generateAccount())
|
|
51
|
+
* .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))
|
|
52
|
+
* .setSignerFromAccount(new SigningAccount(mnemonic, sender))
|
|
53
|
+
* .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: ["ADDRESS1...", "ADDRESS2..."]}, [account1, account2]))
|
|
54
|
+
* .setSignerFromAccount({addr: "SENDERADDRESS", signer: transactionSigner})
|
|
55
|
+
* ```
|
|
131
56
|
* @returns The `AlgorandClient` so method calls can be chained
|
|
132
57
|
*/
|
|
133
58
|
setSignerFromAccount(account) {
|
|
@@ -185,44 +110,30 @@ class AlgorandClient {
|
|
|
185
110
|
get account() {
|
|
186
111
|
return this._accountManager;
|
|
187
112
|
}
|
|
188
|
-
/**
|
|
113
|
+
/** Methods for interacting with assets. */
|
|
114
|
+
get asset() {
|
|
115
|
+
return this._assetManager;
|
|
116
|
+
}
|
|
117
|
+
/** Start a new `AlgoKitComposer` transaction group */
|
|
189
118
|
newGroup() {
|
|
190
|
-
return new types_composer({
|
|
119
|
+
return new types_composer.default({
|
|
191
120
|
algod: this.client.algod,
|
|
192
121
|
getSigner: (addr) => this.account.getSigner(addr),
|
|
193
122
|
getSuggestedParams: () => this.getSuggestedParams(),
|
|
194
123
|
defaultValidityWindow: this._defaultValidityWindow,
|
|
195
124
|
});
|
|
196
125
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (log?.preLog) {
|
|
203
|
-
const transaction = (await composer.build()).transactions.at(-1).txn;
|
|
204
|
-
config.Config.getLogger(config$1?.suppressLog).debug(log.preLog(params, transaction));
|
|
205
|
-
}
|
|
206
|
-
const rawResult = await composer.execute(config$1);
|
|
207
|
-
const result = {
|
|
208
|
-
// Last item covers when a group is created by an app call with ABI transaction parameters
|
|
209
|
-
transaction: rawResult.transactions[rawResult.transactions.length - 1],
|
|
210
|
-
confirmation: rawResult.confirmations[rawResult.confirmations.length - 1],
|
|
211
|
-
txId: rawResult.txIds[0],
|
|
212
|
-
...rawResult,
|
|
213
|
-
};
|
|
214
|
-
if (log?.postLog) {
|
|
215
|
-
config.Config.getLogger(config$1?.suppressLog).debug(log.postLog(params, result));
|
|
216
|
-
}
|
|
217
|
-
return result;
|
|
218
|
-
};
|
|
126
|
+
/**
|
|
127
|
+
* Methods for sending a single transaction.
|
|
128
|
+
*/
|
|
129
|
+
get send() {
|
|
130
|
+
return this._transactionSender;
|
|
219
131
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
};
|
|
132
|
+
/**
|
|
133
|
+
* Methods for building transactions
|
|
134
|
+
*/
|
|
135
|
+
get transactions() {
|
|
136
|
+
return this._transactionCreator;
|
|
226
137
|
}
|
|
227
138
|
// Static methods to create an `AlgorandClient`
|
|
228
139
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":["ClientManager","AccountManager","
|
|
1
|
+
{"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":["ClientManager","AccountManager","AssetManager","AlgorandClientTransactionSender","AlgorandClientTransactionCreator","AlgoKitComposer"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { Config } from '../config.mjs';
|
|
2
1
|
import { AccountManager } from './account-manager.mjs';
|
|
2
|
+
import { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator.mjs';
|
|
3
|
+
import { AlgorandClientTransactionSender } from './algorand-client-transaction-sender.mjs';
|
|
4
|
+
import { AssetManager } from './asset-manager.mjs';
|
|
3
5
|
import { ClientManager } from './client-manager.mjs';
|
|
4
|
-
import
|
|
6
|
+
import AlgoKitComposer from './composer.mjs';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* A client that brokers easy access to Algorand functionality.
|
|
@@ -10,98 +12,11 @@ class AlgorandClient {
|
|
|
10
12
|
constructor(config) {
|
|
11
13
|
this._cachedSuggestedParamsTimeout = 3000; // three seconds
|
|
12
14
|
this._defaultValidityWindow = undefined;
|
|
13
|
-
/**
|
|
14
|
-
* Methods for sending a single transaction.
|
|
15
|
-
*/
|
|
16
|
-
this.send = {
|
|
17
|
-
/**
|
|
18
|
-
* Send a payment transaction.
|
|
19
|
-
*/
|
|
20
|
-
payment: this._send((c) => c.addPayment, {
|
|
21
|
-
preLog: (params, transaction) => `Sending ${params.amount.microAlgos} µALGOs from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
|
|
22
|
-
}),
|
|
23
|
-
/**
|
|
24
|
-
* Create an asset.
|
|
25
|
-
*/
|
|
26
|
-
assetCreate: this._send((c) => c.addAssetCreate, {
|
|
27
|
-
postLog: (params, result) => `Created asset${params.assetName ? ` ${params.assetName} ` : ''}${params.unitName ? ` (${params.unitName}) ` : ''} with ${params.total} units and ${params.decimals ?? 0} decimals created by ${params.sender} with ID ${result.confirmation.assetIndex} via transaction ${result.txIds.at(-1)}`,
|
|
28
|
-
}),
|
|
29
|
-
/**
|
|
30
|
-
* Configure an existing asset.
|
|
31
|
-
*/
|
|
32
|
-
assetConfig: this._send((c) => c.addAssetConfig, {
|
|
33
|
-
preLog: (params, transaction) => `Configuring asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
34
|
-
}),
|
|
35
|
-
/**
|
|
36
|
-
* Freeze or unfreeze an asset.
|
|
37
|
-
*/
|
|
38
|
-
assetFreeze: this._send((c) => c.addAssetFreeze, {
|
|
39
|
-
preLog: (params, transaction) => `Freezing asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
40
|
-
}),
|
|
41
|
-
/**
|
|
42
|
-
* Destroy an asset.
|
|
43
|
-
*/
|
|
44
|
-
assetDestroy: this._send((c) => c.addAssetDestroy, {
|
|
45
|
-
preLog: (params, transaction) => `Destroying asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
46
|
-
}),
|
|
47
|
-
/**
|
|
48
|
-
* Transfer an asset.
|
|
49
|
-
*/
|
|
50
|
-
assetTransfer: this._send((c) => c.addAssetTransfer, {
|
|
51
|
-
preLog: (params, transaction) => `Transferring ${params.amount} units of asset with ID ${params.assetId} from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
|
|
52
|
-
}),
|
|
53
|
-
/**
|
|
54
|
-
* Opt an account into an asset.
|
|
55
|
-
*/
|
|
56
|
-
assetOptIn: this._send((c) => c.addAssetOptIn, {
|
|
57
|
-
preLog: (params, transaction) => `Opting in ${params.sender} to asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
|
|
58
|
-
}),
|
|
59
|
-
/**
|
|
60
|
-
* Call a smart contract.
|
|
61
|
-
*
|
|
62
|
-
* Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
|
|
63
|
-
*/
|
|
64
|
-
appCall: this._send((c) => c.addAppCall),
|
|
65
|
-
/**
|
|
66
|
-
* Call a smart contract ABI method.
|
|
67
|
-
*
|
|
68
|
-
* Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
|
|
69
|
-
*/
|
|
70
|
-
methodCall: this._send((c) => c.addMethodCall),
|
|
71
|
-
/** Register an online key. */
|
|
72
|
-
onlineKeyRegistration: this._send((c) => c.addOnlineKeyRegistration, {
|
|
73
|
-
preLog: (params, transaction) => `Registering online key for ${params.sender} via transaction ${transaction.txID()}`,
|
|
74
|
-
}),
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Methods for building transactions
|
|
78
|
-
*/
|
|
79
|
-
this.transactions = {
|
|
80
|
-
/** Create a payment transaction. */
|
|
81
|
-
payment: this._transaction((c) => c.addPayment),
|
|
82
|
-
/** Create an asset creation transaction. */
|
|
83
|
-
assetCreate: this._transaction((c) => c.addAssetCreate),
|
|
84
|
-
/** Create an asset config transaction. */
|
|
85
|
-
assetConfig: this._transaction((c) => c.addAssetConfig),
|
|
86
|
-
/** Create an asset freeze transaction. */
|
|
87
|
-
assetFreeze: this._transaction((c) => c.addAssetFreeze),
|
|
88
|
-
/** Create an asset destroy transaction. */
|
|
89
|
-
assetDestroy: this._transaction((c) => c.addAssetDestroy),
|
|
90
|
-
/** Create an asset transfer transaction. */
|
|
91
|
-
assetTransfer: this._transaction((c) => c.addAssetTransfer),
|
|
92
|
-
/** Create an asset opt-in transaction. */
|
|
93
|
-
assetOptIn: this._transaction((c) => c.addAssetOptIn),
|
|
94
|
-
/** Create an application call transaction. */
|
|
95
|
-
appCall: this._transaction((c) => c.addAppCall),
|
|
96
|
-
/** Create an application call with ABI method call transaction. */
|
|
97
|
-
methodCall: async (params) => {
|
|
98
|
-
return (await this.newGroup().addMethodCall(params).build()).transactions.map((ts) => ts.txn);
|
|
99
|
-
},
|
|
100
|
-
/** Create an online key registration transaction. */
|
|
101
|
-
onlineKeyRegistration: this._transaction((c) => c.addOnlineKeyRegistration),
|
|
102
|
-
};
|
|
103
15
|
this._clientManager = new ClientManager(config);
|
|
104
16
|
this._accountManager = new AccountManager(this._clientManager);
|
|
17
|
+
this._assetManager = new AssetManager(this._clientManager.algod, () => this.newGroup());
|
|
18
|
+
this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager);
|
|
19
|
+
this._transactionCreator = new AlgorandClientTransactionCreator(() => this.newGroup());
|
|
105
20
|
}
|
|
106
21
|
/**
|
|
107
22
|
* Sets the default validity window for transactions.
|
|
@@ -123,7 +38,17 @@ class AlgorandClient {
|
|
|
123
38
|
}
|
|
124
39
|
/**
|
|
125
40
|
* Tracks the given account for later signing.
|
|
126
|
-
* @param account The account to register
|
|
41
|
+
* @param account The account to register, which can be a `TransactionSignerAccount` or
|
|
42
|
+
* a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const accountManager = AlgorandClient.mainnet()
|
|
46
|
+
* .setSignerFromAccount(algosdk.generateAccount())
|
|
47
|
+
* .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))
|
|
48
|
+
* .setSignerFromAccount(new SigningAccount(mnemonic, sender))
|
|
49
|
+
* .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: ["ADDRESS1...", "ADDRESS2..."]}, [account1, account2]))
|
|
50
|
+
* .setSignerFromAccount({addr: "SENDERADDRESS", signer: transactionSigner})
|
|
51
|
+
* ```
|
|
127
52
|
* @returns The `AlgorandClient` so method calls can be chained
|
|
128
53
|
*/
|
|
129
54
|
setSignerFromAccount(account) {
|
|
@@ -181,44 +106,30 @@ class AlgorandClient {
|
|
|
181
106
|
get account() {
|
|
182
107
|
return this._accountManager;
|
|
183
108
|
}
|
|
184
|
-
/**
|
|
109
|
+
/** Methods for interacting with assets. */
|
|
110
|
+
get asset() {
|
|
111
|
+
return this._assetManager;
|
|
112
|
+
}
|
|
113
|
+
/** Start a new `AlgoKitComposer` transaction group */
|
|
185
114
|
newGroup() {
|
|
186
|
-
return new
|
|
115
|
+
return new AlgoKitComposer({
|
|
187
116
|
algod: this.client.algod,
|
|
188
117
|
getSigner: (addr) => this.account.getSigner(addr),
|
|
189
118
|
getSuggestedParams: () => this.getSuggestedParams(),
|
|
190
119
|
defaultValidityWindow: this._defaultValidityWindow,
|
|
191
120
|
});
|
|
192
121
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (log?.preLog) {
|
|
199
|
-
const transaction = (await composer.build()).transactions.at(-1).txn;
|
|
200
|
-
Config.getLogger(config?.suppressLog).debug(log.preLog(params, transaction));
|
|
201
|
-
}
|
|
202
|
-
const rawResult = await composer.execute(config);
|
|
203
|
-
const result = {
|
|
204
|
-
// Last item covers when a group is created by an app call with ABI transaction parameters
|
|
205
|
-
transaction: rawResult.transactions[rawResult.transactions.length - 1],
|
|
206
|
-
confirmation: rawResult.confirmations[rawResult.confirmations.length - 1],
|
|
207
|
-
txId: rawResult.txIds[0],
|
|
208
|
-
...rawResult,
|
|
209
|
-
};
|
|
210
|
-
if (log?.postLog) {
|
|
211
|
-
Config.getLogger(config?.suppressLog).debug(log.postLog(params, result));
|
|
212
|
-
}
|
|
213
|
-
return result;
|
|
214
|
-
};
|
|
122
|
+
/**
|
|
123
|
+
* Methods for sending a single transaction.
|
|
124
|
+
*/
|
|
125
|
+
get send() {
|
|
126
|
+
return this._transactionSender;
|
|
215
127
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
};
|
|
128
|
+
/**
|
|
129
|
+
* Methods for building transactions
|
|
130
|
+
*/
|
|
131
|
+
get transactions() {
|
|
132
|
+
return this._transactionCreator;
|
|
222
133
|
}
|
|
223
134
|
// Static methods to create an `AlgorandClient`
|
|
224
135
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algorand-client.mjs","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"algorand-client.mjs","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/types/amount.d.ts
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
/** Wrapper class to ensure safe, explicit conversion between µ
|
|
1
|
+
/** Wrapper class to ensure safe, explicit conversion between µAlgo, Algo and numbers */
|
|
2
2
|
export declare class AlgoAmount {
|
|
3
|
-
private
|
|
4
|
-
/** Return the amount as a number in µ
|
|
3
|
+
private amountInMicroAlgo;
|
|
4
|
+
/** Return the amount as a number in µAlgo */
|
|
5
5
|
get microAlgos(): number;
|
|
6
|
-
/** Return the amount as a number in
|
|
6
|
+
/** Return the amount as a number in µAlgo */
|
|
7
|
+
get microAlgo(): number;
|
|
8
|
+
/** Return the amount as a number in Algo */
|
|
7
9
|
get algos(): number;
|
|
10
|
+
/** Return the amount as a number in Algo */
|
|
11
|
+
get algo(): number;
|
|
8
12
|
constructor(amount: {
|
|
9
13
|
algos: number;
|
|
14
|
+
} | {
|
|
15
|
+
algo: number;
|
|
10
16
|
} | {
|
|
11
17
|
microAlgos: number;
|
|
18
|
+
} | {
|
|
19
|
+
microAlgo: number;
|
|
12
20
|
});
|
|
13
21
|
toString(): string;
|
|
14
22
|
/** valueOf allows you to use `AlgoAmount` in comparison operations such as `<` and `>=` etc.,
|
|
@@ -16,9 +24,13 @@ export declare class AlgoAmount {
|
|
|
16
24
|
* the algos or microAlgos properties
|
|
17
25
|
*/
|
|
18
26
|
valueOf(): number;
|
|
19
|
-
/** Create a `AlgoAmount` object representing the given number of
|
|
27
|
+
/** Create a `AlgoAmount` object representing the given number of Algo */
|
|
20
28
|
static Algos(amount: number): AlgoAmount;
|
|
21
|
-
/** Create a `AlgoAmount` object representing the given number of
|
|
29
|
+
/** Create a `AlgoAmount` object representing the given number of Algo */
|
|
30
|
+
static Algo(amount: number): AlgoAmount;
|
|
31
|
+
/** Create a `AlgoAmount` object representing the given number of µAlgo */
|
|
22
32
|
static MicroAlgos(amount: number): AlgoAmount;
|
|
33
|
+
/** Create a `AlgoAmount` object representing the given number of µAlgo */
|
|
34
|
+
static MicroAlgo(amount: number): AlgoAmount;
|
|
23
35
|
}
|
|
24
36
|
//# sourceMappingURL=amount.d.ts.map
|
package/types/amount.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,qBAAa,UAAU;IACrB,OAAO,CAAC,iBAAiB,CAAA;IAEzB,6CAA6C;IAC7C,IAAI,UAAU,WAEb;IAED,6CAA6C;IAC7C,IAAI,SAAS,WAEZ;IAED,4CAA4C;IAC5C,IAAI,KAAK,WAER;IAED,4CAA4C;IAC5C,IAAI,IAAI,WAEP;gBAEW,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAWzG,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB,yEAAyE;IACzE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;IAI3B,yEAAyE;IACzE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;IAI1B,0EAA0E;IAC1E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;IAIhC,0EAA0E;IAC1E,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM;CAGhC"}
|
package/types/amount.js
CHANGED
|
@@ -2,37 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
var algosdk = require('algosdk');
|
|
4
4
|
|
|
5
|
-
/** Wrapper class to ensure safe, explicit conversion between µ
|
|
5
|
+
/** Wrapper class to ensure safe, explicit conversion between µAlgo, Algo and numbers */
|
|
6
6
|
class AlgoAmount {
|
|
7
|
-
/** Return the amount as a number in µ
|
|
7
|
+
/** Return the amount as a number in µAlgo */
|
|
8
8
|
get microAlgos() {
|
|
9
|
-
return this.
|
|
9
|
+
return this.amountInMicroAlgo;
|
|
10
10
|
}
|
|
11
|
-
/** Return the amount as a number in
|
|
11
|
+
/** Return the amount as a number in µAlgo */
|
|
12
|
+
get microAlgo() {
|
|
13
|
+
return this.amountInMicroAlgo;
|
|
14
|
+
}
|
|
15
|
+
/** Return the amount as a number in Algo */
|
|
12
16
|
get algos() {
|
|
13
|
-
return algosdk.microalgosToAlgos(this.
|
|
17
|
+
return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
|
|
18
|
+
}
|
|
19
|
+
/** Return the amount as a number in Algo */
|
|
20
|
+
get algo() {
|
|
21
|
+
return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
|
|
14
22
|
}
|
|
15
23
|
constructor(amount) {
|
|
16
|
-
this.
|
|
24
|
+
this.amountInMicroAlgo =
|
|
25
|
+
'microAlgos' in amount
|
|
26
|
+
? amount.microAlgos
|
|
27
|
+
: 'microAlgo' in amount
|
|
28
|
+
? amount.microAlgo
|
|
29
|
+
: 'algos' in amount
|
|
30
|
+
? algosdk.algosToMicroalgos(amount.algos)
|
|
31
|
+
: algosdk.algosToMicroalgos(amount.algo);
|
|
17
32
|
}
|
|
18
33
|
toString() {
|
|
19
|
-
return `${this.
|
|
34
|
+
return `${this.microAlgo.toLocaleString('en-US')} µALGO`;
|
|
20
35
|
}
|
|
21
36
|
/** valueOf allows you to use `AlgoAmount` in comparison operations such as `<` and `>=` etc.,
|
|
22
37
|
* but it's not recommended to use this to convert to a number, it's much safer to explicitly call
|
|
23
38
|
* the algos or microAlgos properties
|
|
24
39
|
*/
|
|
25
40
|
valueOf() {
|
|
26
|
-
return this.
|
|
41
|
+
return this.microAlgo;
|
|
27
42
|
}
|
|
28
|
-
/** Create a `AlgoAmount` object representing the given number of
|
|
43
|
+
/** Create a `AlgoAmount` object representing the given number of Algo */
|
|
29
44
|
static Algos(amount) {
|
|
30
45
|
return new AlgoAmount({ algos: amount });
|
|
31
46
|
}
|
|
32
|
-
/** Create a `AlgoAmount` object representing the given number of
|
|
47
|
+
/** Create a `AlgoAmount` object representing the given number of Algo */
|
|
48
|
+
static Algo(amount) {
|
|
49
|
+
return new AlgoAmount({ algos: amount });
|
|
50
|
+
}
|
|
51
|
+
/** Create a `AlgoAmount` object representing the given number of µAlgo */
|
|
33
52
|
static MicroAlgos(amount) {
|
|
34
53
|
return new AlgoAmount({ microAlgos: amount });
|
|
35
54
|
}
|
|
55
|
+
/** Create a `AlgoAmount` object representing the given number of µAlgo */
|
|
56
|
+
static MicroAlgo(amount) {
|
|
57
|
+
return new AlgoAmount({ microAlgos: amount });
|
|
58
|
+
}
|
|
36
59
|
}
|
|
37
60
|
|
|
38
61
|
exports.AlgoAmount = AlgoAmount;
|
package/types/amount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amount.js","sources":["../../src/types/amount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"amount.js","sources":["../../src/types/amount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;AAED,IAAA,WAAA,CAAY,MAA6F,EAAA;AACvG,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,YAAY,IAAI,MAAM;kBAClB,MAAM,CAAC,UAAU;kBACjB,WAAW,IAAI,MAAM;sBACnB,MAAM,CAAC,SAAS;sBAChB,OAAO,IAAI,MAAM;0BACf,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;0BACvC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KACjD;IAED,QAAQ,GAAA;QACN,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,MAAA,CAAQ,CAAA;KACzD;AAED;;;AAGG;IACH,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;;IAGD,OAAO,KAAK,CAAC,MAAc,EAAA;QACzB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,IAAI,CAAC,MAAc,EAAA;QACxB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,UAAU,CAAC,MAAc,EAAA;QAC9B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;;IAGD,OAAO,SAAS,CAAC,MAAc,EAAA;QAC7B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;AACF;;;;"}
|