@algorandfoundation/algorand-typescript-testing 1.0.0-beta.13 → 1.0.0-beta.15
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/{pure-CKz3aJeT.js → asset-params-CzUcFBcQ.js} +134 -349
- package/asset-params-CzUcFBcQ.js.map +1 -0
- package/{encoded-types-CuGiO_X_.js → encoded-types-9PSWSstF.js} +170 -170
- package/encoded-types-9PSWSstF.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.mjs +121 -42
- package/index.mjs.map +1 -1
- package/{state-BZHLEhrM.js → inner-transactions-CR-mVBgh.js} +190 -190
- package/inner-transactions-CR-mVBgh.js.map +1 -0
- package/internal/arc4.mjs +1 -1
- package/internal/op.mjs +3 -3
- package/{internal-arc4-C9t-aREu.js → internal-arc4-BL2mIZPS.js} +2 -2
- package/internal-arc4-BL2mIZPS.js.map +1 -0
- package/{internal-op-DlLQ5gew.js → internal-op-BeEW2jMq.js} +219 -4
- package/internal-op-BeEW2jMq.js.map +1 -0
- package/internal.mjs +9 -9
- package/package.json +3 -3
- package/{runtime-helpers-Dg42m-TM.js → runtime-helpers-Dv_gjCvF.js} +2 -2
- package/{runtime-helpers-Dg42m-TM.js.map → runtime-helpers-Dv_gjCvF.js.map} +1 -1
- package/runtime-helpers.mjs +2 -2
- package/set-up.d.ts +1 -1
- package/test-execution-context.d.ts +1 -0
- package/encoded-types-CuGiO_X_.js.map +0 -1
- package/internal-arc4-C9t-aREu.js.map +0 -1
- package/internal-op-DlLQ5gew.js.map +0 -1
- package/pure-CKz3aJeT.js.map +0 -1
- package/state-BZHLEhrM.js.map +0 -1
|
@@ -1,351 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { l as lazyContext, j as asUint64Cls, f as asUint64, d as Account, h as asMaybeUint64Cls, o as asMaybeBytesCls, O as asMaybeBigUintCls, L as BytesBackedCls, N as Uint64BackedCls, a2 as encodeArc4Impl, _ as nameOfType, ad as getArc4Encoder, A as AccountCls, a as ApplicationCls, b as AssetCls, ac as arc4Encoders, R as asUint8Array, K as asBytes, u as getRandomBytes, aq as getObjectReference, an as sha256, ar as getApplicationAddress, as as MIN_TXN_FEE, at as DEFAULT_ACCOUNT_MIN_BALANCE, au as DEFAULT_MAX_TXN_LIFE, Z as ZERO_ADDRESS, av as DEFAULT_ASSET_CREATE_MIN_BALANCE, aw as DEFAULT_ASSET_OPT_IN_MIN_BALANCE, ax as DEFAULT_GLOBAL_GENESIS_HASH, ay as asBigUint, I as BITS_IN_BYTE, s as MAX_BYTES_SIZE, V as asBytesCls, t as testInvariant, z as MAX_UINT8, az as binaryStringToBytes, aA as UINT64_SIZE, aB as notImplementedError, M as MAX_UINT64 } from './encoded-types-CuGiO_X_.js';
|
|
1
|
+
import { internal, BigUint, Uint64, Bytes, Base64 } from '@algorandfoundation/algorand-typescript';
|
|
3
2
|
import { ARC4Encoded } from '@algorandfoundation/algorand-typescript/arc4';
|
|
4
|
-
|
|
5
|
-
const GTxn = {
|
|
6
|
-
sender(t) {
|
|
7
|
-
return lazyContext.activeGroup.getTransaction(t).sender;
|
|
8
|
-
},
|
|
9
|
-
fee(t) {
|
|
10
|
-
return lazyContext.activeGroup.getTransaction(t).fee;
|
|
11
|
-
},
|
|
12
|
-
firstValid(t) {
|
|
13
|
-
return lazyContext.activeGroup.getTransaction(t).firstValid;
|
|
14
|
-
},
|
|
15
|
-
firstValidTime(t) {
|
|
16
|
-
return lazyContext.activeGroup.getTransaction(t).firstValidTime;
|
|
17
|
-
},
|
|
18
|
-
lastValid(t) {
|
|
19
|
-
return lazyContext.activeGroup.getTransaction(t).lastValid;
|
|
20
|
-
},
|
|
21
|
-
note(t) {
|
|
22
|
-
return lazyContext.activeGroup.getTransaction(t).note;
|
|
23
|
-
},
|
|
24
|
-
lease(t) {
|
|
25
|
-
return lazyContext.activeGroup.getTransaction(t).lease;
|
|
26
|
-
},
|
|
27
|
-
receiver(t) {
|
|
28
|
-
return lazyContext.activeGroup.getPaymentTransaction(t).receiver;
|
|
29
|
-
},
|
|
30
|
-
amount(t) {
|
|
31
|
-
return lazyContext.activeGroup.getPaymentTransaction(t).amount;
|
|
32
|
-
},
|
|
33
|
-
closeRemainderTo(t) {
|
|
34
|
-
return lazyContext.activeGroup.getPaymentTransaction(t).closeRemainderTo;
|
|
35
|
-
},
|
|
36
|
-
votePk(t) {
|
|
37
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).voteKey;
|
|
38
|
-
},
|
|
39
|
-
selectionPk(t) {
|
|
40
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).selectionKey;
|
|
41
|
-
},
|
|
42
|
-
voteFirst(t) {
|
|
43
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).voteFirst;
|
|
44
|
-
},
|
|
45
|
-
voteLast(t) {
|
|
46
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).voteLast;
|
|
47
|
-
},
|
|
48
|
-
voteKeyDilution(t) {
|
|
49
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).voteKeyDilution;
|
|
50
|
-
},
|
|
51
|
-
type(t) {
|
|
52
|
-
return asUint64Cls(lazyContext.activeGroup.getTransaction(t).type).toBytes().asAlgoTs();
|
|
53
|
-
},
|
|
54
|
-
typeEnum(t) {
|
|
55
|
-
return asUint64(lazyContext.activeGroup.getTransaction(t).type);
|
|
56
|
-
},
|
|
57
|
-
xferAsset(t) {
|
|
58
|
-
return lazyContext.activeGroup.getAssetTransferTransaction(t).xferAsset;
|
|
59
|
-
},
|
|
60
|
-
assetAmount(t) {
|
|
61
|
-
return lazyContext.activeGroup.getAssetTransferTransaction(t).assetAmount;
|
|
62
|
-
},
|
|
63
|
-
assetSender(t) {
|
|
64
|
-
return lazyContext.activeGroup.getAssetTransferTransaction(t).assetSender;
|
|
65
|
-
},
|
|
66
|
-
assetReceiver(t) {
|
|
67
|
-
return lazyContext.activeGroup.getAssetTransferTransaction(t).assetReceiver;
|
|
68
|
-
},
|
|
69
|
-
assetCloseTo(t) {
|
|
70
|
-
return lazyContext.activeGroup.getAssetTransferTransaction(t).assetCloseTo;
|
|
71
|
-
},
|
|
72
|
-
groupIndex(t) {
|
|
73
|
-
return lazyContext.activeGroup.getTransaction(t).groupIndex;
|
|
74
|
-
},
|
|
75
|
-
txId(t) {
|
|
76
|
-
return lazyContext.activeGroup.getTransaction(t).txnId;
|
|
77
|
-
},
|
|
78
|
-
applicationId(t) {
|
|
79
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).appId;
|
|
80
|
-
},
|
|
81
|
-
onCompletion(t) {
|
|
82
|
-
const onCompletionStr = lazyContext.activeGroup.getApplicationTransaction(t).onCompletion;
|
|
83
|
-
return asUint64(arc4.OnCompleteAction[onCompletionStr]);
|
|
84
|
-
},
|
|
85
|
-
applicationArgs(a, b) {
|
|
86
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).appArgs(asUint64(b));
|
|
87
|
-
},
|
|
88
|
-
numAppArgs(t) {
|
|
89
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numAppArgs;
|
|
90
|
-
},
|
|
91
|
-
accounts(a, b) {
|
|
92
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).accounts(asUint64(b));
|
|
93
|
-
},
|
|
94
|
-
numAccounts(t) {
|
|
95
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numAccounts;
|
|
96
|
-
},
|
|
97
|
-
approvalProgram(t) {
|
|
98
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).approvalProgram;
|
|
99
|
-
},
|
|
100
|
-
clearStateProgram(t) {
|
|
101
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).clearStateProgram;
|
|
102
|
-
},
|
|
103
|
-
rekeyTo(t) {
|
|
104
|
-
return lazyContext.activeGroup.getTransaction(t).rekeyTo;
|
|
105
|
-
},
|
|
106
|
-
configAsset(t) {
|
|
107
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).configAsset;
|
|
108
|
-
},
|
|
109
|
-
configAssetTotal(t) {
|
|
110
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).total;
|
|
111
|
-
},
|
|
112
|
-
configAssetDecimals(t) {
|
|
113
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).decimals;
|
|
114
|
-
},
|
|
115
|
-
configAssetDefaultFrozen(t) {
|
|
116
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).defaultFrozen;
|
|
117
|
-
},
|
|
118
|
-
configAssetUnitName(t) {
|
|
119
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).unitName;
|
|
120
|
-
},
|
|
121
|
-
configAssetName(t) {
|
|
122
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).assetName;
|
|
123
|
-
},
|
|
124
|
-
configAssetUrl(t) {
|
|
125
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).url;
|
|
126
|
-
},
|
|
127
|
-
configAssetMetadataHash(t) {
|
|
128
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).metadataHash;
|
|
129
|
-
},
|
|
130
|
-
configAssetManager(t) {
|
|
131
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).manager;
|
|
132
|
-
},
|
|
133
|
-
configAssetReserve(t) {
|
|
134
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).reserve;
|
|
135
|
-
},
|
|
136
|
-
configAssetFreeze(t) {
|
|
137
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).freeze;
|
|
138
|
-
},
|
|
139
|
-
configAssetClawback(t) {
|
|
140
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).clawback;
|
|
141
|
-
},
|
|
142
|
-
freezeAsset(t) {
|
|
143
|
-
return lazyContext.activeGroup.getAssetFreezeTransaction(t).freezeAsset;
|
|
144
|
-
},
|
|
145
|
-
freezeAssetAccount(t) {
|
|
146
|
-
return lazyContext.activeGroup.getAssetFreezeTransaction(t).freezeAccount;
|
|
147
|
-
},
|
|
148
|
-
freezeAssetFrozen(t) {
|
|
149
|
-
return lazyContext.activeGroup.getAssetFreezeTransaction(t).frozen;
|
|
150
|
-
},
|
|
151
|
-
assets(a, b) {
|
|
152
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).assets(asUint64(b));
|
|
153
|
-
},
|
|
154
|
-
numAssets(t) {
|
|
155
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numAssets;
|
|
156
|
-
},
|
|
157
|
-
applications(a, b) {
|
|
158
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).apps(asUint64(b));
|
|
159
|
-
},
|
|
160
|
-
numApplications(t) {
|
|
161
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numApps;
|
|
162
|
-
},
|
|
163
|
-
globalNumUint(t) {
|
|
164
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).globalNumUint;
|
|
165
|
-
},
|
|
166
|
-
globalNumByteSlice(t) {
|
|
167
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).globalNumBytes;
|
|
168
|
-
},
|
|
169
|
-
localNumUint(t) {
|
|
170
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).localNumUint;
|
|
171
|
-
},
|
|
172
|
-
localNumByteSlice(t) {
|
|
173
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).localNumBytes;
|
|
174
|
-
},
|
|
175
|
-
extraProgramPages(t) {
|
|
176
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).extraProgramPages;
|
|
177
|
-
},
|
|
178
|
-
nonparticipation(t) {
|
|
179
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).nonparticipation;
|
|
180
|
-
},
|
|
181
|
-
logs(a, b) {
|
|
182
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).logs(asUint64(b));
|
|
183
|
-
},
|
|
184
|
-
numLogs(t) {
|
|
185
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numLogs;
|
|
186
|
-
},
|
|
187
|
-
createdAssetId(t) {
|
|
188
|
-
return lazyContext.activeGroup.getAssetConfigTransaction(t).createdAsset;
|
|
189
|
-
},
|
|
190
|
-
createdApplicationId(t) {
|
|
191
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).createdApp;
|
|
192
|
-
},
|
|
193
|
-
lastLog(t) {
|
|
194
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).lastLog;
|
|
195
|
-
},
|
|
196
|
-
stateProofPk(t) {
|
|
197
|
-
return lazyContext.activeGroup.getKeyRegistrationTransaction(t).stateProofKey;
|
|
198
|
-
},
|
|
199
|
-
approvalProgramPages(a, b) {
|
|
200
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).approvalProgramPages(asUint64(b));
|
|
201
|
-
},
|
|
202
|
-
numApprovalProgramPages(t) {
|
|
203
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numApprovalProgramPages;
|
|
204
|
-
},
|
|
205
|
-
clearStateProgramPages(a, b) {
|
|
206
|
-
return lazyContext.activeGroup.getApplicationTransaction(a).clearStateProgramPages(asUint64(b));
|
|
207
|
-
},
|
|
208
|
-
numClearStateProgramPages(t) {
|
|
209
|
-
return lazyContext.activeGroup.getApplicationTransaction(t).numClearStateProgramPages;
|
|
210
|
-
},
|
|
211
|
-
};
|
|
212
|
-
const Transaction = (index) => lazyContext.txn.activeGroup.getTransaction(index);
|
|
213
|
-
const PaymentTxn = (index) => lazyContext.txn.activeGroup.getPaymentTransaction(index);
|
|
214
|
-
const KeyRegistrationTxn = (index) => lazyContext.txn.activeGroup.getKeyRegistrationTransaction(index);
|
|
215
|
-
const AssetConfigTxn = (index) => lazyContext.txn.activeGroup.getAssetConfigTransaction(index);
|
|
216
|
-
const AssetTransferTxn = (index) => lazyContext.txn.activeGroup.getAssetTransferTransaction(index);
|
|
217
|
-
const AssetFreezeTxn = (index) => lazyContext.txn.activeGroup.getAssetFreezeTransaction(index);
|
|
218
|
-
const ApplicationTxn = (index) => lazyContext.txn.activeGroup.getApplicationTransaction(index);
|
|
219
|
-
|
|
220
|
-
const resolveAppIndex = (appIdOrIndex) => {
|
|
221
|
-
const input = asUint64(appIdOrIndex);
|
|
222
|
-
if (input >= 1001) {
|
|
223
|
-
return input;
|
|
224
|
-
}
|
|
225
|
-
const txn = lazyContext.activeGroup.activeTransaction;
|
|
226
|
-
return txn.apps(input).id;
|
|
227
|
-
};
|
|
228
|
-
const getApp = (app) => {
|
|
229
|
-
try {
|
|
230
|
-
const appId = asMaybeUint64Cls(app);
|
|
231
|
-
if (appId !== undefined) {
|
|
232
|
-
return lazyContext.ledger.getApplication(resolveAppIndex(appId));
|
|
233
|
-
}
|
|
234
|
-
return app;
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
return undefined;
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
const AppParams = {
|
|
241
|
-
appApprovalProgram(a) {
|
|
242
|
-
const app = getApp(a);
|
|
243
|
-
return app === undefined ? [Bytes(), false] : [app.approvalProgram, true];
|
|
244
|
-
},
|
|
245
|
-
appClearStateProgram(a) {
|
|
246
|
-
const app = getApp(a);
|
|
247
|
-
return app === undefined ? [Bytes(), false] : [app.clearStateProgram, true];
|
|
248
|
-
},
|
|
249
|
-
appGlobalNumUint(a) {
|
|
250
|
-
const app = getApp(a);
|
|
251
|
-
return app === undefined ? [Uint64(0), false] : [app.globalNumUint, true];
|
|
252
|
-
},
|
|
253
|
-
appGlobalNumByteSlice(a) {
|
|
254
|
-
const app = getApp(a);
|
|
255
|
-
return app === undefined ? [Uint64(0), false] : [app.globalNumBytes, true];
|
|
256
|
-
},
|
|
257
|
-
appLocalNumUint(a) {
|
|
258
|
-
const app = getApp(a);
|
|
259
|
-
return app === undefined ? [Uint64(0), false] : [app.localNumUint, true];
|
|
260
|
-
},
|
|
261
|
-
appLocalNumByteSlice(a) {
|
|
262
|
-
const app = getApp(a);
|
|
263
|
-
return app === undefined ? [Uint64(0), false] : [app.localNumBytes, true];
|
|
264
|
-
},
|
|
265
|
-
appExtraProgramPages(a) {
|
|
266
|
-
const app = getApp(a);
|
|
267
|
-
return app === undefined ? [Uint64(0), false] : [app.extraProgramPages, true];
|
|
268
|
-
},
|
|
269
|
-
appCreator(a) {
|
|
270
|
-
const app = getApp(a);
|
|
271
|
-
return app === undefined ? [Account(), false] : [app.creator, true];
|
|
272
|
-
},
|
|
273
|
-
appAddress(a) {
|
|
274
|
-
const app = getApp(a);
|
|
275
|
-
return app === undefined ? [Account(), false] : [app.address, true];
|
|
276
|
-
},
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
const resolveAssetIndex = (assetIdOrIndex) => {
|
|
280
|
-
const input = asUint64(assetIdOrIndex);
|
|
281
|
-
if (input >= 1001) {
|
|
282
|
-
return input;
|
|
283
|
-
}
|
|
284
|
-
const txn = lazyContext.activeGroup.activeTransaction;
|
|
285
|
-
return txn.assets(input).id;
|
|
286
|
-
};
|
|
287
|
-
const getAsset = (asset) => {
|
|
288
|
-
try {
|
|
289
|
-
const assetId = asMaybeUint64Cls(asset);
|
|
290
|
-
if (assetId !== undefined) {
|
|
291
|
-
return lazyContext.ledger.getAsset(resolveAssetIndex(assetId));
|
|
292
|
-
}
|
|
293
|
-
return asset;
|
|
294
|
-
}
|
|
295
|
-
catch {
|
|
296
|
-
return undefined;
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
const AssetParams = {
|
|
300
|
-
assetTotal(a) {
|
|
301
|
-
const asset = getAsset(a);
|
|
302
|
-
return asset === undefined ? [Uint64(0), false] : [asset.total, true];
|
|
303
|
-
},
|
|
304
|
-
assetDecimals(a) {
|
|
305
|
-
const asset = getAsset(a);
|
|
306
|
-
return asset === undefined ? [Uint64(0), false] : [asset.decimals, true];
|
|
307
|
-
},
|
|
308
|
-
assetDefaultFrozen(a) {
|
|
309
|
-
const asset = getAsset(a);
|
|
310
|
-
return asset === undefined ? [false, false] : [asset.defaultFrozen, true];
|
|
311
|
-
},
|
|
312
|
-
assetUnitName(a) {
|
|
313
|
-
const asset = getAsset(a);
|
|
314
|
-
return asset === undefined ? [Bytes(), false] : [asset.unitName, true];
|
|
315
|
-
},
|
|
316
|
-
assetName(a) {
|
|
317
|
-
const asset = getAsset(a);
|
|
318
|
-
return asset === undefined ? [Bytes(), false] : [asset.name, true];
|
|
319
|
-
},
|
|
320
|
-
assetUrl(a) {
|
|
321
|
-
const asset = getAsset(a);
|
|
322
|
-
return asset === undefined ? [Bytes(), false] : [asset.url, true];
|
|
323
|
-
},
|
|
324
|
-
assetMetadataHash(a) {
|
|
325
|
-
const asset = getAsset(a);
|
|
326
|
-
return asset === undefined ? [Bytes(), false] : [asset.metadataHash, true];
|
|
327
|
-
},
|
|
328
|
-
assetManager(a) {
|
|
329
|
-
const asset = getAsset(a);
|
|
330
|
-
return asset === undefined ? [Account(), false] : [asset.manager, true];
|
|
331
|
-
},
|
|
332
|
-
assetReserve(a) {
|
|
333
|
-
const asset = getAsset(a);
|
|
334
|
-
return asset === undefined ? [Account(), false] : [asset.reserve, true];
|
|
335
|
-
},
|
|
336
|
-
assetFreeze(a) {
|
|
337
|
-
const asset = getAsset(a);
|
|
338
|
-
return asset === undefined ? [Account(), false] : [asset.freeze, true];
|
|
339
|
-
},
|
|
340
|
-
assetClawback(a) {
|
|
341
|
-
const asset = getAsset(a);
|
|
342
|
-
return asset === undefined ? [Account(), false] : [asset.clawback, true];
|
|
343
|
-
},
|
|
344
|
-
assetCreator(a) {
|
|
345
|
-
const asset = getAsset(a);
|
|
346
|
-
return asset === undefined ? [Account(), false] : [asset.creator, true];
|
|
347
|
-
},
|
|
348
|
-
};
|
|
3
|
+
import { h as asMaybeUint64Cls, o as asMaybeBytesCls, O as asMaybeBigUintCls, L as BytesBackedCls, N as Uint64BackedCls, j as asUint64Cls, a2 as encodeArc4Impl, _ as nameOfType, ad as getArc4Encoder, A as AccountCls, a as ApplicationCls, b as AssetCls, ac as arc4Encoders, R as asUint8Array, K as asBytes, l as lazyContext, u as getRandomBytes, f as asUint64, d as Account, aq as getObjectReference, an as sha256, ar as getApplicationAddress, as as MIN_TXN_FEE, at as DEFAULT_ACCOUNT_MIN_BALANCE, au as DEFAULT_MAX_TXN_LIFE, Z as ZERO_ADDRESS, av as DEFAULT_ASSET_CREATE_MIN_BALANCE, aw as DEFAULT_ASSET_OPT_IN_MIN_BALANCE, ax as DEFAULT_GLOBAL_GENESIS_HASH, ay as asBigUint, I as BITS_IN_BYTE, s as MAX_BYTES_SIZE, V as asBytesCls, t as testInvariant, z as MAX_UINT8, az as binaryStringToBytes, aA as UINT64_SIZE, aB as notImplementedError, M as MAX_UINT64 } from './encoded-types-9PSWSstF.js';
|
|
349
4
|
|
|
350
5
|
const booleanFromBytes = (val) => {
|
|
351
6
|
return internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val)) > 0n;
|
|
@@ -671,6 +326,65 @@ const Global = {
|
|
|
671
326
|
},
|
|
672
327
|
};
|
|
673
328
|
|
|
329
|
+
const resolveAppIndex = (appIdOrIndex) => {
|
|
330
|
+
const input = asUint64(appIdOrIndex);
|
|
331
|
+
if (input >= 1001) {
|
|
332
|
+
return input;
|
|
333
|
+
}
|
|
334
|
+
const txn = lazyContext.activeGroup.activeTransaction;
|
|
335
|
+
return txn.apps(input).id;
|
|
336
|
+
};
|
|
337
|
+
const getApp = (app) => {
|
|
338
|
+
try {
|
|
339
|
+
const appId = asMaybeUint64Cls(app);
|
|
340
|
+
if (appId !== undefined) {
|
|
341
|
+
return lazyContext.ledger.getApplication(resolveAppIndex(appId));
|
|
342
|
+
}
|
|
343
|
+
return app;
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
return undefined;
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
const AppParams = {
|
|
350
|
+
appApprovalProgram(a) {
|
|
351
|
+
const app = getApp(a);
|
|
352
|
+
return app === undefined ? [Bytes(), false] : [app.approvalProgram, true];
|
|
353
|
+
},
|
|
354
|
+
appClearStateProgram(a) {
|
|
355
|
+
const app = getApp(a);
|
|
356
|
+
return app === undefined ? [Bytes(), false] : [app.clearStateProgram, true];
|
|
357
|
+
},
|
|
358
|
+
appGlobalNumUint(a) {
|
|
359
|
+
const app = getApp(a);
|
|
360
|
+
return app === undefined ? [Uint64(0), false] : [app.globalNumUint, true];
|
|
361
|
+
},
|
|
362
|
+
appGlobalNumByteSlice(a) {
|
|
363
|
+
const app = getApp(a);
|
|
364
|
+
return app === undefined ? [Uint64(0), false] : [app.globalNumBytes, true];
|
|
365
|
+
},
|
|
366
|
+
appLocalNumUint(a) {
|
|
367
|
+
const app = getApp(a);
|
|
368
|
+
return app === undefined ? [Uint64(0), false] : [app.localNumUint, true];
|
|
369
|
+
},
|
|
370
|
+
appLocalNumByteSlice(a) {
|
|
371
|
+
const app = getApp(a);
|
|
372
|
+
return app === undefined ? [Uint64(0), false] : [app.localNumBytes, true];
|
|
373
|
+
},
|
|
374
|
+
appExtraProgramPages(a) {
|
|
375
|
+
const app = getApp(a);
|
|
376
|
+
return app === undefined ? [Uint64(0), false] : [app.extraProgramPages, true];
|
|
377
|
+
},
|
|
378
|
+
appCreator(a) {
|
|
379
|
+
const app = getApp(a);
|
|
380
|
+
return app === undefined ? [Account(), false] : [app.creator, true];
|
|
381
|
+
},
|
|
382
|
+
appAddress(a) {
|
|
383
|
+
const app = getApp(a);
|
|
384
|
+
return app === undefined ? [Account(), false] : [app.address, true];
|
|
385
|
+
},
|
|
386
|
+
};
|
|
387
|
+
|
|
674
388
|
const getAccount = (acct) => {
|
|
675
389
|
const acctId = asMaybeUint64Cls(acct);
|
|
676
390
|
if (acctId !== undefined) {
|
|
@@ -1055,5 +769,76 @@ const doSetBit = (binaryString, index, bit) => {
|
|
|
1055
769
|
return binaryStringToBytes(updatedString);
|
|
1056
770
|
};
|
|
1057
771
|
|
|
1058
|
-
|
|
1059
|
-
|
|
772
|
+
const resolveAssetIndex = (assetIdOrIndex) => {
|
|
773
|
+
const input = asUint64(assetIdOrIndex);
|
|
774
|
+
if (input >= 1001) {
|
|
775
|
+
return input;
|
|
776
|
+
}
|
|
777
|
+
const txn = lazyContext.activeGroup.activeTransaction;
|
|
778
|
+
return txn.assets(input).id;
|
|
779
|
+
};
|
|
780
|
+
const getAsset = (asset) => {
|
|
781
|
+
try {
|
|
782
|
+
const assetId = asMaybeUint64Cls(asset);
|
|
783
|
+
if (assetId !== undefined) {
|
|
784
|
+
return lazyContext.ledger.getAsset(resolveAssetIndex(assetId));
|
|
785
|
+
}
|
|
786
|
+
return asset;
|
|
787
|
+
}
|
|
788
|
+
catch {
|
|
789
|
+
return undefined;
|
|
790
|
+
}
|
|
791
|
+
};
|
|
792
|
+
const AssetParams = {
|
|
793
|
+
assetTotal(a) {
|
|
794
|
+
const asset = getAsset(a);
|
|
795
|
+
return asset === undefined ? [Uint64(0), false] : [asset.total, true];
|
|
796
|
+
},
|
|
797
|
+
assetDecimals(a) {
|
|
798
|
+
const asset = getAsset(a);
|
|
799
|
+
return asset === undefined ? [Uint64(0), false] : [asset.decimals, true];
|
|
800
|
+
},
|
|
801
|
+
assetDefaultFrozen(a) {
|
|
802
|
+
const asset = getAsset(a);
|
|
803
|
+
return asset === undefined ? [false, false] : [asset.defaultFrozen, true];
|
|
804
|
+
},
|
|
805
|
+
assetUnitName(a) {
|
|
806
|
+
const asset = getAsset(a);
|
|
807
|
+
return asset === undefined ? [Bytes(), false] : [asset.unitName, true];
|
|
808
|
+
},
|
|
809
|
+
assetName(a) {
|
|
810
|
+
const asset = getAsset(a);
|
|
811
|
+
return asset === undefined ? [Bytes(), false] : [asset.name, true];
|
|
812
|
+
},
|
|
813
|
+
assetUrl(a) {
|
|
814
|
+
const asset = getAsset(a);
|
|
815
|
+
return asset === undefined ? [Bytes(), false] : [asset.url, true];
|
|
816
|
+
},
|
|
817
|
+
assetMetadataHash(a) {
|
|
818
|
+
const asset = getAsset(a);
|
|
819
|
+
return asset === undefined ? [Bytes(), false] : [asset.metadataHash, true];
|
|
820
|
+
},
|
|
821
|
+
assetManager(a) {
|
|
822
|
+
const asset = getAsset(a);
|
|
823
|
+
return asset === undefined ? [Account(), false] : [asset.manager, true];
|
|
824
|
+
},
|
|
825
|
+
assetReserve(a) {
|
|
826
|
+
const asset = getAsset(a);
|
|
827
|
+
return asset === undefined ? [Account(), false] : [asset.reserve, true];
|
|
828
|
+
},
|
|
829
|
+
assetFreeze(a) {
|
|
830
|
+
const asset = getAsset(a);
|
|
831
|
+
return asset === undefined ? [Account(), false] : [asset.freeze, true];
|
|
832
|
+
},
|
|
833
|
+
assetClawback(a) {
|
|
834
|
+
const asset = getAsset(a);
|
|
835
|
+
return asset === undefined ? [Account(), false] : [asset.clawback, true];
|
|
836
|
+
},
|
|
837
|
+
assetCreator(a) {
|
|
838
|
+
const asset = getAsset(a);
|
|
839
|
+
return asset === undefined ? [Account(), false] : [asset.creator, true];
|
|
840
|
+
},
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
export { AcctParams as A, BlockData as B, extractUint64 as C, getBit as D, getByte as E, itob as F, GlobalData as G, len as H, minBalance as I, JsonRef as J, mulw as K, replace as L, select as M, setBit as N, setByte as O, shl as P, shr as Q, sqrt as R, substring as S, VoterData as V, Global as a, btoi as b, getAsset as c, getApp as d, getAccount as e, AppParams as f, getEncoder as g, AssetParams as h, Block as i, VoterParams as j, addw as k, appOptedIn as l, balance as m, base64Decode as n, bitLength as o, bsqrt as p, bzero as q, concat as r, divmodw as s, toBytes as t, divw as u, exp as v, expw as w, extract as x, extractUint16 as y, extractUint32 as z };
|
|
844
|
+
//# sourceMappingURL=asset-params-CzUcFBcQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-params-CzUcFBcQ.js","sources":["../src/encoders.ts","../src/impl/block.ts","../src/impl/global.ts","../src/impl/app-params.ts","../src/impl/acct-params.ts","../src/impl/voter-params.ts","../src/impl/pure.ts","../src/impl/asset-params.ts"],"sourcesContent":["import type { biguint, bytes, TransactionType, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { BigUint, internal, Uint64 } from '@algorandfoundation/algorand-typescript'\nimport type { OnCompleteAction } from '@algorandfoundation/algorand-typescript/arc4'\nimport { ARC4Encoded } from '@algorandfoundation/algorand-typescript/arc4'\nimport { BytesBackedCls, Uint64BackedCls } from './impl/base'\nimport { arc4Encoders, encodeArc4Impl, getArc4Encoder } from './impl/encoded-types'\nimport { AccountCls, ApplicationCls, AssetCls } from './impl/reference'\nimport type { DeliberateAny } from './typescript-helpers'\nimport { asBytes, asMaybeBigUintCls, asMaybeBytesCls, asMaybeUint64Cls, asUint64Cls, asUint8Array, nameOfType } from './util'\n\nexport type TypeInfo = {\n name: string\n genericArgs?: TypeInfo[] | Record<string, TypeInfo>\n}\n\nexport type fromBytes<T> = (val: Uint8Array | internal.primitives.StubBytesCompat, typeInfo: TypeInfo, prefix?: 'none' | 'log') => T\n\nconst booleanFromBytes: fromBytes<boolean> = (val) => {\n return internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val)) > 0n\n}\n\nconst bigUintFromBytes: fromBytes<biguint> = (val) => {\n return BigUint(internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val)))\n}\n\nconst bytesFromBytes: fromBytes<bytes> = (val) => {\n return asBytes(val)\n}\n\nconst stringFromBytes: fromBytes<string> = (val) => {\n return asBytes(val).toString()\n}\n\nconst uint64FromBytes: fromBytes<uint64> = (val) => {\n return Uint64(internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val)))\n}\n\nconst onCompletionFromBytes: fromBytes<OnCompleteAction> = (val) => {\n return Uint64(internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val))) as OnCompleteAction\n}\n\nconst transactionTypeFromBytes: fromBytes<TransactionType> = (val) => {\n return Uint64(internal.encodingUtil.uint8ArrayToBigInt(asUint8Array(val))) as TransactionType\n}\n\nexport const encoders: Record<string, fromBytes<DeliberateAny>> = {\n account: AccountCls.fromBytes,\n application: ApplicationCls.fromBytes,\n asset: AssetCls.fromBytes,\n boolean: booleanFromBytes,\n biguint: bigUintFromBytes,\n bytes: bytesFromBytes,\n string: stringFromBytes,\n uint64: uint64FromBytes,\n OnCompleteAction: onCompletionFromBytes,\n TransactionType: transactionTypeFromBytes,\n ...arc4Encoders,\n}\n\nexport const getEncoder = <T>(typeInfo: TypeInfo): fromBytes<T> => {\n return getArc4Encoder<T>(typeInfo, encoders)\n}\n\nexport const toBytes = (val: unknown): bytes => {\n const uint64Val = asMaybeUint64Cls(val)\n if (uint64Val !== undefined) {\n return uint64Val.toBytes().asAlgoTs()\n }\n const bytesVal = asMaybeBytesCls(val)\n if (bytesVal !== undefined) {\n return bytesVal.asAlgoTs()\n }\n const bigUintVal = asMaybeBigUintCls(val)\n if (bigUintVal !== undefined) {\n return bigUintVal.toBytes().asAlgoTs()\n }\n if (val instanceof BytesBackedCls) {\n return val.bytes\n }\n if (val instanceof Uint64BackedCls) {\n return asUint64Cls(val.uint64).toBytes().asAlgoTs()\n }\n if (val instanceof ARC4Encoded) {\n return val.bytes\n }\n if (Array.isArray(val) || typeof val === 'object') {\n return encodeArc4Impl('', val)\n }\n internal.errors.internalError(`Invalid type for bytes: ${nameOfType(val)}`)\n}\n","import type { Account as AccountType, bytes, internal, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { Uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asUint64, getRandomBytes } from '../util'\nimport { Account } from './reference'\n\nexport class BlockData {\n seed: bytes\n timestamp: uint64\n proposer: AccountType\n feesCollected: uint64\n bonus: uint64\n branch: bytes\n feeSink: AccountType\n protocol: bytes\n txnCounter: uint64\n proposerPayout: uint64\n\n constructor() {\n this.seed = getRandomBytes(32).asAlgoTs()\n this.timestamp = asUint64(Date.now())\n this.proposer = Account()\n this.feesCollected = Uint64(0)\n this.bonus = Uint64(0)\n this.branch = getRandomBytes(32).asAlgoTs()\n this.feeSink = Account()\n this.protocol = getRandomBytes(32).asAlgoTs()\n this.txnCounter = Uint64(0)\n this.proposerPayout = Uint64(0)\n }\n}\n\nexport const Block: typeof op.Block = {\n blkSeed: function (a: internal.primitives.StubUint64Compat): bytes {\n return lazyContext.ledger.getBlockData(a).seed\n },\n blkTimestamp: function (a: internal.primitives.StubUint64Compat): uint64 {\n return lazyContext.ledger.getBlockData(a).timestamp\n },\n blkProposer: function (a: uint64): AccountType {\n return lazyContext.ledger.getBlockData(a).proposer\n },\n blkFeesCollected: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).feesCollected\n },\n blkBonus: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).bonus\n },\n blkBranch: function (a: uint64): bytes {\n return lazyContext.ledger.getBlockData(a).branch\n },\n blkFeeSink: function (a: uint64): AccountType {\n return lazyContext.ledger.getBlockData(a).feeSink\n },\n blkProtocol: function (a: uint64): bytes {\n return lazyContext.ledger.getBlockData(a).protocol\n },\n blkTxnCounter: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).txnCounter\n },\n blkProposerPayout: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).proposerPayout\n },\n}\n","import type { Account as AccountType, Application as ApplicationType, bytes, uint64, op } from '@algorandfoundation/algorand-typescript'\nimport { Bytes, internal, Uint64 } from '@algorandfoundation/algorand-typescript'\nimport {\n DEFAULT_ACCOUNT_MIN_BALANCE,\n DEFAULT_ASSET_CREATE_MIN_BALANCE,\n DEFAULT_ASSET_OPT_IN_MIN_BALANCE,\n DEFAULT_GLOBAL_GENESIS_HASH,\n DEFAULT_MAX_TXN_LIFE,\n MIN_TXN_FEE,\n ZERO_ADDRESS,\n} from '../constants'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { getObjectReference } from '../util'\nimport { sha256 } from './crypto'\nimport { Account, getApplicationAddress } from './reference'\n\nexport class GlobalData {\n minTxnFee: uint64\n minBalance: uint64\n maxTxnLife: uint64\n zeroAddress: AccountType\n logicSigVersion?: uint64\n round?: uint64\n latestTimestamp?: uint64\n groupId?: bytes\n callerApplicationId: uint64\n assetCreateMinBalance: uint64\n assetOptInMinBalance: uint64\n genesisHash: bytes\n opcodeBudget?: uint64\n payoutsEnabled: boolean\n payoutsGoOnlineFee: uint64\n payoutsPercent: uint64\n payoutsMinBalance: uint64\n\n constructor() {\n this.minTxnFee = Uint64(MIN_TXN_FEE)\n this.minBalance = Uint64(DEFAULT_ACCOUNT_MIN_BALANCE)\n this.maxTxnLife = Uint64(DEFAULT_MAX_TXN_LIFE)\n this.zeroAddress = Account(ZERO_ADDRESS)\n this.callerApplicationId = Uint64(0)\n this.assetCreateMinBalance = Uint64(DEFAULT_ASSET_CREATE_MIN_BALANCE)\n this.assetOptInMinBalance = Uint64(DEFAULT_ASSET_OPT_IN_MIN_BALANCE)\n this.genesisHash = DEFAULT_GLOBAL_GENESIS_HASH\n this.payoutsEnabled = false\n this.payoutsGoOnlineFee = Uint64(0)\n this.payoutsPercent = Uint64(0)\n this.payoutsMinBalance = Uint64(0)\n }\n}\nconst getGlobalData = (): GlobalData => {\n return lazyContext.ledger.globalData\n}\n\nconst getMissingValueErrorMessage = (name: keyof GlobalData) =>\n `'Global' object has no value set for attribute named '${name}'. Use \\`context.ledger.patchGlobalData({${name}: your_value})\\` to set the value in your test setup.\"`\n\nexport const Global: typeof op.Global = {\n /**\n * microalgos\n */\n get minTxnFee(): uint64 {\n return getGlobalData().minTxnFee\n },\n\n /**\n * microalgos\n */\n get minBalance(): uint64 {\n return getGlobalData().minBalance\n },\n\n /**\n * rounds\n */\n get maxTxnLife(): uint64 {\n return getGlobalData().maxTxnLife\n },\n\n /**\n * 32 byte address of all zero bytes\n */\n get zeroAddress(): AccountType {\n return getGlobalData().zeroAddress\n },\n\n /**\n * Number of transactions in this atomic transaction group. At least 1\n */\n get groupSize(): uint64 {\n const currentTransactionGroup = lazyContext.activeGroup.transactions\n return Uint64(currentTransactionGroup.length)\n },\n\n /**\n * Maximum supported version\n */\n get logicSigVersion(): uint64 {\n const data = getGlobalData()\n if (data.logicSigVersion !== undefined) return data.logicSigVersion\n throw new internal.errors.InternalError(getMissingValueErrorMessage('logicSigVersion'))\n },\n\n /**\n * Current round number. ApplicationType mode only.\n */\n get round(): uint64 {\n const data = getGlobalData()\n if (data.round !== undefined) return data.round\n return Uint64(lazyContext.txn.groups.length + 1)\n },\n\n /**\n * Last confirmed block UNIX timestamp. Fails if negative. ApplicationType mode only.\n */\n get latestTimestamp(): uint64 {\n const data = getGlobalData()\n if (data.latestTimestamp !== undefined) return data.latestTimestamp\n return Uint64(lazyContext.activeGroup.latestTimestamp)\n },\n\n /**\n * ID of current application executing. ApplicationType mode only.\n */\n get currentApplicationId(): ApplicationType {\n return lazyContext.activeApplication\n },\n\n /**\n * Address of the creator of the current application. ApplicationType mode only.\n */\n get creatorAddress(): AccountType {\n const app = lazyContext.activeApplication\n return app.creator\n },\n\n /**\n * Address that the current application controls. ApplicationType mode only.\n */\n get currentApplicationAddress(): AccountType {\n return this.currentApplicationId.address\n },\n\n /**\n * ID of the transaction group. 32 zero bytes if the transaction is not part of a group.\n */\n get groupId(): bytes {\n const data = getGlobalData()\n if (data.groupId !== undefined) return data.groupId\n const reference = getObjectReference(lazyContext.activeGroup)\n const referenceBytes = Bytes(internal.encodingUtil.bigIntToUint8Array(reference))\n return sha256(referenceBytes)\n },\n\n /**\n * The remaining cost that can be spent by opcodes in this program.\n */\n get opcodeBudget(): uint64 {\n const data = getGlobalData()\n if (data.opcodeBudget !== undefined) return data.opcodeBudget\n throw new internal.errors.InternalError(getMissingValueErrorMessage('opcodeBudget'))\n },\n\n /**\n * The application ID of the application that called this application. 0 if this application is at the top-level. ApplicationType mode only.\n */\n get callerApplicationId(): uint64 {\n return getGlobalData().callerApplicationId\n },\n\n /**\n * The application address of the application that called this application. ZeroAddress if this application is at the top-level. ApplicationType mode only.\n */\n get callerApplicationAddress(): AccountType {\n return getApplicationAddress(this.callerApplicationId)\n },\n\n /**\n * The additional minimum balance required to create (and opt-in to) an asset.\n */\n get assetCreateMinBalance(): uint64 {\n return getGlobalData().assetCreateMinBalance\n },\n\n /**\n * The additional minimum balance required to opt-in to an asset.\n */\n get assetOptInMinBalance(): uint64 {\n return getGlobalData().assetOptInMinBalance\n },\n\n /**\n * The Genesis Hash for the network.\n */\n get genesisHash(): bytes {\n return getGlobalData().genesisHash\n },\n\n /**\n * Whether block proposal payouts are enabled.\n * Min AVM version: 11\n */\n get payoutsEnabled(): boolean {\n return getGlobalData().payoutsEnabled\n },\n\n /**\n * The fee required in a keyreg transaction to make an account incentive eligible.\n * Min AVM version: 11\n */\n get payoutsGoOnlineFee(): uint64 {\n return getGlobalData().payoutsGoOnlineFee\n },\n\n /**\n * The percentage of transaction fees in a block that can be paid to the block proposer.\n * Min AVM version: 11\n */\n get payoutsPercent(): uint64 {\n return getGlobalData().payoutsPercent\n },\n\n /**\n * The minimum algo balance an account must have in the agreement round to receive block payouts in the proposal round.\n * Min AVM version: 11\n */\n get payoutsMinBalance(): uint64 {\n return getGlobalData().payoutsMinBalance\n },\n\n /**\n * The maximum algo balance an account can have in the agreement round to receive block payouts in the proposal round.\n * Min AVM version: 11\n */\n get payoutsMaxBalance(): uint64 {\n return getGlobalData().payoutsMinBalance\n },\n}\n","import type {\n Account as AccountType,\n Application as ApplicationType,\n bytes,\n gtxn,\n internal,\n op,\n uint64,\n} from '@algorandfoundation/algorand-typescript'\nimport { Bytes, Uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls, asUint64 } from '../util'\nimport { Account } from './reference'\n\nconst resolveAppIndex = (appIdOrIndex: internal.primitives.StubUint64Compat): uint64 => {\n const input = asUint64(appIdOrIndex)\n if (input >= 1001) {\n return input\n }\n const txn = lazyContext.activeGroup.activeTransaction as gtxn.ApplicationTxn\n return txn.apps(input).id\n}\n\nexport const getApp = (app: ApplicationType | internal.primitives.StubUint64Compat): ApplicationType | undefined => {\n try {\n const appId = asMaybeUint64Cls(app)\n if (appId !== undefined) {\n return lazyContext.ledger.getApplication(resolveAppIndex(appId))\n }\n return app as ApplicationType\n } catch {\n return undefined\n }\n}\n\nexport const AppParams: typeof op.AppParams = {\n appApprovalProgram(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const app = getApp(a)\n return app === undefined ? [Bytes(), false] : [app.approvalProgram, true]\n },\n appClearStateProgram(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const app = getApp(a)\n return app === undefined ? [Bytes(), false] : [app.clearStateProgram, true]\n },\n appGlobalNumUint(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.globalNumUint, true]\n },\n appGlobalNumByteSlice(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.globalNumBytes, true]\n },\n appLocalNumUint(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.localNumUint, true]\n },\n appLocalNumByteSlice(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.localNumBytes, true]\n },\n appExtraProgramPages(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.extraProgramPages, true]\n },\n appCreator(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const app = getApp(a)\n return app === undefined ? [Account(), false] : [app.creator, true]\n },\n appAddress(a: ApplicationType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const app = getApp(a)\n return app === undefined ? [Account(), false] : [app.address, true]\n },\n}\n","import type { Account, Application, gtxn, internal, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls } from '../util'\nimport { getApp } from './app-params'\nimport { Global } from './global'\n\nexport const getAccount = (acct: Account | internal.primitives.StubUint64Compat): Account => {\n const acctId = asMaybeUint64Cls(acct)\n if (acctId !== undefined) {\n const activeTxn = lazyContext.activeGroup.activeTransaction\n return (activeTxn as gtxn.ApplicationTxn).accounts(acctId.asAlgoTs())\n }\n return acct as Account\n}\n\nexport const balance = (a: Account | internal.primitives.StubUint64Compat): uint64 => {\n const acct = getAccount(a)\n return acct.balance\n}\n\nexport const minBalance = (a: Account | internal.primitives.StubUint64Compat): uint64 => {\n const acct = getAccount(a)\n return acct.minBalance\n}\n\nexport const appOptedIn = (\n a: Account | internal.primitives.StubUint64Compat,\n b: Application | internal.primitives.StubUint64Compat,\n): boolean => {\n const account = getAccount(a)\n const app = getApp(b)\n\n if (account === undefined || app === undefined) {\n return false\n }\n return account.isOptedIn(app)\n}\n\nexport const AcctParams: typeof op.AcctParams = {\n acctBalance(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.balance, acct.balance !== 0]\n },\n acctMinBalance(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.minBalance, acct.balance !== 0]\n },\n acctAuthAddr(a: Account | internal.primitives.StubUint64Compat): readonly [Account, boolean] {\n const acct = getAccount(a)\n return [acct.authAddress, acct.balance !== 0]\n },\n acctTotalNumUint(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalNumUint, acct.balance !== 0]\n },\n acctTotalNumByteSlice(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalNumByteSlice, acct.balance !== 0]\n },\n acctTotalExtraAppPages(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalExtraAppPages, acct.balance !== 0]\n },\n acctTotalAppsCreated(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAppsCreated, acct.balance !== 0]\n },\n acctTotalAppsOptedIn(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAppsOptedIn, acct.balance !== 0]\n },\n acctTotalAssetsCreated(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAssetsCreated, acct.balance !== 0]\n },\n acctTotalAssets(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAssets, acct.balance !== 0]\n },\n acctTotalBoxes(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalBoxes, acct.balance !== 0]\n },\n acctTotalBoxBytes(a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalBoxBytes, acct.balance !== 0]\n },\n acctIncentiveEligible: function (a: Account | internal.primitives.StubUint64Compat): readonly [boolean, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.incentiveEligible ?? false, acct.balance !== 0]\n },\n acctLastProposed: function (a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.lastProposed ?? Global.round, acct.balance !== 0]\n },\n acctLastHeartbeat: function (a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.lastHeartbeat ?? Global.round, acct.balance !== 0]\n },\n}\n","import type { Account, internal, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { getAccount } from './acct-params'\n\nexport class VoterData {\n balance: uint64\n incentiveEligible: boolean\n\n constructor() {\n this.balance = 0\n this.incentiveEligible = false\n }\n}\n\nconst getVoterData = (a: Account | internal.primitives.StubUint64Compat): VoterData => {\n const acct = getAccount(a)\n return lazyContext.getVoterData(acct)\n}\n\nexport const VoterParams: typeof op.VoterParams = {\n voterBalance: function (a: Account | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const data = getVoterData(a)\n return [data.balance, data.balance !== 0]\n },\n voterIncentiveEligible: function (a: Account | internal.primitives.StubUint64Compat): readonly [boolean, boolean] {\n const data = getVoterData(a)\n return [data.incentiveEligible, data.balance !== 0]\n },\n}\n","import type { biguint, bytes, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { Base64, Bytes, internal, Uint64 } from '@algorandfoundation/algorand-typescript'\nimport { BITS_IN_BYTE, MAX_BYTES_SIZE, MAX_UINT64, MAX_UINT8, UINT64_SIZE } from '../constants'\nimport { notImplementedError, testInvariant } from '../errors'\nimport { asBigUint, asBytes, asBytesCls, asMaybeBytesCls, asMaybeUint64Cls, asUint64Cls, binaryStringToBytes } from '../util'\n\nexport const addw = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): readonly [uint64, uint64] => {\n const uint64A = internal.primitives.Uint64Cls.fromCompat(a)\n const uint64B = internal.primitives.Uint64Cls.fromCompat(b)\n const sum = uint64A.asBigInt() + uint64B.asBigInt()\n return toUint128(sum)\n}\n\nexport const base64Decode = (e: Base64, a: internal.primitives.StubBytesCompat): bytes => {\n const encoding = e === Base64.StdEncoding ? 'base64' : 'base64url'\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n const stringValue = bytesValue.toString()\n\n const bufferResult = Buffer.from(stringValue, encoding)\n if (bufferResult.toString(encoding) !== stringValue) {\n internal.errors.avmError('illegal base64 data')\n }\n\n const uint8ArrayResult = new Uint8Array(bufferResult)\n return Bytes(uint8ArrayResult)\n}\n\nexport const bitLength = (a: internal.primitives.StubUint64Compat | internal.primitives.StubBytesCompat): uint64 => {\n const uint64Cls = asMaybeUint64Cls(a)\n const bigUintCls = asMaybeBytesCls(a)?.toBigUint()\n const bigIntValue = (uint64Cls?.asBigInt() ?? bigUintCls?.asBigInt())!\n const binaryValue = bigIntValue === 0n ? '' : bigIntValue.toString(2)\n return Uint64(binaryValue.length)\n}\n\nexport const bsqrt = (a: internal.primitives.StubBigUintCompat): biguint => {\n const bigUintClsValue = internal.primitives.BigUintCls.fromCompat(a)\n const bigintValue = internal.primitives.checkBigUint(bigUintClsValue.asBigInt())\n const sqrtValue = squareroot(bigintValue)\n return asBigUint(sqrtValue)\n}\n\nexport const btoi = (a: internal.primitives.StubBytesCompat): uint64 => {\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n if (bytesValue.length.asAlgoTs() > BITS_IN_BYTE) {\n internal.errors.avmError(`btoi arg too long, got [${bytesValue.length.valueOf()}]bytes`)\n }\n return bytesValue.toUint64().asAlgoTs()\n}\n\nexport const bzero = (a: internal.primitives.StubUint64Compat): bytes => {\n const size = internal.primitives.Uint64Cls.fromCompat(a).asBigInt()\n if (size > MAX_BYTES_SIZE) {\n internal.errors.avmError('bzero attempted to create a too large string')\n }\n return Bytes(new Uint8Array(Number(size)))\n}\n\nexport const concat = (a: internal.primitives.StubBytesCompat, b: internal.primitives.StubBytesCompat): bytes => {\n const bytesA = internal.primitives.BytesCls.fromCompat(a)\n const bytesB = internal.primitives.BytesCls.fromCompat(b)\n return bytesA.concat(bytesB).asAlgoTs()\n}\n\nexport const divmodw = (\n a: internal.primitives.StubUint64Compat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n d: internal.primitives.StubUint64Compat,\n): readonly [uint64, uint64, uint64, uint64] => {\n const i = uint128ToBigInt(a, b)\n const j = uint128ToBigInt(c, d)\n\n const div = i / j\n const mod = i % j\n return [...toUint128(div), ...toUint128(mod)]\n}\n\nexport const divw = (\n a: internal.primitives.StubUint64Compat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n): uint64 => {\n const i = uint128ToBigInt(a, b)\n const j = internal.primitives.Uint64Cls.fromCompat(c).asBigInt()\n return Uint64(i / j)\n}\n\nexport const exp = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): uint64 => {\n const base = internal.primitives.Uint64Cls.fromCompat(a).asBigInt()\n const exponent = internal.primitives.Uint64Cls.fromCompat(b).asBigInt()\n if (base === 0n && exponent === 0n) {\n throw internal.errors.codeError('0 ** 0 is undefined')\n }\n return Uint64(base ** exponent)\n}\n\nexport const expw = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): readonly [uint64, uint64] => {\n const base = internal.primitives.Uint64Cls.fromCompat(a).asBigInt()\n const exponent = internal.primitives.Uint64Cls.fromCompat(b).asBigInt()\n if (base === 0n && exponent === 0n) {\n throw internal.errors.codeError('0 ** 0 is undefined')\n }\n return toUint128(base ** exponent)\n}\n\ntype ExtractType = ((a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat) => bytes) &\n ((a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat, c: internal.primitives.StubUint64Compat) => bytes)\nexport const extract = ((\n a: internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n c?: internal.primitives.StubUint64Compat,\n): bytes => {\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n const bytesLength = bytesValue.length.asBigInt()\n\n const start = internal.primitives.Uint64Cls.fromCompat(b).asBigInt()\n const length = c !== undefined ? internal.primitives.Uint64Cls.fromCompat(c).asBigInt() : undefined\n const end = length !== undefined ? start + length : undefined\n\n if (start > bytesLength) {\n internal.errors.codeError(`extraction start ${start} is beyond length`)\n }\n if (end !== undefined && end > bytesLength) {\n internal.errors.codeError(`extraction end ${end} is beyond length`)\n }\n\n return bytesValue.slice(start, end).asAlgoTs()\n}) as ExtractType\n\nexport const extractUint16 = (a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat): uint64 => {\n const result = extract(a, b, 2)\n const bytesResult = internal.primitives.BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const extractUint32 = (a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat): uint64 => {\n const result = extract(a, b, 4)\n const bytesResult = internal.primitives.BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const extractUint64 = (a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat): uint64 => {\n const result = extract(a, b, 8)\n const bytesResult = internal.primitives.BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const getBit = (\n a: internal.primitives.StubUint64Compat | internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n): uint64 => {\n const binaryString = toBinaryString(internal.primitives.isUint64(a) ? asUint64Cls(a).toBytes().asAlgoTs() : asBytes(a))\n const index = internal.primitives.Uint64Cls.fromCompat(b).asNumber()\n const adjustedIndex = asMaybeUint64Cls(a) ? binaryString.length - index - 1 : index\n if (adjustedIndex < 0 || adjustedIndex >= binaryString.length) {\n internal.errors.codeError(`getBit index ${index} is beyond length`)\n }\n return binaryString[adjustedIndex] === '1' ? Uint64(1) : Uint64(0)\n}\n\nexport const getByte = (a: internal.primitives.StubBytesCompat, b: internal.primitives.StubUint64Compat): uint64 => {\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n const index = internal.primitives.Uint64Cls.fromCompat(b).asNumber()\n if (index >= bytesValue.length.asNumber()) {\n internal.errors.codeError(`getBytes index ${index} is beyond length`)\n }\n return bytesValue.at(index).toUint64().asAlgoTs()\n}\n\nexport const itob = (a: internal.primitives.StubUint64Compat): bytes => {\n return asUint64Cls(a).toBytes().asAlgoTs()\n}\n\nexport const len = (a: internal.primitives.StubBytesCompat): uint64 => {\n return asBytesCls(a).length.asAlgoTs()\n}\n\nexport const mulw = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): readonly [uint64, uint64] => {\n const uint64A = internal.primitives.Uint64Cls.fromCompat(a)\n const uint64B = internal.primitives.Uint64Cls.fromCompat(b)\n const product = uint64A.asBigInt() * uint64B.asBigInt()\n return toUint128(product)\n}\n\nexport const replace = (\n a: internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubBytesCompat,\n): bytes => {\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n const index = internal.primitives.Uint64Cls.fromCompat(b).asNumber()\n const replacement = internal.primitives.BytesCls.fromCompat(c)\n\n const valueLength = bytesValue.length.asNumber()\n const replacementLength = replacement.length.asNumber()\n\n if (index + replacementLength > valueLength) {\n internal.errors.codeError(`expected value <= ${valueLength}, got: ${index + replacementLength}`)\n }\n return bytesValue\n .slice(0, index)\n .concat(replacement)\n .concat(bytesValue.slice(index + replacementLength, valueLength))\n .asAlgoTs()\n}\n\ntype selectType = ((\n a: internal.primitives.StubBytesCompat,\n b: internal.primitives.StubBytesCompat,\n c: internal.primitives.StubUint64Compat,\n) => bytes) &\n ((a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat, c: internal.primitives.StubUint64Compat) => uint64)\nexport const select = ((\n a: internal.primitives.StubUint64Compat | internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat | internal.primitives.StubBytesCompat,\n c: internal.primitives.StubUint64Compat,\n): uint64 | bytes => {\n const uint64A = asMaybeUint64Cls(a)\n const uint64B = asMaybeUint64Cls(b)\n const bytesA = asMaybeBytesCls(a)\n const bytesB = asMaybeBytesCls(b)\n const bigIntC = internal.primitives.Uint64Cls.fromCompat(c).asBigInt()\n\n return (bigIntC !== 0n ? (uint64B ?? bytesB)! : (uint64A ?? bytesA)!).asAlgoTs()\n}) as selectType\n\ntype SetBitType = ((\n target: internal.primitives.StubBytesCompat,\n n: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n) => bytes) &\n ((\n target: internal.primitives.StubUint64Compat,\n n: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n ) => uint64)\n\nexport const setBit = ((\n a: internal.primitives.StubUint64Compat | internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n) => {\n const uint64Cls = asMaybeUint64Cls(a)\n const indexParam = internal.primitives.Uint64Cls.fromCompat(b).asNumber()\n const bit = internal.primitives.Uint64Cls.fromCompat(c).asNumber()\n if (uint64Cls) {\n const binaryString = toBinaryString(uint64Cls?.toBytes().asAlgoTs())\n const index = binaryString.length - indexParam - 1\n const newBytes = doSetBit(binaryString, index, bit)\n return newBytes.toUint64().asAlgoTs()\n } else {\n const bytesCls = asMaybeBytesCls(a)\n testInvariant(bytesCls, 'a must be uint64 or bytes')\n const binaryString = toBinaryString(bytesCls.asAlgoTs())\n const newBytes = doSetBit(binaryString, indexParam, bit)\n return newBytes.asAlgoTs()\n }\n}) as SetBitType\n\nexport const setByte = (\n a: internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n): bytes => {\n const binaryString = toBinaryString(internal.primitives.BytesCls.fromCompat(a).asAlgoTs())\n\n const byteIndex = internal.primitives.Uint64Cls.fromCompat(b).asNumber()\n const bitIndex = byteIndex * BITS_IN_BYTE\n\n const replacementNumber = internal.primitives.Uint64Cls.fromCompat(c)\n const replacement = toBinaryString(replacementNumber.toBytes().at(-1).asAlgoTs())\n\n if (bitIndex >= binaryString.length) {\n internal.errors.codeError(`setByte index ${byteIndex} is beyond length`)\n }\n if (replacementNumber.valueOf() > MAX_UINT8) {\n internal.errors.codeError(`setByte value ${replacementNumber.asNumber()} > ${MAX_UINT8}`)\n }\n const updatedString = binaryString.slice(0, bitIndex) + replacement + binaryString.slice(bitIndex + replacement.length)\n const updatedBytes = binaryStringToBytes(updatedString)\n return updatedBytes.asAlgoTs()\n}\n\nexport const shl = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): uint64 => {\n const uint64A = internal.primitives.Uint64Cls.fromCompat(a)\n const uint64B = internal.primitives.Uint64Cls.fromCompat(b)\n const bigIntA = uint64A.asBigInt()\n const bigIntB = uint64B.asBigInt()\n if (bigIntB >= UINT64_SIZE) {\n internal.errors.codeError(`shl value ${bigIntB} >= ${UINT64_SIZE}`)\n }\n const shifted = (bigIntA * 2n ** bigIntB) % 2n ** BigInt(UINT64_SIZE)\n return Uint64(shifted)\n}\n\nexport const shr = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): uint64 => {\n const uint64A = internal.primitives.Uint64Cls.fromCompat(a)\n const uint64B = internal.primitives.Uint64Cls.fromCompat(b)\n const bigIntA = uint64A.asBigInt()\n const bigIntB = uint64B.asBigInt()\n if (bigIntB >= UINT64_SIZE) {\n internal.errors.codeError(`shr value ${bigIntB} >= ${UINT64_SIZE}`)\n }\n const shifted = bigIntA / 2n ** bigIntB\n return Uint64(shifted)\n}\n\nexport const sqrt = (a: internal.primitives.StubUint64Compat): uint64 => {\n const bigIntValue = internal.primitives.Uint64Cls.fromCompat(a).asBigInt()\n const sqrtValue = squareroot(bigIntValue)\n return Uint64(sqrtValue)\n}\n\nexport const substring = (\n a: internal.primitives.StubBytesCompat,\n b: internal.primitives.StubUint64Compat,\n c: internal.primitives.StubUint64Compat,\n): bytes => {\n const bytesValue = internal.primitives.BytesCls.fromCompat(a)\n const start = internal.primitives.Uint64Cls.fromCompat(b).asBigInt()\n const end = internal.primitives.Uint64Cls.fromCompat(c).asBigInt()\n if (start > end) {\n internal.errors.codeError('substring end before start')\n }\n if (end > bytesValue.length.asNumber()) {\n internal.errors.codeError('substring range beyond length of string')\n }\n return bytesValue.slice(start, end).asAlgoTs()\n}\n\nexport const JsonRef = new Proxy({} as typeof op.JsonRef, {\n get: (_target, prop) => {\n notImplementedError(`JsonRef.${prop.toString()}`)\n },\n})\n\nconst squareroot = (x: bigint): bigint => {\n let lo = 0n,\n hi = x\n while (lo <= hi) {\n const mid = (lo + hi) / 2n\n if (mid * mid > x) hi = mid - 1n\n else lo = mid + 1n\n }\n return hi\n}\n\nconst toUint128 = (value: bigint): [uint64, uint64] => {\n const cf = value >> 64n\n const rest = value & MAX_UINT64\n return [Uint64(cf), Uint64(rest)]\n}\n\nconst uint128ToBigInt = (a: internal.primitives.StubUint64Compat, b: internal.primitives.StubUint64Compat): bigint => {\n const bigIntA = internal.primitives.Uint64Cls.fromCompat(a).asBigInt()\n const bigIntB = internal.primitives.Uint64Cls.fromCompat(b).asBigInt()\n return (bigIntA << 64n) + bigIntB\n}\n\nconst toBinaryString = (a: bytes): string => {\n return [...internal.primitives.BytesCls.fromCompat(a).asUint8Array()].map((x) => x.toString(2).padStart(BITS_IN_BYTE, '0')).join('')\n}\n\nconst doSetBit = (binaryString: string, index: number, bit: number): internal.primitives.BytesCls => {\n if (index < 0 || index >= binaryString.length) {\n internal.errors.codeError(`setBit index ${index < 0 ? binaryString.length - index : index} is beyond length`)\n }\n if (bit !== 0 && bit !== 1) {\n internal.errors.codeError(`setBit value > 1`)\n }\n const updatedString = binaryString.slice(0, index) + bit.toString() + binaryString.slice(index + 1)\n return binaryStringToBytes(updatedString)\n}\n","import type { bytes, gtxn, internal, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { type Account as AccountType, type Asset as AssetType, Bytes, Uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls, asUint64 } from '../util'\nimport { Account } from './reference'\n\nconst resolveAssetIndex = (assetIdOrIndex: internal.primitives.StubUint64Compat): uint64 => {\n const input = asUint64(assetIdOrIndex)\n if (input >= 1001) {\n return input\n }\n const txn = lazyContext.activeGroup.activeTransaction as gtxn.ApplicationTxn\n return txn.assets(input).id\n}\n\nexport const getAsset = (asset: AssetType | internal.primitives.StubUint64Compat): AssetType | undefined => {\n try {\n const assetId = asMaybeUint64Cls(asset)\n if (assetId !== undefined) {\n return lazyContext.ledger.getAsset(resolveAssetIndex(assetId))\n }\n return asset as AssetType\n } catch {\n return undefined\n }\n}\n\nexport const AssetParams: typeof op.AssetParams = {\n assetTotal(a: AssetType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Uint64(0), false] : [asset.total, true]\n },\n assetDecimals(a: AssetType | internal.primitives.StubUint64Compat): readonly [uint64, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Uint64(0), false] : [asset.decimals, true]\n },\n assetDefaultFrozen(a: AssetType | internal.primitives.StubUint64Compat): readonly [boolean, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [false, false] : [asset.defaultFrozen, true]\n },\n assetUnitName(a: AssetType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.unitName, true]\n },\n assetName(a: AssetType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.name, true]\n },\n assetUrl(a: AssetType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.url, true]\n },\n assetMetadataHash(a: AssetType | internal.primitives.StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.metadataHash, true]\n },\n assetManager(a: AssetType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.manager, true]\n },\n assetReserve(a: AssetType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.reserve, true]\n },\n assetFreeze(a: AssetType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.freeze, true]\n },\n assetClawback(a: AssetType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.clawback, true]\n },\n assetCreator(a: AssetType | internal.primitives.StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.creator, true]\n },\n}\n"],"names":[],"mappings":"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"}
|