@algorandfoundation/algokit-utils 1.0.0-beta.9 → 1.0.0

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.
Files changed (140) hide show
  1. package/account.d.ts +35 -31
  2. package/account.d.ts.map +1 -1
  3. package/account.js +53 -39
  4. package/account.js.map +1 -1
  5. package/amount.d.ts +8 -0
  6. package/amount.d.ts.map +1 -0
  7. package/amount.js +24 -0
  8. package/amount.js.map +1 -0
  9. package/app.d.ts +64 -145
  10. package/app.d.ts.map +1 -1
  11. package/app.js +197 -39
  12. package/app.js.map +1 -1
  13. package/application-client.d.ts +9 -112
  14. package/application-client.d.ts.map +1 -1
  15. package/application-client.js +11 -254
  16. package/application-client.js.map +1 -1
  17. package/deploy-app.d.ts +20 -91
  18. package/deploy-app.d.ts.map +1 -1
  19. package/deploy-app.js +84 -93
  20. package/deploy-app.js.map +1 -1
  21. package/index.d.ts +4 -2
  22. package/index.d.ts.map +1 -1
  23. package/index.js +5 -2
  24. package/index.js.map +1 -1
  25. package/localnet.d.ts +4 -4
  26. package/localnet.d.ts.map +1 -1
  27. package/localnet.js +10 -10
  28. package/localnet.js.map +1 -1
  29. package/network-client.d.ts +11 -20
  30. package/network-client.d.ts.map +1 -1
  31. package/network-client.js +11 -11
  32. package/network-client.js.map +1 -1
  33. package/package.json +2 -2
  34. package/testing/account.d.ts +14 -0
  35. package/testing/account.d.ts.map +1 -0
  36. package/testing/account.js +31 -0
  37. package/testing/account.js.map +1 -0
  38. package/testing/fixtures/algokit-log-capture-fixture.d.ts +19 -0
  39. package/testing/fixtures/algokit-log-capture-fixture.d.ts.map +1 -0
  40. package/testing/fixtures/algokit-log-capture-fixture.js +43 -0
  41. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -0
  42. package/testing/fixtures/algorand-fixture.d.ts +20 -0
  43. package/testing/fixtures/algorand-fixture.d.ts.map +1 -0
  44. package/testing/fixtures/algorand-fixture.js +49 -0
  45. package/testing/fixtures/algorand-fixture.js.map +1 -0
  46. package/testing/fixtures/index.d.ts +3 -0
  47. package/testing/fixtures/index.d.ts.map +1 -0
  48. package/testing/fixtures/index.js +19 -0
  49. package/testing/fixtures/index.js.map +1 -0
  50. package/testing/index.d.ts +6 -0
  51. package/testing/index.d.ts.map +1 -0
  52. package/testing/index.js +22 -0
  53. package/testing/index.js.map +1 -0
  54. package/testing/indexer.d.ts +12 -0
  55. package/testing/indexer.d.ts.map +1 -0
  56. package/testing/indexer.js +39 -0
  57. package/testing/indexer.js.map +1 -0
  58. package/testing/test-logger.d.ts +39 -0
  59. package/testing/test-logger.d.ts.map +1 -0
  60. package/testing/test-logger.js +69 -0
  61. package/testing/test-logger.js.map +1 -0
  62. package/testing/transaction-logger.d.ts +29 -0
  63. package/testing/transaction-logger.d.ts.map +1 -0
  64. package/testing/transaction-logger.js +71 -0
  65. package/testing/transaction-logger.js.map +1 -0
  66. package/transaction.d.ts +4 -81
  67. package/transaction.d.ts.map +1 -1
  68. package/transaction.js +39 -89
  69. package/transaction.js.map +1 -1
  70. package/transfer.d.ts +13 -16
  71. package/transfer.d.ts.map +1 -1
  72. package/transfer.js +35 -3
  73. package/transfer.js.map +1 -1
  74. package/types/account.d.ts +52 -0
  75. package/types/account.d.ts.map +1 -0
  76. package/types/account.js +86 -0
  77. package/types/account.js.map +1 -0
  78. package/types/algo-http-client-with-retry.d.ts.map +1 -0
  79. package/{algo-http-client-with-retry.js → types/algo-http-client-with-retry.js} +2 -2
  80. package/types/algo-http-client-with-retry.js.map +1 -0
  81. package/types/algod.d.ts +22 -9
  82. package/types/algod.d.ts.map +1 -1
  83. package/{algo-amount.d.ts → types/amount.d.ts} +3 -1
  84. package/types/amount.d.ts.map +1 -0
  85. package/{algo-amount.js → types/amount.js} +7 -1
  86. package/types/amount.js.map +1 -0
  87. package/types/app.d.ts +279 -0
  88. package/types/app.d.ts.map +1 -0
  89. package/types/app.js +32 -0
  90. package/types/app.js.map +1 -0
  91. package/types/application-client.d.ts +229 -0
  92. package/types/application-client.d.ts.map +1 -0
  93. package/types/application-client.js +470 -0
  94. package/types/application-client.js.map +1 -0
  95. package/types/appspec.d.ts +1 -2
  96. package/types/appspec.d.ts.map +1 -1
  97. package/types/appspec.js.map +1 -1
  98. package/types/config.d.ts +15 -0
  99. package/types/config.d.ts.map +1 -0
  100. package/types/config.js +27 -0
  101. package/types/config.js.map +1 -0
  102. package/types/indexer.d.ts +8 -9
  103. package/types/indexer.d.ts.map +1 -1
  104. package/{config.d.ts → types/logging.d.ts} +2 -16
  105. package/types/logging.d.ts.map +1 -0
  106. package/{config.js → types/logging.js} +5 -24
  107. package/types/logging.js.map +1 -0
  108. package/types/logic-error.d.ts +33 -0
  109. package/types/logic-error.d.ts.map +1 -0
  110. package/types/logic-error.js +46 -0
  111. package/types/logic-error.js.map +1 -0
  112. package/types/network-client.d.ts +11 -0
  113. package/types/network-client.d.ts.map +1 -0
  114. package/types/network-client.js +3 -0
  115. package/types/network-client.js.map +1 -0
  116. package/types/testing.d.ts +89 -0
  117. package/types/testing.d.ts.map +1 -0
  118. package/types/testing.js +3 -0
  119. package/types/testing.js.map +1 -0
  120. package/types/transaction.d.ts +67 -0
  121. package/types/transaction.d.ts.map +1 -0
  122. package/types/transaction.js +3 -0
  123. package/types/transaction.js.map +1 -0
  124. package/types/transfer.d.ts +32 -0
  125. package/types/transfer.d.ts.map +1 -0
  126. package/types/transfer.js +3 -0
  127. package/types/transfer.js.map +1 -0
  128. package/types/urlTokenBaseHTTPClient.d.ts.map +1 -0
  129. package/types/urlTokenBaseHTTPClient.js.map +1 -0
  130. package/algo-amount.d.ts.map +0 -1
  131. package/algo-amount.js.map +0 -1
  132. package/algo-http-client-with-retry.d.ts.map +0 -1
  133. package/algo-http-client-with-retry.js.map +0 -1
  134. package/config.d.ts.map +0 -1
  135. package/config.js.map +0 -1
  136. package/urlTokenBaseHTTPClient.d.ts.map +0 -1
  137. package/urlTokenBaseHTTPClient.js.map +0 -1
  138. /package/{algo-http-client-with-retry.d.ts → types/algo-http-client-with-retry.d.ts} +0 -0
  139. /package/{urlTokenBaseHTTPClient.d.ts → types/urlTokenBaseHTTPClient.d.ts} +0 -0
  140. /package/{urlTokenBaseHTTPClient.js → types/urlTokenBaseHTTPClient.js} +0 -0
package/app.js CHANGED
@@ -23,15 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.compileTeal = exports.getAppByIndex = exports.getAppArgsForTransaction = exports.getABIReturn = exports.callApp = exports.updateApp = exports.createApp = exports.ABI_RETURN_PREFIX = exports.APP_PAGE_MAX_SIZE = void 0;
26
+ exports.compileTeal = exports.getAppByIndex = exports.getAppArgsForTransaction = exports.decodeAppState = exports.getAppBoxValuesFromABIType = exports.getAppBoxValueFromABIType = exports.getAppBoxValues = exports.getAppBoxValue = exports.getAppBoxNames = exports.getAppLocalState = exports.getAppGlobalState = exports.getABIReturn = exports.callApp = exports.updateApp = exports.createApp = void 0;
27
27
  const algosdk_1 = __importStar(require("algosdk"));
28
28
  const buffer_1 = require("buffer");
29
- const config_1 = require("./config");
29
+ const _1 = require("./");
30
30
  const transaction_1 = require("./transaction");
31
- /** The maximum number of bytes in an app code page */
32
- exports.APP_PAGE_MAX_SIZE = 2048;
33
- /** First 4 bytes of SHA-512/256 hash of "return" */
34
- exports.ABI_RETURN_PREFIX = new Uint8Array([21, 31, 124, 117]);
31
+ const app_1 = require("./types/app");
35
32
  /**
36
33
  * Creates a smart contract app, returns the details of the created app.
37
34
  * @param create The parameters to create the app with
@@ -40,8 +37,10 @@ exports.ABI_RETURN_PREFIX = new Uint8Array([21, 31, 124, 117]);
40
37
  */
41
38
  async function createApp(create, algod) {
42
39
  const { from, approvalProgram: approval, clearStateProgram: clear, schema, note, transactionParams, args, ...sendParams } = create;
43
- const approvalProgram = typeof approval === 'string' ? (await compileTeal(approval, algod)).compiledBase64ToBytes : approval;
44
- const clearProgram = typeof clear === 'string' ? (await compileTeal(clear, algod)).compiledBase64ToBytes : clear;
40
+ const compiledApproval = typeof approval === 'string' ? await compileTeal(approval, algod) : undefined;
41
+ const approvalProgram = compiledApproval ? compiledApproval.compiledBase64ToBytes : approval;
42
+ const compiledClear = typeof clear === 'string' ? await compileTeal(clear, algod) : undefined;
43
+ const clearProgram = compiledClear ? compiledClear.compiledBase64ToBytes : clear;
45
44
  const transaction = algosdk_1.default.makeApplicationCreateTxnFromObject({
46
45
  approvalProgram: approvalProgram,
47
46
  clearProgram: clearProgram,
@@ -49,7 +48,7 @@ async function createApp(create, algod) {
49
48
  numLocalByteSlices: schema.localByteSlices,
50
49
  numGlobalInts: schema.globalInts,
51
50
  numGlobalByteSlices: schema.globalByteSlices,
52
- extraPages: schema.extraPages ?? Math.floor((approvalProgram.length + clearProgram.length) / exports.APP_PAGE_MAX_SIZE),
51
+ extraPages: schema.extraPages ?? Math.floor((approvalProgram.length + clearProgram.length) / app_1.APP_PAGE_MAX_SIZE),
53
52
  onComplete: algosdk_1.default.OnApplicationComplete.NoOpOC,
54
53
  suggestedParams: await (0, transaction_1.getTransactionParams)(transactionParams, algod),
55
54
  from: (0, transaction_1.getSenderAddress)(from),
@@ -60,18 +59,20 @@ async function createApp(create, algod) {
60
59
  const { confirmation } = await (0, transaction_1.sendTransaction)({ transaction, from, sendParams }, algod);
61
60
  if (confirmation) {
62
61
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
- const appIndex = confirmation['application-index'];
64
- config_1.AlgoKitConfig.getLogger(sendParams.suppressLog).debug(`Created app ${appIndex} from creator ${(0, transaction_1.getSenderAddress)(from)}`);
62
+ const appId = confirmation['application-index'];
63
+ _1.Config.getLogger(sendParams.suppressLog).debug(`Created app ${appId} from creator ${(0, transaction_1.getSenderAddress)(from)}`);
65
64
  return {
66
65
  transaction,
67
66
  confirmation,
68
- appIndex,
69
- appAddress: algosdk_1.default.getApplicationAddress(appIndex),
67
+ appId,
68
+ appAddress: algosdk_1.default.getApplicationAddress(appId),
70
69
  return: getABIReturn(args, confirmation),
70
+ compiledApproval,
71
+ compiledClear,
71
72
  };
72
73
  }
73
74
  else {
74
- return { transaction, appIndex: 0, appAddress: '' };
75
+ return { transaction, appId: 0, appAddress: '', compiledApproval, compiledClear };
75
76
  }
76
77
  }
77
78
  exports.createApp = createApp;
@@ -82,11 +83,13 @@ exports.createApp = createApp;
82
83
  * @returns The transaction
83
84
  */
84
85
  async function updateApp(update, algod) {
85
- const { appIndex, from, approvalProgram: approval, clearStateProgram: clear, note, transactionParams, args, ...sendParams } = update;
86
- const approvalProgram = typeof approval === 'string' ? (await compileTeal(approval, algod)).compiledBase64ToBytes : approval;
87
- const clearProgram = typeof clear === 'string' ? (await compileTeal(clear, algod)).compiledBase64ToBytes : clear;
86
+ const { appId, from, approvalProgram: approval, clearStateProgram: clear, note, transactionParams, args, ...sendParams } = update;
87
+ const compiledApproval = typeof approval === 'string' ? await compileTeal(approval, algod) : undefined;
88
+ const approvalProgram = compiledApproval ? compiledApproval.compiledBase64ToBytes : approval;
89
+ const compiledClear = typeof clear === 'string' ? await compileTeal(clear, algod) : undefined;
90
+ const clearProgram = compiledClear ? compiledClear.compiledBase64ToBytes : clear;
88
91
  const transaction = algosdk_1.default.makeApplicationUpdateTxnFromObject({
89
- appIndex,
92
+ appIndex: appId,
90
93
  approvalProgram: approvalProgram,
91
94
  clearProgram: clearProgram,
92
95
  suggestedParams: await (0, transaction_1.getTransactionParams)(transactionParams, algod),
@@ -95,11 +98,13 @@ async function updateApp(update, algod) {
95
98
  ...getAppArgsForTransaction(args),
96
99
  rekeyTo: undefined,
97
100
  });
98
- config_1.AlgoKitConfig.getLogger(sendParams.suppressLog).debug(`Updating app ${appIndex}`);
101
+ _1.Config.getLogger(sendParams.suppressLog).debug(`Updating app ${appId}`);
99
102
  const result = await (0, transaction_1.sendTransaction)({ transaction, from, sendParams }, algod);
100
103
  return {
101
104
  ...result,
102
105
  return: getABIReturn(args, result.confirmation),
106
+ compiledApproval,
107
+ compiledClear,
103
108
  };
104
109
  }
105
110
  exports.updateApp = updateApp;
@@ -110,9 +115,9 @@ exports.updateApp = updateApp;
110
115
  * @returns The result of the call
111
116
  */
112
117
  async function callApp(call, algod) {
113
- const { appIndex, callType, from, args, note, transactionParams, ...sendParams } = call;
114
- const appCallParameters = {
115
- appIndex: appIndex,
118
+ const { appId, callType, from, args, note, transactionParams, ...sendParams } = call;
119
+ const appCallParams = {
120
+ appIndex: appId,
116
121
  from: (0, transaction_1.getSenderAddress)(from),
117
122
  suggestedParams: await (0, transaction_1.getTransactionParams)(transactionParams, algod),
118
123
  ...getAppArgsForTransaction(args),
@@ -122,19 +127,19 @@ async function callApp(call, algod) {
122
127
  let transaction;
123
128
  switch (callType) {
124
129
  case 'optin':
125
- transaction = algosdk_1.default.makeApplicationOptInTxnFromObject(appCallParameters);
130
+ transaction = algosdk_1.default.makeApplicationOptInTxnFromObject(appCallParams);
126
131
  break;
127
132
  case 'clearstate':
128
- transaction = algosdk_1.default.makeApplicationClearStateTxnFromObject(appCallParameters);
133
+ transaction = algosdk_1.default.makeApplicationClearStateTxnFromObject(appCallParams);
129
134
  break;
130
135
  case 'closeout':
131
- transaction = algosdk_1.default.makeApplicationCloseOutTxnFromObject(appCallParameters);
136
+ transaction = algosdk_1.default.makeApplicationCloseOutTxnFromObject(appCallParams);
132
137
  break;
133
138
  case 'delete':
134
- transaction = algosdk_1.default.makeApplicationDeleteTxnFromObject(appCallParameters);
139
+ transaction = algosdk_1.default.makeApplicationDeleteTxnFromObject(appCallParams);
135
140
  break;
136
141
  case 'normal':
137
- transaction = algosdk_1.default.makeApplicationNoOpTxnFromObject(appCallParameters);
142
+ transaction = algosdk_1.default.makeApplicationNoOpTxnFromObject(appCallParams);
138
143
  break;
139
144
  }
140
145
  const result = await (0, transaction_1.sendTransaction)({ transaction, from, sendParams }, algod);
@@ -156,7 +161,7 @@ function getABIReturn(args, confirmation) {
156
161
  throw new Error('App call transaction did not log a return value');
157
162
  }
158
163
  const lastLog = logs[logs.length - 1];
159
- if (lastLog.byteLength < 4 || lastLog.slice(0, 4).toString() !== exports.ABI_RETURN_PREFIX.toString()) {
164
+ if (lastLog.byteLength < 4 || lastLog.slice(0, 4).toString() !== app_1.ABI_RETURN_PREFIX.toString()) {
160
165
  throw new Error('App call transaction did not log a return value (ABI_RETURN_PREFIX not found)');
161
166
  }
162
167
  return {
@@ -176,18 +181,154 @@ function getABIReturn(args, confirmation) {
176
181
  return undefined;
177
182
  }
178
183
  exports.getABIReturn = getABIReturn;
184
+ /**
185
+ * Returns the current global state values for the given app ID
186
+ * @param appId The ID of the app return global state for
187
+ * @param algod An algod client instance
188
+ * @returns The current global state
189
+ */
190
+ async function getAppGlobalState(appId, algod) {
191
+ const appInfo = await getAppByIndex(appId, algod);
192
+ if (!appInfo.params || !appInfo.params['global-state']) {
193
+ throw new Error("Couldn't find global state");
194
+ }
195
+ return decodeAppState(appInfo.params['global-state']);
196
+ }
197
+ exports.getAppGlobalState = getAppGlobalState;
198
+ /**
199
+ * Returns the current global state values for the given app ID and account
200
+ * @param appId The ID of the app return global state for
201
+ * @param account Either the string address of an account or an account object for the account to get local state for the given app
202
+ * @param algod An algod client instance
203
+ * @returns The current local state for the given (app, account) combination
204
+ */
205
+ async function getAppLocalState(appId, account, algod) {
206
+ const accountAddress = typeof account === 'string' ? account : (0, transaction_1.getSenderAddress)(account);
207
+ const appInfo = await algod.accountApplicationInformation(accountAddress, appId).do();
208
+ if (!appInfo['app-local-state'] || !appInfo['app-local-state']['key-value']) {
209
+ throw new Error("Couldn't find local state");
210
+ }
211
+ return decodeAppState(appInfo['app-local-state']['key-value']);
212
+ }
213
+ exports.getAppLocalState = getAppLocalState;
214
+ /**
215
+ * Returns the names of the boxes for the given app.
216
+ * @param appId The ID of the app return box names for
217
+ * @param algod An algod client instance
218
+ * @returns The current box names
219
+ */
220
+ async function getAppBoxNames(appId, algod) {
221
+ const boxResult = await algod.getApplicationBoxes(appId).do();
222
+ return boxResult.boxes.map((b) => {
223
+ return {
224
+ nameRaw: b.name,
225
+ nameBase64: buffer_1.Buffer.from(b.name).toString('base64'),
226
+ name: buffer_1.Buffer.from(b.name).toString('utf-8'),
227
+ };
228
+ });
229
+ }
230
+ exports.getAppBoxNames = getAppBoxNames;
231
+ /**
232
+ * Returns the value of the given box name for the given app.
233
+ * @param appId The ID of the app return box names for
234
+ * @param boxName The name of the box to return either as a string, binary array or @see BoxName
235
+ * @param algod An algod client instance
236
+ * @returns The current box value as a byte array
237
+ */
238
+ async function getAppBoxValue(appId, boxName, algod) {
239
+ const name = typeof boxName === 'string' ? new Uint8Array(buffer_1.Buffer.from(boxName, 'utf-8')) : 'name' in boxName ? boxName.nameRaw : boxName;
240
+ const boxResult = await algod.getApplicationBoxByName(appId, name).do();
241
+ return boxResult.value;
242
+ }
243
+ exports.getAppBoxValue = getAppBoxValue;
244
+ /**
245
+ * Returns the value of the given box names for the given app.
246
+ * @param appId The ID of the app return box names for
247
+ * @param boxNames The names of the boxes to return either as a string, binary array or @see BoxName
248
+ * @param algod An algod client instance
249
+ * @returns The current box values as a byte array in the same order as the passed in box names
250
+ */
251
+ async function getAppBoxValues(appId, boxNames, algod) {
252
+ return await Promise.all(boxNames.map(async (boxName) => await getAppBoxValue(appId, boxName, algod)));
253
+ }
254
+ exports.getAppBoxValues = getAppBoxValues;
255
+ /**
256
+ * Returns the value of the given box name for the given app decoded based on the given ABI type.
257
+ * @param request The parameters for the box value request
258
+ * @param algod An algod client instance
259
+ * @returns The current box value as an ABI value
260
+ */
261
+ async function getAppBoxValueFromABIType(request, algod) {
262
+ const { appId, boxName, type } = request;
263
+ const value = await getAppBoxValue(appId, boxName, algod);
264
+ return type.decode(value);
265
+ }
266
+ exports.getAppBoxValueFromABIType = getAppBoxValueFromABIType;
267
+ /**
268
+ * Returns the value of the given box names for the given app decoded based on the given ABI type.
269
+ * @param request The parameters for the box value request
270
+ * @param algod An algod client instance
271
+ * @returns The current box values as an ABI value in the same order as the passed in box names
272
+ */
273
+ async function getAppBoxValuesFromABIType(request, algod) {
274
+ const { appId, boxNames, type } = request;
275
+ return await Promise.all(boxNames.map(async (boxName) => await getAppBoxValueFromABIType({ appId, boxName, type }, algod)));
276
+ }
277
+ exports.getAppBoxValuesFromABIType = getAppBoxValuesFromABIType;
278
+ // Converts an array of global-state or global-state-deltas to a more
279
+ // friendly generic object
280
+ function decodeAppState(state) {
281
+ const stateValues = {};
282
+ // Start with empty set
283
+ for (const stateVal of state) {
284
+ const keyBase64 = stateVal.key;
285
+ const keyRaw = buffer_1.Buffer.from(keyBase64, 'base64');
286
+ const key = keyRaw.toString('utf-8');
287
+ const tealValue = stateVal.value;
288
+ const dataTypeFlag = 'action' in tealValue ? tealValue.action : tealValue.type;
289
+ let valueBase64;
290
+ let valueRaw;
291
+ switch (dataTypeFlag) {
292
+ case 1:
293
+ valueBase64 = 'bytes' in tealValue ? tealValue.bytes : '';
294
+ valueRaw = buffer_1.Buffer.from(valueBase64, 'base64');
295
+ stateValues[key] = {
296
+ keyRaw,
297
+ keyBase64,
298
+ valueRaw: new Uint8Array(valueRaw),
299
+ valueBase64: valueBase64,
300
+ value: valueRaw.toString('utf-8'),
301
+ };
302
+ break;
303
+ case 2:
304
+ // eslint-disable-next-line no-case-declarations
305
+ const value = 'uint' in tealValue ? tealValue.uint : 0;
306
+ stateValues[key] = {
307
+ keyRaw,
308
+ keyBase64,
309
+ value,
310
+ };
311
+ break;
312
+ default:
313
+ throw new Error(`Received unknown state data type of ${dataTypeFlag}`);
314
+ }
315
+ }
316
+ return stateValues;
317
+ }
318
+ exports.decodeAppState = decodeAppState;
179
319
  /** Returns the app args ready to load onto an app @see {Transaction} object */
180
320
  function getAppArgsForTransaction(args) {
181
321
  if (!args)
182
322
  return undefined;
183
323
  let actualArgs;
184
324
  if ('method' in args) {
185
- // todo: Land a change to algosdk that extract the logic from ATC, because (fair warning) this is a HACK
325
+ // todo: Land a change to algosdk that extracts the logic from ATC, because (fair warning) this is a HACK
186
326
  // I don't want to have to rewrite all of the ABI resolution logic so using an ATC temporarily here
187
327
  // and passing stuff in to keep it happy like a randomly generated account :O
188
328
  // Most of these values aren't being used since the transaction is discarded
189
329
  const dummyAtc = new algosdk_1.AtomicTransactionComposer();
190
330
  const dummyAccount = algosdk_1.default.generateAccount();
331
+ const dummySigner = (0, algosdk_1.makeBasicAccountTransactionSigner)(dummyAccount);
191
332
  const dummyAppId = 1;
192
333
  const dummyParams = {
193
334
  fee: 1,
@@ -196,24 +337,38 @@ function getAppArgsForTransaction(args) {
196
337
  genesisID: 'a',
197
338
  lastRound: 1,
198
339
  };
340
+ const methodArgs = args.args?.map((a) => {
341
+ if (typeof a !== 'object') {
342
+ return a;
343
+ }
344
+ // Handle the various forms of transactions to wrangle them for ATC
345
+ return 'txn' in a
346
+ ? a
347
+ : 'transaction' in a
348
+ ? { txn: a.transaction, signer: dummySigner }
349
+ : 'txID' in a
350
+ ? { txn: a, signer: dummySigner }
351
+ : a;
352
+ });
199
353
  const dummyOnComplete = algosdk_1.OnApplicationComplete.NoOpOC;
200
354
  dummyAtc.addMethodCall({
201
355
  method: 'txnCount' in args.method ? args.method : new algosdk_1.ABIMethod(args.method),
202
- methodArgs: args.args,
356
+ methodArgs,
203
357
  // Rest are dummy values
204
358
  appID: dummyAppId,
205
359
  sender: dummyAccount.addr,
206
- signer: (0, algosdk_1.makeBasicAccountTransactionSigner)(dummyAccount),
360
+ signer: dummySigner,
207
361
  suggestedParams: dummyParams,
208
362
  onComplete: dummyOnComplete,
209
363
  });
210
- const txn = dummyAtc.buildGroup()[0];
364
+ const txns = dummyAtc.buildGroup();
365
+ const txn = txns[txns.length - 1];
211
366
  actualArgs = {
212
367
  accounts: txn.txn.appAccounts,
213
368
  appArgs: txn.txn.appArgs,
214
369
  apps: txn.txn.appForeignApps,
215
370
  assets: txn.txn.appForeignAssets,
216
- boxes: txn.txn.boxes,
371
+ boxes: args.boxes?.map((b) => (typeof b === 'object' && 'appId' in b ? b : { appId: 0, name: b })),
217
372
  lease: args.lease,
218
373
  };
219
374
  }
@@ -224,8 +379,10 @@ function getAppArgsForTransaction(args) {
224
379
  return {
225
380
  accounts: actualArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk_1.default.encodeAddress(a.publicKey))),
226
381
  appArgs: actualArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a)),
227
- boxes: actualArgs?.boxes?.map((ref) => ({
228
- appIndex: ref.appIndex,
382
+ boxes: actualArgs?.boxes
383
+ ?.map((b) => (typeof b === 'object' && 'appId' in b ? b : { appId: 0, name: b }))
384
+ ?.map((ref) => ({
385
+ appIndex: ref.appId,
229
386
  name: typeof ref.name === 'string' ? encoder.encode(ref.name) : ref.name,
230
387
  })),
231
388
  foreignApps: actualArgs?.apps,
@@ -237,12 +394,12 @@ exports.getAppArgsForTransaction = getAppArgsForTransaction;
237
394
  /**
238
395
  * Gets the current data for the given app from algod.
239
396
  *
240
- * @param appIndex The index of the app
397
+ * @param appId The id of the app
241
398
  * @param algod An algod client
242
399
  * @returns The data about the app
243
400
  */
244
- async function getAppByIndex(appIndex, algod) {
245
- return (await algod.getApplicationByID(appIndex).do());
401
+ async function getAppByIndex(appId, algod) {
402
+ return (await algod.getApplicationByID(appId).do());
246
403
  }
247
404
  exports.getAppByIndex = getAppByIndex;
248
405
  /**
@@ -253,12 +410,13 @@ exports.getAppByIndex = getAppByIndex;
253
410
  * @returns The information about the compiled file
254
411
  */
255
412
  async function compileTeal(tealCode, algod) {
256
- const compiled = await algod.compile(tealCode).do();
413
+ const compiled = await algod.compile(tealCode).sourcemap(true).do();
257
414
  return {
258
415
  teal: tealCode,
259
416
  compiled: compiled.result,
260
417
  compiledHash: compiled.hash,
261
418
  compiledBase64ToBytes: new Uint8Array(buffer_1.Buffer.from(compiled.result, 'base64')),
419
+ sourceMap: new algosdk_1.SourceMap(compiled['sourcemap']),
262
420
  };
263
421
  }
264
422
  exports.compileTeal = compileTeal;
package/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1,113 +1,10 @@
1
- import { ABIArgument, ABIMethodParams, Algodv2, Indexer, SuggestedParams } from 'algosdk';
2
- import { AppCallArgs, AppReference, RawAppCallArgs } from './app';
3
- import { AppLookup, AppMetadata, OnSchemaBreak, OnUpdate, TealTemplateParameters } from './deploy-app';
4
- import { SendTransactionFrom, SendTransactionParams, TransactionNote } from './transaction';
5
- import { AppSpec } from './types/appspec';
6
- export declare class ApplicationClient {
7
- private algod;
8
- private indexer;
9
- private appSpec;
10
- private sender;
11
- private params;
12
- private existingDeployments;
13
- private _appIndex;
14
- private _appAddress;
15
- private _creator;
16
- constructor(appDetails: {
17
- /** The ARC-0032 application spec as either:
18
- * * Parsed JSON @see {AppSpec}
19
- * * Raw JSON string
20
- */
21
- app: AppSpec | string;
22
- /** Default sender to use for transactions issued by this application client */
23
- sender?: SendTransactionFrom;
24
- /** Default suggested params object to use */
25
- params?: SuggestedParams;
26
- } & ({
27
- /** The index of an existing app to call using this client */
28
- index: number;
29
- } | {
30
- /** The address of the app creator account */
31
- creatorAddress: string;
32
- /** Optional cached value of the existing apps for the given creator */
33
- existingDeployments?: AppLookup;
34
- }), algod: Algodv2, indexer: Indexer);
35
- /**
36
- * Idempotently deploy (create, update/delete if changed) an app against the given name via the given creator account, including deploy-time template placeholder substitutions.
37
- *
38
- * To understand the architecture decisions behind this functionality please @see https://github.com/algorandfoundation/algokit-cli/blob/main/docs/architecture-decisions/2023-01-12_smart-contract-deployment.md
39
- *
40
- * **Note:** if there is a breaking state schema change to an existing app (and `onSchemaBreak` is set to `'replace'`) the existing app will be deleted and re-created.
41
- *
42
- * **Note:** if there is an update (different TEAL code) to an existing app (and `onUpdate` is set to `'replace'`) the existing app will be deleted and re-created.
43
- * @param deploy Deployment details
44
- * @returns The metadata and transaction result(s) of the deployment, or just the metadata if it didn't need to issue transactions
45
- */
46
- deploy(deploy: {
47
- /** The version of the contract, e.g. "1.0" */
48
- version: string;
49
- /** The optional sender to send the transaction from, will use the application client's default sender by default if specified */
50
- sender?: SendTransactionFrom;
51
- /** Whether or not to allow updates in the contract using the deploy-time updatability control if present in your contract.
52
- * If this is not specified then it will automatically be determined based on the AppSpec definition
53
- **/
54
- allowUpdate?: boolean;
55
- /** Whether or not to allow deletes in the contract using the deploy-time deletability control if present in your contract.
56
- * If this is not specified then it will automatically be determined based on the AppSpec definition
57
- **/
58
- allowDelete?: boolean;
59
- /** Parameters to control transaction sending */
60
- sendParams?: Omit<SendTransactionParams, 'args' | 'skipSending' | 'skipWaiting'>;
61
- /** Any deploy-time parameters to replace in the TEAL code */
62
- deployTimeParameters?: TealTemplateParameters;
63
- /** What action to perform if a schema break is detected */
64
- onSchemaBreak?: 'replace' | 'fail' | OnSchemaBreak;
65
- /** What action to perform if a TEAL update is detected */
66
- onUpdate?: 'update' | 'replace' | 'fail' | OnUpdate;
67
- /** Any args to pass to any create transaction that is issued as part of deployment */
68
- createArgs?: AppCallArgs;
69
- /** Any args to pass to any update transaction that is issued as part of deployment */
70
- updateArgs?: AppCallArgs;
71
- /** Any args to pass to any delete transaction that is issued as part of deployment */
72
- deleteArgs?: AppCallArgs;
73
- }): Promise<(import("./transaction").SendTransactionResult & AppMetadata & {
74
- operationPerformed: "update" | "create";
75
- }) | (import("./transaction").SendTransactionResult & AppMetadata & {
76
- deleteResult?: import("./transaction").SendTransactionResult | undefined;
77
- operationPerformed: "replace";
78
- }) | (AppMetadata & {
79
- operationPerformed: "none";
80
- })>;
81
- create(create?: {
82
- sender?: SendTransactionFrom;
83
- args?: AppCallArgs;
84
- note?: TransactionNote;
85
- sendParams?: SendTransactionParams;
86
- deployTimeParameters?: TealTemplateParameters;
87
- }): Promise<import("./app").AppCallTransactionResult & AppReference>;
88
- update(update?: {
89
- sender?: SendTransactionFrom;
90
- args?: AppCallArgs;
91
- note?: TransactionNote;
92
- sendParams?: SendTransactionParams;
93
- deployTimeParameters?: TealTemplateParameters;
94
- }): Promise<import("./app").AppCallTransactionResult>;
95
- call(call: {
96
- callType: 'optin' | 'closeout' | 'clearstate' | 'delete' | 'normal';
97
- sender?: SendTransactionFrom;
98
- note?: TransactionNote;
99
- sendParams?: SendTransactionParams;
100
- } & ({
101
- /** If calling an ABI method then either the name of the method, or the ABI signature, if undefined then a bare call will be made */
102
- method: string;
103
- /** The ABI args to pass in */
104
- methodArgs: ABIArgument[];
105
- /** The optional lease for the transaction */
106
- lease?: string | Uint8Array;
107
- } | {
108
- args: RawAppCallArgs;
109
- })): Promise<import("./app").AppCallTransactionResult>;
110
- getABIMethod(method: string): ABIMethodParams | undefined;
111
- private loadAppReference;
112
- }
1
+ import { Algodv2 } from 'algosdk';
2
+ import { ApplicationClient, AppSpecAppDetails } from './types/application-client';
3
+ /**
4
+ * Create a new ApplicationClient instance
5
+ * @param appDetails The details of the app
6
+ * @param algod An algod instance
7
+ * @returns The application client
8
+ */
9
+ export declare function getApplicationClient(appDetails: AppSpecAppDetails, algod: Algodv2): ApplicationClient;
113
10
  //# sourceMappingURL=application-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-client.d.ts","sourceRoot":"","sources":["../src/application-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-client.d.ts","sourceRoot":"","sources":["../src/application-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEjF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,qBAEjF"}