@algorandfoundation/algokit-utils 2.3.3-beta.2 → 2.3.3-beta.4

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 (342) hide show
  1. package/cjs/account.d.ts.map +1 -0
  2. package/cjs/account.js.map +1 -0
  3. package/cjs/amount.d.ts.map +1 -0
  4. package/cjs/amount.js.map +1 -0
  5. package/cjs/app-client.d.ts +71 -0
  6. package/cjs/app-client.d.ts.map +1 -0
  7. package/cjs/app-client.js +82 -0
  8. package/cjs/app-client.js.map +1 -0
  9. package/cjs/app-deploy.d.ts.map +1 -0
  10. package/cjs/app-deploy.js.map +1 -0
  11. package/cjs/app.d.ts.map +1 -0
  12. package/cjs/app.js.map +1 -0
  13. package/cjs/index.d.ts.map +1 -0
  14. package/cjs/index.js.map +1 -0
  15. package/cjs/indexer-lookup.d.ts.map +1 -0
  16. package/cjs/indexer-lookup.js.map +1 -0
  17. package/cjs/localnet.d.ts.map +1 -0
  18. package/{localnet.js → cjs/localnet.js} +1 -1
  19. package/cjs/localnet.js.map +1 -0
  20. package/cjs/network-client.d.ts.map +1 -0
  21. package/cjs/network-client.js.map +1 -0
  22. package/cjs/testing/account.d.ts.map +1 -0
  23. package/cjs/testing/account.js.map +1 -0
  24. package/cjs/testing/fixtures/algokit-log-capture-fixture.d.ts.map +1 -0
  25. package/cjs/testing/fixtures/algokit-log-capture-fixture.js.map +1 -0
  26. package/cjs/testing/fixtures/algorand-fixture.d.ts.map +1 -0
  27. package/cjs/testing/fixtures/algorand-fixture.js.map +1 -0
  28. package/cjs/testing/fixtures/index.d.ts.map +1 -0
  29. package/cjs/testing/fixtures/index.js.map +1 -0
  30. package/cjs/testing/index.d.ts.map +1 -0
  31. package/cjs/testing/index.js.map +1 -0
  32. package/cjs/testing/indexer.d.ts.map +1 -0
  33. package/cjs/testing/indexer.js.map +1 -0
  34. package/cjs/testing/test-logger.d.ts.map +1 -0
  35. package/{testing → cjs/testing}/test-logger.js +2 -0
  36. package/cjs/testing/test-logger.js.map +1 -0
  37. package/cjs/testing/transaction-logger.d.ts.map +1 -0
  38. package/{testing → cjs/testing}/transaction-logger.js +2 -3
  39. package/cjs/testing/transaction-logger.js.map +1 -0
  40. package/cjs/transaction.d.ts.map +1 -0
  41. package/cjs/transaction.js.map +1 -0
  42. package/cjs/transfer.d.ts.map +1 -0
  43. package/cjs/transfer.js.map +1 -0
  44. package/cjs/types/account.d.ts +66 -0
  45. package/cjs/types/account.d.ts.map +1 -0
  46. package/{types → cjs/types}/account.js +7 -0
  47. package/cjs/types/account.js.map +1 -0
  48. package/cjs/types/algo-http-client-with-retry.d.ts.map +1 -0
  49. package/{types → cjs/types}/algo-http-client-with-retry.js +16 -16
  50. package/cjs/types/algo-http-client-with-retry.js.map +1 -0
  51. package/cjs/types/amount.d.ts +24 -0
  52. package/cjs/types/amount.d.ts.map +1 -0
  53. package/{types → cjs/types}/amount.js +1 -0
  54. package/cjs/types/amount.js.map +1 -0
  55. package/cjs/types/app-client.d.ts +408 -0
  56. package/cjs/types/app-client.d.ts.map +1 -0
  57. package/{types → cjs/types}/app-client.js +13 -0
  58. package/cjs/types/app-client.js.map +1 -0
  59. package/cjs/types/app-spec.d.ts.map +1 -0
  60. package/{types → cjs/types}/app-spec.js.map +1 -1
  61. package/cjs/types/app.d.ts +308 -0
  62. package/cjs/types/app.d.ts.map +1 -0
  63. package/cjs/types/app.js.map +1 -0
  64. package/cjs/types/config.d.ts.map +1 -0
  65. package/{types → cjs/types}/config.js +1 -0
  66. package/cjs/types/config.js.map +1 -0
  67. package/cjs/types/indexer.d.ts.map +1 -0
  68. package/cjs/types/indexer.js.map +1 -0
  69. package/cjs/types/logging.d.ts.map +1 -0
  70. package/cjs/types/logging.js.map +1 -0
  71. package/cjs/types/logic-error.d.ts.map +1 -0
  72. package/{types → cjs/types}/logic-error.js +5 -2
  73. package/cjs/types/logic-error.js.map +1 -0
  74. package/cjs/types/network-client.d.ts +20 -0
  75. package/cjs/types/network-client.d.ts.map +1 -0
  76. package/cjs/types/network-client.js.map +1 -0
  77. package/cjs/types/testing.d.ts.map +1 -0
  78. package/{types → cjs/types}/testing.js.map +1 -1
  79. package/cjs/types/transaction.d.ts +111 -0
  80. package/cjs/types/transaction.d.ts.map +1 -0
  81. package/{types → cjs/types}/transaction.js.map +1 -1
  82. package/cjs/types/transfer.d.ts +32 -0
  83. package/cjs/types/transfer.d.ts.map +1 -0
  84. package/{types → cjs/types}/transfer.js.map +1 -1
  85. package/cjs/types/urlTokenBaseHTTPClient.d.ts.map +1 -0
  86. package/{types → cjs/types}/urlTokenBaseHTTPClient.js +4 -0
  87. package/cjs/types/urlTokenBaseHTTPClient.js.map +1 -0
  88. package/cjs/util.d.ts.map +1 -0
  89. package/cjs/util.js.map +1 -0
  90. package/esm/account.js +170 -0
  91. package/esm/account.js.map +1 -0
  92. package/esm/amount.js +27 -0
  93. package/esm/amount.js.map +1 -0
  94. package/esm/app-client.js +76 -0
  95. package/esm/app-client.js.map +1 -0
  96. package/esm/app-deploy.js +446 -0
  97. package/esm/app-deploy.js.map +1 -0
  98. package/esm/app.js +572 -0
  99. package/esm/app.js.map +1 -0
  100. package/esm/index.js +14 -0
  101. package/esm/index.js.map +1 -0
  102. package/esm/indexer-lookup.js +98 -0
  103. package/esm/indexer-lookup.js.map +1 -0
  104. package/esm/localnet.js +111 -0
  105. package/esm/localnet.js.map +1 -0
  106. package/esm/network-client.js +179 -0
  107. package/esm/network-client.js.map +1 -0
  108. package/esm/testing/account.js +24 -0
  109. package/esm/testing/account.js.map +1 -0
  110. package/esm/testing/fixtures/algokit-log-capture-fixture.js +39 -0
  111. package/esm/testing/fixtures/algokit-log-capture-fixture.js.map +1 -0
  112. package/esm/testing/fixtures/algorand-fixture.js +53 -0
  113. package/esm/testing/fixtures/algorand-fixture.js.map +1 -0
  114. package/esm/testing/fixtures/index.js +3 -0
  115. package/esm/testing/fixtures/index.js.map +1 -0
  116. package/esm/testing/index.js +6 -0
  117. package/esm/testing/index.js.map +1 -0
  118. package/esm/testing/indexer.js +36 -0
  119. package/esm/testing/indexer.js.map +1 -0
  120. package/esm/testing/test-logger.js +69 -0
  121. package/esm/testing/test-logger.js.map +1 -0
  122. package/esm/testing/transaction-logger.js +66 -0
  123. package/esm/testing/transaction-logger.js.map +1 -0
  124. package/esm/transaction.js +365 -0
  125. package/esm/transaction.js.map +1 -0
  126. package/esm/transfer.js +59 -0
  127. package/esm/transfer.js.map +1 -0
  128. package/esm/types/account.js +90 -0
  129. package/esm/types/account.js.map +1 -0
  130. package/esm/types/algo-http-client-with-retry.js +58 -0
  131. package/esm/types/algo-http-client-with-retry.js.map +1 -0
  132. package/esm/types/amount.js +35 -0
  133. package/esm/types/amount.js.map +1 -0
  134. package/esm/types/app-client.js +624 -0
  135. package/esm/types/app-client.js.map +1 -0
  136. package/esm/types/app-spec.js +2 -0
  137. package/esm/types/app-spec.js.map +1 -0
  138. package/esm/types/app.js +33 -0
  139. package/esm/types/app.js.map +1 -0
  140. package/esm/types/config.js +50 -0
  141. package/esm/types/config.js.map +1 -0
  142. package/esm/types/indexer.js +31 -0
  143. package/esm/types/indexer.js.map +1 -0
  144. package/esm/types/logging.js +24 -0
  145. package/esm/types/logging.js.map +1 -0
  146. package/esm/types/logic-error.js +49 -0
  147. package/esm/types/logic-error.js.map +1 -0
  148. package/esm/types/network-client.js +2 -0
  149. package/esm/types/network-client.js.map +1 -0
  150. package/esm/types/testing.js +2 -0
  151. package/esm/types/testing.js.map +1 -0
  152. package/esm/types/transaction.js +2 -0
  153. package/esm/types/transaction.js.map +1 -0
  154. package/esm/types/transfer.js +2 -0
  155. package/esm/types/transfer.js.map +1 -0
  156. package/esm/types/urlTokenBaseHTTPClient.js +151 -0
  157. package/esm/types/urlTokenBaseHTTPClient.js.map +1 -0
  158. package/esm/util.js +20 -0
  159. package/esm/util.js.map +1 -0
  160. package/package.json +40 -6
  161. package/types/account.d.ts +125 -63
  162. package/types/account.d.ts.map +1 -1
  163. package/types/amount.d.ts +18 -22
  164. package/types/amount.d.ts.map +1 -1
  165. package/types/app-client.d.ts +70 -394
  166. package/types/app-client.d.ts.map +1 -1
  167. package/types/app-deploy.d.ts +101 -0
  168. package/types/app-deploy.d.ts.map +1 -0
  169. package/types/app.d.ts +145 -290
  170. package/types/app.d.ts.map +1 -1
  171. package/types/index.d.ts +14 -0
  172. package/types/index.d.ts.map +1 -0
  173. package/types/indexer-lookup.d.ts +38 -0
  174. package/types/indexer-lookup.d.ts.map +1 -0
  175. package/types/localnet.d.ts +54 -0
  176. package/types/localnet.d.ts.map +1 -0
  177. package/types/network-client.d.ts +96 -19
  178. package/types/network-client.d.ts.map +1 -1
  179. package/types/testing/account.d.ts +14 -0
  180. package/types/testing/account.d.ts.map +1 -0
  181. package/types/testing/fixtures/algokit-log-capture-fixture.d.ts +19 -0
  182. package/types/testing/fixtures/algokit-log-capture-fixture.d.ts.map +1 -0
  183. package/types/testing/fixtures/algorand-fixture.d.ts +48 -0
  184. package/types/testing/fixtures/algorand-fixture.d.ts.map +1 -0
  185. package/types/testing/fixtures/index.d.ts +3 -0
  186. package/types/testing/fixtures/index.d.ts.map +1 -0
  187. package/types/testing/index.d.ts +6 -0
  188. package/types/testing/index.d.ts.map +1 -0
  189. package/types/testing/indexer.d.ts +12 -0
  190. package/types/testing/indexer.d.ts.map +1 -0
  191. package/types/testing/test-logger.d.ts +41 -0
  192. package/types/testing/test-logger.d.ts.map +1 -0
  193. package/types/testing/transaction-logger.d.ts +29 -0
  194. package/types/testing/transaction-logger.d.ts.map +1 -0
  195. package/types/transaction.d.ts +133 -106
  196. package/types/transaction.d.ts.map +1 -1
  197. package/types/transfer.d.ts +21 -31
  198. package/types/transfer.d.ts.map +1 -1
  199. package/types/types/account.d.ts +66 -0
  200. package/types/types/account.d.ts.map +1 -0
  201. package/types/types/algo-http-client-with-retry.d.ts +14 -0
  202. package/types/types/algo-http-client-with-retry.d.ts.map +1 -0
  203. package/types/types/amount.d.ts +24 -0
  204. package/types/types/amount.d.ts.map +1 -0
  205. package/types/types/app-client.d.ts +408 -0
  206. package/types/types/app-client.d.ts.map +1 -0
  207. package/types/types/app-spec.d.ts +154 -0
  208. package/types/types/app-spec.d.ts.map +1 -0
  209. package/types/types/app.d.ts +308 -0
  210. package/types/types/app.d.ts.map +1 -0
  211. package/types/types/config.d.ts +32 -0
  212. package/types/types/config.d.ts.map +1 -0
  213. package/types/types/indexer.d.ts +623 -0
  214. package/types/types/indexer.d.ts.map +1 -0
  215. package/types/types/logging.d.ts +13 -0
  216. package/types/types/logging.d.ts.map +1 -0
  217. package/types/types/logic-error.d.ts +37 -0
  218. package/types/types/logic-error.d.ts.map +1 -0
  219. package/types/types/network-client.d.ts +20 -0
  220. package/types/types/network-client.d.ts.map +1 -0
  221. package/types/types/testing.d.ts +89 -0
  222. package/types/types/testing.d.ts.map +1 -0
  223. package/types/types/transaction.d.ts +111 -0
  224. package/types/types/transaction.d.ts.map +1 -0
  225. package/types/types/transfer.d.ts +32 -0
  226. package/types/types/transfer.d.ts.map +1 -0
  227. package/types/types/urlTokenBaseHTTPClient.d.ts +41 -0
  228. package/types/types/urlTokenBaseHTTPClient.d.ts.map +1 -0
  229. package/types/util.d.ts +10 -0
  230. package/types/util.d.ts.map +1 -0
  231. package/account.d.ts.map +0 -1
  232. package/account.js.map +0 -1
  233. package/amount.d.ts.map +0 -1
  234. package/amount.js.map +0 -1
  235. package/app-client.d.ts +0 -10
  236. package/app-client.d.ts.map +0 -1
  237. package/app-client.js +0 -15
  238. package/app-client.js.map +0 -1
  239. package/app-deploy.d.ts.map +0 -1
  240. package/app-deploy.js.map +0 -1
  241. package/app.d.ts.map +0 -1
  242. package/app.js.map +0 -1
  243. package/index.d.ts.map +0 -1
  244. package/index.js.map +0 -1
  245. package/indexer-lookup.d.ts.map +0 -1
  246. package/indexer-lookup.js.map +0 -1
  247. package/localnet.d.ts.map +0 -1
  248. package/localnet.js.map +0 -1
  249. package/network-client.d.ts.map +0 -1
  250. package/network-client.js.map +0 -1
  251. package/testing/account.d.ts.map +0 -1
  252. package/testing/account.js.map +0 -1
  253. package/testing/fixtures/algokit-log-capture-fixture.d.ts.map +0 -1
  254. package/testing/fixtures/algokit-log-capture-fixture.js.map +0 -1
  255. package/testing/fixtures/algorand-fixture.d.ts.map +0 -1
  256. package/testing/fixtures/algorand-fixture.js.map +0 -1
  257. package/testing/fixtures/index.d.ts.map +0 -1
  258. package/testing/fixtures/index.js.map +0 -1
  259. package/testing/index.d.ts.map +0 -1
  260. package/testing/index.js.map +0 -1
  261. package/testing/indexer.d.ts.map +0 -1
  262. package/testing/indexer.js.map +0 -1
  263. package/testing/test-logger.d.ts.map +0 -1
  264. package/testing/test-logger.js.map +0 -1
  265. package/testing/transaction-logger.d.ts.map +0 -1
  266. package/testing/transaction-logger.js.map +0 -1
  267. package/transaction.d.ts.map +0 -1
  268. package/transaction.js.map +0 -1
  269. package/transfer.d.ts.map +0 -1
  270. package/transfer.js.map +0 -1
  271. package/types/account.js.map +0 -1
  272. package/types/algo-http-client-with-retry.d.ts.map +0 -1
  273. package/types/algo-http-client-with-retry.js.map +0 -1
  274. package/types/amount.js.map +0 -1
  275. package/types/app-client.js.map +0 -1
  276. package/types/app-spec.d.ts.map +0 -1
  277. package/types/app.js.map +0 -1
  278. package/types/config.d.ts.map +0 -1
  279. package/types/config.js.map +0 -1
  280. package/types/indexer.d.ts.map +0 -1
  281. package/types/indexer.js.map +0 -1
  282. package/types/logging.d.ts.map +0 -1
  283. package/types/logging.js.map +0 -1
  284. package/types/logic-error.d.ts.map +0 -1
  285. package/types/logic-error.js.map +0 -1
  286. package/types/network-client.js.map +0 -1
  287. package/types/testing.d.ts.map +0 -1
  288. package/types/urlTokenBaseHTTPClient.d.ts.map +0 -1
  289. package/types/urlTokenBaseHTTPClient.js.map +0 -1
  290. package/util.d.ts.map +0 -1
  291. package/util.js.map +0 -1
  292. /package/{account.d.ts → cjs/account.d.ts} +0 -0
  293. /package/{account.js → cjs/account.js} +0 -0
  294. /package/{amount.d.ts → cjs/amount.d.ts} +0 -0
  295. /package/{amount.js → cjs/amount.js} +0 -0
  296. /package/{app-deploy.d.ts → cjs/app-deploy.d.ts} +0 -0
  297. /package/{app-deploy.js → cjs/app-deploy.js} +0 -0
  298. /package/{app.d.ts → cjs/app.d.ts} +0 -0
  299. /package/{app.js → cjs/app.js} +0 -0
  300. /package/{index.d.ts → cjs/index.d.ts} +0 -0
  301. /package/{index.js → cjs/index.js} +0 -0
  302. /package/{indexer-lookup.d.ts → cjs/indexer-lookup.d.ts} +0 -0
  303. /package/{indexer-lookup.js → cjs/indexer-lookup.js} +0 -0
  304. /package/{localnet.d.ts → cjs/localnet.d.ts} +0 -0
  305. /package/{network-client.d.ts → cjs/network-client.d.ts} +0 -0
  306. /package/{network-client.js → cjs/network-client.js} +0 -0
  307. /package/{testing → cjs/testing}/account.d.ts +0 -0
  308. /package/{testing → cjs/testing}/account.js +0 -0
  309. /package/{testing → cjs/testing}/fixtures/algokit-log-capture-fixture.d.ts +0 -0
  310. /package/{testing → cjs/testing}/fixtures/algokit-log-capture-fixture.js +0 -0
  311. /package/{testing → cjs/testing}/fixtures/algorand-fixture.d.ts +0 -0
  312. /package/{testing → cjs/testing}/fixtures/algorand-fixture.js +0 -0
  313. /package/{testing → cjs/testing}/fixtures/index.d.ts +0 -0
  314. /package/{testing → cjs/testing}/fixtures/index.js +0 -0
  315. /package/{testing → cjs/testing}/index.d.ts +0 -0
  316. /package/{testing → cjs/testing}/index.js +0 -0
  317. /package/{testing → cjs/testing}/indexer.d.ts +0 -0
  318. /package/{testing → cjs/testing}/indexer.js +0 -0
  319. /package/{testing → cjs/testing}/test-logger.d.ts +0 -0
  320. /package/{testing → cjs/testing}/transaction-logger.d.ts +0 -0
  321. /package/{transaction.d.ts → cjs/transaction.d.ts} +0 -0
  322. /package/{transaction.js → cjs/transaction.js} +0 -0
  323. /package/{transfer.d.ts → cjs/transfer.d.ts} +0 -0
  324. /package/{transfer.js → cjs/transfer.js} +0 -0
  325. /package/{types → cjs/types}/algo-http-client-with-retry.d.ts +0 -0
  326. /package/{types → cjs/types}/app-spec.d.ts +0 -0
  327. /package/{types → cjs/types}/app-spec.js +0 -0
  328. /package/{types → cjs/types}/app.js +0 -0
  329. /package/{types → cjs/types}/config.d.ts +0 -0
  330. /package/{types → cjs/types}/indexer.d.ts +0 -0
  331. /package/{types → cjs/types}/indexer.js +0 -0
  332. /package/{types → cjs/types}/logging.d.ts +0 -0
  333. /package/{types → cjs/types}/logging.js +0 -0
  334. /package/{types → cjs/types}/logic-error.d.ts +0 -0
  335. /package/{types → cjs/types}/network-client.js +0 -0
  336. /package/{types → cjs/types}/testing.d.ts +0 -0
  337. /package/{types → cjs/types}/testing.js +0 -0
  338. /package/{types → cjs/types}/transaction.js +0 -0
  339. /package/{types → cjs/types}/transfer.js +0 -0
  340. /package/{types → cjs/types}/urlTokenBaseHTTPClient.d.ts +0 -0
  341. /package/{util.d.ts → cjs/util.d.ts} +0 -0
  342. /package/{util.js → cjs/util.js} +0 -0
package/esm/app.js ADDED
@@ -0,0 +1,572 @@
1
+ import algosdk, { ABIMethod, AtomicTransactionComposer, modelsv2, OnApplicationComplete, SourceMap, } from 'algosdk';
2
+ import { Buffer } from 'buffer';
3
+ import { Config } from './';
4
+ import { controlFees, encodeTransactionNote, getAtomicTransactionComposerTransactions, getSenderAddress, getSenderTransactionSigner, getTransactionParams, sendAtomicTransactionComposer, sendTransaction, } from './transaction';
5
+ import { APP_PAGE_MAX_SIZE, } from './types/app';
6
+ import { toNumber } from './util';
7
+ /**
8
+ * Creates a smart contract app, returns the details of the created app.
9
+ * @param create The parameters to create the app with
10
+ * @param algod An algod client
11
+ * @returns The details of the created app, or the transaction to create it if `skipSending` and the compilation result
12
+ */
13
+ export async function createApp(create, algod) {
14
+ const { from, approvalProgram: approval, clearStateProgram: clear, schema, note, transactionParams, args, onCompleteAction, ...sendParams } = create;
15
+ const compiledApproval = typeof approval === 'string' ? await compileTeal(approval, algod) : undefined;
16
+ const approvalProgram = compiledApproval ? compiledApproval.compiledBase64ToBytes : approval;
17
+ const compiledClear = typeof clear === 'string' ? await compileTeal(clear, algod) : undefined;
18
+ const clearProgram = compiledClear ? compiledClear.compiledBase64ToBytes : clear;
19
+ if (args && args.method) {
20
+ const atc = attachATC(sendParams);
21
+ const before = getAtomicTransactionComposerTransactions(atc);
22
+ atc.addMethodCall({
23
+ appID: 0,
24
+ approvalProgram: approvalProgram,
25
+ clearProgram: clearProgram,
26
+ numLocalInts: schema.localInts,
27
+ numLocalByteSlices: schema.localByteSlices,
28
+ numGlobalInts: schema.globalInts,
29
+ numGlobalByteSlices: schema.globalByteSlices,
30
+ extraPages: schema.extraPages ?? Math.floor((approvalProgram.length + clearProgram.length) / APP_PAGE_MAX_SIZE),
31
+ onComplete: getAppOnCompleteAction(onCompleteAction),
32
+ suggestedParams: controlFees(await getTransactionParams(transactionParams, algod), sendParams),
33
+ note: encodeTransactionNote(note),
34
+ ...(await getAppArgsForABICall(args, from)),
35
+ });
36
+ if (sendParams.skipSending) {
37
+ const after = atc.clone().buildGroup();
38
+ return {
39
+ transaction: after[after.length - 1].txn,
40
+ transactions: after.slice(before.length).map((t) => t.txn),
41
+ appId: 0,
42
+ appAddress: '',
43
+ compiledApproval,
44
+ compiledClear,
45
+ };
46
+ }
47
+ const result = await sendAtomicTransactionComposer({ atc, sendParams }, algod);
48
+ const confirmation = result.confirmations ? result.confirmations[result.confirmations?.length - 1] : undefined;
49
+ if (confirmation) {
50
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
51
+ const appId = confirmation.applicationIndex;
52
+ Config.getLogger(sendParams.suppressLog).debug(`Created app ${appId} from creator ${getSenderAddress(from)}`);
53
+ return {
54
+ transactions: result.transactions,
55
+ confirmations: result.confirmations,
56
+ return: confirmation ? getABIReturn(args, confirmation) : undefined,
57
+ transaction: result.transactions[result.transactions.length - 1],
58
+ confirmation: confirmation,
59
+ appId,
60
+ appAddress: algosdk.getApplicationAddress(appId),
61
+ compiledApproval,
62
+ compiledClear,
63
+ };
64
+ }
65
+ else {
66
+ return {
67
+ transactions: result.transactions,
68
+ confirmations: result.confirmations,
69
+ return: confirmation ? getABIReturn(args, confirmation) : undefined,
70
+ transaction: result.transactions[result.transactions.length - 1],
71
+ confirmation: confirmation,
72
+ appId: 0,
73
+ appAddress: '',
74
+ compiledApproval,
75
+ compiledClear,
76
+ };
77
+ }
78
+ }
79
+ else {
80
+ const transaction = algosdk.makeApplicationCreateTxnFromObject({
81
+ approvalProgram: approvalProgram,
82
+ clearProgram: clearProgram,
83
+ numLocalInts: schema.localInts,
84
+ numLocalByteSlices: schema.localByteSlices,
85
+ numGlobalInts: schema.globalInts,
86
+ numGlobalByteSlices: schema.globalByteSlices,
87
+ extraPages: schema.extraPages ?? Math.floor((approvalProgram.length + clearProgram.length) / APP_PAGE_MAX_SIZE),
88
+ onComplete: getAppOnCompleteAction(onCompleteAction),
89
+ suggestedParams: await getTransactionParams(transactionParams, algod),
90
+ from: getSenderAddress(from),
91
+ note: encodeTransactionNote(note),
92
+ ...getAppArgsForTransaction(args),
93
+ rekeyTo: undefined,
94
+ });
95
+ const { confirmation } = await sendTransaction({ transaction, from, sendParams }, algod);
96
+ if (confirmation) {
97
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
98
+ const appId = confirmation.applicationIndex;
99
+ Config.getLogger(sendParams.suppressLog).debug(`Created app ${appId} from creator ${getSenderAddress(from)}`);
100
+ return {
101
+ transaction,
102
+ transactions: [transaction],
103
+ confirmation,
104
+ confirmations: confirmation ? [confirmation] : undefined,
105
+ appId,
106
+ appAddress: algosdk.getApplicationAddress(appId),
107
+ return: getABIReturn(args, confirmation),
108
+ compiledApproval,
109
+ compiledClear,
110
+ };
111
+ }
112
+ else {
113
+ return { transaction, transactions: [transaction], appId: 0, appAddress: '', compiledApproval, compiledClear };
114
+ }
115
+ }
116
+ }
117
+ /**
118
+ * Updates a smart contract app.
119
+ * @param update The parameters to update the app with
120
+ * @param algod An algod client
121
+ * @returns The transaction send result and the compilation result
122
+ */
123
+ export async function updateApp(update, algod) {
124
+ const { appId, from, approvalProgram: approval, clearStateProgram: clear, note, transactionParams, args, ...sendParams } = update;
125
+ const compiledApproval = typeof approval === 'string' ? await compileTeal(approval, algod) : undefined;
126
+ const approvalProgram = compiledApproval ? compiledApproval.compiledBase64ToBytes : approval;
127
+ const compiledClear = typeof clear === 'string' ? await compileTeal(clear, algod) : undefined;
128
+ const clearProgram = compiledClear ? compiledClear.compiledBase64ToBytes : clear;
129
+ Config.getLogger(sendParams.suppressLog).debug(`Updating app ${appId}`);
130
+ if (args && args.method) {
131
+ const atc = attachATC(sendParams);
132
+ const before = getAtomicTransactionComposerTransactions(atc);
133
+ atc.addMethodCall({
134
+ appID: toNumber(appId),
135
+ onComplete: OnApplicationComplete.UpdateApplicationOC,
136
+ approvalProgram: approvalProgram,
137
+ clearProgram: clearProgram,
138
+ suggestedParams: controlFees(await getTransactionParams(transactionParams, algod), sendParams),
139
+ note: encodeTransactionNote(note),
140
+ ...(await getAppArgsForABICall(args, from)),
141
+ });
142
+ if (sendParams.skipSending) {
143
+ const after = atc.clone().buildGroup();
144
+ return {
145
+ transaction: after[after.length - 1].txn,
146
+ transactions: after.slice(before.length).map((t) => t.txn),
147
+ };
148
+ }
149
+ const result = await sendAtomicTransactionComposer({ atc, sendParams }, algod);
150
+ const confirmation = result.confirmations ? result.confirmations[result.confirmations?.length - 1] : undefined;
151
+ return {
152
+ transactions: result.transactions,
153
+ confirmations: result.confirmations,
154
+ return: confirmation ? getABIReturn(args, confirmation) : undefined,
155
+ transaction: result.transactions[result.transactions.length - 1],
156
+ confirmation: confirmation,
157
+ };
158
+ }
159
+ else {
160
+ const transaction = algosdk.makeApplicationUpdateTxnFromObject({
161
+ appIndex: toNumber(appId),
162
+ approvalProgram: approvalProgram,
163
+ clearProgram: clearProgram,
164
+ suggestedParams: await getTransactionParams(transactionParams, algod),
165
+ from: getSenderAddress(from),
166
+ note: encodeTransactionNote(note),
167
+ ...getAppArgsForTransaction(args),
168
+ rekeyTo: undefined,
169
+ });
170
+ const result = await sendTransaction({ transaction, from, sendParams }, algod);
171
+ return {
172
+ ...result,
173
+ transactions: [result.transaction],
174
+ confirmations: result.confirmation ? [result.confirmation] : undefined,
175
+ return: getABIReturn(args, result.confirmation),
176
+ compiledApproval,
177
+ compiledClear,
178
+ };
179
+ }
180
+ }
181
+ function attachATC(sendParams) {
182
+ if (sendParams.atc) {
183
+ sendParams.skipSending = true;
184
+ }
185
+ sendParams.atc = sendParams.atc ?? new AtomicTransactionComposer();
186
+ return sendParams.atc;
187
+ }
188
+ /** Returns an `algosdk.OnApplicationComplete` for the given onCompleteAction.
189
+ *
190
+ * If given `undefined` will return `OnApplicationComplete.NoOpOC`.
191
+ *
192
+ * If given an `AppCallType` will convert the string enum to the correct underlying `algosdk.OnApplicationComplete`.
193
+ *
194
+ * @param onCompletionAction The on completion action
195
+ * @returns The `algosdk.OnApplicationComplete`
196
+ */
197
+ export function getAppOnCompleteAction(onCompletionAction) {
198
+ switch (onCompletionAction) {
199
+ case undefined:
200
+ case 'no_op':
201
+ case OnApplicationComplete.NoOpOC:
202
+ return OnApplicationComplete.NoOpOC;
203
+ case 'opt_in':
204
+ case OnApplicationComplete.OptInOC:
205
+ return OnApplicationComplete.OptInOC;
206
+ case 'close_out':
207
+ case OnApplicationComplete.CloseOutOC:
208
+ return OnApplicationComplete.CloseOutOC;
209
+ case 'clear_state':
210
+ case OnApplicationComplete.ClearStateOC:
211
+ return OnApplicationComplete.ClearStateOC;
212
+ case 'update_application':
213
+ case OnApplicationComplete.UpdateApplicationOC:
214
+ return OnApplicationComplete.UpdateApplicationOC;
215
+ case 'delete_application':
216
+ case OnApplicationComplete.DeleteApplicationOC:
217
+ return OnApplicationComplete.DeleteApplicationOC;
218
+ }
219
+ }
220
+ /**
221
+ * Issues a call to a given app.
222
+ * @param call The call details.
223
+ * @param algod An algod client
224
+ * @returns The result of the call
225
+ */
226
+ export async function callApp(call, algod) {
227
+ const { appId, callType, from, args, note, transactionParams, ...sendParams } = call;
228
+ if (args && args.method) {
229
+ const atc = attachATC(sendParams);
230
+ const before = getAtomicTransactionComposerTransactions(atc);
231
+ atc.addMethodCall({
232
+ appID: toNumber(appId),
233
+ suggestedParams: controlFees(await getTransactionParams(transactionParams, algod), sendParams),
234
+ note: encodeTransactionNote(note),
235
+ onComplete: getAppOnCompleteAction(callType),
236
+ ...(await getAppArgsForABICall(args, from)),
237
+ });
238
+ if (sendParams.skipSending) {
239
+ const after = atc.clone().buildGroup();
240
+ return {
241
+ transaction: after[after.length - 1].txn,
242
+ transactions: after.slice(before.length).map((t) => t.txn),
243
+ };
244
+ }
245
+ const result = await sendAtomicTransactionComposer({ atc, sendParams }, algod);
246
+ const confirmation = result.confirmations ? result.confirmations[result.confirmations?.length - 1] : undefined;
247
+ return {
248
+ transactions: result.transactions,
249
+ confirmations: result.confirmations,
250
+ return: confirmation ? getABIReturn(args, confirmation) : undefined,
251
+ transaction: result.transactions[result.transactions.length - 1],
252
+ confirmation: confirmation,
253
+ };
254
+ }
255
+ const appCallParams = {
256
+ appIndex: toNumber(appId),
257
+ from: getSenderAddress(from),
258
+ suggestedParams: await getTransactionParams(transactionParams, algod),
259
+ ...getAppArgsForTransaction(args),
260
+ note: encodeTransactionNote(note),
261
+ rekeyTo: undefined,
262
+ };
263
+ let transaction;
264
+ switch (getAppOnCompleteAction(callType)) {
265
+ case OnApplicationComplete.OptInOC:
266
+ transaction = algosdk.makeApplicationOptInTxnFromObject(appCallParams);
267
+ break;
268
+ case OnApplicationComplete.ClearStateOC:
269
+ transaction = algosdk.makeApplicationClearStateTxnFromObject(appCallParams);
270
+ break;
271
+ case OnApplicationComplete.CloseOutOC:
272
+ transaction = algosdk.makeApplicationCloseOutTxnFromObject(appCallParams);
273
+ break;
274
+ case OnApplicationComplete.DeleteApplicationOC:
275
+ transaction = algosdk.makeApplicationDeleteTxnFromObject(appCallParams);
276
+ break;
277
+ case OnApplicationComplete.NoOpOC:
278
+ transaction = algosdk.makeApplicationNoOpTxnFromObject(appCallParams);
279
+ break;
280
+ default:
281
+ throw new Error(`Received unexpected call type ${callType}`);
282
+ }
283
+ const result = await sendTransaction({ transaction, from, sendParams }, algod);
284
+ return {
285
+ ...result,
286
+ transactions: [result.transaction],
287
+ confirmations: result.confirmation ? [result.confirmation] : undefined,
288
+ return: getABIReturn(args, result.confirmation),
289
+ };
290
+ }
291
+ /**
292
+ * Returns any ABI return values for the given app call arguments and transaction confirmation.
293
+ * @param args The arguments that were used for the call
294
+ * @param confirmation The transaction confirmation from algod
295
+ * @returns The return value for the method call
296
+ */
297
+ export function getABIReturn(args, confirmation) {
298
+ if (!args || !args.method) {
299
+ return undefined;
300
+ }
301
+ const method = 'txnCount' in args.method ? args.method : new ABIMethod(args.method);
302
+ if (method.returns.type !== 'void' && confirmation) {
303
+ // The parseMethodResponse method mutates the second parameter :(
304
+ const resultDummy = {
305
+ txID: '',
306
+ method,
307
+ rawReturnValue: new Uint8Array(),
308
+ };
309
+ const response = AtomicTransactionComposer.parseMethodResponse(method, resultDummy, confirmation);
310
+ return !response.decodeError
311
+ ? {
312
+ rawReturnValue: response.rawReturnValue,
313
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
314
+ returnValue: response.returnValue,
315
+ decodeError: undefined,
316
+ }
317
+ : {
318
+ rawReturnValue: undefined,
319
+ returnValue: undefined,
320
+ decodeError: response.decodeError,
321
+ };
322
+ }
323
+ return undefined;
324
+ }
325
+ /**
326
+ * Returns the current global state values for the given app ID
327
+ * @param appId The ID of the app return global state for
328
+ * @param algod An algod client instance
329
+ * @returns The current global state
330
+ */
331
+ export async function getAppGlobalState(appId, algod) {
332
+ const appInfo = await getAppById(appId, algod);
333
+ if (!appInfo.params || !appInfo.params.globalState) {
334
+ throw new Error("Couldn't find global state");
335
+ }
336
+ return decodeAppState(appInfo.params.globalState);
337
+ }
338
+ /**
339
+ * Returns the current global state values for the given app ID and account
340
+ * @param appId The ID of the app return global state for
341
+ * @param account Either the string address of an account or an account object for the account to get local state for the given app
342
+ * @param algod An algod client instance
343
+ * @returns The current local state for the given (app, account) combination
344
+ */
345
+ export async function getAppLocalState(appId, account, algod) {
346
+ const accountAddress = typeof account === 'string' ? account : getSenderAddress(account);
347
+ const appInfo = modelsv2.AccountApplicationResponse.from_obj_for_encoding(await algod.accountApplicationInformation(accountAddress, toNumber(appId)).do());
348
+ if (!appInfo.appLocalState?.keyValue) {
349
+ throw new Error("Couldn't find local state");
350
+ }
351
+ return decodeAppState(appInfo.appLocalState.keyValue);
352
+ }
353
+ /**
354
+ * Returns the names of the boxes for the given app.
355
+ * @param appId The ID of the app return box names for
356
+ * @param algod An algod client instance
357
+ * @returns The current box names
358
+ */
359
+ export async function getAppBoxNames(appId, algod) {
360
+ const boxResult = await algod.getApplicationBoxes(toNumber(appId)).do();
361
+ return boxResult.boxes.map((b) => {
362
+ return {
363
+ nameRaw: b.name,
364
+ nameBase64: Buffer.from(b.name).toString('base64'),
365
+ name: Buffer.from(b.name).toString('utf-8'),
366
+ };
367
+ });
368
+ }
369
+ /**
370
+ * Returns the value of the given box name for the given app.
371
+ * @param appId The ID of the app return box names for
372
+ * @param boxName The name of the box to return either as a string, binary array or `BoxName`
373
+ * @param algod An algod client instance
374
+ * @returns The current box value as a byte array
375
+ */
376
+ export async function getAppBoxValue(appId, boxName, algod) {
377
+ const name = typeof boxName === 'string' ? new Uint8Array(Buffer.from(boxName, 'utf-8')) : 'name' in boxName ? boxName.nameRaw : boxName;
378
+ const boxResult = await algod.getApplicationBoxByName(toNumber(appId), name).do();
379
+ return boxResult.value;
380
+ }
381
+ /**
382
+ * Returns the value of the given box names for the given app.
383
+ * @param appId The ID of the app return box names for
384
+ * @param boxNames The names of the boxes to return either as a string, binary array or `BoxName`
385
+ * @param algod An algod client instance
386
+ * @returns The current box values as a byte array in the same order as the passed in box names
387
+ */
388
+ export async function getAppBoxValues(appId, boxNames, algod) {
389
+ return await Promise.all(boxNames.map(async (boxName) => await getAppBoxValue(appId, boxName, algod)));
390
+ }
391
+ /**
392
+ * Returns the value of the given box name for the given app decoded based on the given ABI type.
393
+ * @param request The parameters for the box value request
394
+ * @param algod An algod client instance
395
+ * @returns The current box value as an ABI value
396
+ */
397
+ export async function getAppBoxValueFromABIType(request, algod) {
398
+ const { appId, boxName, type } = request;
399
+ const value = await getAppBoxValue(appId, boxName, algod);
400
+ return type.decode(value);
401
+ }
402
+ /**
403
+ * Returns the value of the given box names for the given app decoded based on the given ABI type.
404
+ * @param request The parameters for the box value request
405
+ * @param algod An algod client instance
406
+ * @returns The current box values as an ABI value in the same order as the passed in box names
407
+ */
408
+ export async function getAppBoxValuesFromABIType(request, algod) {
409
+ const { appId, boxNames, type } = request;
410
+ return await Promise.all(boxNames.map(async (boxName) => await getAppBoxValueFromABIType({ appId, boxName, type }, algod)));
411
+ }
412
+ /**
413
+ * Converts an array of global/local state values from the algod api to a more friendly
414
+ * generic object keyed by the UTF-8 value of the key.
415
+ * @param state A `global-state`, `local-state`, `global-state-deltas` or `local-state-deltas`
416
+ * @returns An object keyeed by the UTF-8 representation of the key with various parsings of the values
417
+ */
418
+ export function decodeAppState(state) {
419
+ const stateValues = {};
420
+ // Start with empty set
421
+ for (const stateVal of state) {
422
+ const keyBase64 = stateVal.key;
423
+ const keyRaw = Buffer.from(keyBase64, 'base64');
424
+ const key = keyRaw.toString('utf-8');
425
+ const tealValue = stateVal.value;
426
+ const dataTypeFlag = 'action' in tealValue ? tealValue.action : tealValue.type;
427
+ let valueBase64;
428
+ let valueRaw;
429
+ switch (dataTypeFlag) {
430
+ case 1:
431
+ valueBase64 = tealValue.bytes ?? '';
432
+ valueRaw = Buffer.from(valueBase64, 'base64');
433
+ stateValues[key] = {
434
+ keyRaw,
435
+ keyBase64,
436
+ valueRaw: new Uint8Array(valueRaw),
437
+ valueBase64: valueBase64,
438
+ value: valueRaw.toString('utf-8'),
439
+ };
440
+ break;
441
+ case 2: {
442
+ const value = tealValue.uint ?? 0;
443
+ stateValues[key] = {
444
+ keyRaw,
445
+ keyBase64,
446
+ value,
447
+ };
448
+ break;
449
+ }
450
+ default:
451
+ throw new Error(`Received unknown state data type of ${dataTypeFlag}`);
452
+ }
453
+ }
454
+ return stateValues;
455
+ }
456
+ /**
457
+ * Returns the app args ready to load onto an app `Transaction` object
458
+ * @param args The app call args
459
+ * @returns The args ready to load into a `Transaction`
460
+ */
461
+ export function getAppArgsForTransaction(args) {
462
+ if (!args)
463
+ return undefined;
464
+ const encoder = new TextEncoder();
465
+ return {
466
+ accounts: args?.accounts?.map(_getAccountAddress),
467
+ appArgs: args?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a)),
468
+ boxes: args.boxes?.map(getBoxReference),
469
+ foreignApps: args?.apps,
470
+ foreignAssets: args?.assets,
471
+ lease: typeof args?.lease === 'string' ? encoder.encode(args?.lease) : args?.lease,
472
+ };
473
+ }
474
+ /**
475
+ * Returns the app args ready to load onto an ABI method call in `AtomicTransactionComposer`
476
+ * @param args The ABI app call args
477
+ * @param from The transaction signer
478
+ * @returns The parameters ready to pass into `addMethodCall` within AtomicTransactionComposer
479
+ */
480
+ export async function getAppArgsForABICall(args, from) {
481
+ const encoder = new TextEncoder();
482
+ const signer = getSenderTransactionSigner(from);
483
+ const methodArgs = await Promise.all(('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {
484
+ if (a === undefined) {
485
+ throw new Error(`Argument at position ${index} does not have a value`);
486
+ }
487
+ if (typeof a !== 'object') {
488
+ return a;
489
+ }
490
+ // Handle the various forms of transactions to wrangle them for ATC
491
+ return 'txn' in a
492
+ ? a
493
+ : a instanceof Promise
494
+ ? { txn: (await a).transaction, signer }
495
+ : 'transaction' in a
496
+ ? { txn: a.transaction, signer }
497
+ : 'txID' in a
498
+ ? { txn: a, signer }
499
+ : a;
500
+ }));
501
+ return {
502
+ method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),
503
+ sender: getSenderAddress(from),
504
+ signer: signer,
505
+ boxes: args.boxes?.map(getBoxReference),
506
+ lease: typeof args.lease === 'string' ? encoder.encode(args.lease) : args.lease,
507
+ appForeignApps: args.apps,
508
+ appForeignAssets: args.assets,
509
+ appAccounts: args.accounts?.map(_getAccountAddress),
510
+ methodArgs: methodArgs,
511
+ rekeyTo: undefined,
512
+ };
513
+ }
514
+ /**
515
+ * Returns a `algosdk.BoxReference` given a `BoxIdentifier` or `BoxReference`.
516
+ * @param box The box to return a reference for
517
+ * @returns The box reference ready to pass into a `Transaction`
518
+ */
519
+ export function getBoxReference(box) {
520
+ const encoder = new TextEncoder();
521
+ if (typeof box === 'object' && 'appIndex' in box) {
522
+ return box;
523
+ }
524
+ const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box };
525
+ return {
526
+ appIndex: ref.appId,
527
+ name: typeof ref.name === 'string'
528
+ ? encoder.encode(ref.name)
529
+ : 'length' in ref.name
530
+ ? ref.name
531
+ : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,
532
+ };
533
+ }
534
+ function _getAccountAddress(account) {
535
+ return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey);
536
+ }
537
+ /**
538
+ * Gets the current data for the given app from algod.
539
+ *
540
+ * @param appId The id of the app
541
+ * @param algod An algod client
542
+ * @returns The data about the app
543
+ */
544
+ export async function getAppById(appId, algod) {
545
+ return modelsv2.Application.from_obj_for_encoding(await algod.getApplicationByID(toNumber(appId)).do());
546
+ }
547
+ /**
548
+ * Compiles the given TEAL using algod and returns the result, including source map.
549
+ *
550
+ * @param algod An algod client
551
+ * @param tealCode The TEAL code
552
+ * @returns The information about the compiled file
553
+ */
554
+ export async function compileTeal(tealCode, algod) {
555
+ const compiled = await algod.compile(tealCode).sourcemap(true).do();
556
+ return {
557
+ teal: tealCode,
558
+ compiled: compiled.result,
559
+ compiledHash: compiled.hash,
560
+ compiledBase64ToBytes: new Uint8Array(Buffer.from(compiled.result, 'base64')),
561
+ sourceMap: new SourceMap(compiled['sourcemap']),
562
+ };
563
+ }
564
+ /**
565
+ * Returns the encoded ABI spec for a given ABI Method
566
+ * @param method The method to return a signature for
567
+ * @returns The encoded ABI method spec e.g. `method_name(uint64,string)string`
568
+ */
569
+ export const getABIMethodSignature = (method) => {
570
+ return 'getSignature' in method ? method.getSignature() : new ABIMethod(method).getSignature();
571
+ };
572
+ //# sourceMappingURL=app.js.map
package/esm/app.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
package/esm/index.js ADDED
@@ -0,0 +1,14 @@
1
+ import { UpdatableConfig } from './types/config';
2
+ export * from './account';
3
+ export * from './amount';
4
+ export * from './app';
5
+ export * from './app-client';
6
+ export * from './app-deploy';
7
+ export * from './indexer-lookup';
8
+ export * from './localnet';
9
+ export * from './network-client';
10
+ export * from './transaction';
11
+ export * from './transfer';
12
+ /** The AlgoKit config. To update it use the configure method. */
13
+ export const Config = new UpdatableConfig();
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAE1B,iEAAiE;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA"}