@algorandfoundation/algokit-utils 6.2.1 → 7.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -26
  3. package/account/account.d.ts +21 -11
  4. package/account/get-account-config-from-environment.d.ts +0 -1
  5. package/account/get-account.d.ts +6 -7
  6. package/account/get-dispenser-account.d.ts +2 -3
  7. package/account/index.d.ts +0 -1
  8. package/account/mnemonic-account.d.ts +1 -2
  9. package/amount.d.ts +41 -9
  10. package/app-client.d.ts +19 -5
  11. package/app-deploy.d.ts +18 -2
  12. package/app.d.ts +39 -3
  13. package/asset.d.ts +10 -1
  14. package/config.d.ts +0 -1
  15. package/debugging/debugging.d.ts +3 -5
  16. package/debugging/index.d.ts +0 -2
  17. package/dispenser-client.d.ts +1 -2
  18. package/index.d.ts +8 -6
  19. package/index.js +61 -48
  20. package/index.js.map +1 -1
  21. package/index.mjs +27 -24
  22. package/index.mjs.map +1 -1
  23. package/indexer-lookup.d.ts +10 -9
  24. package/localnet/get-kmd-wallet-account.d.ts +1 -2
  25. package/localnet/get-localnet-dispenser-account.d.ts +1 -2
  26. package/localnet/get-or-create-kmd-wallet-account.d.ts +2 -3
  27. package/localnet/index.d.ts +0 -1
  28. package/localnet/is-localnet.d.ts +1 -2
  29. package/network-client.d.ts +3 -10
  30. package/package.json +5 -5
  31. package/{account → src/account}/account.js +38 -15
  32. package/src/account/account.js.map +1 -0
  33. package/{account → src/account}/account.mjs +39 -16
  34. package/src/account/account.mjs.map +1 -0
  35. package/src/account/get-account-config-from-environment.js.map +1 -0
  36. package/src/account/get-account-config-from-environment.mjs.map +1 -0
  37. package/{account → src/account}/get-account.js +5 -5
  38. package/src/account/get-account.js.map +1 -0
  39. package/{account → src/account}/get-account.mjs +5 -5
  40. package/src/account/get-account.mjs.map +1 -0
  41. package/{account → src/account}/get-dispenser-account.js +3 -3
  42. package/src/account/get-dispenser-account.js.map +1 -0
  43. package/{account → src/account}/get-dispenser-account.mjs +3 -3
  44. package/src/account/get-dispenser-account.mjs.map +1 -0
  45. package/{account → src/account}/mnemonic-account.js +1 -1
  46. package/src/account/mnemonic-account.js.map +1 -0
  47. package/{account → src/account}/mnemonic-account.mjs +1 -1
  48. package/src/account/mnemonic-account.mjs.map +1 -0
  49. package/src/amount.js +61 -0
  50. package/src/amount.js.map +1 -0
  51. package/src/amount.mjs +54 -0
  52. package/src/amount.mjs.map +1 -0
  53. package/{app-client.js → src/app-client.js} +20 -5
  54. package/src/app-client.js.map +1 -0
  55. package/{app-client.mjs → src/app-client.mjs} +20 -5
  56. package/src/app-client.mjs.map +1 -0
  57. package/src/app-deploy.js +285 -0
  58. package/src/app-deploy.js.map +1 -0
  59. package/src/app-deploy.mjs +276 -0
  60. package/src/app-deploy.mjs.map +1 -0
  61. package/src/app.js +349 -0
  62. package/src/app.js.map +1 -0
  63. package/src/app.mjs +329 -0
  64. package/src/app.mjs.map +1 -0
  65. package/src/asset.js +142 -0
  66. package/src/asset.js.map +1 -0
  67. package/src/asset.mjs +136 -0
  68. package/src/asset.mjs.map +1 -0
  69. package/{config.js → src/config.js} +1 -1
  70. package/src/config.js.map +1 -0
  71. package/{config.mjs → src/config.mjs} +1 -1
  72. package/src/config.mjs.map +1 -0
  73. package/src/debugging/debugging.js +15 -0
  74. package/src/debugging/debugging.js.map +1 -0
  75. package/src/debugging/debugging.mjs +13 -0
  76. package/src/debugging/debugging.mjs.map +1 -0
  77. package/{dispenser-client.js → src/dispenser-client.js} +3 -3
  78. package/src/dispenser-client.js.map +1 -0
  79. package/{dispenser-client.mjs → src/dispenser-client.mjs} +3 -3
  80. package/src/dispenser-client.mjs.map +1 -0
  81. package/{indexer-lookup.js → src/indexer-lookup.js} +14 -10
  82. package/src/indexer-lookup.js.map +1 -0
  83. package/{indexer-lookup.mjs → src/indexer-lookup.mjs} +14 -10
  84. package/src/indexer-lookup.mjs.map +1 -0
  85. package/{localnet → src/localnet}/get-kmd-wallet-account.js +3 -3
  86. package/src/localnet/get-kmd-wallet-account.js.map +1 -0
  87. package/{localnet → src/localnet}/get-kmd-wallet-account.mjs +3 -3
  88. package/src/localnet/get-kmd-wallet-account.mjs.map +1 -0
  89. package/{localnet → src/localnet}/get-localnet-dispenser-account.js +3 -3
  90. package/src/localnet/get-localnet-dispenser-account.js.map +1 -0
  91. package/{localnet → src/localnet}/get-localnet-dispenser-account.mjs +3 -3
  92. package/src/localnet/get-localnet-dispenser-account.mjs.map +1 -0
  93. package/{localnet → src/localnet}/get-or-create-kmd-wallet-account.js +4 -4
  94. package/src/localnet/get-or-create-kmd-wallet-account.js.map +1 -0
  95. package/{localnet → src/localnet}/get-or-create-kmd-wallet-account.mjs +4 -4
  96. package/src/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -0
  97. package/{localnet → src/localnet}/is-localnet.js +2 -2
  98. package/src/localnet/is-localnet.js.map +1 -0
  99. package/{localnet → src/localnet}/is-localnet.mjs +2 -2
  100. package/src/localnet/is-localnet.mjs.map +1 -0
  101. package/{network-client.js → src/network-client.js} +5 -12
  102. package/src/network-client.js.map +1 -0
  103. package/{network-client.mjs → src/network-client.mjs} +5 -12
  104. package/src/network-client.mjs.map +1 -0
  105. package/{testing → src/testing}/account.js +16 -4
  106. package/src/testing/account.js.map +1 -0
  107. package/{testing → src/testing}/account.mjs +17 -5
  108. package/src/testing/account.mjs.map +1 -0
  109. package/src/testing/fixtures/algokit-log-capture-fixture.js.map +1 -0
  110. package/src/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -0
  111. package/{testing → src/testing}/fixtures/algorand-fixture.js +18 -14
  112. package/src/testing/fixtures/algorand-fixture.js.map +1 -0
  113. package/{testing → src/testing}/fixtures/algorand-fixture.mjs +18 -14
  114. package/src/testing/fixtures/algorand-fixture.mjs.map +1 -0
  115. package/src/testing/indexer.js.map +1 -0
  116. package/src/testing/indexer.mjs.map +1 -0
  117. package/{testing → src/testing}/test-logger.js +7 -3
  118. package/src/testing/test-logger.js.map +1 -0
  119. package/{testing → src/testing}/test-logger.mjs +7 -3
  120. package/src/testing/test-logger.mjs.map +1 -0
  121. package/src/testing/transaction-logger.js.map +1 -0
  122. package/src/testing/transaction-logger.mjs.map +1 -0
  123. package/src/transaction/legacy-bridge.js +129 -0
  124. package/src/transaction/legacy-bridge.js.map +1 -0
  125. package/src/transaction/legacy-bridge.mjs +124 -0
  126. package/src/transaction/legacy-bridge.mjs.map +1 -0
  127. package/{transaction → src/transaction}/perform-atomic-transaction-composer-simulate.js +14 -9
  128. package/src/transaction/perform-atomic-transaction-composer-simulate.js.map +1 -0
  129. package/{transaction → src/transaction}/perform-atomic-transaction-composer-simulate.mjs +15 -10
  130. package/src/transaction/perform-atomic-transaction-composer-simulate.mjs.map +1 -0
  131. package/{transaction → src/transaction}/transaction.js +221 -141
  132. package/src/transaction/transaction.js.map +1 -0
  133. package/{transaction → src/transaction}/transaction.mjs +222 -142
  134. package/src/transaction/transaction.mjs.map +1 -0
  135. package/src/transfer/transfer-algos.js +31 -0
  136. package/src/transfer/transfer-algos.js.map +1 -0
  137. package/src/transfer/transfer-algos.mjs +29 -0
  138. package/src/transfer/transfer-algos.mjs.map +1 -0
  139. package/src/transfer/transfer.js +112 -0
  140. package/src/transfer/transfer.js.map +1 -0
  141. package/src/transfer/transfer.mjs +108 -0
  142. package/src/transfer/transfer.mjs.map +1 -0
  143. package/{util.js → src/util.js} +33 -7
  144. package/src/util.js.map +1 -0
  145. package/{util.mjs → src/util.mjs} +31 -7
  146. package/src/util.mjs.map +1 -0
  147. package/testing/_asset.d.ts +3 -5
  148. package/testing/account.d.ts +4 -4
  149. package/testing/fixtures/algokit-log-capture-fixture.d.ts +0 -1
  150. package/testing/fixtures/algorand-fixture.d.ts +1 -2
  151. package/testing/fixtures/index.d.ts +0 -1
  152. package/testing/index.d.ts +0 -1
  153. package/testing/index.js +6 -6
  154. package/testing/index.mjs +6 -6
  155. package/testing/indexer.d.ts +0 -1
  156. package/testing/test-logger.d.ts +0 -1
  157. package/testing/transaction-logger.d.ts +0 -1
  158. package/transaction/index.d.ts +0 -1
  159. package/transaction/legacy-bridge.d.ts +35 -0
  160. package/transaction/perform-atomic-transaction-composer-simulate.d.ts +4 -2
  161. package/transaction/transaction.d.ts +39 -20
  162. package/transfer/index.d.ts +0 -1
  163. package/transfer/transfer-algos.d.ts +4 -3
  164. package/transfer/transfer.d.ts +8 -2
  165. package/types/account-manager.d.ts +165 -40
  166. package/types/account-manager.js +255 -59
  167. package/types/account-manager.js.map +1 -1
  168. package/types/account-manager.mjs +255 -59
  169. package/types/account-manager.mjs.map +1 -1
  170. package/types/account.d.ts +137 -14
  171. package/types/account.js +2 -2
  172. package/types/account.js.map +1 -1
  173. package/types/account.mjs +3 -3
  174. package/types/account.mjs.map +1 -1
  175. package/types/algo-http-client-with-retry.d.ts +1 -3
  176. package/types/algo-http-client-with-retry.js +34 -4
  177. package/types/algo-http-client-with-retry.js.map +1 -1
  178. package/types/algo-http-client-with-retry.mjs +33 -3
  179. package/types/algo-http-client-with-retry.mjs.map +1 -1
  180. package/types/algorand-client-interface.d.ts +28 -0
  181. package/types/algorand-client-interface.js +3 -0
  182. package/types/algorand-client-interface.js.map +1 -0
  183. package/types/algorand-client-interface.mjs +2 -0
  184. package/types/algorand-client-interface.mjs.map +1 -0
  185. package/types/algorand-client-transaction-creator.d.ts +718 -0
  186. package/types/algorand-client-transaction-creator.js +683 -0
  187. package/types/algorand-client-transaction-creator.js.map +1 -0
  188. package/types/algorand-client-transaction-creator.mjs +681 -0
  189. package/types/algorand-client-transaction-creator.mjs.map +1 -0
  190. package/types/algorand-client-transaction-sender.d.ts +1158 -0
  191. package/types/algorand-client-transaction-sender.js +852 -0
  192. package/types/algorand-client-transaction-sender.js.map +1 -0
  193. package/types/algorand-client-transaction-sender.mjs +850 -0
  194. package/types/algorand-client-transaction-sender.mjs.map +1 -0
  195. package/types/algorand-client.d.ts +48 -91
  196. package/types/algorand-client.js +53 -132
  197. package/types/algorand-client.js.map +1 -1
  198. package/types/algorand-client.mjs +55 -131
  199. package/types/algorand-client.mjs.map +1 -1
  200. package/types/amount.d.ts +23 -12
  201. package/types/amount.js +33 -10
  202. package/types/amount.js.map +1 -1
  203. package/types/amount.mjs +33 -10
  204. package/types/amount.mjs.map +1 -1
  205. package/types/app-arc56.d.ts +359 -0
  206. package/types/app-arc56.js +184 -0
  207. package/types/app-arc56.js.map +1 -0
  208. package/types/app-arc56.mjs +175 -0
  209. package/types/app-arc56.mjs.map +1 -0
  210. package/types/app-client.d.ts +1511 -15
  211. package/types/app-client.js +1029 -43
  212. package/types/app-client.js.map +1 -1
  213. package/types/app-client.mjs +1030 -45
  214. package/types/app-client.mjs.map +1 -1
  215. package/types/app-deployer.d.ts +126 -0
  216. package/types/app-deployer.js +353 -0
  217. package/types/app-deployer.js.map +1 -0
  218. package/types/app-deployer.mjs +351 -0
  219. package/types/app-deployer.mjs.map +1 -0
  220. package/types/app-factory.d.ts +846 -0
  221. package/types/app-factory.js +410 -0
  222. package/types/app-factory.js.map +1 -0
  223. package/types/app-factory.mjs +408 -0
  224. package/types/app-factory.mjs.map +1 -0
  225. package/types/app-manager.d.ts +244 -0
  226. package/types/app-manager.js +423 -0
  227. package/types/app-manager.js.map +1 -0
  228. package/types/app-manager.mjs +421 -0
  229. package/types/app-manager.mjs.map +1 -0
  230. package/types/app-spec.d.ts +2 -1
  231. package/types/app-spec.js +127 -0
  232. package/types/app-spec.js.map +1 -1
  233. package/types/app-spec.mjs +126 -0
  234. package/types/app-spec.mjs.map +1 -1
  235. package/types/app.d.ts +57 -18
  236. package/types/app.js +1 -1
  237. package/types/app.js.map +1 -1
  238. package/types/app.mjs +1 -1
  239. package/types/app.mjs.map +1 -1
  240. package/types/asset-manager.d.ts +205 -0
  241. package/types/asset-manager.js +176 -0
  242. package/types/asset-manager.js.map +1 -0
  243. package/types/asset-manager.mjs +174 -0
  244. package/types/asset-manager.mjs.map +1 -0
  245. package/types/asset.d.ts +4 -5
  246. package/types/async-event-emitter.d.ts +14 -0
  247. package/types/async-event-emitter.js +50 -0
  248. package/types/async-event-emitter.js.map +1 -0
  249. package/types/async-event-emitter.mjs +48 -0
  250. package/types/async-event-emitter.mjs.map +1 -0
  251. package/types/client-manager.d.ts +171 -58
  252. package/types/client-manager.js +198 -43
  253. package/types/client-manager.js.map +1 -1
  254. package/types/client-manager.mjs +199 -44
  255. package/types/client-manager.mjs.map +1 -1
  256. package/types/composer.d.ts +474 -132
  257. package/types/composer.js +461 -167
  258. package/types/composer.js.map +1 -1
  259. package/types/composer.mjs +461 -168
  260. package/types/composer.mjs.map +1 -1
  261. package/types/config.d.ts +3 -6
  262. package/types/config.js +5 -44
  263. package/types/config.js.map +1 -1
  264. package/types/config.mjs +5 -27
  265. package/types/config.mjs.map +1 -1
  266. package/types/debugging.d.ts +29 -101
  267. package/types/debugging.js +16 -109
  268. package/types/debugging.js.map +1 -1
  269. package/types/debugging.mjs +12 -107
  270. package/types/debugging.mjs.map +1 -1
  271. package/types/dispenser-client.d.ts +14 -6
  272. package/types/dispenser-client.js +19 -14
  273. package/types/dispenser-client.js.map +1 -1
  274. package/types/dispenser-client.mjs +19 -14
  275. package/types/dispenser-client.mjs.map +1 -1
  276. package/types/expand.d.ts +7 -0
  277. package/types/expand.js +3 -0
  278. package/types/expand.js.map +1 -0
  279. package/types/expand.mjs +2 -0
  280. package/types/expand.mjs.map +1 -0
  281. package/types/indexer.d.ts +74 -756
  282. package/types/indexer.js.map +1 -1
  283. package/types/indexer.mjs.map +1 -1
  284. package/types/kmd-account-manager.d.ts +5 -6
  285. package/types/kmd-account-manager.js +9 -9
  286. package/types/kmd-account-manager.js.map +1 -1
  287. package/types/kmd-account-manager.mjs +10 -10
  288. package/types/kmd-account-manager.mjs.map +1 -1
  289. package/types/lifecycle-events.d.ts +10 -0
  290. package/types/lifecycle-events.js +8 -0
  291. package/types/lifecycle-events.js.map +1 -0
  292. package/types/lifecycle-events.mjs +8 -0
  293. package/types/lifecycle-events.mjs.map +1 -0
  294. package/types/logging.d.ts +0 -1
  295. package/types/logging.js.map +1 -1
  296. package/types/logging.mjs.map +1 -1
  297. package/types/logic-error.d.ts +2 -4
  298. package/types/logic-error.js +3 -3
  299. package/types/logic-error.js.map +1 -1
  300. package/types/logic-error.mjs +3 -3
  301. package/types/logic-error.mjs.map +1 -1
  302. package/types/network-client.d.ts +21 -3
  303. package/types/network-client.js +10 -0
  304. package/types/network-client.js.map +1 -1
  305. package/types/network-client.mjs +9 -0
  306. package/types/network-client.mjs.map +1 -1
  307. package/types/testing.d.ts +9 -11
  308. package/types/transaction.d.ts +17 -4
  309. package/types/transfer.d.ts +8 -8
  310. package/util.d.ts +15 -2
  311. package/account/account.d.ts.map +0 -1
  312. package/account/account.js.map +0 -1
  313. package/account/account.mjs.map +0 -1
  314. package/account/get-account-config-from-environment.d.ts.map +0 -1
  315. package/account/get-account-config-from-environment.js.map +0 -1
  316. package/account/get-account-config-from-environment.mjs.map +0 -1
  317. package/account/get-account.d.ts.map +0 -1
  318. package/account/get-account.js.map +0 -1
  319. package/account/get-account.mjs.map +0 -1
  320. package/account/get-dispenser-account.d.ts.map +0 -1
  321. package/account/get-dispenser-account.js.map +0 -1
  322. package/account/get-dispenser-account.mjs.map +0 -1
  323. package/account/index.d.ts.map +0 -1
  324. package/account/mnemonic-account.d.ts.map +0 -1
  325. package/account/mnemonic-account.js.map +0 -1
  326. package/account/mnemonic-account.mjs.map +0 -1
  327. package/amount.d.ts.map +0 -1
  328. package/amount.js +0 -34
  329. package/amount.js.map +0 -1
  330. package/amount.mjs +0 -30
  331. package/amount.mjs.map +0 -1
  332. package/app-client.d.ts.map +0 -1
  333. package/app-client.js.map +0 -1
  334. package/app-client.mjs.map +0 -1
  335. package/app-deploy.d.ts.map +0 -1
  336. package/app-deploy.js +0 -468
  337. package/app-deploy.js.map +0 -1
  338. package/app-deploy.mjs +0 -459
  339. package/app-deploy.mjs.map +0 -1
  340. package/app.d.ts.map +0 -1
  341. package/app.js +0 -599
  342. package/app.js.map +0 -1
  343. package/app.mjs +0 -579
  344. package/app.mjs.map +0 -1
  345. package/asset.d.ts.map +0 -1
  346. package/asset.js +0 -272
  347. package/asset.js.map +0 -1
  348. package/asset.mjs +0 -266
  349. package/asset.mjs.map +0 -1
  350. package/config.d.ts.map +0 -1
  351. package/config.js.map +0 -1
  352. package/config.mjs.map +0 -1
  353. package/debugging/debugging.d.ts.map +0 -1
  354. package/debugging/debugging.js +0 -139
  355. package/debugging/debugging.js.map +0 -1
  356. package/debugging/debugging.mjs +0 -118
  357. package/debugging/debugging.mjs.map +0 -1
  358. package/debugging/index.d.ts.map +0 -1
  359. package/debugging/simulate-and-persist-response.d.ts +0 -20
  360. package/debugging/simulate-and-persist-response.d.ts.map +0 -1
  361. package/debugging/simulate-and-persist-response.js +0 -108
  362. package/debugging/simulate-and-persist-response.js.map +0 -1
  363. package/debugging/simulate-and-persist-response.mjs +0 -89
  364. package/debugging/simulate-and-persist-response.mjs.map +0 -1
  365. package/dispenser-client.d.ts.map +0 -1
  366. package/dispenser-client.js.map +0 -1
  367. package/dispenser-client.mjs.map +0 -1
  368. package/index.d.ts.map +0 -1
  369. package/indexer-lookup.d.ts.map +0 -1
  370. package/indexer-lookup.js.map +0 -1
  371. package/indexer-lookup.mjs.map +0 -1
  372. package/localnet/get-kmd-wallet-account.d.ts.map +0 -1
  373. package/localnet/get-kmd-wallet-account.js.map +0 -1
  374. package/localnet/get-kmd-wallet-account.mjs.map +0 -1
  375. package/localnet/get-localnet-dispenser-account.d.ts.map +0 -1
  376. package/localnet/get-localnet-dispenser-account.js.map +0 -1
  377. package/localnet/get-localnet-dispenser-account.mjs.map +0 -1
  378. package/localnet/get-or-create-kmd-wallet-account.d.ts.map +0 -1
  379. package/localnet/get-or-create-kmd-wallet-account.js.map +0 -1
  380. package/localnet/get-or-create-kmd-wallet-account.mjs.map +0 -1
  381. package/localnet/index.d.ts.map +0 -1
  382. package/localnet/is-localnet.d.ts.map +0 -1
  383. package/localnet/is-localnet.js.map +0 -1
  384. package/localnet/is-localnet.mjs.map +0 -1
  385. package/network-client.d.ts.map +0 -1
  386. package/network-client.js.map +0 -1
  387. package/network-client.mjs.map +0 -1
  388. package/testing/_asset.d.ts.map +0 -1
  389. package/testing/account.d.ts.map +0 -1
  390. package/testing/account.js.map +0 -1
  391. package/testing/account.mjs.map +0 -1
  392. package/testing/fixtures/algokit-log-capture-fixture.d.ts.map +0 -1
  393. package/testing/fixtures/algokit-log-capture-fixture.js.map +0 -1
  394. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +0 -1
  395. package/testing/fixtures/algorand-fixture.d.ts.map +0 -1
  396. package/testing/fixtures/algorand-fixture.js.map +0 -1
  397. package/testing/fixtures/algorand-fixture.mjs.map +0 -1
  398. package/testing/fixtures/index.d.ts.map +0 -1
  399. package/testing/index.d.ts.map +0 -1
  400. package/testing/indexer.d.ts.map +0 -1
  401. package/testing/indexer.js.map +0 -1
  402. package/testing/indexer.mjs.map +0 -1
  403. package/testing/test-logger.d.ts.map +0 -1
  404. package/testing/test-logger.js.map +0 -1
  405. package/testing/test-logger.mjs.map +0 -1
  406. package/testing/transaction-logger.d.ts.map +0 -1
  407. package/testing/transaction-logger.js.map +0 -1
  408. package/testing/transaction-logger.mjs.map +0 -1
  409. package/transaction/index.d.ts.map +0 -1
  410. package/transaction/perform-atomic-transaction-composer-simulate.d.ts.map +0 -1
  411. package/transaction/perform-atomic-transaction-composer-simulate.js.map +0 -1
  412. package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +0 -1
  413. package/transaction/transaction.d.ts.map +0 -1
  414. package/transaction/transaction.js.map +0 -1
  415. package/transaction/transaction.mjs.map +0 -1
  416. package/transfer/index.d.ts.map +0 -1
  417. package/transfer/transfer-algos.d.ts.map +0 -1
  418. package/transfer/transfer-algos.js +0 -40
  419. package/transfer/transfer-algos.js.map +0 -1
  420. package/transfer/transfer-algos.mjs +0 -38
  421. package/transfer/transfer-algos.mjs.map +0 -1
  422. package/transfer/transfer.d.ts.map +0 -1
  423. package/transfer/transfer.js +0 -147
  424. package/transfer/transfer.js.map +0 -1
  425. package/transfer/transfer.mjs +0 -143
  426. package/transfer/transfer.mjs.map +0 -1
  427. package/types/account-manager.d.ts.map +0 -1
  428. package/types/account.d.ts.map +0 -1
  429. package/types/algo-http-client-with-retry.d.ts.map +0 -1
  430. package/types/algorand-client.d.ts.map +0 -1
  431. package/types/amount.d.ts.map +0 -1
  432. package/types/app-client.d.ts.map +0 -1
  433. package/types/app-spec.d.ts.map +0 -1
  434. package/types/app.d.ts.map +0 -1
  435. package/types/asset.d.ts.map +0 -1
  436. package/types/client-manager.d.ts.map +0 -1
  437. package/types/composer.d.ts.map +0 -1
  438. package/types/config.d.ts.map +0 -1
  439. package/types/debugging.d.ts.map +0 -1
  440. package/types/dispenser-client.d.ts.map +0 -1
  441. package/types/indexer.d.ts.map +0 -1
  442. package/types/kmd-account-manager.d.ts.map +0 -1
  443. package/types/logging.d.ts.map +0 -1
  444. package/types/logic-error.d.ts.map +0 -1
  445. package/types/network-client.d.ts.map +0 -1
  446. package/types/testing.d.ts.map +0 -1
  447. package/types/transaction.d.ts.map +0 -1
  448. package/types/transfer.d.ts.map +0 -1
  449. package/types/urlTokenBaseHTTPClient.d.ts +0 -41
  450. package/types/urlTokenBaseHTTPClient.d.ts.map +0 -1
  451. package/types/urlTokenBaseHTTPClient.js +0 -153
  452. package/types/urlTokenBaseHTTPClient.js.map +0 -1
  453. package/types/urlTokenBaseHTTPClient.mjs +0 -151
  454. package/types/urlTokenBaseHTTPClient.mjs.map +0 -1
  455. package/util.d.ts.map +0 -1
  456. package/util.js.map +0 -1
  457. package/util.mjs.map +0 -1
  458. /package/{account → src/account}/get-account-config-from-environment.js +0 -0
  459. /package/{account → src/account}/get-account-config-from-environment.mjs +0 -0
  460. /package/{testing → src/testing}/fixtures/algokit-log-capture-fixture.js +0 -0
  461. /package/{testing → src/testing}/fixtures/algokit-log-capture-fixture.mjs +0 -0
  462. /package/{testing → src/testing}/indexer.js +0 -0
  463. /package/{testing → src/testing}/indexer.mjs +0 -0
  464. /package/{testing → src/testing}/transaction-logger.js +0 -0
  465. /package/{testing → src/testing}/transaction-logger.mjs +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algorand-client-transaction-sender.mjs","sources":["../../src/types/algorand-client-transaction-sender.ts"],"sourcesContent":["import algosdk, { Address } from 'algosdk'\nimport { Buffer } from 'buffer'\nimport { Config } from '../config'\nimport { SendAppCreateTransactionResult, SendAppTransactionResult, SendAppUpdateTransactionResult } from './app'\nimport { AppManager } from './app-manager'\nimport { AssetManager } from './asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n AssetCreateParams,\n AssetOptOutParams,\n TransactionComposer,\n} from './composer'\nimport { SendParams, SendSingleTransactionResult } from './transaction'\nimport Transaction = algosdk.Transaction\n\nconst getMethodCallForLog = ({ method, args }: { method: algosdk.ABIMethod; args?: unknown[] }) => {\n return `${method.name}(${(args ?? []).map((a) => (a instanceof Address ? a.toString() : typeof a === 'object' ? JSON.stringify(a, (_, v) => (typeof v === 'bigint' ? Number(v) : v instanceof Address ? v.toString() : v instanceof Uint8Array ? Buffer.from(v).toString('base64') : v)) : a))})`\n}\n\n/** Orchestrates sending transactions for `AlgorandClient`. */\nexport class AlgorandClientTransactionSender {\n private _newGroup: () => TransactionComposer\n private _assetManager: AssetManager\n private _appManager: AppManager\n\n /**\n * Creates a new `AlgorandClientSender`\n * @param newGroup A lambda that starts a new `TransactionComposer` transaction group\n * @param assetManager An `AssetManager` instance\n */\n constructor(newGroup: () => TransactionComposer, assetManager: AssetManager, appManager: AppManager) {\n this._newGroup = newGroup\n this._assetManager = assetManager\n this._appManager = appManager\n }\n\n newGroup() {\n return this._newGroup()\n }\n\n private _send<T>(\n c: (c: TransactionComposer) => (params: T) => TransactionComposer,\n log?: {\n preLog?: (params: T, transaction: Transaction) => string\n postLog?: (params: T, result: SendSingleTransactionResult) => string\n },\n ): (params: T & SendParams) => Promise<SendSingleTransactionResult> {\n return async (params) => {\n const composer = this._newGroup()\n\n // Ensure `this` is properly populated\n c(composer).apply(composer, [params])\n\n if (log?.preLog) {\n const transaction = (await composer.build()).transactions.at(-1)!.txn\n Config.getLogger(params?.suppressLog).debug(log.preLog(params, transaction))\n }\n\n const rawResult = await composer.send(params)\n const result = {\n // Last item covers when a group is created by an app call with ABI transaction parameters\n transaction: rawResult.transactions.at(-1)!,\n confirmation: rawResult.confirmations.at(-1)!,\n txId: rawResult.txIds.at(-1)!,\n ...rawResult,\n }\n\n if (log?.postLog) {\n Config.getLogger(params?.suppressLog).debug(log.postLog(params, result))\n }\n\n return result\n }\n }\n\n private _sendAppCall<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppCallParams\n | AppDeleteParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppCallMethodCall\n | AppDeleteMethodCall,\n >(\n c: (c: TransactionComposer) => (params: T) => TransactionComposer,\n log?: {\n preLog?: (params: T, transaction: Transaction) => string\n postLog?: (params: T, result: SendSingleTransactionResult) => string\n },\n ): (params: T & SendParams) => Promise<SendAppTransactionResult> {\n return async (params) => {\n const result = await this._send(c, log)(params)\n\n return { ...result, return: AppManager.getABIReturn(result.confirmation, 'method' in params ? params.method : undefined) }\n }\n }\n\n private _sendAppUpdateCall<T extends AppCreateParams | AppUpdateParams | AppCreateMethodCall | AppUpdateMethodCall>(\n c: (c: TransactionComposer) => (params: T) => TransactionComposer,\n log?: {\n preLog?: (params: T, transaction: Transaction) => string\n postLog?: (params: T, result: SendSingleTransactionResult) => string\n },\n ): (params: T & SendParams) => Promise<SendAppUpdateTransactionResult> {\n return async (params) => {\n const result = await this._sendAppCall(c, log)(params)\n\n const compiledApproval =\n typeof params.approvalProgram === 'string' ? this._appManager.getCompilationResult(params.approvalProgram) : undefined\n const compiledClear =\n typeof params.clearStateProgram === 'string' ? this._appManager.getCompilationResult(params.clearStateProgram) : undefined\n\n return { ...result, compiledApproval, compiledClear }\n }\n }\n\n private _sendAppCreateCall<T extends AppCreateParams | AppCreateMethodCall>(\n c: (c: TransactionComposer) => (params: T) => TransactionComposer,\n log?: {\n preLog?: (params: T, transaction: Transaction) => string\n postLog?: (params: T, result: SendSingleTransactionResult) => string\n },\n ): (params: T & SendParams) => Promise<SendAppCreateTransactionResult> {\n return async (params) => {\n const result = await this._sendAppUpdateCall(c, log)(params)\n\n return {\n ...result,\n appId: BigInt(result.confirmation.applicationIndex!),\n appAddress: algosdk.getApplicationAddress(result.confirmation.applicationIndex!),\n }\n }\n }\n\n /**\n * Send a payment transaction to transfer Algo between accounts.\n * @param params The parameters for the payment transaction\n * @example Basic example\n * ```typescript\n * const result = await algorand.send.payment({\n * sender: 'SENDERADDRESS',\n * receiver: 'RECEIVERADDRESS',\n * amount: (4).algo(),\n * })\n * ```\n * @example Advanced example\n * ```typescript\n * const result = await algorand.send.payment({\n * amount: (4).algo(),\n * receiver: 'RECEIVERADDRESS',\n * sender: 'SENDERADDRESS',\n * closeRemainderTo: 'CLOSEREMAINDERTOADDRESS',\n * lease: 'lease',\n * note: 'note',\n * // Use this with caution, it's generally better to use algorand.account.rekeyAccount\n * rekeyTo: 'REKEYTOADDRESS',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n *\n * @returns The result of the transaction and the transaction that was sent\n */\n payment = this._send((c) => c.addPayment, {\n preLog: (params, transaction) =>\n `Sending ${params.amount.microAlgo} µALGO from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,\n })\n /**\n * Create a new Algorand Standard Asset.\n *\n * The account that sends this transaction will automatically be\n * opted in to the asset and will hold all units after creation.\n *\n * @param params The parameters for the asset creation transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetCreate({sender: \"CREATORADDRESS\", total: 100n})\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetCreate({\n * sender: 'CREATORADDRESS',\n * total: 100n,\n * decimals: 2,\n * assetName: 'asset',\n * unitName: 'unit',\n * url: 'url',\n * metadataHash: 'metadataHash',\n * defaultFrozen: false,\n * manager: 'MANAGERADDRESS',\n * reserve: 'RESERVEADDRESS',\n * freeze: 'FREEZEADDRESS',\n * clawback: 'CLAWBACKADDRESS',\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetCreate = async (params: AssetCreateParams & SendParams) => {\n const result = await this._send((c) => c.addAssetCreate, {\n postLog: (params, result) =>\n `Created asset${params.assetName ? ` ${params.assetName}` : ''}${params.unitName ? ` (${params.unitName})` : ''} with ${params.total} units and ${params.decimals ?? 0} decimals created by ${params.sender} with ID ${result.confirmation.assetIndex} via transaction ${result.txIds.at(-1)}`,\n })(params)\n return { ...result, assetId: BigInt(result.confirmation.assetIndex ?? 0) }\n }\n /**\n * Configure an existing Algorand Standard Asset.\n *\n * **Note:** The manager, reserve, freeze, and clawback addresses\n * are immutably empty if they are not set. If manager is not set then\n * all fields are immutable from that point forward.\n *\n * @param params The parameters for the asset config transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetConfig({sender: \"MANAGERADDRESS\", assetId: 123456n, manager: \"MANAGERADDRESS\" })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetConfig({\n * sender: 'MANAGERADDRESS',\n * assetId: 123456n,\n * manager: 'MANAGERADDRESS',\n * reserve: 'RESERVEADDRESS',\n * freeze: 'FREEZEADDRESS',\n * clawback: 'CLAWBACKADDRESS',\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetConfig = this._send((c) => c.addAssetConfig, {\n preLog: (params, transaction) => `Configuring asset with ID ${params.assetId} via transaction ${transaction.txID()}`,\n })\n /**\n * Freeze or unfreeze an Algorand Standard Asset for an account.\n *\n * @param params The parameters for the asset freeze transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetFreeze({sender: \"MANAGERADDRESS\", assetId: 123456n, account: \"ACCOUNTADDRESS\", frozen: true })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetFreeze({\n * sender: 'MANAGERADDRESS',\n * assetId: 123456n,\n * account: 'ACCOUNTADDRESS',\n * frozen: true,\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetFreeze = this._send((c) => c.addAssetFreeze, {\n preLog: (params, transaction) => `Freezing asset with ID ${params.assetId} via transaction ${transaction.txID()}`,\n })\n /**\n * Destroys an Algorand Standard Asset.\n *\n * Created assets can be destroyed only by the asset manager account.\n * All of the assets must be owned by the creator of the asset before\n * the asset can be deleted.\n *\n * @param params The parameters for the asset destroy transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetDestroy({sender: \"MANAGERADDRESS\", assetId: 123456n })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetDestroy({\n * sender: 'MANAGERADDRESS',\n * assetId: 123456n,\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetDestroy = this._send((c) => c.addAssetDestroy, {\n preLog: (params, transaction) => `Destroying asset with ID ${params.assetId} via transaction ${transaction.txID()}`,\n })\n /**\n * Transfer an Algorand Standard Asset.\n *\n * @param params The parameters for the asset transfer transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetTransfer({sender: \"HOLDERADDRESS\", assetId: 123456n, amount: 1n, receiver: \"RECEIVERADDRESS\" })\n * ```\n * @example Advanced example (with clawback)\n * ```typescript\n * await algorand.send.assetTransfer({\n * sender: 'CLAWBACKADDRESS',\n * assetId: 123456n,\n * amount: 1n,\n * receiver: 'RECEIVERADDRESS',\n * clawbackTarget: 'HOLDERADDRESS',\n * // This field needs to be used with caution\n * closeAssetTo: 'ADDRESSTOCLOSETO'\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetTransfer = this._send((c) => c.addAssetTransfer, {\n preLog: (params, transaction) =>\n `Transferring ${params.amount} units of asset with ID ${params.assetId} from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,\n })\n /**\n * Opt an account into an Algorand Standard Asset.\n *\n * @param params The parameters for the asset opt-in transaction\n *\n * @example Basic example\n * ```typescript\n * await algorand.send.assetOptIn({sender: \"SENDERADDRESS\", assetId: 123456n })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetOptIn({\n * sender: 'SENDERADDRESS',\n * assetId: 123456n,\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetOptIn = this._send((c) => c.addAssetOptIn, {\n preLog: (params, transaction) => `Opting in ${params.sender} to asset with ID ${params.assetId} via transaction ${transaction.txID()}`,\n })\n /**\n * Opt an account out of an Algorand Standard Asset.\n *\n * *Note:* If the account has a balance of the asset,\n * it will not be able to opt-out unless `ensureZeroBalance`\n * is set to `false` (but then the account will lose the assets).\n *\n * @param params The parameters for the asset opt-out transaction\n *\n * @example Basic example (without creator, will be retrieved from algod)\n * ```typescript\n * await algorand.send.assetOptOut({sender: \"SENDERADDRESS\", assetId: 123456n, ensureZeroBalance: true })\n * ```\n * @example Basic example (with creator)\n * ```typescript\n * await algorand.send.assetOptOut({sender: \"SENDERADDRESS\", creator: \"CREATORADDRESS\", assetId: 123456n, ensureZeroBalance: true })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.assetOptOut({\n * sender: 'SENDERADDRESS',\n * assetId: 123456n,\n * creator: 'CREATORADDRESS',\n * ensureZeroBalance: true,\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n * })\n * ```\n * @returns The result of the transaction and the transaction that was sent\n */\n assetOptOut = async (\n params: Omit<AssetOptOutParams, 'creator'> & {\n /** Optional asset creator account address; if not specified it will be retrieved from algod */\n creator?: string | Address\n /** Whether or not to check if the account has a zero balance first or not.\n *\n * If this is set to `true` and the account has an asset balance it will throw an error.\n *\n * If this is set to `false` and the account has an asset balance it will lose those assets to the asset creator.\n */\n ensureZeroBalance: boolean\n } & SendParams,\n ) => {\n if (params.ensureZeroBalance) {\n let balance = 0n\n try {\n const accountAssetInfo = await this._assetManager.getAccountInformation(params.sender, params.assetId)\n balance = accountAssetInfo.balance\n } catch {\n throw new Error(`Account ${params.sender} is not opted-in to Asset ${params.assetId}; can't opt-out.`)\n }\n if (balance !== 0n) {\n throw new Error(`Account ${params.sender} does not have a zero balance for Asset ${params.assetId}; can't opt-out.`)\n }\n }\n\n params.creator = params.creator ?? (await this._assetManager.getById(params.assetId)).creator\n\n return await this._send((c) => c.addAssetOptOut, {\n preLog: (params, transaction) =>\n `Opting ${params.sender} out of asset with ID ${params.assetId} to creator ${params.creator} via transaction ${transaction.txID()}`,\n })(params as AssetOptOutParams & SendParams)\n }\n /**\n * Create a smart contract.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app creation transaction\n * @example Basic example\n * ```typescript\n * const result = await algorand.send.appCreate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })\n * const createdAppId = result.appId\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.appCreate({\n * sender: 'CREATORADDRESS',\n * approvalProgram: \"TEALCODE\",\n * clearStateProgram: \"TEALCODE\",\n * schema: {\n * globalInts: 1,\n * globalByteSlices: 2,\n * localInts: 3,\n * localByteSlices: 4\n * },\n * extraProgramPages: 1,\n * onComplete: algosdk.OnApplicationComplete.OptInOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appCreate = this._sendAppCreateCall((c) => c.addAppCreate, {\n postLog: (params, result) =>\n `App created by ${params.sender} with ID ${result.confirmation.applicationIndex} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Update a smart contract.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app update transaction\n * @example Basic example\n * ```typescript\n * await algorand.send.appUpdate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.appUpdate({\n * sender: 'CREATORADDRESS',\n * approvalProgram: \"TEALCODE\",\n * clearStateProgram: \"TEALCODE\",\n * onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appUpdate = this._sendAppUpdateCall((c) => c.addAppUpdate, {\n postLog: (params, result) =>\n `App ${params.appId} updated ${params.args ? ` with ${params.args.map((a) => Buffer.from(a).toString('base64'))}` : ''} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Delete a smart contract.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app deletion transaction\n * @example Basic example\n * ```typescript\n * await algorand.send.appDelete({ sender: 'CREATORADDRESS' })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.appDelete({\n * sender: 'CREATORADDRESS',\n * onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appDelete = this._sendAppCall((c) => c.addAppDelete, {\n postLog: (params, result) =>\n `App ${params.appId} deleted ${params.args ? ` with ${params.args.map((a) => Buffer.from(a).toString('base64'))}` : ''} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Call a smart contract.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app call transaction\n * @example Basic example\n * ```typescript\n * await algorand.send.appCall({ sender: 'CREATORADDRESS' })\n * ```\n * @example Advanced example\n * ```typescript\n * await algorand.send.appCall({\n * sender: 'CREATORADDRESS',\n * onComplete: algosdk.OnApplicationComplete.OptInOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appCall = this._sendAppCall((c) => c.addAppCall, {\n postLog: (params, result) =>\n `App ${params.appId} called ${params.args ? ` with ${params.args.map((a) => Buffer.from(a).toString('base64'))}` : ''} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Create a smart contract via an ABI method.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app creation transaction\n * @example Basic example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * const result = await algorand.send.appCreateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: [\"arg1_value\"] })\n * const createdAppId = result.appId\n * ```\n * @example Advanced example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appCreate({\n * sender: 'CREATORADDRESS',\n * method: method,\n * args: [\"arg1_value\"],\n * approvalProgram: \"TEALCODE\",\n * clearStateProgram: \"TEALCODE\",\n * schema: {\n * globalInts: 1,\n * globalByteSlices: 2,\n * localInts: 3,\n * localByteSlices: 4\n * },\n * extraProgramPages: 1,\n * onComplete: algosdk.OnApplicationComplete.OptInOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appCreateMethodCall = this._sendAppCreateCall((c) => c.addAppCreateMethodCall, {\n postLog: (params, result) =>\n `App created by ${params.sender} with ID ${result.confirmation.applicationIndex} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Update a smart contract via an ABI method.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app update transaction\n * @example Basic example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appUpdateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: [\"arg1_value\"] })\n * ```\n * @example Advanced example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appUpdateMethodCall({\n * sender: 'CREATORADDRESS',\n * method: method,\n * args: [\"arg1_value\"],\n * approvalProgram: \"TEALCODE\",\n * clearStateProgram: \"TEALCODE\",\n * onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appUpdateMethodCall = this._sendAppUpdateCall((c) => c.addAppUpdateMethodCall, {\n postLog: (params, result) =>\n `App ${params.appId} updated with ${getMethodCallForLog(params)} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Delete a smart contract via an ABI method.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app deletion transaction\n * @example Basic example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appDeleteMethodCall({ sender: 'CREATORADDRESS', method: method, args: [\"arg1_value\"] })\n * ```\n * @example Advanced example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appDeleteMethodCall({\n * sender: 'CREATORADDRESS',\n * method: method,\n * args: [\"arg1_value\"],\n * onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appDeleteMethodCall = this._sendAppCall((c) => c.addAppDeleteMethodCall, {\n postLog: (params, result) =>\n `App ${params.appId} deleted with ${getMethodCallForLog(params)} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /**\n * Call a smart contract via an ABI method.\n *\n * Note: you may prefer to use `algorand.client` to get an app client for more advanced functionality.\n *\n * @param params The parameters for the app call transaction\n * @example Basic example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appCallMethodCall({ sender: 'CREATORADDRESS', method: method, args: [\"arg1_value\"] })\n * ```\n * @example Advanced example\n * ```typescript\n * const method = new ABIMethod({\n * name: 'method',\n * args: [{ name: 'arg1', type: 'string' }],\n * returns: { type: 'string' },\n * })\n * await algorand.send.appCallMethodCall({\n * sender: 'CREATORADDRESS',\n * method: method,\n * args: [\"arg1_value\"],\n * onComplete: algosdk.OnApplicationComplete.OptInOC,\n * args: [new Uint8Array(1, 2, 3, 4)]\n * accountReferences: [\"ACCOUNT_1\"]\n * appReferences: [123n, 1234n]\n * assetReferences: [12345n]\n * boxReferences: [\"box1\", {appId: 1234n, name: \"box2\"}]\n * lease: 'lease',\n * note: 'note',\n * // You wouldn't normally set this field\n * firstValidRound: 1000n,\n * validityWindow: 10,\n * extraFee: (1000).microAlgo(),\n * staticFee: (1000).microAlgo(),\n * // Max fee doesn't make sense with extraFee AND staticFee\n * // already specified, but here for completeness\n * maxFee: (3000).microAlgo(),\n * // Signer only needed if you want to provide one,\n * // generally you'd register it with AlgorandClient\n * // against the sender and not need to pass it in\n * signer: transactionSigner,\n * maxRoundsToWaitForConfirmation: 5,\n * suppressLog: true,\n *})\n * ```\n */\n appCallMethodCall = this._sendAppCall((c) => c.addAppCallMethodCall, {\n postLog: (params, result) =>\n `App ${params.appId} called with ${getMethodCallForLog(params)} by ${params.sender} via transaction ${result.txIds.at(-1)}`,\n })\n\n /** Register an online key. */\n onlineKeyRegistration = this._send((c) => c.addOnlineKeyRegistration, {\n preLog: (params, transaction) => `Registering online key for ${params.sender} via transaction ${transaction.txID()}`,\n })\n}\n"],"names":[],"mappings":"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"}
@@ -1,19 +1,28 @@
1
- import algosdk from 'algosdk';
2
- import { TransactionSignerAccount } from './account';
1
+ import algosdk, { Address } from 'algosdk';
2
+ import { MultisigAccount, SigningAccount, TransactionSignerAccount } from './account';
3
3
  import { AccountManager } from './account-manager';
4
+ import { AlgorandClientInterface } from './algorand-client-interface';
5
+ import { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator';
6
+ import { AlgorandClientTransactionSender } from './algorand-client-transaction-sender';
7
+ import { AppDeployer } from './app-deployer';
8
+ import { AppManager } from './app-manager';
9
+ import { AssetManager } from './asset-manager';
4
10
  import { AlgoSdkClients, ClientManager } from './client-manager';
5
- import AlgokitComposer, { ExecuteParams, MethodCallParams } from './composer';
11
+ import { TransactionComposer } from './composer';
6
12
  import { AlgoConfig } from './network-client';
7
- import { ConfirmedTransactionResult, SendAtomicTransactionComposerResults, SendTransactionFrom } from './transaction';
8
- import Transaction = algosdk.Transaction;
9
- /** Result from sending a single transaction. */
10
- export type SendSingleTransactionResult = SendAtomicTransactionComposerResults & ConfirmedTransactionResult;
13
+ import Account = algosdk.Account;
14
+ import LogicSigAccount = algosdk.LogicSigAccount;
11
15
  /**
12
16
  * A client that brokers easy access to Algorand functionality.
13
17
  */
14
- export declare class AlgorandClient {
18
+ export declare class AlgorandClient implements AlgorandClientInterface {
15
19
  private _clientManager;
16
20
  private _accountManager;
21
+ private _appManager;
22
+ private _appDeployer;
23
+ private _assetManager;
24
+ private _transactionSender;
25
+ private _transactionCreator;
17
26
  private _cachedSuggestedParams?;
18
27
  private _cachedSuggestedParamsExpiry?;
19
28
  private _cachedSuggestedParamsTimeout;
@@ -24,7 +33,7 @@ export declare class AlgorandClient {
24
33
  * @param validityWindow The number of rounds between the first and last valid rounds
25
34
  * @returns The `AlgorandClient` so method calls can be chained
26
35
  */
27
- setDefaultValidityWindow(validityWindow: number): this;
36
+ setDefaultValidityWindow(validityWindow: number | bigint): this;
28
37
  /**
29
38
  * Sets the default signer to use if no other signer is specified.
30
39
  * @param signer The signer to use, either a `TransactionSigner` or a `TransactionSignerAccount`
@@ -32,113 +41,63 @@ export declare class AlgorandClient {
32
41
  */
33
42
  setDefaultSigner(signer: algosdk.TransactionSigner | TransactionSignerAccount): AlgorandClient;
34
43
  /**
35
- * Tracks the given account for later signing.
36
- * @param account The account to register
44
+ * Tracks the given account (object that encapsulates an address and a signer) for later signing.
45
+ * @param account The account to register, which can be a `TransactionSignerAccount` or
46
+ * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
47
+ * @example
48
+ * ```typescript
49
+ * const accountManager = AlgorandClient.mainnet()
50
+ * .setSignerFromAccount(algosdk.generateAccount())
51
+ * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))
52
+ * .setSignerFromAccount(new SigningAccount(mnemonic, sender))
53
+ * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: ["ADDRESS1...", "ADDRESS2..."]}, [account1, account2]))
54
+ * .setSignerFromAccount({addr: "SENDERADDRESS", signer: transactionSigner})
55
+ * ```
37
56
  * @returns The `AlgorandClient` so method calls can be chained
38
57
  */
39
- setSignerFromAccount(account: TransactionSignerAccount | SendTransactionFrom): this;
58
+ setSignerFromAccount(account: TransactionSignerAccount | TransactionSignerAccount | Account | LogicSigAccount | SigningAccount | MultisigAccount): this;
40
59
  /**
41
- * Tracks the given account for later signing.
60
+ * Tracks the given signer against the given sender for later signing.
42
61
  * @param sender The sender address to use this signer for
43
62
  * @param signer The signer to sign transactions with for the given sender
44
63
  * @returns The `AlgorandClient` so method calls can be chained
45
64
  */
46
- setSigner(sender: string, signer: algosdk.TransactionSigner): this;
65
+ setSigner(sender: string | Address, signer: algosdk.TransactionSigner): this;
47
66
  /**
48
- * Sets a cache value to use for suggested params.
67
+ * Sets a cache value to use for suggested transaction params.
49
68
  * @param suggestedParams The suggested params to use
50
69
  * @param until A date until which to cache, or if not specified then the timeout is used
51
70
  * @returns The `AlgorandClient` so method calls can be chained
52
71
  */
53
- setSuggestedParams(suggestedParams: algosdk.SuggestedParams, until?: Date): this;
72
+ setSuggestedParamsCache(suggestedParams: algosdk.SuggestedParams, until?: Date): this;
54
73
  /**
55
74
  * Sets the timeout for caching suggested params.
56
75
  * @param timeout The timeout in milliseconds
57
76
  * @returns The `AlgorandClient` so method calls can be chained
58
77
  */
59
- setSuggestedParamsTimeout(timeout: number): this;
78
+ setSuggestedParamsCacheTimeout(timeout: number): this;
60
79
  /** Get suggested params for a transaction (either cached or from algod if the cache is stale or empty) */
61
80
  getSuggestedParams(): Promise<algosdk.SuggestedParams>;
62
81
  /** Get clients, including algosdk clients and app clients. */
63
82
  get client(): ClientManager;
64
83
  /** Get or create accounts that can sign transactions. */
65
84
  get account(): AccountManager;
66
- /** Start a new `AlgokitComposer` transaction group */
67
- newGroup(): AlgokitComposer;
68
- private _send;
85
+ /** Methods for interacting with assets. */
86
+ get asset(): AssetManager;
87
+ /** Methods for interacting with apps. */
88
+ get app(): AppManager;
89
+ /** Methods for deploying apps and managing app deployment metadata. */
90
+ get appDeployer(): AppDeployer;
91
+ /** Start a new `TransactionComposer` transaction group */
92
+ newGroup(): TransactionComposer;
69
93
  /**
70
- * Methods for sending a single transaction.
94
+ * Methods for sending a transaction.
71
95
  */
72
- send: {
73
- /**
74
- * Send a payment transaction.
75
- */
76
- payment: (params: import("./composer").PaymentParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
77
- /**
78
- * Create an asset.
79
- */
80
- assetCreate: (params: import("./composer").AssetCreateParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
81
- /**
82
- * Configure an existing asset.
83
- */
84
- assetConfig: (params: import("./composer").AssetConfigParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
85
- /**
86
- * Freeze or unfreeze an asset.
87
- */
88
- assetFreeze: (params: import("./composer").AssetFreezeParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
89
- /**
90
- * Destroy an asset.
91
- */
92
- assetDestroy: (params: import("./composer").AssetDestroyParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
93
- /**
94
- * Transfer an asset.
95
- */
96
- assetTransfer: (params: import("./composer").AssetTransferParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
97
- /**
98
- * Opt an account into an asset.
99
- */
100
- assetOptIn: (params: import("./composer").AssetOptInParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
101
- /**
102
- * Call a smart contract.
103
- *
104
- * Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
105
- */
106
- appCall: (params: import("./composer").AppCallParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
107
- /**
108
- * Call a smart contract ABI method.
109
- *
110
- * Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
111
- */
112
- methodCall: (params: MethodCallParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
113
- /** Register an online key. */
114
- onlineKeyRegistration: (params: import("./composer").OnlineKeyRegistrationParams, config?: ExecuteParams) => Promise<SendSingleTransactionResult>;
115
- };
116
- private _transaction;
96
+ get send(): AlgorandClientTransactionSender;
117
97
  /**
118
- * Methods for building transactions
98
+ * Methods for creating a transaction.
119
99
  */
120
- transactions: {
121
- /** Create a payment transaction. */
122
- payment: (params: import("./composer").PaymentParams) => Promise<Transaction>;
123
- /** Create an asset creation transaction. */
124
- assetCreate: (params: import("./composer").AssetCreateParams) => Promise<Transaction>;
125
- /** Create an asset config transaction. */
126
- assetConfig: (params: import("./composer").AssetConfigParams) => Promise<Transaction>;
127
- /** Create an asset freeze transaction. */
128
- assetFreeze: (params: import("./composer").AssetFreezeParams) => Promise<Transaction>;
129
- /** Create an asset destroy transaction. */
130
- assetDestroy: (params: import("./composer").AssetDestroyParams) => Promise<Transaction>;
131
- /** Create an asset transfer transaction. */
132
- assetTransfer: (params: import("./composer").AssetTransferParams) => Promise<Transaction>;
133
- /** Create an asset opt-in transaction. */
134
- assetOptIn: (params: import("./composer").AssetOptInParams) => Promise<Transaction>;
135
- /** Create an application call transaction. */
136
- appCall: (params: import("./composer").AppCallParams) => Promise<Transaction>;
137
- /** Create an application call with ABI method call transaction. */
138
- methodCall: (params: MethodCallParams) => Promise<algosdk.Transaction[]>;
139
- /** Create an online key registration transaction. */
140
- onlineKeyRegistration: (params: import("./composer").OnlineKeyRegistrationParams) => Promise<Transaction>;
141
- };
100
+ get createTransaction(): AlgorandClientTransactionCreator;
142
101
  /**
143
102
  * Returns an `AlgorandClient` pointing at default LocalNet ports and API token.
144
103
  * @returns The `AlgorandClient`
@@ -185,5 +144,3 @@ export declare class AlgorandClient {
185
144
  */
186
145
  static fromConfig(config: AlgoConfig): AlgorandClient;
187
146
  }
188
- export default AlgorandClient;
189
- //# sourceMappingURL=algorand-client.d.ts.map
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var config = require('../config.js');
6
3
  var types_accountManager = require('./account-manager.js');
4
+ var types_algorandClientTransactionCreator = require('./algorand-client-transaction-creator.js');
5
+ var types_algorandClientTransactionSender = require('./algorand-client-transaction-sender.js');
6
+ var types_appDeployer = require('./app-deployer.js');
7
+ var types_appManager = require('./app-manager.js');
8
+ var types_assetManager = require('./asset-manager.js');
7
9
  var types_clientManager = require('./client-manager.js');
8
10
  var types_composer = require('./composer.js');
9
11
 
@@ -14,98 +16,13 @@ class AlgorandClient {
14
16
  constructor(config) {
15
17
  this._cachedSuggestedParamsTimeout = 3000; // three seconds
16
18
  this._defaultValidityWindow = undefined;
17
- /**
18
- * Methods for sending a single transaction.
19
- */
20
- this.send = {
21
- /**
22
- * Send a payment transaction.
23
- */
24
- payment: this._send((c) => c.addPayment, {
25
- preLog: (params, transaction) => `Sending ${params.amount.microAlgos} µALGOs from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
26
- }),
27
- /**
28
- * Create an asset.
29
- */
30
- assetCreate: this._send((c) => c.addAssetCreate, {
31
- postLog: (params, result) => `Created asset${params.assetName ? ` ${params.assetName} ` : ''}${params.unitName ? ` (${params.unitName}) ` : ''} with ${params.total} units and ${params.decimals ?? 0} decimals created by ${params.sender} with ID ${result.confirmation.assetIndex} via transaction ${result.txIds.at(-1)}`,
32
- }),
33
- /**
34
- * Configure an existing asset.
35
- */
36
- assetConfig: this._send((c) => c.addAssetConfig, {
37
- preLog: (params, transaction) => `Configuring asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
38
- }),
39
- /**
40
- * Freeze or unfreeze an asset.
41
- */
42
- assetFreeze: this._send((c) => c.addAssetFreeze, {
43
- preLog: (params, transaction) => `Freezing asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
44
- }),
45
- /**
46
- * Destroy an asset.
47
- */
48
- assetDestroy: this._send((c) => c.addAssetDestroy, {
49
- preLog: (params, transaction) => `Destroying asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
50
- }),
51
- /**
52
- * Transfer an asset.
53
- */
54
- assetTransfer: this._send((c) => c.addAssetTransfer, {
55
- preLog: (params, transaction) => `Transferring ${params.amount} units of asset with ID ${params.assetId} from ${params.sender} to ${params.receiver} via transaction ${transaction.txID()}`,
56
- }),
57
- /**
58
- * Opt an account into an asset.
59
- */
60
- assetOptIn: this._send((c) => c.addAssetOptIn, {
61
- preLog: (params, transaction) => `Opting in ${params.sender} to asset with ID ${params.assetId} via transaction ${transaction.txID()}`,
62
- }),
63
- /**
64
- * Call a smart contract.
65
- *
66
- * Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
67
- */
68
- appCall: this._send((c) => c.addAppCall),
69
- /**
70
- * Call a smart contract ABI method.
71
- *
72
- * Note: you may prefer to use `algorandClient.client` to get an app client for more advanced functionality.
73
- */
74
- methodCall: this._send((c) => c.addMethodCall),
75
- /** Register an online key. */
76
- onlineKeyRegistration: this._send((c) => c.addOnlineKeyRegistration, {
77
- preLog: (params, transaction) => `Registering online key for ${params.sender} via transaction ${transaction.txID()}`,
78
- }),
79
- };
80
- /**
81
- * Methods for building transactions
82
- */
83
- this.transactions = {
84
- /** Create a payment transaction. */
85
- payment: this._transaction((c) => c.addPayment),
86
- /** Create an asset creation transaction. */
87
- assetCreate: this._transaction((c) => c.addAssetCreate),
88
- /** Create an asset config transaction. */
89
- assetConfig: this._transaction((c) => c.addAssetConfig),
90
- /** Create an asset freeze transaction. */
91
- assetFreeze: this._transaction((c) => c.addAssetFreeze),
92
- /** Create an asset destroy transaction. */
93
- assetDestroy: this._transaction((c) => c.addAssetDestroy),
94
- /** Create an asset transfer transaction. */
95
- assetTransfer: this._transaction((c) => c.addAssetTransfer),
96
- /** Create an asset opt-in transaction. */
97
- assetOptIn: this._transaction((c) => c.addAssetOptIn),
98
- /** Create an application call transaction. */
99
- appCall: this._transaction((c) => c.addAppCall),
100
- /** Create an application call with ABI method call transaction. */
101
- methodCall: async (params) => {
102
- return (await this.newGroup().addMethodCall(params).build()).transactions.map((ts) => ts.txn);
103
- },
104
- /** Create an online key registration transaction. */
105
- onlineKeyRegistration: this._transaction((c) => c.addOnlineKeyRegistration),
106
- };
107
- this._clientManager = new types_clientManager.ClientManager(config);
19
+ this._clientManager = new types_clientManager.ClientManager(config, this);
108
20
  this._accountManager = new types_accountManager.AccountManager(this._clientManager);
21
+ this._appManager = new types_appManager.AppManager(this._clientManager.algod);
22
+ this._assetManager = new types_assetManager.AssetManager(this._clientManager.algod, () => this.newGroup());
23
+ this._transactionSender = new types_algorandClientTransactionSender.AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager);
24
+ this._transactionCreator = new types_algorandClientTransactionCreator.AlgorandClientTransactionCreator(() => this.newGroup());
25
+ this._appDeployer = new types_appDeployer.AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent);
109
26
  }
110
27
  /**
111
28
  * Sets the default validity window for transactions.
@@ -113,7 +30,7 @@ class AlgorandClient {
113
30
  * @returns The `AlgorandClient` so method calls can be chained
114
31
  */
115
32
  setDefaultValidityWindow(validityWindow) {
116
- this._defaultValidityWindow = validityWindow;
33
+ this._defaultValidityWindow = BigInt(validityWindow);
117
34
  return this;
118
35
  }
119
36
  /**
@@ -126,8 +43,18 @@ class AlgorandClient {
126
43
  return this;
127
44
  }
128
45
  /**
129
- * Tracks the given account for later signing.
130
- * @param account The account to register
46
+ * Tracks the given account (object that encapsulates an address and a signer) for later signing.
47
+ * @param account The account to register, which can be a `TransactionSignerAccount` or
48
+ * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
49
+ * @example
50
+ * ```typescript
51
+ * const accountManager = AlgorandClient.mainnet()
52
+ * .setSignerFromAccount(algosdk.generateAccount())
53
+ * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))
54
+ * .setSignerFromAccount(new SigningAccount(mnemonic, sender))
55
+ * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: ["ADDRESS1...", "ADDRESS2..."]}, [account1, account2]))
56
+ * .setSignerFromAccount({addr: "SENDERADDRESS", signer: transactionSigner})
57
+ * ```
131
58
  * @returns The `AlgorandClient` so method calls can be chained
132
59
  */
133
60
  setSignerFromAccount(account) {
@@ -135,7 +62,7 @@ class AlgorandClient {
135
62
  return this;
136
63
  }
137
64
  /**
138
- * Tracks the given account for later signing.
65
+ * Tracks the given signer against the given sender for later signing.
139
66
  * @param sender The sender address to use this signer for
140
67
  * @param signer The signer to sign transactions with for the given sender
141
68
  * @returns The `AlgorandClient` so method calls can be chained
@@ -145,12 +72,12 @@ class AlgorandClient {
145
72
  return this;
146
73
  }
147
74
  /**
148
- * Sets a cache value to use for suggested params.
75
+ * Sets a cache value to use for suggested transaction params.
149
76
  * @param suggestedParams The suggested params to use
150
77
  * @param until A date until which to cache, or if not specified then the timeout is used
151
78
  * @returns The `AlgorandClient` so method calls can be chained
152
79
  */
153
- setSuggestedParams(suggestedParams, until) {
80
+ setSuggestedParamsCache(suggestedParams, until) {
154
81
  this._cachedSuggestedParams = suggestedParams;
155
82
  this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout);
156
83
  return this;
@@ -160,7 +87,7 @@ class AlgorandClient {
160
87
  * @param timeout The timeout in milliseconds
161
88
  * @returns The `AlgorandClient` so method calls can be chained
162
89
  */
163
- setSuggestedParamsTimeout(timeout) {
90
+ setSuggestedParamsCacheTimeout(timeout) {
164
91
  this._cachedSuggestedParamsTimeout = timeout;
165
92
  return this;
166
93
  }
@@ -185,44 +112,39 @@ class AlgorandClient {
185
112
  get account() {
186
113
  return this._accountManager;
187
114
  }
188
- /** Start a new `AlgokitComposer` transaction group */
115
+ /** Methods for interacting with assets. */
116
+ get asset() {
117
+ return this._assetManager;
118
+ }
119
+ /** Methods for interacting with apps. */
120
+ get app() {
121
+ return this._appManager;
122
+ }
123
+ /** Methods for deploying apps and managing app deployment metadata. */
124
+ get appDeployer() {
125
+ return this._appDeployer;
126
+ }
127
+ /** Start a new `TransactionComposer` transaction group */
189
128
  newGroup() {
190
- return new types_composer({
129
+ return new types_composer.TransactionComposer({
191
130
  algod: this.client.algod,
192
131
  getSigner: (addr) => this.account.getSigner(addr),
193
132
  getSuggestedParams: () => this.getSuggestedParams(),
194
133
  defaultValidityWindow: this._defaultValidityWindow,
134
+ appManager: this._appManager,
195
135
  });
196
136
  }
197
- _send(c, log) {
198
- return async (params, config$1) => {
199
- const composer = this.newGroup();
200
- // Ensure `this` is properly populated
201
- c(composer).apply(composer, [params]);
202
- if (log?.preLog) {
203
- const transaction = (await composer.build()).transactions.at(-1).txn;
204
- config.Config.getLogger(config$1?.suppressLog).debug(log.preLog(params, transaction));
205
- }
206
- const rawResult = await composer.execute(config$1);
207
- const result = {
208
- // Last item covers when a group is created by an app call with ABI transaction parameters
209
- transaction: rawResult.transactions[rawResult.transactions.length - 1],
210
- confirmation: rawResult.confirmations[rawResult.confirmations.length - 1],
211
- txId: rawResult.txIds[0],
212
- ...rawResult,
213
- };
214
- if (log?.postLog) {
215
- config.Config.getLogger(config$1?.suppressLog).debug(log.postLog(params, result));
216
- }
217
- return result;
218
- };
137
+ /**
138
+ * Methods for sending a transaction.
139
+ */
140
+ get send() {
141
+ return this._transactionSender;
219
142
  }
220
- _transaction(c) {
221
- return async (params) => {
222
- const composer = this.newGroup();
223
- const result = await c(composer).apply(composer, [params]).build();
224
- return result.transactions.map((ts) => ts.txn)[0];
225
- };
143
+ /**
144
+ * Methods for creating a transaction.
145
+ */
146
+ get createTransaction() {
147
+ return this._transactionCreator;
226
148
  }
227
149
  // Static methods to create an `AlgorandClient`
228
150
  /**
@@ -297,5 +219,4 @@ class AlgorandClient {
297
219
  }
298
220
 
299
221
  exports.AlgorandClient = AlgorandClient;
300
- exports.default = AlgorandClient;
301
222
  //# sourceMappingURL=algorand-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":["ClientManager","AccountManager","AlgokitComposer","config","Config"],"mappings":"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"}
1
+ {"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":["import algosdk, { Address } from 'algosdk'\nimport { MultisigAccount, SigningAccount, TransactionSignerAccount } from './account'\nimport { AccountManager } from './account-manager'\nimport { AlgorandClientInterface } from './algorand-client-interface'\nimport { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from './algorand-client-transaction-sender'\nimport { AppDeployer } from './app-deployer'\nimport { AppManager } from './app-manager'\nimport { AssetManager } from './asset-manager'\nimport { AlgoSdkClients, ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\nimport { AlgoConfig } from './network-client'\nimport Account = algosdk.Account\nimport LogicSigAccount = algosdk.LogicSigAccount\n\n/**\n * A client that brokers easy access to Algorand functionality.\n */\nexport class AlgorandClient implements AlgorandClientInterface {\n private _clientManager: ClientManager\n private _accountManager: AccountManager\n private _appManager: AppManager\n private _appDeployer: AppDeployer\n private _assetManager: AssetManager\n private _transactionSender: AlgorandClientTransactionSender\n private _transactionCreator: AlgorandClientTransactionCreator\n\n private _cachedSuggestedParams?: algosdk.SuggestedParams\n private _cachedSuggestedParamsExpiry?: Date\n private _cachedSuggestedParamsTimeout: number = 3_000 // three seconds\n\n private _defaultValidityWindow: bigint | undefined = undefined\n\n private constructor(config: AlgoConfig | AlgoSdkClients) {\n this._clientManager = new ClientManager(config, this)\n this._accountManager = new AccountManager(this._clientManager)\n this._appManager = new AppManager(this._clientManager.algod)\n this._assetManager = new AssetManager(this._clientManager.algod, () => this.newGroup())\n this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager)\n this._transactionCreator = new AlgorandClientTransactionCreator(() => this.newGroup())\n this._appDeployer = new AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent)\n }\n\n /**\n * Sets the default validity window for transactions.\n * @param validityWindow The number of rounds between the first and last valid rounds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultValidityWindow(validityWindow: number | bigint) {\n this._defaultValidityWindow = BigInt(validityWindow)\n return this\n }\n\n /**\n * Sets the default signer to use if no other signer is specified.\n * @param signer The signer to use, either a `TransactionSigner` or a `TransactionSignerAccount`\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultSigner(signer: algosdk.TransactionSigner | TransactionSignerAccount): AlgorandClient {\n this._accountManager.setDefaultSigner(signer)\n return this\n }\n\n /**\n * Tracks the given account (object that encapsulates an address and a signer) for later signing.\n * @param account The account to register, which can be a `TransactionSignerAccount` or\n * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`\n * @example\n * ```typescript\n * const accountManager = AlgorandClient.mainnet()\n * .setSignerFromAccount(algosdk.generateAccount())\n * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))\n * .setSignerFromAccount(new SigningAccount(mnemonic, sender))\n * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: [\"ADDRESS1...\", \"ADDRESS2...\"]}, [account1, account2]))\n * .setSignerFromAccount({addr: \"SENDERADDRESS\", signer: transactionSigner})\n * ```\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSignerFromAccount(\n account: TransactionSignerAccount | TransactionSignerAccount | Account | LogicSigAccount | SigningAccount | MultisigAccount,\n ) {\n this._accountManager.setSignerFromAccount(account)\n return this\n }\n\n /**\n * Tracks the given signer against the given sender for later signing.\n * @param sender The sender address to use this signer for\n * @param signer The signer to sign transactions with for the given sender\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSigner(sender: string | Address, signer: algosdk.TransactionSigner) {\n this._accountManager.setSigner(sender, signer)\n return this\n }\n\n /**\n * Sets a cache value to use for suggested transaction params.\n * @param suggestedParams The suggested params to use\n * @param until A date until which to cache, or if not specified then the timeout is used\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCache(suggestedParams: algosdk.SuggestedParams, until?: Date) {\n this._cachedSuggestedParams = suggestedParams\n this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout)\n return this\n }\n\n /**\n * Sets the timeout for caching suggested params.\n * @param timeout The timeout in milliseconds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCacheTimeout(timeout: number) {\n this._cachedSuggestedParamsTimeout = timeout\n return this\n }\n\n /** Get suggested params for a transaction (either cached or from algod if the cache is stale or empty) */\n public async getSuggestedParams(): Promise<algosdk.SuggestedParams> {\n if (this._cachedSuggestedParams && (!this._cachedSuggestedParamsExpiry || this._cachedSuggestedParamsExpiry > new Date())) {\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n this._cachedSuggestedParams = await this._clientManager.algod.getTransactionParams().do()\n this._cachedSuggestedParamsExpiry = new Date(new Date().getTime() + this._cachedSuggestedParamsTimeout)\n\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n /** Get clients, including algosdk clients and app clients. */\n public get client() {\n return this._clientManager\n }\n\n /** Get or create accounts that can sign transactions. */\n public get account() {\n return this._accountManager\n }\n\n /** Methods for interacting with assets. */\n public get asset() {\n return this._assetManager\n }\n\n /** Methods for interacting with apps. */\n public get app() {\n return this._appManager\n }\n\n /** Methods for deploying apps and managing app deployment metadata. */\n public get appDeployer() {\n return this._appDeployer\n }\n\n /** Start a new `TransactionComposer` transaction group */\n public newGroup() {\n return new TransactionComposer({\n algod: this.client.algod,\n getSigner: (addr: string | Address) => this.account.getSigner(addr),\n getSuggestedParams: () => this.getSuggestedParams(),\n defaultValidityWindow: this._defaultValidityWindow,\n appManager: this._appManager,\n })\n }\n\n /**\n * Methods for sending a transaction.\n */\n public get send() {\n return this._transactionSender\n }\n\n /**\n * Methods for creating a transaction.\n */\n public get createTransaction() {\n return this._transactionCreator\n }\n\n // Static methods to create an `AlgorandClient`\n\n /**\n * Returns an `AlgorandClient` pointing at default LocalNet ports and API token.\n * @returns The `AlgorandClient`\n */\n public static defaultLocalNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getDefaultLocalNetConfig('algod'),\n indexerConfig: ClientManager.getDefaultLocalNetConfig('indexer'),\n kmdConfig: ClientManager.getDefaultLocalNetConfig('kmd'),\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at TestNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static testNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('testnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('testnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at MainNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static mainNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('mainnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('mainnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing to the given client(s).\n * @param clients The clients to use\n * @returns The `AlgorandClient`\n */\n public static fromClients(clients: AlgoSdkClients) {\n return new AlgorandClient(clients)\n }\n\n /**\n * Returns an `AlgorandClient` loading the configuration from environment variables.\n *\n * Retrieve configurations from environment variables when defined or get default LocalNet configuration if they aren't defined.\n *\n * Expects to be called from a Node.js environment.\n *\n * If `process.env.ALGOD_SERVER` is defined it will use that along with optional `process.env.ALGOD_PORT` and `process.env.ALGOD_TOKEN`.\n *\n * If `process.env.INDEXER_SERVER` is defined it will use that along with optional `process.env.INDEXER_PORT` and `process.env.INDEXER_TOKEN`.\n *\n * If either aren't defined it will use the default LocalNet config.\n *\n * It will return a KMD configuration that uses `process.env.KMD_PORT` (or port 4002) if `process.env.ALGOD_SERVER` is defined,\n * otherwise it will use the default LocalNet config unless it detects testnet or mainnet.\n * @returns The `AlgorandClient`\n */\n public static fromEnvironment() {\n return new AlgorandClient(ClientManager.getConfigFromEnvironmentOrLocalNet())\n }\n\n /**\n * Returns an `AlgorandClient` from the given config.\n * @param config The config to use\n * @returns The `AlgorandClient`\n */\n public static fromConfig(config: AlgoConfig) {\n return new AlgorandClient(config)\n }\n}\n"],"names":["ClientManager","AccountManager","AppManager","AssetManager","AlgorandClientTransactionSender","AlgorandClientTransactionCreator","AppDeployer","TransactionComposer"],"mappings":"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"}