algosdk 1.13.0-beta.1 → 1.14.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/README.md +6 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/src/abi/abi_type.js +75 -47
- package/dist/cjs/src/abi/abi_type.js.map +1 -1
- package/dist/cjs/src/abi/contract.js +6 -4
- package/dist/cjs/src/abi/contract.js.map +1 -1
- package/dist/cjs/src/abi/index.js +2 -0
- package/dist/cjs/src/abi/index.js.map +1 -1
- package/dist/cjs/src/abi/interface.js +2 -0
- package/dist/cjs/src/abi/interface.js.map +1 -1
- package/dist/cjs/src/abi/method.js +5 -8
- package/dist/cjs/src/abi/method.js.map +1 -1
- package/dist/cjs/src/abi/reference.js +25 -0
- package/dist/cjs/src/abi/reference.js.map +1 -0
- package/dist/cjs/src/abi/transaction.js +52 -0
- package/dist/cjs/src/abi/transaction.js.map +1 -0
- package/dist/cjs/src/client/baseHTTPClient.js +3 -0
- package/dist/cjs/src/client/baseHTTPClient.js.map +1 -0
- package/dist/cjs/src/client/client.js +164 -104
- package/dist/cjs/src/client/client.js.map +1 -1
- package/dist/cjs/src/client/urlTokenBaseHTTPClient.js +138 -0
- package/dist/cjs/src/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/cjs/src/client/v2/algod/algod.js +262 -9
- package/dist/cjs/src/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/src/client/v2/algod/models/types.js +26 -4
- package/dist/cjs/src/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/src/client/v2/indexer/indexer.js +160 -3
- package/dist/cjs/src/client/v2/indexer/indexer.js.map +1 -1
- package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js +98 -6
- package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/cjs/src/client/v2/serviceClient.js +17 -8
- package/dist/cjs/src/client/v2/serviceClient.js.map +1 -1
- package/dist/cjs/src/composer.js +159 -38
- package/dist/cjs/src/composer.js.map +1 -1
- package/dist/cjs/src/dryrun.js +105 -0
- package/dist/cjs/src/dryrun.js.map +1 -0
- package/dist/cjs/src/logic/langspec.json +456 -153
- package/dist/cjs/src/logicTemplates/dynamicfee.js +8 -0
- package/dist/cjs/src/logicTemplates/dynamicfee.js.map +1 -1
- package/dist/cjs/src/logicTemplates/htlc.js +5 -0
- package/dist/cjs/src/logicTemplates/htlc.js.map +1 -1
- package/dist/cjs/src/logicTemplates/limitorder.js +6 -0
- package/dist/cjs/src/logicTemplates/limitorder.js.map +1 -1
- package/dist/cjs/src/logicTemplates/periodicpayment.js +5 -0
- package/dist/cjs/src/logicTemplates/periodicpayment.js.map +1 -1
- package/dist/cjs/src/logicTemplates/split.js +6 -0
- package/dist/cjs/src/logicTemplates/split.js.map +1 -1
- package/dist/cjs/src/main.js +5 -1
- package/dist/cjs/src/main.js.map +1 -1
- package/dist/cjs/src/makeTxn.js +5 -4
- package/dist/cjs/src/makeTxn.js.map +1 -1
- package/dist/cjs/src/transaction.js +45 -11
- package/dist/cjs/src/transaction.js.map +1 -1
- package/dist/cjs/src/types/transactions/base.js +11 -2
- package/dist/cjs/src/types/transactions/base.js.map +1 -1
- package/dist/cjs/src/wait.js +21 -8
- package/dist/cjs/src/wait.js.map +1 -1
- package/dist/esm/src/abi/abi_type.js +75 -47
- package/dist/esm/src/abi/abi_type.js.map +1 -1
- package/dist/esm/src/abi/contract.js +6 -4
- package/dist/esm/src/abi/contract.js.map +1 -1
- package/dist/esm/src/abi/index.js +2 -0
- package/dist/esm/src/abi/index.js.map +1 -1
- package/dist/esm/src/abi/interface.js +2 -0
- package/dist/esm/src/abi/interface.js.map +1 -1
- package/dist/esm/src/abi/method.js +3 -5
- package/dist/esm/src/abi/method.js.map +1 -1
- package/dist/esm/src/abi/reference.js +21 -0
- package/dist/esm/src/abi/reference.js.map +1 -0
- package/dist/esm/src/abi/transaction.js +47 -0
- package/dist/esm/src/abi/transaction.js.map +1 -0
- package/dist/esm/src/client/baseHTTPClient.js +2 -0
- package/dist/esm/src/client/baseHTTPClient.js.map +1 -0
- package/dist/esm/src/client/client.js +164 -101
- package/dist/esm/src/client/client.js.map +1 -1
- package/dist/esm/src/client/urlTokenBaseHTTPClient.js +112 -0
- package/dist/esm/src/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/esm/src/client/v2/algod/algod.js +262 -9
- package/dist/esm/src/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/src/client/v2/algod/models/types.js +26 -4
- package/dist/esm/src/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/src/client/v2/indexer/indexer.js +160 -3
- package/dist/esm/src/client/v2/indexer/indexer.js.map +1 -1
- package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js +98 -6
- package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/esm/src/client/v2/serviceClient.js +17 -8
- package/dist/esm/src/client/v2/serviceClient.js.map +1 -1
- package/dist/esm/src/composer.js +160 -39
- package/dist/esm/src/composer.js.map +1 -1
- package/dist/esm/src/dryrun.js +101 -0
- package/dist/esm/src/dryrun.js.map +1 -0
- package/dist/esm/src/logic/langspec.json +456 -153
- package/dist/esm/src/logicTemplates/dynamicfee.js +8 -0
- package/dist/esm/src/logicTemplates/dynamicfee.js.map +1 -1
- package/dist/esm/src/logicTemplates/htlc.js +5 -0
- package/dist/esm/src/logicTemplates/htlc.js.map +1 -1
- package/dist/esm/src/logicTemplates/limitorder.js +6 -0
- package/dist/esm/src/logicTemplates/limitorder.js.map +1 -1
- package/dist/esm/src/logicTemplates/periodicpayment.js +5 -0
- package/dist/esm/src/logicTemplates/periodicpayment.js.map +1 -1
- package/dist/esm/src/logicTemplates/split.js +6 -0
- package/dist/esm/src/logicTemplates/split.js.map +1 -1
- package/dist/esm/src/main.js +2 -0
- package/dist/esm/src/main.js.map +1 -1
- package/dist/esm/src/makeTxn.js +5 -4
- package/dist/esm/src/makeTxn.js.map +1 -1
- package/dist/esm/src/transaction.js +46 -12
- package/dist/esm/src/transaction.js.map +1 -1
- package/dist/esm/src/types/transactions/base.js +9 -1
- package/dist/esm/src/types/transactions/base.js.map +1 -1
- package/dist/esm/src/wait.js +21 -8
- package/dist/esm/src/wait.js.map +1 -1
- package/dist/types/src/abi/abi_type.d.ts +19 -19
- package/dist/types/src/abi/contract.d.ts +10 -2
- package/dist/types/src/abi/index.d.ts +2 -0
- package/dist/types/src/abi/interface.d.ts +2 -0
- package/dist/types/src/abi/method.d.ts +14 -12
- package/dist/types/src/abi/reference.d.ts +15 -0
- package/dist/types/src/abi/transaction.d.ts +33 -0
- package/dist/types/src/client/baseHTTPClient.d.ts +41 -0
- package/dist/types/src/client/client.d.ts +66 -31
- package/dist/types/src/client/kmd.d.ts +1 -1
- package/dist/types/src/client/urlTokenBaseHTTPClient.d.ts +44 -0
- package/dist/types/src/client/v2/algod/algod.d.ts +263 -9
- package/dist/types/src/client/v2/algod/models/types.d.ts +47 -5
- package/dist/types/src/client/v2/indexer/indexer.d.ts +161 -3
- package/dist/types/src/client/v2/indexer/lookupAssetBalances.d.ts +98 -0
- package/dist/types/src/client/v2/serviceClient.d.ts +6 -2
- package/dist/types/src/composer.d.ts +19 -3
- package/dist/types/src/dryrun.d.ts +20 -0
- package/dist/types/src/logicTemplates/dynamicfee.d.ts +8 -0
- package/dist/types/src/logicTemplates/htlc.d.ts +5 -0
- package/dist/types/src/logicTemplates/limitorder.d.ts +6 -0
- package/dist/types/src/logicTemplates/periodicpayment.d.ts +5 -0
- package/dist/types/src/logicTemplates/split.d.ts +6 -0
- package/dist/types/src/main.d.ts +3 -0
- package/dist/types/src/makeTxn.d.ts +11 -9
- package/dist/types/src/transaction.d.ts +3 -1
- package/dist/types/src/types/transactions/base.d.ts +10 -5
- package/dist/types/src/types/transactions/encoded.d.ts +4 -0
- package/dist/types/src/types/transactions/keyreg.d.ts +1 -1
- package/package.json +6 -4
package/dist/cjs/src/composer.js
CHANGED
|
@@ -8,6 +8,10 @@ const group_1 = require("./group");
|
|
|
8
8
|
const wait_1 = require("./wait");
|
|
9
9
|
const signer_1 = require("./signer");
|
|
10
10
|
const base_1 = require("./types/transactions/base");
|
|
11
|
+
// First 4 bytes of SHA-512/256 hash of "return"
|
|
12
|
+
const RETURN_PREFIX = Buffer.from([21, 31, 124, 117]);
|
|
13
|
+
// The maximum number of arguments for an application call transaction
|
|
14
|
+
const MAX_APP_ARGS = 16;
|
|
11
15
|
var AtomicTransactionComposerStatus;
|
|
12
16
|
(function (AtomicTransactionComposerStatus) {
|
|
13
17
|
/** The atomic group is still under construction. */
|
|
@@ -21,6 +25,32 @@ var AtomicTransactionComposerStatus;
|
|
|
21
25
|
/** The atomic group has been finalized, signed, submitted, and successfully committed to a block. */
|
|
22
26
|
AtomicTransactionComposerStatus[AtomicTransactionComposerStatus["COMMITTED"] = 4] = "COMMITTED";
|
|
23
27
|
})(AtomicTransactionComposerStatus = exports.AtomicTransactionComposerStatus || (exports.AtomicTransactionComposerStatus = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Add a value to an application call's foreign array. The addition will be as compact as possible,
|
|
30
|
+
* and this function will return an index that can be used to reference `valueToAdd` in `array`.
|
|
31
|
+
*
|
|
32
|
+
* @param valueToAdd - The value to add to the array. If this value is already present in the array,
|
|
33
|
+
* it will not be added again. Instead, the existing index will be returned.
|
|
34
|
+
* @param array - The existing foreign array. This input may be modified to append `valueToAdd`.
|
|
35
|
+
* @param zeroValue - If provided, this value indicated two things: the 0 value is special for this
|
|
36
|
+
* array, so all indexes into `array` must start at 1; additionally, if `valueToAdd` equals
|
|
37
|
+
* `zeroValue`, then `valueToAdd` will not be added to the array, and instead the 0 indexes will
|
|
38
|
+
* be returned.
|
|
39
|
+
* @returns An index that can be used to reference `valueToAdd` in `array`.
|
|
40
|
+
*/
|
|
41
|
+
function populateForeignArray(valueToAdd, array, zeroValue) {
|
|
42
|
+
if (zeroValue != null && valueToAdd === zeroValue) {
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
const offset = zeroValue == null ? 0 : 1;
|
|
46
|
+
for (let i = 0; i < array.length; i++) {
|
|
47
|
+
if (valueToAdd === array[i]) {
|
|
48
|
+
return i + offset;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
array.push(valueToAdd);
|
|
52
|
+
return array.length - 1 + offset;
|
|
53
|
+
}
|
|
24
54
|
/** A class used to construct and execute atomic transaction groups */
|
|
25
55
|
class AtomicTransactionComposer {
|
|
26
56
|
constructor() {
|
|
@@ -85,7 +115,7 @@ class AtomicTransactionComposer {
|
|
|
85
115
|
* causes the current group to exceed MAX_GROUP_SIZE, or if the provided arguments are invalid
|
|
86
116
|
* for the given method.
|
|
87
117
|
*/
|
|
88
|
-
addMethodCall({
|
|
118
|
+
addMethodCall({ appID, method, methodArgs, sender, suggestedParams, onComplete, approvalProgram, clearProgram, numGlobalInts, numGlobalByteSlices, numLocalInts, numLocalByteSlices, extraPages, note, lease, rekeyTo, signer, }) {
|
|
89
119
|
if (this.status !== AtomicTransactionComposerStatus.BUILDING) {
|
|
90
120
|
throw new Error('Cannot add transactions when composer status is not BUILDING');
|
|
91
121
|
}
|
|
@@ -93,8 +123,36 @@ class AtomicTransactionComposer {
|
|
|
93
123
|
AtomicTransactionComposer.MAX_GROUP_SIZE) {
|
|
94
124
|
throw new Error(`Adding additional transactions exceeds the maximum atomic group size of ${AtomicTransactionComposer.MAX_GROUP_SIZE}`);
|
|
95
125
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
126
|
+
if (appID === 0) {
|
|
127
|
+
if (approvalProgram == null ||
|
|
128
|
+
clearProgram == null ||
|
|
129
|
+
numGlobalInts == null ||
|
|
130
|
+
numGlobalByteSlices == null ||
|
|
131
|
+
numLocalInts == null ||
|
|
132
|
+
numLocalByteSlices == null) {
|
|
133
|
+
throw new Error('One of the following required parameters for application creation is missing: approvalProgram, clearProgram, numGlobalInts, numGlobalByteSlices, numLocalInts, numLocalByteSlices');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else if (onComplete === base_1.OnApplicationComplete.UpdateApplicationOC) {
|
|
137
|
+
if (approvalProgram == null || clearProgram == null) {
|
|
138
|
+
throw new Error('One of the following required parameters for OnApplicationComplete.UpdateApplicationOC is missing: approvalProgram, clearProgram');
|
|
139
|
+
}
|
|
140
|
+
if (numGlobalInts != null ||
|
|
141
|
+
numGlobalByteSlices != null ||
|
|
142
|
+
numLocalInts != null ||
|
|
143
|
+
numLocalByteSlices != null ||
|
|
144
|
+
extraPages != null) {
|
|
145
|
+
throw new Error('One of the following application creation parameters were set on a non-creation call: numGlobalInts, numGlobalByteSlices, numLocalInts, numLocalByteSlices, extraPages');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else if (approvalProgram != null ||
|
|
149
|
+
clearProgram != null ||
|
|
150
|
+
numGlobalInts != null ||
|
|
151
|
+
numGlobalByteSlices != null ||
|
|
152
|
+
numLocalInts != null ||
|
|
153
|
+
numLocalByteSlices != null ||
|
|
154
|
+
extraPages != null) {
|
|
155
|
+
throw new Error('One of the following application creation parameters were set on a non-creation call: approvalProgram, clearProgram, numGlobalInts, numGlobalByteSlices, numLocalInts, numLocalByteSlices, extraPages');
|
|
98
156
|
}
|
|
99
157
|
if (methodArgs == null) {
|
|
100
158
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -103,17 +161,19 @@ class AtomicTransactionComposer {
|
|
|
103
161
|
if (methodArgs.length !== method.args.length) {
|
|
104
162
|
throw new Error(`Incorrect number of method arguments. Expected ${method.args.length}, got ${methodArgs.length}`);
|
|
105
163
|
}
|
|
106
|
-
let
|
|
107
|
-
let
|
|
164
|
+
let basicArgTypes = [];
|
|
165
|
+
let basicArgValues = [];
|
|
108
166
|
const txnArgs = [];
|
|
167
|
+
const refArgTypes = [];
|
|
168
|
+
const refArgValues = [];
|
|
169
|
+
const refArgIndexToBasicArgIndex = new Map();
|
|
109
170
|
for (let i = 0; i < methodArgs.length; i++) {
|
|
110
|
-
|
|
171
|
+
let argType = method.args[i].type;
|
|
111
172
|
const argValue = methodArgs[i];
|
|
112
|
-
if (
|
|
113
|
-
abi_1.abiTypeIsTransaction(argSpec.type)) {
|
|
173
|
+
if (abi_1.abiTypeIsTransaction(argType)) {
|
|
114
174
|
if (!signer_1.isTransactionWithSigner(argValue) ||
|
|
115
|
-
|
|
116
|
-
throw new Error(`Expected ${
|
|
175
|
+
!abi_1.abiCheckTransactionType(argType, argValue.txn)) {
|
|
176
|
+
throw new Error(`Expected ${argType} transaction for argument at index ${i}`);
|
|
117
177
|
}
|
|
118
178
|
if (argValue.txn.group && argValue.txn.group.some((v) => v !== 0)) {
|
|
119
179
|
throw new Error('Cannot add a transaction with nonzero group ID');
|
|
@@ -124,27 +184,89 @@ class AtomicTransactionComposer {
|
|
|
124
184
|
if (signer_1.isTransactionWithSigner(argValue)) {
|
|
125
185
|
throw new Error(`Expected non-transaction value for argument at index ${i}`);
|
|
126
186
|
}
|
|
127
|
-
|
|
128
|
-
|
|
187
|
+
if (abi_1.abiTypeIsReference(argType)) {
|
|
188
|
+
refArgIndexToBasicArgIndex.set(refArgTypes.length, basicArgTypes.length);
|
|
189
|
+
refArgTypes.push(argType);
|
|
190
|
+
refArgValues.push(argValue);
|
|
191
|
+
// treat the reference as a uint8 for encoding purposes
|
|
192
|
+
argType = new abi_1.ABIUintType(8);
|
|
193
|
+
}
|
|
194
|
+
if (typeof argType === 'string') {
|
|
195
|
+
throw new Error(`Unknown ABI type: ${argType}`);
|
|
196
|
+
}
|
|
197
|
+
basicArgTypes.push(argType);
|
|
198
|
+
basicArgValues.push(argValue);
|
|
129
199
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
200
|
+
const resolvedRefIndexes = [];
|
|
201
|
+
const foreignAccounts = [];
|
|
202
|
+
const foreignApps = [];
|
|
203
|
+
const foreignAssets = [];
|
|
204
|
+
for (let i = 0; i < refArgTypes.length; i++) {
|
|
205
|
+
const refType = refArgTypes[i];
|
|
206
|
+
const refValue = refArgValues[i];
|
|
207
|
+
let resolved = 0;
|
|
208
|
+
switch (refType) {
|
|
209
|
+
case abi_1.ABIReferenceType.account: {
|
|
210
|
+
const addressType = new abi_1.ABIAddressType();
|
|
211
|
+
const address = addressType.decode(addressType.encode(refValue));
|
|
212
|
+
resolved = populateForeignArray(address, foreignAccounts, sender);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
case abi_1.ABIReferenceType.application: {
|
|
216
|
+
const uint64Type = new abi_1.ABIUintType(64);
|
|
217
|
+
const refAppID = uint64Type.decode(uint64Type.encode(refValue));
|
|
218
|
+
if (refAppID > Number.MAX_SAFE_INTEGER) {
|
|
219
|
+
throw new Error(`Expected safe integer for application value, got ${refAppID}`);
|
|
220
|
+
}
|
|
221
|
+
resolved = populateForeignArray(Number(refAppID), foreignApps, appID);
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
case abi_1.ABIReferenceType.asset: {
|
|
225
|
+
const uint64Type = new abi_1.ABIUintType(64);
|
|
226
|
+
const refAssetID = uint64Type.decode(uint64Type.encode(refValue));
|
|
227
|
+
if (refAssetID > Number.MAX_SAFE_INTEGER) {
|
|
228
|
+
throw new Error(`Expected safe integer for asset value, got ${refAssetID}`);
|
|
229
|
+
}
|
|
230
|
+
resolved = populateForeignArray(Number(refAssetID), foreignAssets);
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
default:
|
|
234
|
+
throw new Error(`Unknown reference type: ${refType}`);
|
|
235
|
+
}
|
|
236
|
+
resolvedRefIndexes.push(resolved);
|
|
237
|
+
}
|
|
238
|
+
for (let i = 0; i < resolvedRefIndexes.length; i++) {
|
|
239
|
+
const basicArgIndex = refArgIndexToBasicArgIndex.get(i);
|
|
240
|
+
basicArgValues[basicArgIndex] = resolvedRefIndexes[i];
|
|
241
|
+
}
|
|
242
|
+
if (basicArgTypes.length > MAX_APP_ARGS - 1) {
|
|
243
|
+
const lastArgTupleTypes = basicArgTypes.slice(MAX_APP_ARGS - 2);
|
|
244
|
+
const lastArgTupleValues = basicArgValues.slice(MAX_APP_ARGS - 2);
|
|
245
|
+
basicArgTypes = basicArgTypes.slice(0, MAX_APP_ARGS - 2);
|
|
246
|
+
basicArgValues = basicArgValues.slice(0, MAX_APP_ARGS - 2);
|
|
247
|
+
basicArgTypes.push(new abi_1.ABITupleType(lastArgTupleTypes));
|
|
248
|
+
basicArgValues.push(lastArgTupleValues);
|
|
137
249
|
}
|
|
138
250
|
const appArgsEncoded = [method.getSelector()];
|
|
139
|
-
for (let i = 0; i <
|
|
140
|
-
appArgsEncoded.push(
|
|
251
|
+
for (let i = 0; i < basicArgTypes.length; i++) {
|
|
252
|
+
appArgsEncoded.push(basicArgTypes[i].encode(basicArgValues[i]));
|
|
141
253
|
}
|
|
142
254
|
const appCall = {
|
|
143
255
|
txn: makeTxn_1.makeApplicationCallTxnFromObject({
|
|
144
256
|
from: sender,
|
|
145
|
-
appIndex:
|
|
257
|
+
appIndex: appID,
|
|
146
258
|
appArgs: appArgsEncoded,
|
|
259
|
+
accounts: foreignAccounts,
|
|
260
|
+
foreignApps,
|
|
261
|
+
foreignAssets,
|
|
147
262
|
onComplete: onComplete == null ? base_1.OnApplicationComplete.NoOpOC : onComplete,
|
|
263
|
+
approvalProgram,
|
|
264
|
+
clearProgram,
|
|
265
|
+
numGlobalInts,
|
|
266
|
+
numGlobalByteSlices,
|
|
267
|
+
numLocalInts,
|
|
268
|
+
numLocalByteSlices,
|
|
269
|
+
extraPages,
|
|
148
270
|
lease,
|
|
149
271
|
note,
|
|
150
272
|
rekeyTo,
|
|
@@ -165,7 +287,9 @@ class AtomicTransactionComposer {
|
|
|
165
287
|
if (this.transactions.length === 0) {
|
|
166
288
|
throw new Error('Cannot build a group with 0 transactions');
|
|
167
289
|
}
|
|
168
|
-
|
|
290
|
+
if (this.transactions.length > 1) {
|
|
291
|
+
group_1.assignGroupID(this.transactions.map((txnWithSigner) => txnWithSigner.txn));
|
|
292
|
+
}
|
|
169
293
|
this.status = AtomicTransactionComposerStatus.BUILT;
|
|
170
294
|
}
|
|
171
295
|
return this.transactions;
|
|
@@ -265,6 +389,7 @@ class AtomicTransactionComposer {
|
|
|
265
389
|
throw new Error('Transaction group has already been executed successfully');
|
|
266
390
|
}
|
|
267
391
|
const txIDs = await this.submit(client);
|
|
392
|
+
this.status = AtomicTransactionComposerStatus.SUBMITTED;
|
|
268
393
|
const firstMethodCallIndex = this.transactions.findIndex((_, index) => this.methodCalls.has(index));
|
|
269
394
|
const indexToWaitFor = firstMethodCallIndex === -1 ? 0 : firstMethodCallIndex;
|
|
270
395
|
const confirmedTxnInfo = await wait_1.waitForConfirmation(client, txIDs[indexToWaitFor], waitRounds);
|
|
@@ -278,26 +403,22 @@ class AtomicTransactionComposer {
|
|
|
278
403
|
rawReturnValue: new Uint8Array(),
|
|
279
404
|
};
|
|
280
405
|
try {
|
|
406
|
+
const pendingInfo = txnIndex === firstMethodCallIndex
|
|
407
|
+
? confirmedTxnInfo
|
|
408
|
+
: // eslint-disable-next-line no-await-in-loop
|
|
409
|
+
await client.pendingTransactionInformation(txID).do();
|
|
410
|
+
methodResult.txInfo = pendingInfo;
|
|
281
411
|
if (method.returns.type !== 'void') {
|
|
282
|
-
const pendingInfo = txnIndex === firstMethodCallIndex
|
|
283
|
-
? confirmedTxnInfo
|
|
284
|
-
: // eslint-disable-next-line no-await-in-loop
|
|
285
|
-
await client.pendingTransactionInformation(txID).do();
|
|
286
412
|
const logs = pendingInfo.logs || [];
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
let returnValueEncoded;
|
|
290
|
-
for (let i = logs.length - 1; i >= 0; i--) {
|
|
291
|
-
const log = Buffer.from(logs[i], 'base64');
|
|
292
|
-
if (log.byteLength >= 4 && log.slice(0, 4).equals(returnPrefix)) {
|
|
293
|
-
returnValueEncoded = log.slice(4);
|
|
294
|
-
break;
|
|
295
|
-
}
|
|
413
|
+
if (logs.length === 0) {
|
|
414
|
+
throw new Error('App call transaction did not log a return value');
|
|
296
415
|
}
|
|
297
|
-
|
|
416
|
+
const lastLog = Buffer.from(logs[logs.length - 1], 'base64');
|
|
417
|
+
if (lastLog.byteLength < 4 ||
|
|
418
|
+
!lastLog.slice(0, 4).equals(RETURN_PREFIX)) {
|
|
298
419
|
throw new Error('App call transaction did not log a return value');
|
|
299
420
|
}
|
|
300
|
-
methodResult.rawReturnValue = new Uint8Array(
|
|
421
|
+
methodResult.rawReturnValue = new Uint8Array(lastLog.slice(4));
|
|
301
422
|
methodResult.returnValue = method.returns.type.decode(methodResult.rawReturnValue);
|
|
302
423
|
}
|
|
303
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../../src/composer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../../src/composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDryrun = void 0;
|
|
4
|
+
const types_1 = require("./client/v2/algod/models/types");
|
|
5
|
+
const transactions_1 = require("./types/transactions");
|
|
6
|
+
const address_1 = require("./encoding/address");
|
|
7
|
+
const defaultAppId = 1380011588;
|
|
8
|
+
function decodePrograms(ap) {
|
|
9
|
+
// eslint-disable-next-line no-param-reassign
|
|
10
|
+
ap.params['approval-program'] = Buffer.from(ap.params['approval-program'].toString(), 'base64');
|
|
11
|
+
// eslint-disable-next-line no-param-reassign
|
|
12
|
+
ap.params['clear-state-program'] = Buffer.from(ap.params['clear-state-program'].toString(), 'base64');
|
|
13
|
+
return ap;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* createDryrun takes an Algod Client (from algod.AlgodV2Client) and an array of Signed Transactions
|
|
17
|
+
* from (transaction.SignedTransaction) and creates a DryrunRequest object with relevant balances
|
|
18
|
+
* @param client - the AlgodClient to make requests against
|
|
19
|
+
* @param txns - the array of SignedTransaction to use for generating the DryrunRequest object
|
|
20
|
+
* @param protocolVersion - the string representing the protocol version to use
|
|
21
|
+
* @param latestTimestamp - the timestamp
|
|
22
|
+
* @returns the DryrunRequest object constructed from the SignedTransactions passed
|
|
23
|
+
*/
|
|
24
|
+
async function createDryrun({ client, txns, protocolVersion, latestTimestamp, round, sources, }) {
|
|
25
|
+
const appInfos = [];
|
|
26
|
+
const acctInfos = [];
|
|
27
|
+
const apps = [];
|
|
28
|
+
const assets = [];
|
|
29
|
+
const accts = [];
|
|
30
|
+
for (const t of txns) {
|
|
31
|
+
if (t.txn.type === transactions_1.TransactionType.appl) {
|
|
32
|
+
accts.push(address_1.encodeAddress(t.txn.from.publicKey));
|
|
33
|
+
if (t.txn.appAccounts)
|
|
34
|
+
accts.push(...t.txn.appAccounts.map((a) => address_1.encodeAddress(a.publicKey)));
|
|
35
|
+
if (t.txn.appForeignApps)
|
|
36
|
+
apps.push(...t.txn.appForeignApps);
|
|
37
|
+
if (t.txn.appForeignAssets)
|
|
38
|
+
assets.push(...t.txn.appForeignAssets);
|
|
39
|
+
// Create application,
|
|
40
|
+
if (t.txn.appIndex === 0) {
|
|
41
|
+
appInfos.push(new types_1.Application(defaultAppId, new types_1.ApplicationParams({
|
|
42
|
+
creator: address_1.encodeAddress(t.txn.from.publicKey),
|
|
43
|
+
approvalProgram: t.txn.appApprovalProgram,
|
|
44
|
+
clearStateProgram: t.txn.appClearProgram,
|
|
45
|
+
localStateSchema: new types_1.ApplicationStateSchema(t.txn.appLocalInts, t.txn.appLocalByteSlices),
|
|
46
|
+
globalStateSchema: new types_1.ApplicationStateSchema(t.txn.appGlobalInts, t.txn.appGlobalByteSlices),
|
|
47
|
+
})));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
apps.push(t.txn.appIndex);
|
|
51
|
+
accts.push(address_1.getApplicationAddress(t.txn.appIndex));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Dedupe and add creator to accts array
|
|
56
|
+
const assetPromises = [];
|
|
57
|
+
for (const assetId of [...new Set(assets)]) {
|
|
58
|
+
assetPromises.push(client
|
|
59
|
+
.getAssetByID(assetId)
|
|
60
|
+
.do()
|
|
61
|
+
.then((assetInfo) => {
|
|
62
|
+
accts.push(assetInfo.params.creator);
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
// Wait for assets to finish since we append to accts array
|
|
66
|
+
await Promise.all(assetPromises);
|
|
67
|
+
// Dedupe and get app info for all apps
|
|
68
|
+
const appPromises = [];
|
|
69
|
+
for (const appId of [...new Set(apps)]) {
|
|
70
|
+
appPromises.push(client
|
|
71
|
+
.getApplicationByID(appId)
|
|
72
|
+
.do()
|
|
73
|
+
.then((appInfo) => {
|
|
74
|
+
const ai = decodePrograms(appInfo);
|
|
75
|
+
appInfos.push(ai);
|
|
76
|
+
accts.push(ai.params.creator);
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
await Promise.all(appPromises);
|
|
80
|
+
const acctPromises = [];
|
|
81
|
+
for (const acct of [...new Set(accts)]) {
|
|
82
|
+
acctPromises.push(client
|
|
83
|
+
.accountInformation(acct)
|
|
84
|
+
.do()
|
|
85
|
+
.then((acctInfo) => {
|
|
86
|
+
if ('created-apps' in acctInfo) {
|
|
87
|
+
// eslint-disable-next-line no-param-reassign
|
|
88
|
+
acctInfo['created-apps'] = acctInfo['created-apps'].map((app) => decodePrograms(app));
|
|
89
|
+
}
|
|
90
|
+
acctInfos.push(acctInfo);
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
await Promise.all(acctPromises);
|
|
94
|
+
return new types_1.DryrunRequest({
|
|
95
|
+
txns: txns.map((st) => ({ ...st, txn: st.txn.get_obj_for_encoding() })),
|
|
96
|
+
accounts: acctInfos,
|
|
97
|
+
apps: appInfos,
|
|
98
|
+
latestTimestamp,
|
|
99
|
+
round,
|
|
100
|
+
protocolVersion,
|
|
101
|
+
sources,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
exports.createDryrun = createDryrun;
|
|
105
|
+
//# sourceMappingURL=dryrun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dryrun.js","sourceRoot":"","sources":["../../../src/dryrun.ts"],"names":[],"mappings":"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"}
|