@algorandfoundation/algokit-utils 10.0.0-alpha.8 → 10.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1605) hide show
  1. package/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +2 -13
  2. package/abi/index.d.ts +2 -1
  3. package/abi/index.js +8 -5
  4. package/abi/index.mjs +2 -2
  5. package/account-manager.d.ts +447 -0
  6. package/account-manager.js +617 -0
  7. package/account-manager.js.map +1 -0
  8. package/account-manager.mjs +613 -0
  9. package/account-manager.mjs.map +1 -0
  10. package/account.d.ts +151 -0
  11. package/account.js +10 -0
  12. package/account.js.map +1 -0
  13. package/account.mjs +9 -0
  14. package/account.mjs.map +1 -0
  15. package/algo25/index.js +3 -3
  16. package/algo25/index.mjs +1 -2
  17. package/algod-client/index.d.ts +3 -4
  18. package/algod-client/index.js +10 -12
  19. package/algod-client/index.mjs +2 -3
  20. package/algorand-client-transaction-creator.d.ts +891 -0
  21. package/algorand-client-transaction-creator.js +735 -0
  22. package/algorand-client-transaction-creator.js.map +1 -0
  23. package/algorand-client-transaction-creator.mjs +734 -0
  24. package/algorand-client-transaction-creator.mjs.map +1 -0
  25. package/algorand-client-transaction-sender.d.ts +1098 -0
  26. package/algorand-client-transaction-sender.js +927 -0
  27. package/algorand-client-transaction-sender.js.map +1 -0
  28. package/algorand-client-transaction-sender.mjs +925 -0
  29. package/algorand-client-transaction-sender.mjs.map +1 -0
  30. package/algorand-client.d.ts +266 -0
  31. package/algorand-client.js +349 -0
  32. package/algorand-client.js.map +1 -0
  33. package/algorand-client.mjs +348 -0
  34. package/algorand-client.mjs.map +1 -0
  35. package/amount.d.ts +58 -3
  36. package/amount.js +110 -19
  37. package/amount.js.map +1 -1
  38. package/amount.mjs +101 -12
  39. package/amount.mjs.map +1 -1
  40. package/app-client.d.ts +1042 -0
  41. package/app-client.js +911 -0
  42. package/app-client.js.map +1 -0
  43. package/app-client.mjs +909 -0
  44. package/app-client.mjs.map +1 -0
  45. package/app-deployer.d.ts +159 -0
  46. package/app-deployer.js +353 -0
  47. package/app-deployer.js.map +1 -0
  48. package/app-deployer.mjs +352 -0
  49. package/app-deployer.mjs.map +1 -0
  50. package/app-factory.d.ts +791 -0
  51. package/app-factory.js +448 -0
  52. package/app-factory.js.map +1 -0
  53. package/app-factory.mjs +447 -0
  54. package/app-factory.mjs.map +1 -0
  55. package/app-manager.d.ts +323 -0
  56. package/app-manager.js +466 -0
  57. package/app-manager.js.map +1 -0
  58. package/app-manager.mjs +465 -0
  59. package/app-manager.mjs.map +1 -0
  60. package/app-spec.d.ts +200 -0
  61. package/app-spec.js +137 -0
  62. package/app-spec.js.map +1 -0
  63. package/app-spec.mjs +136 -0
  64. package/app-spec.mjs.map +1 -0
  65. package/app.d.ts +251 -0
  66. package/app.js +49 -0
  67. package/app.js.map +1 -0
  68. package/app.mjs +42 -0
  69. package/app.mjs.map +1 -0
  70. package/asset-manager.d.ts +215 -0
  71. package/asset-manager.js +169 -0
  72. package/asset-manager.js.map +1 -0
  73. package/asset-manager.mjs +168 -0
  74. package/asset-manager.mjs.map +1 -0
  75. package/async-event-emitter.d.ts +16 -0
  76. package/async-event-emitter.js +38 -0
  77. package/async-event-emitter.js.map +1 -0
  78. package/async-event-emitter.mjs +37 -0
  79. package/async-event-emitter.mjs.map +1 -0
  80. package/client-manager.d.ts +475 -0
  81. package/client-manager.js +616 -0
  82. package/client-manager.js.map +1 -0
  83. package/client-manager.mjs +615 -0
  84. package/client-manager.mjs.map +1 -0
  85. package/common/index.d.ts +28 -0
  86. package/common/index.js +109 -0
  87. package/common/index.mjs +25 -0
  88. package/composer.d.ts +942 -0
  89. package/composer.js +1583 -0
  90. package/composer.js.map +1 -0
  91. package/composer.mjs +1581 -0
  92. package/composer.mjs.map +1 -0
  93. package/config.d.ts +1 -1
  94. package/config.js +3 -4
  95. package/config.js.map +1 -1
  96. package/config.mjs +2 -3
  97. package/config.mjs.map +1 -1
  98. package/crypto/index.d.ts +5 -0
  99. package/crypto/index.js +13 -0
  100. package/crypto/index.mjs +5 -0
  101. package/debugging.d.ts +41 -0
  102. package/debugging.js +20 -0
  103. package/debugging.js.map +1 -0
  104. package/debugging.mjs +15 -0
  105. package/debugging.mjs.map +1 -0
  106. package/dispenser-client.d.ts +91 -0
  107. package/dispenser-client.js +128 -0
  108. package/dispenser-client.js.map +1 -0
  109. package/dispenser-client.mjs +127 -0
  110. package/dispenser-client.mjs.map +1 -0
  111. package/expand.d.ts +2 -0
  112. package/expand.js +0 -0
  113. package/expand.mjs +0 -0
  114. package/index.d.ts +28 -7
  115. package/index.js +45 -17
  116. package/index.mjs +21 -7
  117. package/indexer-client/index.d.ts +2 -2
  118. package/indexer-client/index.js +12 -12
  119. package/indexer-client/index.mjs +2 -3
  120. package/{indexer-lookup.d.ts → indexer-client/indexer-lookup.d.ts} +8 -11
  121. package/{indexer-lookup.js → indexer-client/indexer-lookup.js} +4 -16
  122. package/indexer-client/indexer-lookup.js.map +1 -0
  123. package/{indexer-lookup.mjs → indexer-client/indexer-lookup.mjs} +3 -11
  124. package/indexer-client/indexer-lookup.mjs.map +1 -0
  125. package/indexer.d.ts +40 -0
  126. package/indexer.js +38 -0
  127. package/indexer.js.map +1 -0
  128. package/indexer.mjs +35 -0
  129. package/indexer.mjs.map +1 -0
  130. package/instance-of.d.ts +8 -0
  131. package/kmd-account-manager.d.ts +74 -0
  132. package/kmd-account-manager.js +167 -0
  133. package/kmd-account-manager.js.map +1 -0
  134. package/kmd-account-manager.mjs +164 -0
  135. package/kmd-account-manager.mjs.map +1 -0
  136. package/kmd-client/index.d.ts +1 -2
  137. package/kmd-client/index.js +7 -12
  138. package/kmd-client/index.mjs +1 -3
  139. package/lifecycle-events.d.ts +14 -0
  140. package/lifecycle-events.js +11 -0
  141. package/lifecycle-events.js.map +1 -0
  142. package/lifecycle-events.mjs +10 -0
  143. package/lifecycle-events.mjs.map +1 -0
  144. package/logging.d.ts +13 -0
  145. package/logging.js +47 -0
  146. package/logging.js.map +1 -0
  147. package/logging.mjs +42 -0
  148. package/logging.mjs.map +1 -0
  149. package/logic-error.d.ts +39 -0
  150. package/logic-error.js +54 -0
  151. package/logic-error.js.map +1 -0
  152. package/logic-error.mjs +53 -0
  153. package/logic-error.mjs.map +1 -0
  154. package/network-client.d.ts +43 -0
  155. package/network-client.js +14 -0
  156. package/network-client.js.map +1 -0
  157. package/network-client.mjs +13 -0
  158. package/network-client.mjs.map +1 -0
  159. package/network-manager.d.ts +143 -0
  160. package/network-manager.js +190 -0
  161. package/network-manager.js.map +1 -0
  162. package/network-manager.mjs +189 -0
  163. package/network-manager.mjs.map +1 -0
  164. package/package.json +34 -8
  165. package/packages/abi/src/abi-method.d.ts +7 -12
  166. package/packages/abi/src/abi-method.js +20 -22
  167. package/packages/abi/src/abi-method.js.map +1 -1
  168. package/packages/abi/src/abi-method.mjs +18 -19
  169. package/packages/abi/src/abi-method.mjs.map +1 -1
  170. package/packages/abi/src/abi-type.d.ts +2 -7
  171. package/packages/abi/src/abi-type.js +28 -60
  172. package/packages/abi/src/abi-type.js.map +1 -1
  173. package/packages/abi/src/abi-type.mjs +25 -57
  174. package/packages/abi/src/abi-type.mjs.map +1 -1
  175. package/packages/abi/src/arc28-event.d.ts +4 -10
  176. package/packages/abi/src/arc56-contract.d.ts +66 -155
  177. package/packages/abi/src/arc56-contract.js +3 -3
  178. package/packages/abi/src/arc56-contract.js.map +1 -1
  179. package/packages/abi/src/arc56-contract.mjs +2 -2
  180. package/packages/abi/src/arc56-contract.mjs.map +1 -1
  181. package/packages/abi/src/bigint.js +1 -2
  182. package/packages/abi/src/bigint.js.map +1 -1
  183. package/packages/abi/src/bigint.mjs +1 -1
  184. package/packages/abi/src/utils.d.ts +21 -0
  185. package/packages/abi/src/utils.js +56 -0
  186. package/packages/abi/src/utils.js.map +1 -0
  187. package/packages/abi/src/utils.mjs +55 -0
  188. package/packages/abi/src/utils.mjs.map +1 -0
  189. package/packages/algo25/src/english.js +2 -4
  190. package/packages/algo25/src/english.js.map +1 -1
  191. package/packages/algo25/src/english.mjs +2 -3
  192. package/packages/algo25/src/english.mjs.map +1 -1
  193. package/packages/algo25/src/index.d.ts +2 -2
  194. package/packages/algo25/src/index.js +4 -5
  195. package/packages/algo25/src/index.js.map +1 -1
  196. package/packages/algo25/src/index.mjs +6 -7
  197. package/packages/algo25/src/index.mjs.map +1 -1
  198. package/packages/algod_client/src/apis/api-service.d.ts +44 -44
  199. package/packages/algod_client/src/apis/api-service.js +186 -187
  200. package/packages/algod_client/src/apis/api-service.js.map +1 -1
  201. package/packages/algod_client/src/apis/api-service.mjs +156 -157
  202. package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
  203. package/packages/algod_client/src/client.js +3 -4
  204. package/packages/algod_client/src/client.js.map +1 -1
  205. package/packages/algod_client/src/client.mjs +1 -2
  206. package/packages/algod_client/src/client.mjs.map +1 -1
  207. package/packages/algod_client/src/core/api-error.js +4 -3
  208. package/packages/algod_client/src/core/api-error.js.map +1 -1
  209. package/packages/algod_client/src/core/api-error.mjs +4 -2
  210. package/packages/algod_client/src/core/api-error.mjs.map +1 -1
  211. package/packages/algod_client/src/core/base-http-request.js +1 -2
  212. package/packages/algod_client/src/core/base-http-request.js.map +1 -1
  213. package/packages/algod_client/src/core/base-http-request.mjs +1 -1
  214. package/packages/algod_client/src/core/base-http-request.mjs.map +1 -1
  215. package/packages/algod_client/src/core/fetch-http-request.js +3 -4
  216. package/packages/algod_client/src/core/fetch-http-request.js.map +1 -1
  217. package/packages/algod_client/src/core/fetch-http-request.mjs +1 -2
  218. package/packages/algod_client/src/core/fetch-http-request.mjs.map +1 -1
  219. package/packages/algod_client/src/core/model-runtime.js +10 -11
  220. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  221. package/packages/algod_client/src/core/model-runtime.mjs +9 -10
  222. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  223. package/packages/algod_client/src/core/request.js +5 -6
  224. package/packages/algod_client/src/core/request.js.map +1 -1
  225. package/packages/algod_client/src/core/request.mjs +1 -2
  226. package/packages/algod_client/src/core/request.mjs.map +1 -1
  227. package/packages/algod_client/src/models/account-application-response.js +5 -6
  228. package/packages/algod_client/src/models/account-application-response.js.map +1 -1
  229. package/packages/algod_client/src/models/account-application-response.mjs +1 -2
  230. package/packages/algod_client/src/models/account-application-response.mjs.map +1 -1
  231. package/packages/algod_client/src/models/account-asset-response.js +5 -6
  232. package/packages/algod_client/src/models/account-asset-response.js.map +1 -1
  233. package/packages/algod_client/src/models/account-asset-response.mjs +1 -2
  234. package/packages/algod_client/src/models/account-asset-response.mjs.map +1 -1
  235. package/packages/algod_client/src/models/account-participation.js +6 -7
  236. package/packages/algod_client/src/models/account-participation.js.map +1 -1
  237. package/packages/algod_client/src/models/account-participation.mjs +5 -6
  238. package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
  239. package/packages/algod_client/src/models/account-state-delta.d.ts +0 -1
  240. package/packages/algod_client/src/models/account-state-delta.js +4 -5
  241. package/packages/algod_client/src/models/account-state-delta.js.map +1 -1
  242. package/packages/algod_client/src/models/account-state-delta.mjs +1 -2
  243. package/packages/algod_client/src/models/account-state-delta.mjs.map +1 -1
  244. package/packages/algod_client/src/models/account.d.ts +0 -1
  245. package/packages/algod_client/src/models/account.js +14 -15
  246. package/packages/algod_client/src/models/account.js.map +1 -1
  247. package/packages/algod_client/src/models/account.mjs +1 -2
  248. package/packages/algod_client/src/models/account.mjs.map +1 -1
  249. package/packages/algod_client/src/models/application-initial-states.d.ts +0 -1
  250. package/packages/algod_client/src/models/application-initial-states.js +5 -6
  251. package/packages/algod_client/src/models/application-initial-states.js.map +1 -1
  252. package/packages/algod_client/src/models/application-initial-states.mjs +1 -2
  253. package/packages/algod_client/src/models/application-initial-states.mjs.map +1 -1
  254. package/packages/algod_client/src/models/application-kv-storage.d.ts +0 -1
  255. package/packages/algod_client/src/models/application-kv-storage.js +5 -6
  256. package/packages/algod_client/src/models/application-kv-storage.js.map +1 -1
  257. package/packages/algod_client/src/models/application-kv-storage.mjs +1 -2
  258. package/packages/algod_client/src/models/application-kv-storage.mjs.map +1 -1
  259. package/packages/algod_client/src/models/application-local-state.d.ts +0 -1
  260. package/packages/algod_client/src/models/application-local-state.js +6 -7
  261. package/packages/algod_client/src/models/application-local-state.js.map +1 -1
  262. package/packages/algod_client/src/models/application-local-state.mjs +1 -2
  263. package/packages/algod_client/src/models/application-local-state.mjs.map +1 -1
  264. package/packages/algod_client/src/models/application-params.d.ts +0 -1
  265. package/packages/algod_client/src/models/application-params.js +8 -9
  266. package/packages/algod_client/src/models/application-params.js.map +1 -1
  267. package/packages/algod_client/src/models/application-params.mjs +1 -2
  268. package/packages/algod_client/src/models/application-params.mjs.map +1 -1
  269. package/packages/algod_client/src/models/application-state-operation.d.ts +0 -1
  270. package/packages/algod_client/src/models/application-state-operation.js +6 -7
  271. package/packages/algod_client/src/models/application-state-operation.js.map +1 -1
  272. package/packages/algod_client/src/models/application-state-operation.mjs +1 -2
  273. package/packages/algod_client/src/models/application-state-operation.mjs.map +1 -1
  274. package/packages/algod_client/src/models/application-state-schema.js +2 -3
  275. package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
  276. package/packages/algod_client/src/models/application-state-schema.mjs +1 -2
  277. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
  278. package/packages/algod_client/src/models/application.d.ts +0 -1
  279. package/packages/algod_client/src/models/application.js +4 -5
  280. package/packages/algod_client/src/models/application.js.map +1 -1
  281. package/packages/algod_client/src/models/application.mjs +1 -2
  282. package/packages/algod_client/src/models/application.mjs.map +1 -1
  283. package/packages/algod_client/src/models/asset-holding.js +3 -4
  284. package/packages/algod_client/src/models/asset-holding.js.map +1 -1
  285. package/packages/algod_client/src/models/asset-holding.mjs +1 -2
  286. package/packages/algod_client/src/models/asset-holding.mjs.map +1 -1
  287. package/packages/algod_client/src/models/asset-params.js +8 -8
  288. package/packages/algod_client/src/models/asset-params.js.map +1 -1
  289. package/packages/algod_client/src/models/asset-params.mjs +3 -3
  290. package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
  291. package/packages/algod_client/src/models/asset.d.ts +0 -1
  292. package/packages/algod_client/src/models/asset.js +4 -5
  293. package/packages/algod_client/src/models/asset.js.map +1 -1
  294. package/packages/algod_client/src/models/asset.mjs +1 -2
  295. package/packages/algod_client/src/models/asset.mjs.map +1 -1
  296. package/packages/algod_client/src/models/avm-key-value.d.ts +0 -1
  297. package/packages/algod_client/src/models/avm-key-value.js +4 -5
  298. package/packages/algod_client/src/models/avm-key-value.js.map +1 -1
  299. package/packages/algod_client/src/models/avm-key-value.mjs +1 -2
  300. package/packages/algod_client/src/models/avm-key-value.mjs.map +1 -1
  301. package/packages/algod_client/src/models/avm-value.js +4 -6
  302. package/packages/algod_client/src/models/avm-value.js.map +1 -1
  303. package/packages/algod_client/src/models/avm-value.mjs +1 -2
  304. package/packages/algod_client/src/models/avm-value.mjs.map +1 -1
  305. package/packages/algod_client/src/models/block-hash-response.js +2 -4
  306. package/packages/algod_client/src/models/block-hash-response.js.map +1 -1
  307. package/packages/algod_client/src/models/block-hash-response.mjs +1 -2
  308. package/packages/algod_client/src/models/block-hash-response.mjs.map +1 -1
  309. package/packages/algod_client/src/models/block-response.d.ts +1 -3
  310. package/packages/algod_client/src/models/block-response.js +4 -7
  311. package/packages/algod_client/src/models/block-response.js.map +1 -1
  312. package/packages/algod_client/src/models/block-response.mjs +3 -5
  313. package/packages/algod_client/src/models/block-response.mjs.map +1 -1
  314. package/packages/algod_client/src/models/block-txids-response.js +2 -4
  315. package/packages/algod_client/src/models/block-txids-response.js.map +1 -1
  316. package/packages/algod_client/src/models/block-txids-response.mjs +1 -2
  317. package/packages/algod_client/src/models/block-txids-response.mjs.map +1 -1
  318. package/packages/algod_client/src/models/block.d.ts +60 -92
  319. package/packages/algod_client/src/models/block.js +194 -119
  320. package/packages/algod_client/src/models/block.js.map +1 -1
  321. package/packages/algod_client/src/models/block.mjs +184 -109
  322. package/packages/algod_client/src/models/block.mjs.map +1 -1
  323. package/packages/algod_client/src/models/box-descriptor.js +2 -4
  324. package/packages/algod_client/src/models/box-descriptor.js.map +1 -1
  325. package/packages/algod_client/src/models/box-descriptor.mjs +1 -2
  326. package/packages/algod_client/src/models/box-descriptor.mjs.map +1 -1
  327. package/packages/algod_client/src/models/box.js +3 -4
  328. package/packages/algod_client/src/models/box.js.map +1 -1
  329. package/packages/algod_client/src/models/box.mjs +1 -2
  330. package/packages/algod_client/src/models/box.mjs.map +1 -1
  331. package/packages/algod_client/src/models/boxes-response.js +4 -5
  332. package/packages/algod_client/src/models/boxes-response.js.map +1 -1
  333. package/packages/algod_client/src/models/boxes-response.mjs +1 -2
  334. package/packages/algod_client/src/models/boxes-response.mjs.map +1 -1
  335. package/packages/algod_client/src/models/build-version.js +3 -4
  336. package/packages/algod_client/src/models/build-version.js.map +1 -1
  337. package/packages/algod_client/src/models/build-version.mjs +1 -2
  338. package/packages/algod_client/src/models/build-version.mjs.map +1 -1
  339. package/packages/algod_client/src/models/compile-response.js +4 -5
  340. package/packages/algod_client/src/models/compile-response.js.map +1 -1
  341. package/packages/algod_client/src/models/compile-response.mjs +1 -2
  342. package/packages/algod_client/src/models/compile-response.mjs.map +1 -1
  343. package/packages/algod_client/src/models/disassemble-response.js +2 -4
  344. package/packages/algod_client/src/models/disassemble-response.js.map +1 -1
  345. package/packages/algod_client/src/models/disassemble-response.mjs +1 -2
  346. package/packages/algod_client/src/models/disassemble-response.mjs.map +1 -1
  347. package/packages/algod_client/src/models/eval-delta-key-value.d.ts +0 -1
  348. package/packages/algod_client/src/models/eval-delta-key-value.js +5 -6
  349. package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -1
  350. package/packages/algod_client/src/models/eval-delta-key-value.mjs +3 -4
  351. package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -1
  352. package/packages/algod_client/src/models/eval-delta.js +5 -7
  353. package/packages/algod_client/src/models/eval-delta.js.map +1 -1
  354. package/packages/algod_client/src/models/eval-delta.mjs +3 -4
  355. package/packages/algod_client/src/models/eval-delta.mjs.map +1 -1
  356. package/packages/algod_client/src/models/genesis-allocation.js +59 -62
  357. package/packages/algod_client/src/models/genesis-allocation.js.map +1 -1
  358. package/packages/algod_client/src/models/genesis-allocation.mjs +55 -58
  359. package/packages/algod_client/src/models/genesis-allocation.mjs.map +1 -1
  360. package/packages/algod_client/src/models/genesis.js +7 -8
  361. package/packages/algod_client/src/models/genesis.js.map +1 -1
  362. package/packages/algod_client/src/models/genesis.mjs +1 -2
  363. package/packages/algod_client/src/models/genesis.mjs.map +1 -1
  364. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js +2 -4
  365. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js.map +1 -1
  366. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs +1 -2
  367. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs.map +1 -1
  368. package/packages/algod_client/src/models/get-sync-round-response.js +2 -4
  369. package/packages/algod_client/src/models/get-sync-round-response.js.map +1 -1
  370. package/packages/algod_client/src/models/get-sync-round-response.mjs +1 -2
  371. package/packages/algod_client/src/models/get-sync-round-response.mjs.map +1 -1
  372. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.d.ts +0 -1
  373. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js +4 -5
  374. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js.map +1 -1
  375. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs +1 -2
  376. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs.map +1 -1
  377. package/packages/algod_client/src/models/ledger-state-delta.d.ts +3 -8
  378. package/packages/algod_client/src/models/ledger-state-delta.js +99 -102
  379. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
  380. package/packages/algod_client/src/models/ledger-state-delta.mjs +207 -212
  381. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
  382. package/packages/algod_client/src/models/light-block-header-proof.js +3 -4
  383. package/packages/algod_client/src/models/light-block-header-proof.js.map +1 -1
  384. package/packages/algod_client/src/models/light-block-header-proof.mjs +1 -2
  385. package/packages/algod_client/src/models/light-block-header-proof.mjs.map +1 -1
  386. package/packages/algod_client/src/models/node-status-response.js +5 -6
  387. package/packages/algod_client/src/models/node-status-response.js.map +1 -1
  388. package/packages/algod_client/src/models/node-status-response.mjs +1 -2
  389. package/packages/algod_client/src/models/node-status-response.mjs.map +1 -1
  390. package/packages/algod_client/src/models/pending-transaction-response.d.ts +0 -1
  391. package/packages/algod_client/src/models/pending-transaction-response.js +9 -10
  392. package/packages/algod_client/src/models/pending-transaction-response.js.map +1 -1
  393. package/packages/algod_client/src/models/pending-transaction-response.mjs +1 -2
  394. package/packages/algod_client/src/models/pending-transaction-response.mjs.map +1 -1
  395. package/packages/algod_client/src/models/pending-transactions-response.d.ts +0 -1
  396. package/packages/algod_client/src/models/pending-transactions-response.js +5 -6
  397. package/packages/algod_client/src/models/pending-transactions-response.js.map +1 -1
  398. package/packages/algod_client/src/models/pending-transactions-response.mjs +1 -2
  399. package/packages/algod_client/src/models/pending-transactions-response.mjs.map +1 -1
  400. package/packages/algod_client/src/models/post-transactions-response.js +2 -4
  401. package/packages/algod_client/src/models/post-transactions-response.js.map +1 -1
  402. package/packages/algod_client/src/models/post-transactions-response.mjs +1 -2
  403. package/packages/algod_client/src/models/post-transactions-response.mjs.map +1 -1
  404. package/packages/algod_client/src/models/scratch-change.d.ts +0 -1
  405. package/packages/algod_client/src/models/scratch-change.js +4 -5
  406. package/packages/algod_client/src/models/scratch-change.js.map +1 -1
  407. package/packages/algod_client/src/models/scratch-change.mjs +1 -2
  408. package/packages/algod_client/src/models/scratch-change.mjs.map +1 -1
  409. package/packages/algod_client/src/models/simulate-initial-states.d.ts +0 -1
  410. package/packages/algod_client/src/models/simulate-initial-states.js +4 -5
  411. package/packages/algod_client/src/models/simulate-initial-states.js.map +1 -1
  412. package/packages/algod_client/src/models/simulate-initial-states.mjs +1 -2
  413. package/packages/algod_client/src/models/simulate-initial-states.mjs.map +1 -1
  414. package/packages/algod_client/src/models/simulate-request-transaction-group.d.ts +0 -1
  415. package/packages/algod_client/src/models/simulate-request-transaction-group.js +4 -5
  416. package/packages/algod_client/src/models/simulate-request-transaction-group.js.map +1 -1
  417. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs +1 -2
  418. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs.map +1 -1
  419. package/packages/algod_client/src/models/simulate-request.d.ts +0 -1
  420. package/packages/algod_client/src/models/simulate-request.js +8 -9
  421. package/packages/algod_client/src/models/simulate-request.js.map +1 -1
  422. package/packages/algod_client/src/models/simulate-request.mjs +2 -3
  423. package/packages/algod_client/src/models/simulate-request.mjs.map +1 -1
  424. package/packages/algod_client/src/models/simulate-response.d.ts +3 -1
  425. package/packages/algod_client/src/models/simulate-response.js +18 -10
  426. package/packages/algod_client/src/models/simulate-response.js.map +1 -1
  427. package/packages/algod_client/src/models/simulate-response.mjs +10 -4
  428. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
  429. package/packages/algod_client/src/models/simulate-trace-config.js +2 -3
  430. package/packages/algod_client/src/models/simulate-trace-config.js.map +1 -1
  431. package/packages/algod_client/src/models/simulate-trace-config.mjs +1 -2
  432. package/packages/algod_client/src/models/simulate-trace-config.mjs.map +1 -1
  433. package/packages/algod_client/src/models/simulate-transaction-group-result.d.ts +0 -1
  434. package/packages/algod_client/src/models/simulate-transaction-group-result.js +7 -8
  435. package/packages/algod_client/src/models/simulate-transaction-group-result.js.map +1 -1
  436. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs +1 -2
  437. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs.map +1 -1
  438. package/packages/algod_client/src/models/simulate-transaction-result.d.ts +0 -1
  439. package/packages/algod_client/src/models/simulate-transaction-result.js +7 -8
  440. package/packages/algod_client/src/models/simulate-transaction-result.js.map +1 -1
  441. package/packages/algod_client/src/models/simulate-transaction-result.mjs +1 -2
  442. package/packages/algod_client/src/models/simulate-transaction-result.mjs.map +1 -1
  443. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +0 -1
  444. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +5 -6
  445. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
  446. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +1 -2
  447. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
  448. package/packages/algod_client/src/models/simulation-eval-overrides.js +3 -4
  449. package/packages/algod_client/src/models/simulation-eval-overrides.js.map +1 -1
  450. package/packages/algod_client/src/models/simulation-eval-overrides.mjs +1 -2
  451. package/packages/algod_client/src/models/simulation-eval-overrides.mjs.map +1 -1
  452. package/packages/algod_client/src/models/simulation-opcode-trace-unit.d.ts +0 -1
  453. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js +7 -8
  454. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js.map +1 -1
  455. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs +1 -2
  456. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs.map +1 -1
  457. package/packages/algod_client/src/models/simulation-transaction-exec-trace.d.ts +0 -1
  458. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js +7 -8
  459. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js.map +1 -1
  460. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs +1 -2
  461. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs.map +1 -1
  462. package/packages/algod_client/src/models/source-map.js +4 -5
  463. package/packages/algod_client/src/models/source-map.js.map +1 -1
  464. package/packages/algod_client/src/models/source-map.mjs +1 -2
  465. package/packages/algod_client/src/models/source-map.mjs.map +1 -1
  466. package/packages/algod_client/src/models/state-delta.d.ts +0 -1
  467. package/packages/algod_client/src/models/state-delta.js +4 -5
  468. package/packages/algod_client/src/models/state-delta.js.map +1 -1
  469. package/packages/algod_client/src/models/state-delta.mjs +1 -2
  470. package/packages/algod_client/src/models/state-delta.mjs.map +1 -1
  471. package/packages/algod_client/src/models/state-proof-message.js +3 -4
  472. package/packages/algod_client/src/models/state-proof-message.js.map +1 -1
  473. package/packages/algod_client/src/models/state-proof-message.mjs +1 -2
  474. package/packages/algod_client/src/models/state-proof-message.mjs.map +1 -1
  475. package/packages/algod_client/src/models/state-proof.d.ts +0 -1
  476. package/packages/algod_client/src/models/state-proof.js +4 -5
  477. package/packages/algod_client/src/models/state-proof.js.map +1 -1
  478. package/packages/algod_client/src/models/state-proof.mjs +1 -2
  479. package/packages/algod_client/src/models/state-proof.mjs.map +1 -1
  480. package/packages/algod_client/src/models/supply-response.js +2 -3
  481. package/packages/algod_client/src/models/supply-response.js.map +1 -1
  482. package/packages/algod_client/src/models/supply-response.mjs +1 -2
  483. package/packages/algod_client/src/models/supply-response.mjs.map +1 -1
  484. package/packages/algod_client/src/models/teal-key-value-store.d.ts +0 -1
  485. package/packages/algod_client/src/models/teal-key-value-store.js +4 -5
  486. package/packages/algod_client/src/models/teal-key-value-store.js.map +1 -1
  487. package/packages/algod_client/src/models/teal-key-value-store.mjs +1 -2
  488. package/packages/algod_client/src/models/teal-key-value-store.mjs.map +1 -1
  489. package/packages/algod_client/src/models/teal-key-value.d.ts +0 -1
  490. package/packages/algod_client/src/models/teal-key-value.js +4 -5
  491. package/packages/algod_client/src/models/teal-key-value.js.map +1 -1
  492. package/packages/algod_client/src/models/teal-key-value.mjs +1 -2
  493. package/packages/algod_client/src/models/teal-key-value.mjs.map +1 -1
  494. package/packages/algod_client/src/models/teal-value.js +4 -6
  495. package/packages/algod_client/src/models/teal-value.js.map +1 -1
  496. package/packages/algod_client/src/models/teal-value.mjs +1 -2
  497. package/packages/algod_client/src/models/teal-value.mjs.map +1 -1
  498. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js +4 -5
  499. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js.map +1 -1
  500. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs +1 -2
  501. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs.map +1 -1
  502. package/packages/algod_client/src/models/transaction-parameters-response.js +5 -6
  503. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
  504. package/packages/algod_client/src/models/transaction-parameters-response.mjs +3 -4
  505. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
  506. package/packages/algod_client/src/models/transaction-proof.js +4 -5
  507. package/packages/algod_client/src/models/transaction-proof.js.map +1 -1
  508. package/packages/algod_client/src/models/transaction-proof.mjs +1 -2
  509. package/packages/algod_client/src/models/transaction-proof.mjs.map +1 -1
  510. package/packages/algod_client/src/models/version.d.ts +0 -1
  511. package/packages/algod_client/src/models/version.js +6 -7
  512. package/packages/algod_client/src/models/version.js.map +1 -1
  513. package/packages/algod_client/src/models/version.mjs +1 -2
  514. package/packages/algod_client/src/models/version.mjs.map +1 -1
  515. package/packages/common/src/address.d.ts +14 -3
  516. package/packages/common/src/address.js +24 -24
  517. package/packages/common/src/address.js.map +1 -1
  518. package/packages/common/src/address.mjs +17 -21
  519. package/packages/common/src/address.mjs.map +1 -1
  520. package/packages/common/src/array.d.ts +6 -0
  521. package/packages/common/src/array.js +1 -2
  522. package/packages/common/src/array.js.map +1 -1
  523. package/packages/common/src/array.mjs +1 -1
  524. package/packages/common/src/codecs/codec.d.ts +0 -1
  525. package/packages/common/src/codecs/codec.js +1 -2
  526. package/packages/common/src/codecs/codec.js.map +1 -1
  527. package/packages/common/src/codecs/codec.mjs +1 -1
  528. package/packages/common/src/codecs/codec.mjs.map +1 -1
  529. package/packages/common/src/codecs/composite/array.d.ts +25 -0
  530. package/packages/common/src/codecs/composite/array.js +9 -9
  531. package/packages/common/src/codecs/composite/array.js.map +1 -1
  532. package/packages/common/src/codecs/composite/array.mjs +2 -3
  533. package/packages/common/src/codecs/composite/array.mjs.map +1 -1
  534. package/packages/common/src/codecs/composite/map.d.ts +26 -0
  535. package/packages/common/src/codecs/composite/map.js +9 -7
  536. package/packages/common/src/codecs/composite/map.js.map +1 -1
  537. package/packages/common/src/codecs/composite/map.mjs +8 -6
  538. package/packages/common/src/codecs/composite/map.mjs.map +1 -1
  539. package/packages/common/src/codecs/composite/record.d.ts +19 -0
  540. package/packages/common/src/codecs/composite/record.js +3 -5
  541. package/packages/common/src/codecs/composite/record.js.map +1 -1
  542. package/packages/common/src/codecs/composite/record.mjs +1 -2
  543. package/packages/common/src/codecs/composite/record.mjs.map +1 -1
  544. package/packages/common/src/codecs/models/array-model.d.ts +19 -0
  545. package/packages/common/src/codecs/models/array-model.js +2 -3
  546. package/packages/common/src/codecs/models/array-model.js.map +1 -1
  547. package/packages/common/src/codecs/models/array-model.mjs +1 -2
  548. package/packages/common/src/codecs/models/array-model.mjs.map +1 -1
  549. package/packages/common/src/codecs/models/object-model.js +6 -8
  550. package/packages/common/src/codecs/models/object-model.js.map +1 -1
  551. package/packages/common/src/codecs/models/object-model.mjs +4 -6
  552. package/packages/common/src/codecs/models/object-model.mjs.map +1 -1
  553. package/packages/common/src/codecs/models/primitive-model.d.ts +19 -0
  554. package/packages/common/src/codecs/models/primitive-model.js +2 -3
  555. package/packages/common/src/codecs/models/primitive-model.js.map +1 -1
  556. package/packages/common/src/codecs/models/primitive-model.mjs +1 -2
  557. package/packages/common/src/codecs/models/primitive-model.mjs.map +1 -1
  558. package/packages/common/src/codecs/primitives/address.d.ts +16 -0
  559. package/packages/common/src/codecs/primitives/address.js +7 -9
  560. package/packages/common/src/codecs/primitives/address.js.map +1 -1
  561. package/packages/common/src/codecs/primitives/address.mjs +4 -5
  562. package/packages/common/src/codecs/primitives/address.mjs.map +1 -1
  563. package/packages/common/src/codecs/primitives/bigint.d.ts +13 -0
  564. package/packages/common/src/codecs/primitives/bigint.js +2 -3
  565. package/packages/common/src/codecs/primitives/bigint.js.map +1 -1
  566. package/packages/common/src/codecs/primitives/bigint.mjs +1 -2
  567. package/packages/common/src/codecs/primitives/bigint.mjs.map +1 -1
  568. package/packages/common/src/codecs/primitives/boolean.d.ts +10 -0
  569. package/packages/common/src/codecs/primitives/boolean.js +2 -3
  570. package/packages/common/src/codecs/primitives/boolean.js.map +1 -1
  571. package/packages/common/src/codecs/primitives/boolean.mjs +1 -2
  572. package/packages/common/src/codecs/primitives/boolean.mjs.map +1 -1
  573. package/packages/common/src/codecs/primitives/bytes-base64.d.ts +15 -0
  574. package/packages/common/src/codecs/primitives/bytes-base64.js +25 -0
  575. package/packages/common/src/codecs/primitives/bytes-base64.js.map +1 -0
  576. package/packages/common/src/codecs/primitives/bytes-base64.mjs +24 -0
  577. package/packages/common/src/codecs/primitives/bytes-base64.mjs.map +1 -0
  578. package/packages/common/src/codecs/primitives/bytes.d.ts +15 -0
  579. package/packages/common/src/codecs/primitives/bytes.js +3 -5
  580. package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
  581. package/packages/common/src/codecs/primitives/bytes.mjs +1 -2
  582. package/packages/common/src/codecs/primitives/bytes.mjs.map +1 -1
  583. package/packages/common/src/codecs/primitives/fixed-bytes.d.ts +19 -0
  584. package/packages/common/src/codecs/primitives/fixed-bytes.js +3 -5
  585. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
  586. package/packages/common/src/codecs/primitives/fixed-bytes.mjs +1 -2
  587. package/packages/common/src/codecs/primitives/fixed-bytes.mjs.map +1 -1
  588. package/packages/common/src/codecs/primitives/number.d.ts +11 -0
  589. package/packages/common/src/codecs/primitives/number.js +2 -3
  590. package/packages/common/src/codecs/primitives/number.js.map +1 -1
  591. package/packages/common/src/codecs/primitives/number.mjs +1 -2
  592. package/packages/common/src/codecs/primitives/number.mjs.map +1 -1
  593. package/packages/common/src/codecs/primitives/string.d.ts +13 -0
  594. package/packages/common/src/codecs/primitives/string.js +3 -4
  595. package/packages/common/src/codecs/primitives/string.js.map +1 -1
  596. package/packages/common/src/codecs/primitives/string.mjs +1 -2
  597. package/packages/common/src/codecs/primitives/string.mjs.map +1 -1
  598. package/packages/common/src/codecs/primitives/unknown.d.ts +26 -0
  599. package/packages/common/src/codecs/primitives/unknown.js +10 -11
  600. package/packages/common/src/codecs/primitives/unknown.js.map +1 -1
  601. package/packages/common/src/codecs/primitives/unknown.mjs +3 -4
  602. package/packages/common/src/codecs/primitives/unknown.mjs.map +1 -1
  603. package/packages/common/src/codecs/types.d.ts +12 -2
  604. package/packages/common/src/codecs/wire.d.ts +17 -1
  605. package/packages/common/src/codecs/wire.js +2 -4
  606. package/packages/common/src/codecs/wire.js.map +1 -1
  607. package/packages/common/src/codecs/wire.mjs +1 -2
  608. package/packages/common/src/codecs/wire.mjs.map +1 -1
  609. package/packages/common/src/constants.d.ts +34 -0
  610. package/packages/common/src/constants.js +4 -3
  611. package/packages/common/src/constants.js.map +1 -1
  612. package/packages/common/src/constants.mjs +4 -3
  613. package/packages/common/src/constants.mjs.map +1 -1
  614. package/packages/common/src/encoding.d.ts +10 -0
  615. package/packages/common/src/encoding.js +30 -0
  616. package/packages/common/src/encoding.js.map +1 -0
  617. package/packages/common/src/encoding.mjs +24 -0
  618. package/packages/common/src/encoding.mjs.map +1 -0
  619. package/packages/common/src/json.d.ts +17 -0
  620. package/packages/common/src/json.js +3 -4
  621. package/packages/common/src/json.js.map +1 -1
  622. package/packages/common/src/json.mjs +3 -4
  623. package/packages/common/src/json.mjs.map +1 -1
  624. package/packages/common/src/msgpack.d.ts +11 -0
  625. package/packages/common/src/msgpack.js +2 -4
  626. package/packages/common/src/msgpack.js.map +1 -1
  627. package/packages/common/src/msgpack.mjs +1 -2
  628. package/packages/common/src/msgpack.mjs.map +1 -1
  629. package/packages/{sdk/src/logic → common/src}/sourcemap.d.ts +1 -1
  630. package/packages/{sdk/src/logic → common/src}/sourcemap.js +4 -5
  631. package/packages/common/src/sourcemap.js.map +1 -0
  632. package/packages/{sdk/src/logic → common/src}/sourcemap.mjs +2 -3
  633. package/packages/common/src/sourcemap.mjs.map +1 -0
  634. package/packages/crypto/src/ed25519.d.ts +60 -0
  635. package/packages/crypto/src/ed25519.js +58 -0
  636. package/packages/crypto/src/ed25519.js.map +1 -0
  637. package/packages/crypto/src/ed25519.mjs +53 -0
  638. package/packages/crypto/src/ed25519.mjs.map +1 -0
  639. package/packages/crypto/src/hash.d.ts +8 -0
  640. package/packages/crypto/src/hash.js +14 -0
  641. package/packages/crypto/src/hash.js.map +1 -0
  642. package/packages/crypto/src/hash.mjs +13 -0
  643. package/packages/crypto/src/hash.mjs.map +1 -0
  644. package/packages/crypto/src/hd.d.ts +36 -0
  645. package/packages/crypto/src/hd.js +36 -0
  646. package/packages/crypto/src/hd.js.map +1 -0
  647. package/packages/crypto/src/hd.mjs +35 -0
  648. package/packages/crypto/src/hd.mjs.map +1 -0
  649. package/packages/crypto/src/index.d.ts +28 -0
  650. package/packages/crypto/src/index.js +142 -0
  651. package/packages/crypto/src/index.js.map +1 -0
  652. package/packages/crypto/src/index.mjs +139 -0
  653. package/packages/crypto/src/index.mjs.map +1 -0
  654. package/packages/indexer_client/src/apis/api-service.d.ts +1 -1
  655. package/packages/indexer_client/src/apis/api-service.js +31 -32
  656. package/packages/indexer_client/src/apis/api-service.js.map +1 -1
  657. package/packages/indexer_client/src/apis/api-service.mjs +13 -14
  658. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
  659. package/packages/indexer_client/src/client.js +3 -4
  660. package/packages/indexer_client/src/client.js.map +1 -1
  661. package/packages/indexer_client/src/client.mjs +1 -2
  662. package/packages/indexer_client/src/client.mjs.map +1 -1
  663. package/packages/indexer_client/src/core/api-error.js +4 -3
  664. package/packages/indexer_client/src/core/api-error.js.map +1 -1
  665. package/packages/indexer_client/src/core/api-error.mjs +4 -2
  666. package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
  667. package/packages/indexer_client/src/core/base-http-request.js +1 -2
  668. package/packages/indexer_client/src/core/base-http-request.js.map +1 -1
  669. package/packages/indexer_client/src/core/base-http-request.mjs +1 -1
  670. package/packages/indexer_client/src/core/base-http-request.mjs.map +1 -1
  671. package/packages/indexer_client/src/core/fetch-http-request.js +3 -4
  672. package/packages/indexer_client/src/core/fetch-http-request.js.map +1 -1
  673. package/packages/indexer_client/src/core/fetch-http-request.mjs +1 -2
  674. package/packages/indexer_client/src/core/fetch-http-request.mjs.map +1 -1
  675. package/packages/indexer_client/src/core/model-runtime.js +2 -18
  676. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  677. package/packages/indexer_client/src/core/model-runtime.mjs +2 -15
  678. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  679. package/packages/indexer_client/src/core/request.js +5 -6
  680. package/packages/indexer_client/src/core/request.js.map +1 -1
  681. package/packages/indexer_client/src/core/request.mjs +1 -2
  682. package/packages/indexer_client/src/core/request.mjs.map +1 -1
  683. package/packages/indexer_client/src/models/account-participation.js +6 -7
  684. package/packages/indexer_client/src/models/account-participation.js.map +1 -1
  685. package/packages/indexer_client/src/models/account-participation.mjs +5 -6
  686. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
  687. package/packages/indexer_client/src/models/account-response.js +4 -5
  688. package/packages/indexer_client/src/models/account-response.js.map +1 -1
  689. package/packages/indexer_client/src/models/account-response.mjs +1 -2
  690. package/packages/indexer_client/src/models/account-response.mjs.map +1 -1
  691. package/packages/indexer_client/src/models/account-state-delta.d.ts +0 -1
  692. package/packages/indexer_client/src/models/account-state-delta.js +4 -5
  693. package/packages/indexer_client/src/models/account-state-delta.js.map +1 -1
  694. package/packages/indexer_client/src/models/account-state-delta.mjs +1 -2
  695. package/packages/indexer_client/src/models/account-state-delta.mjs.map +1 -1
  696. package/packages/indexer_client/src/models/account.d.ts +0 -1
  697. package/packages/indexer_client/src/models/account.js +14 -15
  698. package/packages/indexer_client/src/models/account.js.map +1 -1
  699. package/packages/indexer_client/src/models/account.mjs +1 -2
  700. package/packages/indexer_client/src/models/account.mjs.map +1 -1
  701. package/packages/indexer_client/src/models/accounts-response.js +6 -7
  702. package/packages/indexer_client/src/models/accounts-response.js.map +1 -1
  703. package/packages/indexer_client/src/models/accounts-response.mjs +1 -2
  704. package/packages/indexer_client/src/models/accounts-response.mjs.map +1 -1
  705. package/packages/indexer_client/src/models/application-local-state.d.ts +0 -1
  706. package/packages/indexer_client/src/models/application-local-state.js +7 -8
  707. package/packages/indexer_client/src/models/application-local-state.js.map +1 -1
  708. package/packages/indexer_client/src/models/application-local-state.mjs +1 -2
  709. package/packages/indexer_client/src/models/application-local-state.mjs.map +1 -1
  710. package/packages/indexer_client/src/models/application-local-states-response.js +6 -7
  711. package/packages/indexer_client/src/models/application-local-states-response.js.map +1 -1
  712. package/packages/indexer_client/src/models/application-local-states-response.mjs +1 -2
  713. package/packages/indexer_client/src/models/application-local-states-response.mjs.map +1 -1
  714. package/packages/indexer_client/src/models/application-log-data.js +3 -4
  715. package/packages/indexer_client/src/models/application-log-data.js.map +1 -1
  716. package/packages/indexer_client/src/models/application-log-data.mjs +1 -2
  717. package/packages/indexer_client/src/models/application-log-data.mjs.map +1 -1
  718. package/packages/indexer_client/src/models/application-logs-response.js +6 -7
  719. package/packages/indexer_client/src/models/application-logs-response.js.map +1 -1
  720. package/packages/indexer_client/src/models/application-logs-response.mjs +1 -2
  721. package/packages/indexer_client/src/models/application-logs-response.mjs.map +1 -1
  722. package/packages/indexer_client/src/models/application-params.d.ts +0 -1
  723. package/packages/indexer_client/src/models/application-params.js +8 -9
  724. package/packages/indexer_client/src/models/application-params.js.map +1 -1
  725. package/packages/indexer_client/src/models/application-params.mjs +1 -2
  726. package/packages/indexer_client/src/models/application-params.mjs.map +1 -1
  727. package/packages/indexer_client/src/models/application-response.js +4 -5
  728. package/packages/indexer_client/src/models/application-response.js.map +1 -1
  729. package/packages/indexer_client/src/models/application-response.mjs +1 -2
  730. package/packages/indexer_client/src/models/application-response.mjs.map +1 -1
  731. package/packages/indexer_client/src/models/application-state-schema.js +2 -3
  732. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
  733. package/packages/indexer_client/src/models/application-state-schema.mjs +1 -2
  734. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
  735. package/packages/indexer_client/src/models/application.d.ts +0 -1
  736. package/packages/indexer_client/src/models/application.js +5 -6
  737. package/packages/indexer_client/src/models/application.js.map +1 -1
  738. package/packages/indexer_client/src/models/application.mjs +1 -2
  739. package/packages/indexer_client/src/models/application.mjs.map +1 -1
  740. package/packages/indexer_client/src/models/applications-response.js +6 -7
  741. package/packages/indexer_client/src/models/applications-response.js.map +1 -1
  742. package/packages/indexer_client/src/models/applications-response.mjs +1 -2
  743. package/packages/indexer_client/src/models/applications-response.mjs.map +1 -1
  744. package/packages/indexer_client/src/models/asset-balances-response.js +6 -7
  745. package/packages/indexer_client/src/models/asset-balances-response.js.map +1 -1
  746. package/packages/indexer_client/src/models/asset-balances-response.mjs +1 -2
  747. package/packages/indexer_client/src/models/asset-balances-response.mjs.map +1 -1
  748. package/packages/indexer_client/src/models/asset-holding.js +3 -4
  749. package/packages/indexer_client/src/models/asset-holding.js.map +1 -1
  750. package/packages/indexer_client/src/models/asset-holding.mjs +1 -2
  751. package/packages/indexer_client/src/models/asset-holding.mjs.map +1 -1
  752. package/packages/indexer_client/src/models/asset-holdings-response.js +6 -7
  753. package/packages/indexer_client/src/models/asset-holdings-response.js.map +1 -1
  754. package/packages/indexer_client/src/models/asset-holdings-response.mjs +1 -2
  755. package/packages/indexer_client/src/models/asset-holdings-response.mjs.map +1 -1
  756. package/packages/indexer_client/src/models/asset-params.js +8 -8
  757. package/packages/indexer_client/src/models/asset-params.js.map +1 -1
  758. package/packages/indexer_client/src/models/asset-params.mjs +3 -3
  759. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
  760. package/packages/indexer_client/src/models/asset-response.js +4 -5
  761. package/packages/indexer_client/src/models/asset-response.js.map +1 -1
  762. package/packages/indexer_client/src/models/asset-response.mjs +1 -2
  763. package/packages/indexer_client/src/models/asset-response.mjs.map +1 -1
  764. package/packages/indexer_client/src/models/asset.d.ts +0 -1
  765. package/packages/indexer_client/src/models/asset.js +5 -6
  766. package/packages/indexer_client/src/models/asset.js.map +1 -1
  767. package/packages/indexer_client/src/models/asset.mjs +1 -2
  768. package/packages/indexer_client/src/models/asset.mjs.map +1 -1
  769. package/packages/indexer_client/src/models/assets-response.js +6 -7
  770. package/packages/indexer_client/src/models/assets-response.js.map +1 -1
  771. package/packages/indexer_client/src/models/assets-response.mjs +1 -2
  772. package/packages/indexer_client/src/models/assets-response.mjs.map +1 -1
  773. package/packages/indexer_client/src/models/block-headers-response.js +6 -7
  774. package/packages/indexer_client/src/models/block-headers-response.js.map +1 -1
  775. package/packages/indexer_client/src/models/block-headers-response.mjs +1 -2
  776. package/packages/indexer_client/src/models/block-headers-response.mjs.map +1 -1
  777. package/packages/indexer_client/src/models/block-rewards.js +3 -4
  778. package/packages/indexer_client/src/models/block-rewards.js.map +1 -1
  779. package/packages/indexer_client/src/models/block-rewards.mjs +1 -2
  780. package/packages/indexer_client/src/models/block-rewards.mjs.map +1 -1
  781. package/packages/indexer_client/src/models/block-upgrade-state.js +4 -5
  782. package/packages/indexer_client/src/models/block-upgrade-state.js.map +1 -1
  783. package/packages/indexer_client/src/models/block-upgrade-state.mjs +1 -2
  784. package/packages/indexer_client/src/models/block-upgrade-state.mjs.map +1 -1
  785. package/packages/indexer_client/src/models/block-upgrade-vote.js +4 -5
  786. package/packages/indexer_client/src/models/block-upgrade-vote.js.map +1 -1
  787. package/packages/indexer_client/src/models/block-upgrade-vote.mjs +1 -2
  788. package/packages/indexer_client/src/models/block-upgrade-vote.mjs.map +1 -1
  789. package/packages/indexer_client/src/models/block.d.ts +5 -6
  790. package/packages/indexer_client/src/models/block.js +26 -27
  791. package/packages/indexer_client/src/models/block.js.map +1 -1
  792. package/packages/indexer_client/src/models/block.mjs +14 -15
  793. package/packages/indexer_client/src/models/block.mjs.map +1 -1
  794. package/packages/indexer_client/src/models/box-descriptor.js +2 -4
  795. package/packages/indexer_client/src/models/box-descriptor.js.map +1 -1
  796. package/packages/indexer_client/src/models/box-descriptor.mjs +1 -2
  797. package/packages/indexer_client/src/models/box-descriptor.mjs.map +1 -1
  798. package/packages/indexer_client/src/models/box-reference.js +3 -4
  799. package/packages/indexer_client/src/models/box-reference.js.map +1 -1
  800. package/packages/indexer_client/src/models/box-reference.mjs +1 -2
  801. package/packages/indexer_client/src/models/box-reference.mjs.map +1 -1
  802. package/packages/indexer_client/src/models/box.js +3 -4
  803. package/packages/indexer_client/src/models/box.js.map +1 -1
  804. package/packages/indexer_client/src/models/box.mjs +1 -2
  805. package/packages/indexer_client/src/models/box.mjs.map +1 -1
  806. package/packages/indexer_client/src/models/boxes-response.js +6 -7
  807. package/packages/indexer_client/src/models/boxes-response.js.map +1 -1
  808. package/packages/indexer_client/src/models/boxes-response.mjs +1 -2
  809. package/packages/indexer_client/src/models/boxes-response.mjs.map +1 -1
  810. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +1 -2
  811. package/packages/indexer_client/src/models/eval-delta-key-value.js +5 -6
  812. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
  813. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +3 -4
  814. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
  815. package/packages/indexer_client/src/models/eval-delta.d.ts +1 -1
  816. package/packages/indexer_client/src/models/eval-delta.js +5 -7
  817. package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
  818. package/packages/indexer_client/src/models/eval-delta.mjs +3 -4
  819. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
  820. package/packages/indexer_client/src/models/hash-factory.js +2 -4
  821. package/packages/indexer_client/src/models/hash-factory.js.map +1 -1
  822. package/packages/indexer_client/src/models/hash-factory.mjs +1 -2
  823. package/packages/indexer_client/src/models/hash-factory.mjs.map +1 -1
  824. package/packages/indexer_client/src/models/hb-proof-fields.js +7 -8
  825. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
  826. package/packages/indexer_client/src/models/hb-proof-fields.mjs +7 -8
  827. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
  828. package/packages/indexer_client/src/models/health-check.js +7 -8
  829. package/packages/indexer_client/src/models/health-check.js.map +1 -1
  830. package/packages/indexer_client/src/models/health-check.mjs +1 -2
  831. package/packages/indexer_client/src/models/health-check.mjs.map +1 -1
  832. package/packages/indexer_client/src/models/holding-ref.d.ts +0 -1
  833. package/packages/indexer_client/src/models/holding-ref.js +3 -4
  834. package/packages/indexer_client/src/models/holding-ref.js.map +1 -1
  835. package/packages/indexer_client/src/models/holding-ref.mjs +1 -2
  836. package/packages/indexer_client/src/models/holding-ref.mjs.map +1 -1
  837. package/packages/indexer_client/src/models/indexer-state-proof-message.js +3 -4
  838. package/packages/indexer_client/src/models/indexer-state-proof-message.js.map +1 -1
  839. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs +1 -2
  840. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs.map +1 -1
  841. package/packages/indexer_client/src/models/locals-ref.d.ts +0 -1
  842. package/packages/indexer_client/src/models/locals-ref.js +3 -4
  843. package/packages/indexer_client/src/models/locals-ref.js.map +1 -1
  844. package/packages/indexer_client/src/models/locals-ref.mjs +1 -2
  845. package/packages/indexer_client/src/models/locals-ref.mjs.map +1 -1
  846. package/packages/indexer_client/src/models/merkle-array-proof.js +5 -6
  847. package/packages/indexer_client/src/models/merkle-array-proof.js.map +1 -1
  848. package/packages/indexer_client/src/models/merkle-array-proof.mjs +1 -2
  849. package/packages/indexer_client/src/models/merkle-array-proof.mjs.map +1 -1
  850. package/packages/indexer_client/src/models/mini-asset-holding.js +4 -6
  851. package/packages/indexer_client/src/models/mini-asset-holding.js.map +1 -1
  852. package/packages/indexer_client/src/models/mini-asset-holding.mjs +1 -2
  853. package/packages/indexer_client/src/models/mini-asset-holding.mjs.map +1 -1
  854. package/packages/indexer_client/src/models/on-completion.js +2 -4
  855. package/packages/indexer_client/src/models/on-completion.js.map +1 -1
  856. package/packages/indexer_client/src/models/on-completion.mjs +1 -2
  857. package/packages/indexer_client/src/models/on-completion.mjs.map +1 -1
  858. package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
  859. package/packages/indexer_client/src/models/participation-updates.js +4 -5
  860. package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
  861. package/packages/indexer_client/src/models/participation-updates.mjs +3 -4
  862. package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
  863. package/packages/indexer_client/src/models/resource-ref.d.ts +0 -1
  864. package/packages/indexer_client/src/models/resource-ref.js +7 -8
  865. package/packages/indexer_client/src/models/resource-ref.js.map +1 -1
  866. package/packages/indexer_client/src/models/resource-ref.mjs +1 -2
  867. package/packages/indexer_client/src/models/resource-ref.mjs.map +1 -1
  868. package/packages/indexer_client/src/models/state-delta.d.ts +0 -1
  869. package/packages/indexer_client/src/models/state-delta.js +4 -5
  870. package/packages/indexer_client/src/models/state-delta.js.map +1 -1
  871. package/packages/indexer_client/src/models/state-delta.mjs +1 -2
  872. package/packages/indexer_client/src/models/state-delta.mjs.map +1 -1
  873. package/packages/indexer_client/src/models/state-proof-fields.d.ts +0 -1
  874. package/packages/indexer_client/src/models/state-proof-fields.js +8 -9
  875. package/packages/indexer_client/src/models/state-proof-fields.js.map +1 -1
  876. package/packages/indexer_client/src/models/state-proof-fields.mjs +1 -2
  877. package/packages/indexer_client/src/models/state-proof-fields.mjs.map +1 -1
  878. package/packages/indexer_client/src/models/state-proof-participant.js +4 -5
  879. package/packages/indexer_client/src/models/state-proof-participant.js.map +1 -1
  880. package/packages/indexer_client/src/models/state-proof-participant.mjs +1 -2
  881. package/packages/indexer_client/src/models/state-proof-participant.mjs.map +1 -1
  882. package/packages/indexer_client/src/models/state-proof-reveal.js +5 -6
  883. package/packages/indexer_client/src/models/state-proof-reveal.js.map +1 -1
  884. package/packages/indexer_client/src/models/state-proof-reveal.mjs +1 -2
  885. package/packages/indexer_client/src/models/state-proof-reveal.mjs.map +1 -1
  886. package/packages/indexer_client/src/models/state-proof-sig-slot.js +4 -5
  887. package/packages/indexer_client/src/models/state-proof-sig-slot.js.map +1 -1
  888. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs +1 -2
  889. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs.map +1 -1
  890. package/packages/indexer_client/src/models/state-proof-signature.js +5 -6
  891. package/packages/indexer_client/src/models/state-proof-signature.js.map +1 -1
  892. package/packages/indexer_client/src/models/state-proof-signature.mjs +1 -2
  893. package/packages/indexer_client/src/models/state-proof-signature.mjs.map +1 -1
  894. package/packages/indexer_client/src/models/state-proof-tracking.js +4 -5
  895. package/packages/indexer_client/src/models/state-proof-tracking.js.map +1 -1
  896. package/packages/indexer_client/src/models/state-proof-tracking.mjs +1 -2
  897. package/packages/indexer_client/src/models/state-proof-tracking.mjs.map +1 -1
  898. package/packages/indexer_client/src/models/state-proof-verifier.js +3 -5
  899. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
  900. package/packages/indexer_client/src/models/state-proof-verifier.mjs +3 -4
  901. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
  902. package/packages/indexer_client/src/models/state-schema.js +2 -3
  903. package/packages/indexer_client/src/models/state-schema.js.map +1 -1
  904. package/packages/indexer_client/src/models/state-schema.mjs +1 -2
  905. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
  906. package/packages/indexer_client/src/models/teal-key-value-store.d.ts +0 -1
  907. package/packages/indexer_client/src/models/teal-key-value-store.js +4 -5
  908. package/packages/indexer_client/src/models/teal-key-value-store.js.map +1 -1
  909. package/packages/indexer_client/src/models/teal-key-value-store.mjs +1 -2
  910. package/packages/indexer_client/src/models/teal-key-value-store.mjs.map +1 -1
  911. package/packages/indexer_client/src/models/teal-key-value.d.ts +1 -2
  912. package/packages/indexer_client/src/models/teal-key-value.js +5 -6
  913. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
  914. package/packages/indexer_client/src/models/teal-key-value.mjs +3 -4
  915. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
  916. package/packages/indexer_client/src/models/teal-value.js +4 -6
  917. package/packages/indexer_client/src/models/teal-value.js.map +1 -1
  918. package/packages/indexer_client/src/models/teal-value.mjs +1 -2
  919. package/packages/indexer_client/src/models/teal-value.mjs.map +1 -1
  920. package/packages/indexer_client/src/models/transaction-application.d.ts +0 -1
  921. package/packages/indexer_client/src/models/transaction-application.js +11 -12
  922. package/packages/indexer_client/src/models/transaction-application.js.map +1 -1
  923. package/packages/indexer_client/src/models/transaction-application.mjs +1 -2
  924. package/packages/indexer_client/src/models/transaction-application.mjs.map +1 -1
  925. package/packages/indexer_client/src/models/transaction-asset-config.d.ts +0 -1
  926. package/packages/indexer_client/src/models/transaction-asset-config.js +4 -5
  927. package/packages/indexer_client/src/models/transaction-asset-config.js.map +1 -1
  928. package/packages/indexer_client/src/models/transaction-asset-config.mjs +1 -2
  929. package/packages/indexer_client/src/models/transaction-asset-config.mjs.map +1 -1
  930. package/packages/indexer_client/src/models/transaction-asset-freeze.js +4 -6
  931. package/packages/indexer_client/src/models/transaction-asset-freeze.js.map +1 -1
  932. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs +1 -2
  933. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs.map +1 -1
  934. package/packages/indexer_client/src/models/transaction-asset-transfer.js +3 -4
  935. package/packages/indexer_client/src/models/transaction-asset-transfer.js.map +1 -1
  936. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs +1 -2
  937. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs.map +1 -1
  938. package/packages/indexer_client/src/models/transaction-heartbeat.d.ts +0 -1
  939. package/packages/indexer_client/src/models/transaction-heartbeat.js +8 -8
  940. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
  941. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +3 -3
  942. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
  943. package/packages/indexer_client/src/models/transaction-keyreg.js +7 -8
  944. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
  945. package/packages/indexer_client/src/models/transaction-keyreg.mjs +5 -6
  946. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
  947. package/packages/indexer_client/src/models/transaction-payment.js +3 -4
  948. package/packages/indexer_client/src/models/transaction-payment.js.map +1 -1
  949. package/packages/indexer_client/src/models/transaction-payment.mjs +1 -2
  950. package/packages/indexer_client/src/models/transaction-payment.mjs.map +1 -1
  951. package/packages/indexer_client/src/models/transaction-response.js +4 -5
  952. package/packages/indexer_client/src/models/transaction-response.js.map +1 -1
  953. package/packages/indexer_client/src/models/transaction-response.mjs +1 -2
  954. package/packages/indexer_client/src/models/transaction-response.mjs.map +1 -1
  955. package/packages/indexer_client/src/models/transaction-signature-logicsig.d.ts +0 -1
  956. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +7 -7
  957. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
  958. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +3 -3
  959. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
  960. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +4 -5
  961. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
  962. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +4 -5
  963. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
  964. package/packages/indexer_client/src/models/transaction-signature-multisig.d.ts +0 -1
  965. package/packages/indexer_client/src/models/transaction-signature-multisig.js +5 -6
  966. package/packages/indexer_client/src/models/transaction-signature-multisig.js.map +1 -1
  967. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs +1 -2
  968. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs.map +1 -1
  969. package/packages/indexer_client/src/models/transaction-signature.d.ts +0 -1
  970. package/packages/indexer_client/src/models/transaction-signature.js +5 -6
  971. package/packages/indexer_client/src/models/transaction-signature.js.map +1 -1
  972. package/packages/indexer_client/src/models/transaction-signature.mjs +1 -2
  973. package/packages/indexer_client/src/models/transaction-signature.mjs.map +1 -1
  974. package/packages/indexer_client/src/models/transaction-state-proof.d.ts +1 -2
  975. package/packages/indexer_client/src/models/transaction-state-proof.js +6 -7
  976. package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -1
  977. package/packages/indexer_client/src/models/transaction-state-proof.mjs +3 -4
  978. package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -1
  979. package/packages/indexer_client/src/models/transaction.d.ts +0 -1
  980. package/packages/indexer_client/src/models/transaction.js +24 -24
  981. package/packages/indexer_client/src/models/transaction.js.map +1 -1
  982. package/packages/indexer_client/src/models/transaction.mjs +5 -5
  983. package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
  984. package/packages/indexer_client/src/models/transactions-response.js +6 -7
  985. package/packages/indexer_client/src/models/transactions-response.js.map +1 -1
  986. package/packages/indexer_client/src/models/transactions-response.mjs +1 -2
  987. package/packages/indexer_client/src/models/transactions-response.mjs.map +1 -1
  988. package/packages/kmd_client/src/apis/api-service.d.ts +5 -5
  989. package/packages/kmd_client/src/apis/api-service.js +76 -78
  990. package/packages/kmd_client/src/apis/api-service.js.map +1 -1
  991. package/packages/kmd_client/src/apis/api-service.mjs +35 -37
  992. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
  993. package/packages/kmd_client/src/client.js +3 -4
  994. package/packages/kmd_client/src/client.js.map +1 -1
  995. package/packages/kmd_client/src/client.mjs +1 -2
  996. package/packages/kmd_client/src/client.mjs.map +1 -1
  997. package/packages/kmd_client/src/core/api-error.js +4 -3
  998. package/packages/kmd_client/src/core/api-error.js.map +1 -1
  999. package/packages/kmd_client/src/core/api-error.mjs +4 -2
  1000. package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
  1001. package/packages/kmd_client/src/core/base-http-request.js +1 -2
  1002. package/packages/kmd_client/src/core/base-http-request.js.map +1 -1
  1003. package/packages/kmd_client/src/core/base-http-request.mjs +1 -1
  1004. package/packages/kmd_client/src/core/base-http-request.mjs.map +1 -1
  1005. package/packages/kmd_client/src/core/fetch-http-request.js +3 -4
  1006. package/packages/kmd_client/src/core/fetch-http-request.js.map +1 -1
  1007. package/packages/kmd_client/src/core/fetch-http-request.mjs +1 -2
  1008. package/packages/kmd_client/src/core/fetch-http-request.mjs.map +1 -1
  1009. package/packages/kmd_client/src/core/model-runtime.js +5 -16
  1010. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  1011. package/packages/kmd_client/src/core/model-runtime.mjs +4 -13
  1012. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  1013. package/packages/kmd_client/src/core/request.js +5 -6
  1014. package/packages/kmd_client/src/core/request.js.map +1 -1
  1015. package/packages/kmd_client/src/core/request.mjs +1 -2
  1016. package/packages/kmd_client/src/core/request.mjs.map +1 -1
  1017. package/packages/kmd_client/src/models/create-wallet-request.js +3 -4
  1018. package/packages/kmd_client/src/models/create-wallet-request.js.map +1 -1
  1019. package/packages/kmd_client/src/models/create-wallet-request.mjs +1 -2
  1020. package/packages/kmd_client/src/models/create-wallet-request.mjs.map +1 -1
  1021. package/packages/kmd_client/src/models/create-wallet-response.d.ts +0 -1
  1022. package/packages/kmd_client/src/models/create-wallet-response.js +3 -4
  1023. package/packages/kmd_client/src/models/create-wallet-response.js.map +1 -1
  1024. package/packages/kmd_client/src/models/create-wallet-response.mjs +1 -2
  1025. package/packages/kmd_client/src/models/create-wallet-response.mjs.map +1 -1
  1026. package/packages/kmd_client/src/models/delete-key-request.d.ts +0 -1
  1027. package/packages/kmd_client/src/models/delete-key-request.js +3 -4
  1028. package/packages/kmd_client/src/models/delete-key-request.js.map +1 -1
  1029. package/packages/kmd_client/src/models/delete-key-request.mjs +1 -2
  1030. package/packages/kmd_client/src/models/delete-key-request.mjs.map +1 -1
  1031. package/packages/kmd_client/src/models/delete-multisig-request.d.ts +0 -1
  1032. package/packages/kmd_client/src/models/delete-multisig-request.js +3 -4
  1033. package/packages/kmd_client/src/models/delete-multisig-request.js.map +1 -1
  1034. package/packages/kmd_client/src/models/delete-multisig-request.mjs +1 -2
  1035. package/packages/kmd_client/src/models/delete-multisig-request.mjs.map +1 -1
  1036. package/packages/kmd_client/src/models/export-key-request.d.ts +0 -1
  1037. package/packages/kmd_client/src/models/export-key-request.js +3 -4
  1038. package/packages/kmd_client/src/models/export-key-request.js.map +1 -1
  1039. package/packages/kmd_client/src/models/export-key-request.mjs +1 -2
  1040. package/packages/kmd_client/src/models/export-key-request.mjs.map +1 -1
  1041. package/packages/kmd_client/src/models/export-key-response.js +2 -4
  1042. package/packages/kmd_client/src/models/export-key-response.js.map +1 -1
  1043. package/packages/kmd_client/src/models/export-key-response.mjs +1 -2
  1044. package/packages/kmd_client/src/models/export-key-response.mjs.map +1 -1
  1045. package/packages/kmd_client/src/models/export-master-key-request.js +2 -3
  1046. package/packages/kmd_client/src/models/export-master-key-request.js.map +1 -1
  1047. package/packages/kmd_client/src/models/export-master-key-request.mjs +1 -2
  1048. package/packages/kmd_client/src/models/export-master-key-request.mjs.map +1 -1
  1049. package/packages/kmd_client/src/models/export-master-key-response.js +2 -4
  1050. package/packages/kmd_client/src/models/export-master-key-response.js.map +1 -1
  1051. package/packages/kmd_client/src/models/export-master-key-response.mjs +1 -2
  1052. package/packages/kmd_client/src/models/export-master-key-response.mjs.map +1 -1
  1053. package/packages/kmd_client/src/models/export-multisig-request.d.ts +0 -1
  1054. package/packages/kmd_client/src/models/export-multisig-request.js +3 -4
  1055. package/packages/kmd_client/src/models/export-multisig-request.js.map +1 -1
  1056. package/packages/kmd_client/src/models/export-multisig-request.mjs +1 -2
  1057. package/packages/kmd_client/src/models/export-multisig-request.mjs.map +1 -1
  1058. package/packages/kmd_client/src/models/export-multisig-response.js +3 -4
  1059. package/packages/kmd_client/src/models/export-multisig-response.js.map +1 -1
  1060. package/packages/kmd_client/src/models/export-multisig-response.mjs +1 -2
  1061. package/packages/kmd_client/src/models/export-multisig-response.mjs.map +1 -1
  1062. package/packages/kmd_client/src/models/generate-key-request.js +2 -4
  1063. package/packages/kmd_client/src/models/generate-key-request.js.map +1 -1
  1064. package/packages/kmd_client/src/models/generate-key-request.mjs +1 -2
  1065. package/packages/kmd_client/src/models/generate-key-request.mjs.map +1 -1
  1066. package/packages/kmd_client/src/models/generate-key-response.d.ts +0 -1
  1067. package/packages/kmd_client/src/models/generate-key-response.js +2 -4
  1068. package/packages/kmd_client/src/models/generate-key-response.js.map +1 -1
  1069. package/packages/kmd_client/src/models/generate-key-response.mjs +1 -2
  1070. package/packages/kmd_client/src/models/generate-key-response.mjs.map +1 -1
  1071. package/packages/kmd_client/src/models/import-key-request.js +3 -4
  1072. package/packages/kmd_client/src/models/import-key-request.js.map +1 -1
  1073. package/packages/kmd_client/src/models/import-key-request.mjs +1 -2
  1074. package/packages/kmd_client/src/models/import-key-request.mjs.map +1 -1
  1075. package/packages/kmd_client/src/models/import-key-response.d.ts +0 -1
  1076. package/packages/kmd_client/src/models/import-key-response.js +2 -4
  1077. package/packages/kmd_client/src/models/import-key-response.js.map +1 -1
  1078. package/packages/kmd_client/src/models/import-key-response.mjs +1 -2
  1079. package/packages/kmd_client/src/models/import-key-response.mjs.map +1 -1
  1080. package/packages/kmd_client/src/models/import-multisig-request.js +4 -5
  1081. package/packages/kmd_client/src/models/import-multisig-request.js.map +1 -1
  1082. package/packages/kmd_client/src/models/import-multisig-request.mjs +1 -2
  1083. package/packages/kmd_client/src/models/import-multisig-request.mjs.map +1 -1
  1084. package/packages/kmd_client/src/models/import-multisig-response.d.ts +0 -1
  1085. package/packages/kmd_client/src/models/import-multisig-response.js +2 -4
  1086. package/packages/kmd_client/src/models/import-multisig-response.js.map +1 -1
  1087. package/packages/kmd_client/src/models/import-multisig-response.mjs +1 -2
  1088. package/packages/kmd_client/src/models/import-multisig-response.mjs.map +1 -1
  1089. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js +2 -3
  1090. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js.map +1 -1
  1091. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs +1 -2
  1092. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs.map +1 -1
  1093. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js +2 -4
  1094. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js.map +1 -1
  1095. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs +1 -2
  1096. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs.map +1 -1
  1097. package/packages/kmd_client/src/models/list-keys-request.js +2 -4
  1098. package/packages/kmd_client/src/models/list-keys-request.js.map +1 -1
  1099. package/packages/kmd_client/src/models/list-keys-request.mjs +1 -2
  1100. package/packages/kmd_client/src/models/list-keys-request.mjs.map +1 -1
  1101. package/packages/kmd_client/src/models/list-keys-response.d.ts +0 -1
  1102. package/packages/kmd_client/src/models/list-keys-response.js +2 -4
  1103. package/packages/kmd_client/src/models/list-keys-response.js.map +1 -1
  1104. package/packages/kmd_client/src/models/list-keys-response.mjs +1 -2
  1105. package/packages/kmd_client/src/models/list-keys-response.mjs.map +1 -1
  1106. package/packages/kmd_client/src/models/list-multisig-request.js +2 -4
  1107. package/packages/kmd_client/src/models/list-multisig-request.js.map +1 -1
  1108. package/packages/kmd_client/src/models/list-multisig-request.mjs +1 -2
  1109. package/packages/kmd_client/src/models/list-multisig-request.mjs.map +1 -1
  1110. package/packages/kmd_client/src/models/list-multisig-response.d.ts +0 -1
  1111. package/packages/kmd_client/src/models/list-multisig-response.js +2 -4
  1112. package/packages/kmd_client/src/models/list-multisig-response.js.map +1 -1
  1113. package/packages/kmd_client/src/models/list-multisig-response.mjs +1 -2
  1114. package/packages/kmd_client/src/models/list-multisig-response.mjs.map +1 -1
  1115. package/packages/kmd_client/src/models/list-wallets-response.d.ts +0 -1
  1116. package/packages/kmd_client/src/models/list-wallets-response.js +4 -5
  1117. package/packages/kmd_client/src/models/list-wallets-response.js.map +1 -1
  1118. package/packages/kmd_client/src/models/list-wallets-response.mjs +1 -2
  1119. package/packages/kmd_client/src/models/list-wallets-response.mjs.map +1 -1
  1120. package/packages/kmd_client/src/models/multisig-sig.d.ts +0 -1
  1121. package/packages/kmd_client/src/models/multisig-sig.js +5 -6
  1122. package/packages/kmd_client/src/models/multisig-sig.js.map +1 -1
  1123. package/packages/kmd_client/src/models/multisig-sig.mjs +1 -2
  1124. package/packages/kmd_client/src/models/multisig-sig.mjs.map +1 -1
  1125. package/packages/kmd_client/src/models/multisig-subsig.js +2 -3
  1126. package/packages/kmd_client/src/models/multisig-subsig.js.map +1 -1
  1127. package/packages/kmd_client/src/models/multisig-subsig.mjs +1 -2
  1128. package/packages/kmd_client/src/models/multisig-subsig.mjs.map +1 -1
  1129. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js +2 -4
  1130. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js.map +1 -1
  1131. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs +1 -2
  1132. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs.map +1 -1
  1133. package/packages/kmd_client/src/models/rename-wallet-request.js +2 -3
  1134. package/packages/kmd_client/src/models/rename-wallet-request.js.map +1 -1
  1135. package/packages/kmd_client/src/models/rename-wallet-request.mjs +1 -2
  1136. package/packages/kmd_client/src/models/rename-wallet-request.mjs.map +1 -1
  1137. package/packages/kmd_client/src/models/rename-wallet-response.d.ts +0 -1
  1138. package/packages/kmd_client/src/models/rename-wallet-response.js +3 -4
  1139. package/packages/kmd_client/src/models/rename-wallet-response.js.map +1 -1
  1140. package/packages/kmd_client/src/models/rename-wallet-response.mjs +1 -2
  1141. package/packages/kmd_client/src/models/rename-wallet-response.mjs.map +1 -1
  1142. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js +2 -4
  1143. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js.map +1 -1
  1144. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs +1 -2
  1145. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs.map +1 -1
  1146. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.d.ts +0 -1
  1147. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js +3 -4
  1148. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js.map +1 -1
  1149. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs +1 -2
  1150. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs.map +1 -1
  1151. package/packages/kmd_client/src/models/sign-multisig-response.js +2 -4
  1152. package/packages/kmd_client/src/models/sign-multisig-response.js.map +1 -1
  1153. package/packages/kmd_client/src/models/sign-multisig-response.mjs +1 -2
  1154. package/packages/kmd_client/src/models/sign-multisig-response.mjs.map +1 -1
  1155. package/packages/kmd_client/src/models/sign-multisig-txn-request.d.ts +0 -1
  1156. package/packages/kmd_client/src/models/sign-multisig-txn-request.js +5 -6
  1157. package/packages/kmd_client/src/models/sign-multisig-txn-request.js.map +1 -1
  1158. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs +1 -2
  1159. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs.map +1 -1
  1160. package/packages/kmd_client/src/models/sign-program-multisig-request.d.ts +0 -1
  1161. package/packages/kmd_client/src/models/sign-program-multisig-request.js +7 -8
  1162. package/packages/kmd_client/src/models/sign-program-multisig-request.js.map +1 -1
  1163. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs +1 -2
  1164. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs.map +1 -1
  1165. package/packages/kmd_client/src/models/sign-program-multisig-response.js +2 -4
  1166. package/packages/kmd_client/src/models/sign-program-multisig-response.js.map +1 -1
  1167. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs +1 -2
  1168. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs.map +1 -1
  1169. package/packages/kmd_client/src/models/sign-program-request.d.ts +0 -1
  1170. package/packages/kmd_client/src/models/sign-program-request.js +4 -5
  1171. package/packages/kmd_client/src/models/sign-program-request.js.map +1 -1
  1172. package/packages/kmd_client/src/models/sign-program-request.mjs +1 -2
  1173. package/packages/kmd_client/src/models/sign-program-request.mjs.map +1 -1
  1174. package/packages/kmd_client/src/models/sign-program-response.js +2 -4
  1175. package/packages/kmd_client/src/models/sign-program-response.js.map +1 -1
  1176. package/packages/kmd_client/src/models/sign-program-response.mjs +1 -2
  1177. package/packages/kmd_client/src/models/sign-program-response.mjs.map +1 -1
  1178. package/packages/kmd_client/src/models/sign-transaction-response.js +2 -4
  1179. package/packages/kmd_client/src/models/sign-transaction-response.js.map +1 -1
  1180. package/packages/kmd_client/src/models/sign-transaction-response.mjs +1 -2
  1181. package/packages/kmd_client/src/models/sign-transaction-response.mjs.map +1 -1
  1182. package/packages/kmd_client/src/models/sign-txn-request.js +3 -4
  1183. package/packages/kmd_client/src/models/sign-txn-request.js.map +1 -1
  1184. package/packages/kmd_client/src/models/sign-txn-request.mjs +1 -2
  1185. package/packages/kmd_client/src/models/sign-txn-request.mjs.map +1 -1
  1186. package/packages/kmd_client/src/models/tx-type.js +2 -4
  1187. package/packages/kmd_client/src/models/tx-type.js.map +1 -1
  1188. package/packages/kmd_client/src/models/tx-type.mjs +1 -2
  1189. package/packages/kmd_client/src/models/tx-type.mjs.map +1 -1
  1190. package/packages/kmd_client/src/models/versions-response.js +2 -4
  1191. package/packages/kmd_client/src/models/versions-response.js.map +1 -1
  1192. package/packages/kmd_client/src/models/versions-response.mjs +1 -2
  1193. package/packages/kmd_client/src/models/versions-response.mjs.map +1 -1
  1194. package/packages/kmd_client/src/models/wallet-handle.d.ts +0 -1
  1195. package/packages/kmd_client/src/models/wallet-handle.js +4 -5
  1196. package/packages/kmd_client/src/models/wallet-handle.js.map +1 -1
  1197. package/packages/kmd_client/src/models/wallet-handle.mjs +1 -2
  1198. package/packages/kmd_client/src/models/wallet-handle.mjs.map +1 -1
  1199. package/packages/kmd_client/src/models/wallet-info-request.js +2 -4
  1200. package/packages/kmd_client/src/models/wallet-info-request.js.map +1 -1
  1201. package/packages/kmd_client/src/models/wallet-info-request.mjs +1 -2
  1202. package/packages/kmd_client/src/models/wallet-info-request.mjs.map +1 -1
  1203. package/packages/kmd_client/src/models/wallet-info-response.d.ts +0 -1
  1204. package/packages/kmd_client/src/models/wallet-info-response.js +3 -4
  1205. package/packages/kmd_client/src/models/wallet-info-response.js.map +1 -1
  1206. package/packages/kmd_client/src/models/wallet-info-response.mjs +1 -2
  1207. package/packages/kmd_client/src/models/wallet-info-response.mjs.map +1 -1
  1208. package/packages/kmd_client/src/models/wallet.d.ts +0 -1
  1209. package/packages/kmd_client/src/models/wallet.js +7 -8
  1210. package/packages/kmd_client/src/models/wallet.js.map +1 -1
  1211. package/packages/kmd_client/src/models/wallet.mjs +1 -2
  1212. package/packages/kmd_client/src/models/wallet.mjs.map +1 -1
  1213. package/packages/testing/src/globalSetup.js +39 -0
  1214. package/packages/testing/src/globalSetup.js.map +1 -0
  1215. package/packages/testing/src/globalSetup.mjs +35 -0
  1216. package/packages/testing/src/globalSetup.mjs.map +1 -0
  1217. package/packages/testing/src/mockServer.js +94 -0
  1218. package/packages/testing/src/mockServer.js.map +1 -0
  1219. package/packages/testing/src/mockServer.mjs +83 -0
  1220. package/packages/testing/src/mockServer.mjs.map +1 -0
  1221. package/packages/transact/src/logicsig.d.ts +35 -34
  1222. package/packages/transact/src/logicsig.js +81 -84
  1223. package/packages/transact/src/logicsig.js.map +1 -1
  1224. package/packages/transact/src/logicsig.mjs +79 -81
  1225. package/packages/transact/src/logicsig.mjs.map +1 -1
  1226. package/packages/transact/src/multisig.d.ts +11 -116
  1227. package/packages/transact/src/multisig.js +104 -135
  1228. package/packages/transact/src/multisig.js.map +1 -1
  1229. package/packages/transact/src/multisig.mjs +103 -114
  1230. package/packages/transact/src/multisig.mjs.map +1 -1
  1231. package/packages/transact/src/signer.d.ts +11 -3
  1232. package/packages/transact/src/signer.js +29 -8
  1233. package/packages/transact/src/signer.js.map +1 -1
  1234. package/packages/transact/src/signer.mjs +26 -6
  1235. package/packages/transact/src/signer.mjs.map +1 -1
  1236. package/packages/transact/src/transactions/app-call.d.ts +11 -27
  1237. package/packages/transact/src/transactions/app-call.js +30 -31
  1238. package/packages/transact/src/transactions/app-call.js.map +1 -1
  1239. package/packages/transact/src/transactions/app-call.mjs +29 -30
  1240. package/packages/transact/src/transactions/app-call.mjs.map +1 -1
  1241. package/packages/transact/src/transactions/asset-config.d.ts +1 -7
  1242. package/packages/transact/src/transactions/asset-config.js +11 -12
  1243. package/packages/transact/src/transactions/asset-config.js.map +1 -1
  1244. package/packages/transact/src/transactions/asset-config.mjs +10 -11
  1245. package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
  1246. package/packages/transact/src/transactions/asset-freeze.d.ts +1 -7
  1247. package/packages/transact/src/transactions/asset-freeze.js +2 -3
  1248. package/packages/transact/src/transactions/asset-freeze.js.map +1 -1
  1249. package/packages/transact/src/transactions/asset-freeze.mjs +1 -2
  1250. package/packages/transact/src/transactions/asset-freeze.mjs.map +1 -1
  1251. package/packages/transact/src/transactions/asset-transfer.d.ts +1 -7
  1252. package/packages/transact/src/transactions/asset-transfer.js +2 -3
  1253. package/packages/transact/src/transactions/asset-transfer.js.map +1 -1
  1254. package/packages/transact/src/transactions/asset-transfer.mjs +1 -2
  1255. package/packages/transact/src/transactions/asset-transfer.mjs.map +1 -1
  1256. package/packages/transact/src/transactions/common.js +8 -9
  1257. package/packages/transact/src/transactions/common.js.map +1 -1
  1258. package/packages/transact/src/transactions/common.mjs +8 -8
  1259. package/packages/transact/src/transactions/common.mjs.map +1 -1
  1260. package/packages/transact/src/transactions/heartbeat.d.ts +8 -19
  1261. package/packages/transact/src/transactions/key-registration.d.ts +1 -8
  1262. package/packages/transact/src/transactions/key-registration.js +2 -3
  1263. package/packages/transact/src/transactions/key-registration.js.map +1 -1
  1264. package/packages/transact/src/transactions/key-registration.mjs +1 -2
  1265. package/packages/transact/src/transactions/key-registration.mjs.map +1 -1
  1266. package/packages/transact/src/transactions/payment.d.ts +0 -1
  1267. package/packages/transact/src/transactions/reference-types-meta.d.ts +0 -1
  1268. package/packages/transact/src/transactions/reference-types-meta.js +4 -5
  1269. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -1
  1270. package/packages/transact/src/transactions/reference-types-meta.mjs +1 -2
  1271. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -1
  1272. package/packages/transact/src/transactions/signed-transaction-meta.d.ts +0 -1
  1273. package/packages/transact/src/transactions/signed-transaction-meta.js +16 -18
  1274. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
  1275. package/packages/transact/src/transactions/signed-transaction-meta.mjs +9 -10
  1276. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
  1277. package/packages/transact/src/transactions/signed-transaction.d.ts +22 -7
  1278. package/packages/transact/src/transactions/signed-transaction.js +21 -6
  1279. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  1280. package/packages/transact/src/transactions/signed-transaction.mjs +17 -4
  1281. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  1282. package/packages/transact/src/transactions/state-proof.d.ts +2 -5
  1283. package/packages/transact/src/transactions/transaction-meta.d.ts +0 -1
  1284. package/packages/transact/src/transactions/transaction-meta.js +22 -17
  1285. package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
  1286. package/packages/transact/src/transactions/transaction-meta.mjs +8 -3
  1287. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
  1288. package/packages/transact/src/transactions/transaction-type.d.ts +1 -1
  1289. package/packages/transact/src/transactions/transaction-type.js +12 -13
  1290. package/packages/transact/src/transactions/transaction-type.js.map +1 -1
  1291. package/packages/transact/src/transactions/transaction-type.mjs +12 -12
  1292. package/packages/transact/src/transactions/transaction-type.mjs.map +1 -1
  1293. package/packages/transact/src/transactions/transaction.d.ts +5 -2
  1294. package/packages/transact/src/transactions/transaction.js +30 -30
  1295. package/packages/transact/src/transactions/transaction.js.map +1 -1
  1296. package/packages/transact/src/transactions/transaction.mjs +14 -14
  1297. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  1298. package/testing/account.d.ts +2 -3
  1299. package/testing/account.js +5 -7
  1300. package/testing/account.js.map +1 -1
  1301. package/testing/account.mjs +3 -5
  1302. package/testing/account.mjs.map +1 -1
  1303. package/testing/fixtures/algokit-log-capture-fixture.d.ts +1 -2
  1304. package/testing/fixtures/algokit-log-capture-fixture.js +3 -4
  1305. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  1306. package/testing/fixtures/algokit-log-capture-fixture.mjs +1 -2
  1307. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  1308. package/testing/fixtures/algorand-fixture.d.ts +5 -6
  1309. package/testing/fixtures/algorand-fixture.js +8 -9
  1310. package/testing/fixtures/algorand-fixture.js.map +1 -1
  1311. package/testing/fixtures/algorand-fixture.mjs +3 -4
  1312. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  1313. package/testing/index.d.ts +2 -1
  1314. package/testing/index.js +26 -8
  1315. package/testing/index.mjs +3 -2
  1316. package/testing/indexer.js +1 -2
  1317. package/testing/indexer.js.map +1 -1
  1318. package/testing/indexer.mjs +1 -1
  1319. package/testing/indexer.mjs.map +1 -1
  1320. package/testing/test-logger.d.ts +1 -2
  1321. package/testing/test-logger.js +2 -3
  1322. package/testing/test-logger.js.map +1 -1
  1323. package/testing/test-logger.mjs +1 -2
  1324. package/testing/test-logger.mjs.map +1 -1
  1325. package/testing/transaction-logger.d.ts +0 -1
  1326. package/testing/transaction-logger.js +4 -5
  1327. package/testing/transaction-logger.js.map +1 -1
  1328. package/testing/transaction-logger.mjs +1 -2
  1329. package/testing/transaction-logger.mjs.map +1 -1
  1330. package/testing/types.d.ts +156 -0
  1331. package/transact/index.d.ts +12 -12
  1332. package/transact/index.js +16 -42
  1333. package/transact/index.mjs +7 -12
  1334. package/transaction/index.d.ts +4 -0
  1335. package/transaction/index.js +9 -0
  1336. package/transaction/index.mjs +3 -0
  1337. package/transaction/perform-transaction-composer-simulate.d.ts +1 -2
  1338. package/transaction/perform-transaction-composer-simulate.js +3 -5
  1339. package/transaction/perform-transaction-composer-simulate.js.map +1 -1
  1340. package/transaction/perform-transaction-composer-simulate.mjs +3 -4
  1341. package/transaction/perform-transaction-composer-simulate.mjs.map +1 -1
  1342. package/transaction/transaction.d.ts +2 -4
  1343. package/transaction/transaction.js +4 -7
  1344. package/transaction/transaction.js.map +1 -1
  1345. package/transaction/transaction.mjs +3 -6
  1346. package/transaction/transaction.mjs.map +1 -1
  1347. package/transaction/types.d.ts +133 -0
  1348. package/transactions/app-call.d.ts +18 -34
  1349. package/transactions/app-call.js +53 -54
  1350. package/transactions/app-call.js.map +1 -1
  1351. package/transactions/app-call.mjs +47 -48
  1352. package/transactions/app-call.mjs.map +1 -1
  1353. package/transactions/asset-config.d.ts +4 -10
  1354. package/transactions/asset-config.js +5 -6
  1355. package/transactions/asset-config.js.map +1 -1
  1356. package/transactions/asset-config.mjs +1 -2
  1357. package/transactions/asset-config.mjs.map +1 -1
  1358. package/transactions/asset-transfer.d.ts +4 -10
  1359. package/transactions/asset-transfer.js +5 -6
  1360. package/transactions/asset-transfer.js.map +1 -1
  1361. package/transactions/asset-transfer.mjs +1 -2
  1362. package/transactions/asset-transfer.mjs.map +1 -1
  1363. package/transactions/common.d.ts +8 -15
  1364. package/transactions/common.js +3 -4
  1365. package/transactions/common.js.map +1 -1
  1366. package/transactions/common.mjs +1 -2
  1367. package/transactions/common.mjs.map +1 -1
  1368. package/transactions/fee-coverage.js +7 -8
  1369. package/transactions/fee-coverage.js.map +1 -1
  1370. package/transactions/fee-coverage.mjs +7 -7
  1371. package/transactions/fee-coverage.mjs.map +1 -1
  1372. package/transactions/key-registration.d.ts +7 -15
  1373. package/transactions/key-registration.js +4 -5
  1374. package/transactions/key-registration.js.map +1 -1
  1375. package/transactions/key-registration.mjs +1 -2
  1376. package/transactions/key-registration.mjs.map +1 -1
  1377. package/transactions/method-call.d.ts +3 -5
  1378. package/transactions/method-call.js +84 -94
  1379. package/transactions/method-call.js.map +1 -1
  1380. package/transactions/method-call.mjs +76 -86
  1381. package/transactions/method-call.mjs.map +1 -1
  1382. package/transactions/payment.d.ts +2 -5
  1383. package/transactions/payment.js +5 -6
  1384. package/transactions/payment.js.map +1 -1
  1385. package/transactions/payment.mjs +1 -2
  1386. package/transactions/payment.mjs.map +1 -1
  1387. package/types/account-manager.d.ts +11 -444
  1388. package/types/account-manager.js +7 -608
  1389. package/types/account-manager.js.map +1 -1
  1390. package/types/account-manager.mjs +6 -606
  1391. package/types/account-manager.mjs.map +1 -1
  1392. package/types/account.d.ts +8 -150
  1393. package/types/account.js +4 -6
  1394. package/types/account.js.map +1 -1
  1395. package/types/account.mjs +4 -5
  1396. package/types/account.mjs.map +1 -1
  1397. package/types/algorand-client-transaction-creator.d.ts +5 -1084
  1398. package/types/algorand-client-transaction-creator.js +4 -723
  1399. package/types/algorand-client-transaction-creator.js.map +1 -1
  1400. package/types/algorand-client-transaction-creator.mjs +4 -722
  1401. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  1402. package/types/algorand-client-transaction-sender.d.ts +5 -1298
  1403. package/types/algorand-client-transaction-sender.js +4 -922
  1404. package/types/algorand-client-transaction-sender.js.map +1 -1
  1405. package/types/algorand-client-transaction-sender.mjs +4 -920
  1406. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  1407. package/types/algorand-client.d.ts +5 -241
  1408. package/types/algorand-client.js +4 -321
  1409. package/types/algorand-client.js.map +1 -1
  1410. package/types/algorand-client.mjs +4 -321
  1411. package/types/algorand-client.mjs.map +1 -1
  1412. package/types/amount.d.ts +6 -45
  1413. package/types/amount.js +4 -62
  1414. package/types/amount.js.map +1 -1
  1415. package/types/amount.mjs +4 -62
  1416. package/types/amount.mjs.map +1 -1
  1417. package/types/app-client.d.ts +75 -2120
  1418. package/types/app-client.js +4 -906
  1419. package/types/app-client.js.map +1 -1
  1420. package/types/app-client.mjs +4 -904
  1421. package/types/app-client.mjs.map +1 -1
  1422. package/types/app-deployer.d.ts +21 -161
  1423. package/types/app-deployer.js +4 -349
  1424. package/types/app-deployer.js.map +1 -1
  1425. package/types/app-deployer.mjs +4 -349
  1426. package/types/app-deployer.mjs.map +1 -1
  1427. package/types/app-factory.d.ts +21 -957
  1428. package/types/app-factory.js +4 -444
  1429. package/types/app-factory.js.map +1 -1
  1430. package/types/app-factory.mjs +4 -444
  1431. package/types/app-factory.mjs.map +1 -1
  1432. package/types/app-manager.d.ts +15 -316
  1433. package/types/app-manager.js +4 -463
  1434. package/types/app-manager.js.map +1 -1
  1435. package/types/app-manager.mjs +4 -463
  1436. package/types/app-manager.mjs.map +1 -1
  1437. package/types/app-spec.d.ts +39 -198
  1438. package/types/app-spec.js +4 -133
  1439. package/types/app-spec.js.map +1 -1
  1440. package/types/app-spec.mjs +4 -133
  1441. package/types/app-spec.mjs.map +1 -1
  1442. package/types/app.d.ts +63 -248
  1443. package/types/app.js +17 -39
  1444. package/types/app.js.map +1 -1
  1445. package/types/app.mjs +16 -38
  1446. package/types/app.mjs.map +1 -1
  1447. package/types/asset-manager.d.ts +9 -207
  1448. package/types/asset-manager.js +4 -162
  1449. package/types/asset-manager.js.map +1 -1
  1450. package/types/asset-manager.mjs +4 -162
  1451. package/types/asset-manager.mjs.map +1 -1
  1452. package/types/async-event-emitter.d.ts +7 -14
  1453. package/types/async-event-emitter.js +4 -34
  1454. package/types/async-event-emitter.js.map +1 -1
  1455. package/types/async-event-emitter.mjs +4 -33
  1456. package/types/async-event-emitter.mjs.map +1 -1
  1457. package/types/client-manager.d.ts +27 -470
  1458. package/types/client-manager.js +4 -612
  1459. package/types/client-manager.js.map +1 -1
  1460. package/types/client-manager.mjs +4 -612
  1461. package/types/client-manager.mjs.map +1 -1
  1462. package/types/composer.d.ts +79 -935
  1463. package/types/composer.js +4 -1568
  1464. package/types/composer.js.map +1 -1
  1465. package/types/composer.mjs +4 -1566
  1466. package/types/composer.mjs.map +1 -1
  1467. package/types/config.d.ts +7 -52
  1468. package/types/config.js +4 -76
  1469. package/types/config.js.map +1 -1
  1470. package/types/config.mjs +4 -76
  1471. package/types/config.mjs.map +1 -1
  1472. package/types/debugging.d.ts +12 -33
  1473. package/types/debugging.js +12 -11
  1474. package/types/debugging.js.map +1 -1
  1475. package/types/debugging.mjs +11 -10
  1476. package/types/debugging.mjs.map +1 -1
  1477. package/types/dispenser-client.d.ts +11 -85
  1478. package/types/dispenser-client.js +4 -123
  1479. package/types/dispenser-client.js.map +1 -1
  1480. package/types/dispenser-client.mjs +4 -123
  1481. package/types/dispenser-client.mjs.map +1 -1
  1482. package/types/expand.d.ts +4 -5
  1483. package/types/indexer.d.ts +16 -36
  1484. package/types/indexer.js +9 -32
  1485. package/types/indexer.js.map +1 -1
  1486. package/types/indexer.mjs +8 -31
  1487. package/types/indexer.mjs.map +1 -1
  1488. package/types/instance-of.d.ts +4 -4
  1489. package/types/kmd-account-manager.d.ts +5 -68
  1490. package/types/kmd-account-manager.js +4 -152
  1491. package/types/kmd-account-manager.js.map +1 -1
  1492. package/types/kmd-account-manager.mjs +4 -150
  1493. package/types/kmd-account-manager.mjs.map +1 -1
  1494. package/types/lifecycle-events.d.ts +7 -10
  1495. package/types/lifecycle-events.js +4 -7
  1496. package/types/lifecycle-events.js.map +1 -1
  1497. package/types/lifecycle-events.mjs +4 -6
  1498. package/types/lifecycle-events.mjs.map +1 -1
  1499. package/types/logging.d.ts +14 -9
  1500. package/types/logging.js +13 -39
  1501. package/types/logging.js.map +1 -1
  1502. package/types/logging.mjs +12 -38
  1503. package/types/logging.mjs.map +1 -1
  1504. package/types/logic-error.d.ts +8 -35
  1505. package/types/logic-error.js +4 -50
  1506. package/types/logic-error.js.map +1 -1
  1507. package/types/logic-error.mjs +4 -49
  1508. package/types/logic-error.mjs.map +1 -1
  1509. package/types/network-client.d.ts +10 -39
  1510. package/types/network-client.js +4 -10
  1511. package/types/network-client.js.map +1 -1
  1512. package/types/network-client.mjs +4 -9
  1513. package/types/network-client.mjs.map +1 -1
  1514. package/types/testing.d.ts +13 -151
  1515. package/types/transaction.d.ts +33 -128
  1516. package/updatable-config.d.ts +57 -0
  1517. package/updatable-config.js +79 -0
  1518. package/updatable-config.js.map +1 -0
  1519. package/updatable-config.mjs +79 -0
  1520. package/updatable-config.mjs.map +1 -0
  1521. package/util.js +2 -3
  1522. package/util.js.map +1 -1
  1523. package/util.mjs +2 -3
  1524. package/util.mjs.map +1 -1
  1525. package/_virtual/rolldown_runtime.mjs +0 -13
  1526. package/indexer-lookup.js.map +0 -1
  1527. package/indexer-lookup.mjs.map +0 -1
  1528. package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
  1529. package/packages/common/src/crypto.js +0 -13
  1530. package/packages/common/src/crypto.js.map +0 -1
  1531. package/packages/common/src/crypto.mjs +0 -11
  1532. package/packages/common/src/crypto.mjs.map +0 -1
  1533. package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
  1534. package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
  1535. package/packages/sdk/src/convert.d.ts +0 -17
  1536. package/packages/sdk/src/convert.js +0 -28
  1537. package/packages/sdk/src/convert.js.map +0 -1
  1538. package/packages/sdk/src/convert.mjs +0 -25
  1539. package/packages/sdk/src/convert.mjs.map +0 -1
  1540. package/packages/sdk/src/encoding/binarydata.d.ts +0 -34
  1541. package/packages/sdk/src/encoding/binarydata.js +0 -65
  1542. package/packages/sdk/src/encoding/binarydata.js.map +0 -1
  1543. package/packages/sdk/src/encoding/binarydata.mjs +0 -60
  1544. package/packages/sdk/src/encoding/binarydata.mjs.map +0 -1
  1545. package/packages/sdk/src/encoding/encoding.d.ts +0 -237
  1546. package/packages/sdk/src/encoding/encoding.js +0 -302
  1547. package/packages/sdk/src/encoding/encoding.js.map +0 -1
  1548. package/packages/sdk/src/encoding/encoding.mjs +0 -287
  1549. package/packages/sdk/src/encoding/encoding.mjs.map +0 -1
  1550. package/packages/sdk/src/encoding/schema/array.js +0 -35
  1551. package/packages/sdk/src/encoding/schema/array.js.map +0 -1
  1552. package/packages/sdk/src/encoding/schema/array.mjs +0 -35
  1553. package/packages/sdk/src/encoding/schema/array.mjs.map +0 -1
  1554. package/packages/sdk/src/encoding/schema/bytearray.js +0 -49
  1555. package/packages/sdk/src/encoding/schema/bytearray.js.map +0 -1
  1556. package/packages/sdk/src/encoding/schema/bytearray.mjs +0 -49
  1557. package/packages/sdk/src/encoding/schema/bytearray.mjs.map +0 -1
  1558. package/packages/sdk/src/encoding/schema/map.d.ts +0 -58
  1559. package/packages/sdk/src/encoding/schema/map.js +0 -110
  1560. package/packages/sdk/src/encoding/schema/map.js.map +0 -1
  1561. package/packages/sdk/src/encoding/schema/map.mjs +0 -107
  1562. package/packages/sdk/src/encoding/schema/map.mjs.map +0 -1
  1563. package/packages/sdk/src/encoding/schema/optional.js +0 -46
  1564. package/packages/sdk/src/encoding/schema/optional.js.map +0 -1
  1565. package/packages/sdk/src/encoding/schema/optional.mjs +0 -46
  1566. package/packages/sdk/src/encoding/schema/optional.mjs.map +0 -1
  1567. package/packages/sdk/src/encoding/schema/uint64.js +0 -30
  1568. package/packages/sdk/src/encoding/schema/uint64.js.map +0 -1
  1569. package/packages/sdk/src/encoding/schema/uint64.mjs +0 -30
  1570. package/packages/sdk/src/encoding/schema/uint64.mjs.map +0 -1
  1571. package/packages/sdk/src/encoding/uint64.d.ts +0 -34
  1572. package/packages/sdk/src/encoding/uint64.js +0 -34
  1573. package/packages/sdk/src/encoding/uint64.js.map +0 -1
  1574. package/packages/sdk/src/encoding/uint64.mjs +0 -33
  1575. package/packages/sdk/src/encoding/uint64.mjs.map +0 -1
  1576. package/packages/sdk/src/index.d.ts +0 -44
  1577. package/packages/sdk/src/index.js +0 -62
  1578. package/packages/sdk/src/index.js.map +0 -1
  1579. package/packages/sdk/src/index.mjs +0 -58
  1580. package/packages/sdk/src/index.mjs.map +0 -1
  1581. package/packages/sdk/src/logic/sourcemap.js.map +0 -1
  1582. package/packages/sdk/src/logic/sourcemap.mjs.map +0 -1
  1583. package/packages/sdk/src/nacl/naclWrappers.js +0 -14
  1584. package/packages/sdk/src/nacl/naclWrappers.js.map +0 -1
  1585. package/packages/sdk/src/nacl/naclWrappers.mjs +0 -11
  1586. package/packages/sdk/src/nacl/naclWrappers.mjs.map +0 -1
  1587. package/packages/sdk/src/types/intDecoding.d.ts +0 -28
  1588. package/packages/sdk/src/types/intDecoding.js +0 -32
  1589. package/packages/sdk/src/types/intDecoding.js.map +0 -1
  1590. package/packages/sdk/src/types/intDecoding.mjs +0 -31
  1591. package/packages/sdk/src/types/intDecoding.mjs.map +0 -1
  1592. package/packages/sdk/src/types/transactions/encoded.d.ts +0 -40
  1593. package/packages/sdk/src/types/transactions/encoded.js +0 -64
  1594. package/packages/sdk/src/types/transactions/encoded.js.map +0 -1
  1595. package/packages/sdk/src/types/transactions/encoded.mjs +0 -59
  1596. package/packages/sdk/src/types/transactions/encoded.mjs.map +0 -1
  1597. package/packages/sdk/src/utils/utils.d.ts +0 -64
  1598. package/packages/sdk/src/utils/utils.js +0 -140
  1599. package/packages/sdk/src/utils/utils.js.map +0 -1
  1600. package/packages/sdk/src/utils/utils.mjs +0 -128
  1601. package/packages/sdk/src/utils/utils.mjs.map +0 -1
  1602. package/packages/transact/src/transactions/common.d.ts +0 -37
  1603. package/sdk/index.d.ts +0 -10
  1604. package/sdk/index.js +0 -59
  1605. package/sdk/index.mjs +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","names":["hash","base32","TRANSACTION_ID_LENGTH","Codec","TransactionType","Address","transactionParamsCodec","concatArrays","TRANSACTION_DOMAIN_SEPARATOR","validateAssetTransferTransaction","validateAssetConfigTransaction","validateAppCallTransaction","validateKeyRegistrationTransaction","validateAssetFreezeTransaction","getValidationErrorMessage","encodeMsgpack","decodeMsgpack","SIGNATURE_ENCODING_INCR","MAX_TRANSACTION_GROUP_SIZE","TRANSACTION_GROUP_DOMAIN_SEPARATOR"],"sources":["../../../../../packages/transact/src/transactions/transaction.ts"],"sourcesContent":["import type { EncodingFormat, WireObject } from '@algorandfoundation/algokit-common'\nimport {\n Address,\n Codec,\n MAX_TRANSACTION_GROUP_SIZE,\n SIGNATURE_ENCODING_INCR,\n TRANSACTION_DOMAIN_SEPARATOR,\n TRANSACTION_GROUP_DOMAIN_SEPARATOR,\n TRANSACTION_ID_LENGTH,\n concatArrays,\n decodeMsgpack,\n encodeMsgpack,\n hash,\n} from '@algorandfoundation/algokit-common'\nimport base32 from 'hi-base32'\nimport { AppCallTransactionFields, validateAppCallTransaction } from './app-call'\nimport { AssetConfigTransactionFields, validateAssetConfigTransaction } from './asset-config'\nimport { AssetFreezeTransactionFields, validateAssetFreezeTransaction } from './asset-freeze'\nimport { AssetTransferTransactionFields, validateAssetTransferTransaction } from './asset-transfer'\nimport { TransactionValidationError, getValidationErrorMessage } from './common'\nimport { HeartbeatTransactionFields } from './heartbeat'\nimport { KeyRegistrationTransactionFields, validateKeyRegistrationTransaction } from './key-registration'\nimport { PaymentTransactionFields } from './payment'\nimport { StateProofTransactionFields } from './state-proof'\nimport { transactionParamsCodec } from './transaction-meta'\nimport { TransactionType } from './transaction-type'\n\n/** Symbol used for instanceof checks across packages (CJS/ESM) */\nexport const TXN_SYMBOL = Symbol.for('algokit_transact:Transaction')\n\n/**\n * Represents the parameters for a complete Algorand transaction.\n *\n * This structure contains the fields that are present in every transaction,\n * regardless of transaction type, plus transaction-type-specific fields.\n */\nexport type TransactionParams = {\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n}\n\n/**\n * Represents a complete Algorand transaction.\n */\nexport class Transaction implements TransactionParams {\n /** @internal */\n [TXN_SYMBOL]: boolean\n\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n\n constructor(params: TransactionParams) {\n this[TXN_SYMBOL] = true\n this.type = params.type\n this.sender = params.sender\n this.fee = params.fee\n this.firstValid = params.firstValid\n this.lastValid = params.lastValid\n this.genesisHash = params.genesisHash\n this.genesisId = params.genesisId\n this.note = params.note\n this.rekeyTo = params.rekeyTo\n this.lease = params.lease\n this.group = params.group\n this.payment = params.payment\n this.assetTransfer = params.assetTransfer\n this.assetConfig = params.assetConfig\n this.appCall = params.appCall\n this.keyRegistration = params.keyRegistration\n this.assetFreeze = params.assetFreeze\n this.heartbeat = params.heartbeat\n this.stateProof = params.stateProof\n }\n\n private rawTxId(): Uint8Array {\n const encodedBytes = encodeTransaction(this)\n return hash(encodedBytes)\n }\n\n /**\n * Get the transaction ID as a base32-encoded string.\n */\n txId(): string {\n const rawTxId = this.rawTxId()\n\n return base32.encode(rawTxId).slice(0, TRANSACTION_ID_LENGTH)\n }\n\n static [Symbol.hasInstance](obj: unknown) {\n return Boolean(obj && typeof obj === 'object' && TXN_SYMBOL in obj && obj[TXN_SYMBOL as keyof typeof obj])\n }\n}\n\n/**\n * Codec for Transaction class.\n * Handles encoding/decoding between Transaction class instances and wire format.\n */\nclass TransactionCodec extends Codec<Transaction, Record<string, unknown>, WireObject> {\n public defaultValue(): Transaction {\n return new Transaction({\n type: TransactionType.Unknown,\n sender: Address.zeroAddress(),\n firstValid: 0n,\n lastValid: 0n,\n })\n }\n\n protected toEncoded(value: Transaction, format: EncodingFormat): Record<string, unknown> {\n return transactionParamsCodec.encode({ ...value }, format)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Transaction {\n const params = transactionParamsCodec.decode(value, format)\n return new Transaction(params)\n }\n\n public isDefaultValue(_: Transaction): boolean {\n return false\n }\n}\n\nexport const transactionCodec = new TransactionCodec()\n\nexport type FeeParams = {\n feePerByte: bigint\n minFee: bigint\n extraFee?: bigint\n maxFee?: bigint\n}\n\n/**\n * Get the transaction type from the encoded transaction.\n * This is particularly useful when decoding a transaction that has an unknown type\n */\nexport function getEncodedTransactionType(encoded_transaction: Uint8Array): TransactionType {\n const decoded = decodeTransaction(encoded_transaction)\n return decoded.type\n}\n\n/**\n * Encode the transaction with the domain separation (e.g. \"TX\") prefix\n *\n * @param transaction - The transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransaction(transaction: Transaction): Uint8Array {\n const rawBytes = encodeTransactionRaw(transaction)\n\n // Add domain separation prefix\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n return concatArrays(prefixBytes, rawBytes)\n}\n\n/**\n * Encode transactions with the domain separation (e.g. \"TX\") prefix\n *\n * @param transactions - A collection of transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransactions(transactions: Transaction[]): Uint8Array[] {\n return transactions.map((tx) => encodeTransaction(tx))\n}\n\n/**\n * Validate a transaction\n */\nexport function validateTransaction(transaction: Transaction): void {\n // Validate that only one transaction type specific field is set\n const typeFields = [\n transaction.payment,\n transaction.assetTransfer,\n transaction.assetConfig,\n transaction.appCall,\n transaction.keyRegistration,\n transaction.assetFreeze,\n transaction.heartbeat,\n transaction.stateProof,\n ]\n\n const setFieldsCount = typeFields.filter((field) => field !== undefined).length\n\n if (setFieldsCount > 1) {\n throw new Error('Multiple transaction type specific fields set')\n }\n\n // Perform type-specific validation where applicable\n let typeName = 'Transaction'\n const errors = new Array<TransactionValidationError>()\n if (transaction.assetTransfer) {\n typeName = 'Asset transfer'\n errors.push(...validateAssetTransferTransaction(transaction.assetTransfer))\n } else if (transaction.assetConfig) {\n typeName = 'Asset config'\n errors.push(...validateAssetConfigTransaction(transaction.assetConfig))\n } else if (transaction.appCall) {\n typeName = 'App call'\n errors.push(...validateAppCallTransaction(transaction.appCall))\n } else if (transaction.keyRegistration) {\n typeName = 'Key registration'\n errors.push(...validateKeyRegistrationTransaction(transaction.keyRegistration))\n } else if (transaction.assetFreeze) {\n typeName = 'Asset freeze'\n errors.push(...validateAssetFreezeTransaction(transaction.assetFreeze))\n }\n\n if (errors.length > 0) {\n const errorMessages = errors.map((e) => getValidationErrorMessage(e))\n throw new Error(`${typeName} validation failed: ${errorMessages.join('\\n')}`)\n }\n}\n\n/**\n * Encode the transaction without the domain separation (e.g. \"TX\") prefix\n * This is useful for encoding the transaction for signing with tools that automatically add \"TX\" prefix to the transaction bytes.\n */\nexport function encodeTransactionRaw(transaction: Transaction): Uint8Array {\n validateTransaction(transaction)\n const encodingData = transactionCodec.encode(transaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Decodes MsgPack bytes into a transaction.\n *\n * # Parameters\n * * `encoded_transaction` - MsgPack encoded bytes representing a transaction.\n *\n * # Returns\n * A decoded transaction or an error if decoding fails.\n */\nexport function decodeTransaction(encoded_transaction: Uint8Array): Transaction {\n if (encoded_transaction.length === 0) {\n throw new Error('attempted to decode 0 bytes')\n }\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n // Check if the transaction has the domain separation prefix\n let hasPrefix = true\n if (encoded_transaction.length < prefixBytes.length) {\n hasPrefix = false\n } else {\n for (let i = 0; i < prefixBytes.length; i++) {\n if (encoded_transaction[i] !== prefixBytes[i]) {\n hasPrefix = false\n break\n }\n }\n }\n\n const decodedData = decodeMsgpack(hasPrefix ? encoded_transaction.slice(prefixBytes.length) : encoded_transaction)\n return transactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a transaction collection.\n *\n * # Parameters\n * * `encoded_transaction` - A collection of MsgPack encoded bytes, each representing a transaction.\n *\n * # Returns\n * A collection of decoded transactions or an error if decoding fails.\n */\nexport function decodeTransactions(encoded_transactions: Uint8Array[]): Transaction[] {\n return encoded_transactions.map((et) => decodeTransaction(et))\n}\n\n/**\n * Return the size of the transaction in bytes as if it was already signed and encoded.\n * This is useful for estimating the fee for the transaction.\n */\nexport function estimateTransactionSize(transaction: Transaction): bigint {\n const encoded = encodeTransactionRaw(transaction)\n return BigInt(encoded.length + SIGNATURE_ENCODING_INCR)\n}\n\n/**\n * Groups a collection of transactions by calculating and assigning the group to each transaction.\n */\nexport function groupTransactions(transactions: Transaction[]): Transaction[] {\n const group = computeGroup(transactions)\n return transactions.map(\n (tx) =>\n new Transaction({\n ...tx,\n group,\n }),\n )\n}\n\nexport function assignFee(transaction: Transaction, feeParams: FeeParams): Transaction {\n const fee = calculateFee(transaction, feeParams)\n return new Transaction({\n ...transaction,\n fee,\n })\n}\n\nfunction computeGroup(transactions: Transaction[]): Uint8Array {\n if (transactions.length === 0) {\n throw new Error('Transaction group size cannot be 0')\n }\n\n if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) {\n throw new Error(`Transaction group size exceeds the max limit of ${MAX_TRANSACTION_GROUP_SIZE}`)\n }\n\n const txHashes = transactions.map((tx) => {\n if (tx.group) {\n throw new Error('Transactions must not already be grouped')\n }\n\n const encodedBytes = encodeTransaction(tx)\n return hash(encodedBytes)\n })\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_GROUP_DOMAIN_SEPARATOR)\n const encodedBytes = encodeMsgpack({\n txlist: txHashes,\n })\n\n const prefixedBytes = concatArrays(prefixBytes, encodedBytes)\n return hash(prefixedBytes)\n}\n\nexport function calculateFee(transaction: Transaction, feeParams: FeeParams): bigint {\n let calculatedFee = 0n\n\n if (feeParams.feePerByte > 0n) {\n const estimatedSize = estimateTransactionSize(transaction)\n calculatedFee = feeParams.feePerByte * BigInt(estimatedSize)\n }\n\n if (calculatedFee < feeParams.minFee) {\n calculatedFee = feeParams.minFee\n }\n\n if (feeParams.extraFee) {\n calculatedFee += feeParams.extraFee\n }\n\n if (feeParams.maxFee && calculatedFee > feeParams.maxFee) {\n throw new Error(`Transaction fee ${calculatedFee} µALGO is greater than maxFee ${feeParams.maxFee} µALGO`)\n }\n\n return calculatedFee\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","names":["hash","base32","Codec","TransactionType","Address","transactionParamsCodec","concatArrays","validateAssetTransferTransaction","validateAssetConfigTransaction","validateAppCallTransaction","validateKeyRegistrationTransaction","validateAssetFreezeTransaction","getValidationErrorMessage","encodeMsgpack","decodeMsgpack"],"sources":["../../../../../packages/transact/src/transactions/transaction.ts"],"sourcesContent":["import type { EncodingFormat, WireObject } from '@algorandfoundation/algokit-common'\nimport {\n Address,\n Codec,\n MAX_TRANSACTION_GROUP_SIZE,\n SIGNATURE_ENCODING_INCR,\n TRANSACTION_DOMAIN_SEPARATOR,\n TRANSACTION_GROUP_DOMAIN_SEPARATOR,\n TRANSACTION_ID_LENGTH,\n concatArrays,\n decodeMsgpack,\n encodeMsgpack,\n} from '@algorandfoundation/algokit-common'\nimport { hash } from '@algorandfoundation/algokit-crypto'\nimport base32 from 'hi-base32'\nimport { AppCallTransactionFields, validateAppCallTransaction } from './app-call'\nimport { AssetConfigTransactionFields, validateAssetConfigTransaction } from './asset-config'\nimport { AssetFreezeTransactionFields, validateAssetFreezeTransaction } from './asset-freeze'\nimport { AssetTransferTransactionFields, validateAssetTransferTransaction } from './asset-transfer'\nimport { TransactionValidationError, getValidationErrorMessage } from './common'\nimport { HeartbeatTransactionFields } from './heartbeat'\nimport { KeyRegistrationTransactionFields, validateKeyRegistrationTransaction } from './key-registration'\nimport { PaymentTransactionFields } from './payment'\nimport { StateProofTransactionFields } from './state-proof'\nimport { transactionParamsCodec } from './transaction-meta'\nimport { TransactionType } from './transaction-type'\n\n/** Symbol used for instanceof checks across packages (CJS/ESM) */\nexport const TXN_SYMBOL = Symbol.for('algokit_transact:Transaction')\n\n/**\n * Represents the parameters for a complete Algorand transaction.\n *\n * This structure contains the fields that are present in every transaction,\n * regardless of transaction type, plus transaction-type-specific fields.\n */\nexport type TransactionParams = {\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n}\n\n/**\n * Represents a complete Algorand transaction.\n */\nexport class Transaction implements TransactionParams {\n /** @internal */\n [TXN_SYMBOL]: boolean\n\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n\n constructor(params: TransactionParams) {\n this[TXN_SYMBOL] = true\n this.type = params.type\n this.sender = params.sender\n this.fee = params.fee\n this.firstValid = params.firstValid\n this.lastValid = params.lastValid\n this.genesisHash = params.genesisHash\n this.genesisId = params.genesisId\n this.note = params.note\n this.rekeyTo = params.rekeyTo\n this.lease = params.lease\n this.group = params.group\n this.payment = params.payment\n this.assetTransfer = params.assetTransfer\n this.assetConfig = params.assetConfig\n this.appCall = params.appCall\n this.keyRegistration = params.keyRegistration\n this.assetFreeze = params.assetFreeze\n this.heartbeat = params.heartbeat\n this.stateProof = params.stateProof\n }\n\n private rawTxId(): Uint8Array {\n if (this.genesisHash === undefined) {\n throw new Error('Cannot compute transaction id without genesis hash')\n }\n\n const encodedBytes = encodeTransaction(this)\n return hash(encodedBytes)\n }\n\n /**\n * Get the transaction ID as a base32-encoded string.\n */\n txId(): string {\n const rawTxId = this.rawTxId()\n\n return base32.encode(rawTxId).slice(0, TRANSACTION_ID_LENGTH)\n }\n}\n\n// Define Symbol.hasInstance outside the class to avoid Metro/Hermes parser issues\n// with static computed property names like `static [Symbol.hasInstance]()`\n// Also must handle Babel's _classCallCheck which uses instanceof before TXN_SYMBOL is set\nObject.defineProperty(Transaction, Symbol.hasInstance, {\n value: function (obj: unknown): boolean {\n // First check prototype chain (handles Babel's _classCallCheck and normal instances)\n if (obj instanceof Object && Object.getPrototypeOf(obj) === Transaction.prototype) {\n return true\n }\n // Then check for the brand symbol (handles cross-realm/serialized instances)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Boolean(obj && typeof obj === 'object' && TXN_SYMBOL in obj && (obj as any)[TXN_SYMBOL])\n },\n})\n\n/**\n * Codec for Transaction class.\n * Handles encoding/decoding between Transaction class instances and wire format.\n */\nclass TransactionCodec extends Codec<Transaction, Record<string, unknown>, WireObject> {\n public defaultValue(): Transaction {\n return new Transaction({\n type: TransactionType.Unknown,\n sender: Address.zeroAddress(),\n firstValid: 0n,\n lastValid: 0n,\n })\n }\n\n protected toEncoded(value: Transaction, format: EncodingFormat): Record<string, unknown> {\n return transactionParamsCodec.encode({ ...value }, format)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Transaction {\n const params = transactionParamsCodec.decode(value, format)\n return new Transaction(params)\n }\n\n public isDefaultValue(_: Transaction): boolean {\n return false\n }\n}\n\nexport const transactionCodec = new TransactionCodec()\n\nexport type FeeParams = {\n feePerByte: bigint\n minFee: bigint\n extraFee?: bigint\n maxFee?: bigint\n}\n\n/**\n * Get the transaction type from the encoded transaction.\n * This is particularly useful when decoding a transaction that has an unknown type\n */\nexport function getEncodedTransactionType(encoded_transaction: Uint8Array): TransactionType {\n const decoded = decodeTransaction(encoded_transaction)\n return decoded.type\n}\n\n/**\n * Encode the transaction with the domain separation (e.g. \"TX\") prefix\n *\n * @param transaction - The transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransaction(transaction: Transaction): Uint8Array {\n const rawBytes = encodeTransactionRaw(transaction)\n\n // Add domain separation prefix\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n return concatArrays(prefixBytes, rawBytes)\n}\n\n/**\n * Encode transactions with the domain separation (e.g. \"TX\") prefix\n *\n * @param transactions - A collection of transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransactions(transactions: Transaction[]): Uint8Array[] {\n return transactions.map((tx) => encodeTransaction(tx))\n}\n\n/**\n * Validate a transaction\n */\nexport function validateTransaction(transaction: Transaction): void {\n // Validate that only one transaction type specific field is set\n const typeFields = [\n transaction.payment,\n transaction.assetTransfer,\n transaction.assetConfig,\n transaction.appCall,\n transaction.keyRegistration,\n transaction.assetFreeze,\n transaction.heartbeat,\n transaction.stateProof,\n ]\n\n const setFieldsCount = typeFields.filter((field) => field !== undefined).length\n\n if (setFieldsCount > 1) {\n throw new Error('Multiple transaction type specific fields set')\n }\n\n // Perform type-specific validation where applicable\n let typeName = 'Transaction'\n const errors = new Array<TransactionValidationError>()\n if (transaction.assetTransfer) {\n typeName = 'Asset transfer'\n errors.push(...validateAssetTransferTransaction(transaction.assetTransfer))\n } else if (transaction.assetConfig) {\n typeName = 'Asset config'\n errors.push(...validateAssetConfigTransaction(transaction.assetConfig))\n } else if (transaction.appCall) {\n typeName = 'App call'\n errors.push(...validateAppCallTransaction(transaction.appCall))\n } else if (transaction.keyRegistration) {\n typeName = 'Key registration'\n errors.push(...validateKeyRegistrationTransaction(transaction.keyRegistration))\n } else if (transaction.assetFreeze) {\n typeName = 'Asset freeze'\n errors.push(...validateAssetFreezeTransaction(transaction.assetFreeze))\n }\n\n if (errors.length > 0) {\n const errorMessages = errors.map((e) => getValidationErrorMessage(e))\n throw new Error(`${typeName} validation failed: ${errorMessages.join('\\n')}`)\n }\n}\n\n/**\n * Encode the transaction without the domain separation (e.g. \"TX\") prefix\n * This is useful for encoding the transaction for signing with tools that automatically add \"TX\" prefix to the transaction bytes.\n */\nexport function encodeTransactionRaw(transaction: Transaction): Uint8Array {\n const encodingData = transactionCodec.encode(transaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Decodes MsgPack bytes into a transaction.\n *\n * # Parameters\n * * `encoded_transaction` - MsgPack encoded bytes representing a transaction.\n *\n * # Returns\n * A decoded transaction or an error if decoding fails.\n */\nexport function decodeTransaction(encoded_transaction: Uint8Array): Transaction {\n if (encoded_transaction.length === 0) {\n throw new Error('attempted to decode 0 bytes')\n }\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n // Check if the transaction has the domain separation prefix\n let hasPrefix = true\n if (encoded_transaction.length < prefixBytes.length) {\n hasPrefix = false\n } else {\n for (let i = 0; i < prefixBytes.length; i++) {\n if (encoded_transaction[i] !== prefixBytes[i]) {\n hasPrefix = false\n break\n }\n }\n }\n\n const decodedData = decodeMsgpack(hasPrefix ? encoded_transaction.slice(prefixBytes.length) : encoded_transaction)\n return transactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a transaction collection.\n *\n * # Parameters\n * * `encoded_transaction` - A collection of MsgPack encoded bytes, each representing a transaction.\n *\n * # Returns\n * A collection of decoded transactions or an error if decoding fails.\n */\nexport function decodeTransactions(encoded_transactions: Uint8Array[]): Transaction[] {\n return encoded_transactions.map((et) => decodeTransaction(et))\n}\n\n/**\n * Return the size of the transaction in bytes as if it was already signed and encoded.\n * This is useful for estimating the fee for the transaction.\n */\nexport function estimateTransactionSize(transaction: Transaction): bigint {\n const encoded = encodeTransactionRaw(transaction)\n return BigInt(encoded.length + SIGNATURE_ENCODING_INCR)\n}\n\n/**\n * Groups a collection of transactions by calculating and assigning the group to each transaction.\n */\nexport function groupTransactions(transactions: Transaction[]): Transaction[] {\n const group = computeGroup(transactions)\n return transactions.map(\n (tx) =>\n new Transaction({\n ...tx,\n group,\n }),\n )\n}\n\nexport function assignFee(transaction: Transaction, feeParams: FeeParams): Transaction {\n const fee = calculateFee(transaction, feeParams)\n return new Transaction({\n ...transaction,\n fee,\n })\n}\n\nfunction computeGroup(transactions: Transaction[]): Uint8Array {\n if (transactions.length === 0) {\n throw new Error('Transaction group size cannot be 0')\n }\n\n if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) {\n throw new Error(`Transaction group size exceeds the max limit of ${MAX_TRANSACTION_GROUP_SIZE}`)\n }\n\n const txHashes = transactions.map((tx) => {\n if (tx.group) {\n throw new Error('Transactions must not already be grouped')\n }\n\n const encodedBytes = encodeTransaction(tx)\n return hash(encodedBytes)\n })\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_GROUP_DOMAIN_SEPARATOR)\n const encodedBytes = encodeMsgpack({\n txlist: txHashes,\n })\n\n const prefixedBytes = concatArrays(prefixBytes, encodedBytes)\n return hash(prefixedBytes)\n}\n\nexport function calculateFee(transaction: Transaction, feeParams: FeeParams): bigint {\n let calculatedFee = 0n\n\n if (feeParams.feePerByte > 0n) {\n const estimatedSize = estimateTransactionSize(transaction)\n calculatedFee = feeParams.feePerByte * BigInt(estimatedSize)\n }\n\n if (calculatedFee < feeParams.minFee) {\n calculatedFee = feeParams.minFee\n }\n\n if (feeParams.extraFee) {\n calculatedFee += feeParams.extraFee\n }\n\n if (feeParams.maxFee && calculatedFee > feeParams.maxFee) {\n throw new Error(`Transaction fee ${calculatedFee} µALGO is greater than maxFee ${feeParams.maxFee} µALGO`)\n }\n\n return calculatedFee\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { concatArrays } from "../../../common/src/array.mjs";
2
- import { MAX_TRANSACTION_GROUP_SIZE, SIGNATURE_ENCODING_INCR, TRANSACTION_DOMAIN_SEPARATOR, TRANSACTION_GROUP_DOMAIN_SEPARATOR, TRANSACTION_ID_LENGTH } from "../../../common/src/constants.mjs";
2
+ import "../../../common/src/constants.mjs";
3
3
  import { Address } from "../../../common/src/address.mjs";
4
4
  import { Codec } from "../../../common/src/codecs/codec.mjs";
5
- import { hash } from "../../../common/src/crypto.mjs";
6
5
  import { decodeMsgpack, encodeMsgpack } from "../../../common/src/msgpack.mjs";
6
+ import { hash } from "../../../crypto/src/hash.mjs";
7
7
  import { getValidationErrorMessage } from "./common.mjs";
8
8
  import { validateAppCallTransaction } from "./app-call.mjs";
9
9
  import { validateAssetConfigTransaction } from "./asset-config.mjs";
@@ -13,7 +13,6 @@ import { validateKeyRegistrationTransaction } from "./key-registration.mjs";
13
13
  import { TransactionType } from "./transaction-type.mjs";
14
14
  import { transactionParamsCodec } from "./transaction-meta.mjs";
15
15
  import base32 from "hi-base32";
16
-
17
16
  //#region packages/transact/src/transactions/transaction.ts
18
17
  /** Symbol used for instanceof checks across packages (CJS/ESM) */
19
18
  const TXN_SYMBOL = Symbol.for("algokit_transact:Transaction");
@@ -145,6 +144,7 @@ var Transaction = class {
145
144
  this.stateProof = params.stateProof;
146
145
  }
147
146
  rawTxId() {
147
+ if (this.genesisHash === void 0) throw new Error("Cannot compute transaction id without genesis hash");
148
148
  return hash(encodeTransaction(this));
149
149
  }
150
150
  /**
@@ -152,12 +152,13 @@ var Transaction = class {
152
152
  */
153
153
  txId() {
154
154
  const rawTxId = this.rawTxId();
155
- return base32.encode(rawTxId).slice(0, TRANSACTION_ID_LENGTH);
156
- }
157
- static [Symbol.hasInstance](obj) {
158
- return Boolean(obj && typeof obj === "object" && TXN_SYMBOL in obj && obj[TXN_SYMBOL]);
155
+ return base32.encode(rawTxId).slice(0, 52);
159
156
  }
160
157
  };
158
+ Object.defineProperty(Transaction, Symbol.hasInstance, { value: function(obj) {
159
+ if (obj instanceof Object && Object.getPrototypeOf(obj) === Transaction.prototype) return true;
160
+ return Boolean(obj && typeof obj === "object" && TXN_SYMBOL in obj && obj[TXN_SYMBOL]);
161
+ } });
161
162
  /**
162
163
  * Codec for Transaction class.
163
164
  * Handles encoding/decoding between Transaction class instances and wire format.
@@ -197,7 +198,7 @@ function getEncodedTransactionType(encoded_transaction) {
197
198
  */
198
199
  function encodeTransaction(transaction) {
199
200
  const rawBytes = encodeTransactionRaw(transaction);
200
- return concatArrays(new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR), rawBytes);
201
+ return concatArrays(new TextEncoder().encode("TX"), rawBytes);
201
202
  }
202
203
  /**
203
204
  * Encode transactions with the domain separation (e.g. "TX") prefix
@@ -250,7 +251,6 @@ function validateTransaction(transaction) {
250
251
  * This is useful for encoding the transaction for signing with tools that automatically add "TX" prefix to the transaction bytes.
251
252
  */
252
253
  function encodeTransactionRaw(transaction) {
253
- validateTransaction(transaction);
254
254
  return encodeMsgpack(transactionCodec.encode(transaction, "msgpack"));
255
255
  }
256
256
  /**
@@ -264,7 +264,7 @@ function encodeTransactionRaw(transaction) {
264
264
  */
265
265
  function decodeTransaction(encoded_transaction) {
266
266
  if (encoded_transaction.length === 0) throw new Error("attempted to decode 0 bytes");
267
- const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR);
267
+ const prefixBytes = new TextEncoder().encode("TX");
268
268
  let hasPrefix = true;
269
269
  if (encoded_transaction.length < prefixBytes.length) hasPrefix = false;
270
270
  else for (let i = 0; i < prefixBytes.length; i++) if (encoded_transaction[i] !== prefixBytes[i]) {
@@ -292,7 +292,7 @@ function decodeTransactions(encoded_transactions) {
292
292
  */
293
293
  function estimateTransactionSize(transaction) {
294
294
  const encoded = encodeTransactionRaw(transaction);
295
- return BigInt(encoded.length + SIGNATURE_ENCODING_INCR);
295
+ return BigInt(encoded.length + 75);
296
296
  }
297
297
  /**
298
298
  * Groups a collection of transactions by calculating and assigning the group to each transaction.
@@ -313,12 +313,12 @@ function assignFee(transaction, feeParams) {
313
313
  }
314
314
  function computeGroup(transactions) {
315
315
  if (transactions.length === 0) throw new Error("Transaction group size cannot be 0");
316
- if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) throw new Error(`Transaction group size exceeds the max limit of ${MAX_TRANSACTION_GROUP_SIZE}`);
316
+ if (transactions.length > 16) throw new Error(`Transaction group size exceeds the max limit of 16`);
317
317
  const txHashes = transactions.map((tx) => {
318
318
  if (tx.group) throw new Error("Transactions must not already be grouped");
319
319
  return hash(encodeTransaction(tx));
320
320
  });
321
- return hash(concatArrays(new TextEncoder().encode(TRANSACTION_GROUP_DOMAIN_SEPARATOR), encodeMsgpack({ txlist: txHashes })));
321
+ return hash(concatArrays(new TextEncoder().encode("TG"), encodeMsgpack({ txlist: txHashes })));
322
322
  }
323
323
  function calculateFee(transaction, feeParams) {
324
324
  let calculatedFee = 0n;
@@ -331,7 +331,7 @@ function calculateFee(transaction, feeParams) {
331
331
  if (feeParams.maxFee && calculatedFee > feeParams.maxFee) throw new Error(`Transaction fee ${calculatedFee} µALGO is greater than maxFee ${feeParams.maxFee} µALGO`);
332
332
  return calculatedFee;
333
333
  }
334
-
335
334
  //#endregion
336
335
  export { Transaction, assignFee, calculateFee, decodeTransaction, decodeTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, getEncodedTransactionType, groupTransactions, transactionCodec, validateTransaction };
336
+
337
337
  //# sourceMappingURL=transaction.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/transaction.ts"],"sourcesContent":["import type { EncodingFormat, WireObject } from '@algorandfoundation/algokit-common'\nimport {\n Address,\n Codec,\n MAX_TRANSACTION_GROUP_SIZE,\n SIGNATURE_ENCODING_INCR,\n TRANSACTION_DOMAIN_SEPARATOR,\n TRANSACTION_GROUP_DOMAIN_SEPARATOR,\n TRANSACTION_ID_LENGTH,\n concatArrays,\n decodeMsgpack,\n encodeMsgpack,\n hash,\n} from '@algorandfoundation/algokit-common'\nimport base32 from 'hi-base32'\nimport { AppCallTransactionFields, validateAppCallTransaction } from './app-call'\nimport { AssetConfigTransactionFields, validateAssetConfigTransaction } from './asset-config'\nimport { AssetFreezeTransactionFields, validateAssetFreezeTransaction } from './asset-freeze'\nimport { AssetTransferTransactionFields, validateAssetTransferTransaction } from './asset-transfer'\nimport { TransactionValidationError, getValidationErrorMessage } from './common'\nimport { HeartbeatTransactionFields } from './heartbeat'\nimport { KeyRegistrationTransactionFields, validateKeyRegistrationTransaction } from './key-registration'\nimport { PaymentTransactionFields } from './payment'\nimport { StateProofTransactionFields } from './state-proof'\nimport { transactionParamsCodec } from './transaction-meta'\nimport { TransactionType } from './transaction-type'\n\n/** Symbol used for instanceof checks across packages (CJS/ESM) */\nexport const TXN_SYMBOL = Symbol.for('algokit_transact:Transaction')\n\n/**\n * Represents the parameters for a complete Algorand transaction.\n *\n * This structure contains the fields that are present in every transaction,\n * regardless of transaction type, plus transaction-type-specific fields.\n */\nexport type TransactionParams = {\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n}\n\n/**\n * Represents a complete Algorand transaction.\n */\nexport class Transaction implements TransactionParams {\n /** @internal */\n [TXN_SYMBOL]: boolean\n\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n\n constructor(params: TransactionParams) {\n this[TXN_SYMBOL] = true\n this.type = params.type\n this.sender = params.sender\n this.fee = params.fee\n this.firstValid = params.firstValid\n this.lastValid = params.lastValid\n this.genesisHash = params.genesisHash\n this.genesisId = params.genesisId\n this.note = params.note\n this.rekeyTo = params.rekeyTo\n this.lease = params.lease\n this.group = params.group\n this.payment = params.payment\n this.assetTransfer = params.assetTransfer\n this.assetConfig = params.assetConfig\n this.appCall = params.appCall\n this.keyRegistration = params.keyRegistration\n this.assetFreeze = params.assetFreeze\n this.heartbeat = params.heartbeat\n this.stateProof = params.stateProof\n }\n\n private rawTxId(): Uint8Array {\n const encodedBytes = encodeTransaction(this)\n return hash(encodedBytes)\n }\n\n /**\n * Get the transaction ID as a base32-encoded string.\n */\n txId(): string {\n const rawTxId = this.rawTxId()\n\n return base32.encode(rawTxId).slice(0, TRANSACTION_ID_LENGTH)\n }\n\n static [Symbol.hasInstance](obj: unknown) {\n return Boolean(obj && typeof obj === 'object' && TXN_SYMBOL in obj && obj[TXN_SYMBOL as keyof typeof obj])\n }\n}\n\n/**\n * Codec for Transaction class.\n * Handles encoding/decoding between Transaction class instances and wire format.\n */\nclass TransactionCodec extends Codec<Transaction, Record<string, unknown>, WireObject> {\n public defaultValue(): Transaction {\n return new Transaction({\n type: TransactionType.Unknown,\n sender: Address.zeroAddress(),\n firstValid: 0n,\n lastValid: 0n,\n })\n }\n\n protected toEncoded(value: Transaction, format: EncodingFormat): Record<string, unknown> {\n return transactionParamsCodec.encode({ ...value }, format)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Transaction {\n const params = transactionParamsCodec.decode(value, format)\n return new Transaction(params)\n }\n\n public isDefaultValue(_: Transaction): boolean {\n return false\n }\n}\n\nexport const transactionCodec = new TransactionCodec()\n\nexport type FeeParams = {\n feePerByte: bigint\n minFee: bigint\n extraFee?: bigint\n maxFee?: bigint\n}\n\n/**\n * Get the transaction type from the encoded transaction.\n * This is particularly useful when decoding a transaction that has an unknown type\n */\nexport function getEncodedTransactionType(encoded_transaction: Uint8Array): TransactionType {\n const decoded = decodeTransaction(encoded_transaction)\n return decoded.type\n}\n\n/**\n * Encode the transaction with the domain separation (e.g. \"TX\") prefix\n *\n * @param transaction - The transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransaction(transaction: Transaction): Uint8Array {\n const rawBytes = encodeTransactionRaw(transaction)\n\n // Add domain separation prefix\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n return concatArrays(prefixBytes, rawBytes)\n}\n\n/**\n * Encode transactions with the domain separation (e.g. \"TX\") prefix\n *\n * @param transactions - A collection of transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransactions(transactions: Transaction[]): Uint8Array[] {\n return transactions.map((tx) => encodeTransaction(tx))\n}\n\n/**\n * Validate a transaction\n */\nexport function validateTransaction(transaction: Transaction): void {\n // Validate that only one transaction type specific field is set\n const typeFields = [\n transaction.payment,\n transaction.assetTransfer,\n transaction.assetConfig,\n transaction.appCall,\n transaction.keyRegistration,\n transaction.assetFreeze,\n transaction.heartbeat,\n transaction.stateProof,\n ]\n\n const setFieldsCount = typeFields.filter((field) => field !== undefined).length\n\n if (setFieldsCount > 1) {\n throw new Error('Multiple transaction type specific fields set')\n }\n\n // Perform type-specific validation where applicable\n let typeName = 'Transaction'\n const errors = new Array<TransactionValidationError>()\n if (transaction.assetTransfer) {\n typeName = 'Asset transfer'\n errors.push(...validateAssetTransferTransaction(transaction.assetTransfer))\n } else if (transaction.assetConfig) {\n typeName = 'Asset config'\n errors.push(...validateAssetConfigTransaction(transaction.assetConfig))\n } else if (transaction.appCall) {\n typeName = 'App call'\n errors.push(...validateAppCallTransaction(transaction.appCall))\n } else if (transaction.keyRegistration) {\n typeName = 'Key registration'\n errors.push(...validateKeyRegistrationTransaction(transaction.keyRegistration))\n } else if (transaction.assetFreeze) {\n typeName = 'Asset freeze'\n errors.push(...validateAssetFreezeTransaction(transaction.assetFreeze))\n }\n\n if (errors.length > 0) {\n const errorMessages = errors.map((e) => getValidationErrorMessage(e))\n throw new Error(`${typeName} validation failed: ${errorMessages.join('\\n')}`)\n }\n}\n\n/**\n * Encode the transaction without the domain separation (e.g. \"TX\") prefix\n * This is useful for encoding the transaction for signing with tools that automatically add \"TX\" prefix to the transaction bytes.\n */\nexport function encodeTransactionRaw(transaction: Transaction): Uint8Array {\n validateTransaction(transaction)\n const encodingData = transactionCodec.encode(transaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Decodes MsgPack bytes into a transaction.\n *\n * # Parameters\n * * `encoded_transaction` - MsgPack encoded bytes representing a transaction.\n *\n * # Returns\n * A decoded transaction or an error if decoding fails.\n */\nexport function decodeTransaction(encoded_transaction: Uint8Array): Transaction {\n if (encoded_transaction.length === 0) {\n throw new Error('attempted to decode 0 bytes')\n }\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n // Check if the transaction has the domain separation prefix\n let hasPrefix = true\n if (encoded_transaction.length < prefixBytes.length) {\n hasPrefix = false\n } else {\n for (let i = 0; i < prefixBytes.length; i++) {\n if (encoded_transaction[i] !== prefixBytes[i]) {\n hasPrefix = false\n break\n }\n }\n }\n\n const decodedData = decodeMsgpack(hasPrefix ? encoded_transaction.slice(prefixBytes.length) : encoded_transaction)\n return transactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a transaction collection.\n *\n * # Parameters\n * * `encoded_transaction` - A collection of MsgPack encoded bytes, each representing a transaction.\n *\n * # Returns\n * A collection of decoded transactions or an error if decoding fails.\n */\nexport function decodeTransactions(encoded_transactions: Uint8Array[]): Transaction[] {\n return encoded_transactions.map((et) => decodeTransaction(et))\n}\n\n/**\n * Return the size of the transaction in bytes as if it was already signed and encoded.\n * This is useful for estimating the fee for the transaction.\n */\nexport function estimateTransactionSize(transaction: Transaction): bigint {\n const encoded = encodeTransactionRaw(transaction)\n return BigInt(encoded.length + SIGNATURE_ENCODING_INCR)\n}\n\n/**\n * Groups a collection of transactions by calculating and assigning the group to each transaction.\n */\nexport function groupTransactions(transactions: Transaction[]): Transaction[] {\n const group = computeGroup(transactions)\n return transactions.map(\n (tx) =>\n new Transaction({\n ...tx,\n group,\n }),\n )\n}\n\nexport function assignFee(transaction: Transaction, feeParams: FeeParams): Transaction {\n const fee = calculateFee(transaction, feeParams)\n return new Transaction({\n ...transaction,\n fee,\n })\n}\n\nfunction computeGroup(transactions: Transaction[]): Uint8Array {\n if (transactions.length === 0) {\n throw new Error('Transaction group size cannot be 0')\n }\n\n if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) {\n throw new Error(`Transaction group size exceeds the max limit of ${MAX_TRANSACTION_GROUP_SIZE}`)\n }\n\n const txHashes = transactions.map((tx) => {\n if (tx.group) {\n throw new Error('Transactions must not already be grouped')\n }\n\n const encodedBytes = encodeTransaction(tx)\n return hash(encodedBytes)\n })\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_GROUP_DOMAIN_SEPARATOR)\n const encodedBytes = encodeMsgpack({\n txlist: txHashes,\n })\n\n const prefixedBytes = concatArrays(prefixBytes, encodedBytes)\n return hash(prefixedBytes)\n}\n\nexport function calculateFee(transaction: Transaction, feeParams: FeeParams): bigint {\n let calculatedFee = 0n\n\n if (feeParams.feePerByte > 0n) {\n const estimatedSize = estimateTransactionSize(transaction)\n calculatedFee = feeParams.feePerByte * BigInt(estimatedSize)\n }\n\n if (calculatedFee < feeParams.minFee) {\n calculatedFee = feeParams.minFee\n }\n\n if (feeParams.extraFee) {\n calculatedFee += feeParams.extraFee\n }\n\n if (feeParams.maxFee && calculatedFee > feeParams.maxFee) {\n throw new Error(`Transaction fee ${calculatedFee} µALGO is greater than maxFee ${feeParams.maxFee} µALGO`)\n }\n\n return calculatedFee\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"transaction.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/transaction.ts"],"sourcesContent":["import type { EncodingFormat, WireObject } from '@algorandfoundation/algokit-common'\nimport {\n Address,\n Codec,\n MAX_TRANSACTION_GROUP_SIZE,\n SIGNATURE_ENCODING_INCR,\n TRANSACTION_DOMAIN_SEPARATOR,\n TRANSACTION_GROUP_DOMAIN_SEPARATOR,\n TRANSACTION_ID_LENGTH,\n concatArrays,\n decodeMsgpack,\n encodeMsgpack,\n} from '@algorandfoundation/algokit-common'\nimport { hash } from '@algorandfoundation/algokit-crypto'\nimport base32 from 'hi-base32'\nimport { AppCallTransactionFields, validateAppCallTransaction } from './app-call'\nimport { AssetConfigTransactionFields, validateAssetConfigTransaction } from './asset-config'\nimport { AssetFreezeTransactionFields, validateAssetFreezeTransaction } from './asset-freeze'\nimport { AssetTransferTransactionFields, validateAssetTransferTransaction } from './asset-transfer'\nimport { TransactionValidationError, getValidationErrorMessage } from './common'\nimport { HeartbeatTransactionFields } from './heartbeat'\nimport { KeyRegistrationTransactionFields, validateKeyRegistrationTransaction } from './key-registration'\nimport { PaymentTransactionFields } from './payment'\nimport { StateProofTransactionFields } from './state-proof'\nimport { transactionParamsCodec } from './transaction-meta'\nimport { TransactionType } from './transaction-type'\n\n/** Symbol used for instanceof checks across packages (CJS/ESM) */\nexport const TXN_SYMBOL = Symbol.for('algokit_transact:Transaction')\n\n/**\n * Represents the parameters for a complete Algorand transaction.\n *\n * This structure contains the fields that are present in every transaction,\n * regardless of transaction type, plus transaction-type-specific fields.\n */\nexport type TransactionParams = {\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n}\n\n/**\n * Represents a complete Algorand transaction.\n */\nexport class Transaction implements TransactionParams {\n /** @internal */\n [TXN_SYMBOL]: boolean\n\n /**\n * The type of transaction\n */\n type: TransactionType\n\n /**\n * The account that authorized the transaction.\n *\n * Fees are deducted from this account.\n */\n sender: Address\n\n /**\n * Optional transaction fee in microALGO.\n *\n * When not set, the fee will be interpreted as 0 by the network.\n */\n fee?: bigint\n\n /**\n * First round for when the transaction is valid.\n */\n firstValid: bigint\n\n /**\n * Last round for when the transaction is valid.\n *\n * After this round, the transaction will be expired.\n */\n lastValid: bigint\n\n /**\n * Hash of the genesis block of the network.\n *\n * Used to identify which network the transaction is for.\n */\n genesisHash?: Uint8Array\n\n /**\n * Genesis ID of the network.\n *\n * A human-readable string used alongside genesis hash to identify the network.\n */\n genesisId?: string\n\n /**\n * Optional user-defined note field.\n *\n * Can contain arbitrary data up to 1KB in size.\n */\n note?: Uint8Array\n\n /**\n * Optional authorized account for future transactions.\n *\n * If set, only this account will be used for transaction authorization going forward.\n * Reverting back control to the original address must be done by setting this field to\n * the original address.\n */\n rekeyTo?: Address\n\n /**\n * Optional lease value to enforce mutual transaction exclusion.\n *\n * When a transaction with a non-empty lease field is confirmed, the lease is acquired.\n * A lease X is acquired by the sender, generating the (sender, X) lease.\n * The lease is kept active until the last_valid round of the transaction has elapsed.\n * No other transaction sent by the same sender can be confirmed until the lease expires.\n */\n lease?: Uint8Array\n\n /**\n * Optional group ID for atomic transaction grouping.\n *\n * Transactions with the same group ID must execute together or not at all.\n */\n group?: Uint8Array\n\n /**\n * Payment specific fields\n */\n payment?: PaymentTransactionFields\n\n /**\n * Asset transfer specific fields\n */\n assetTransfer?: AssetTransferTransactionFields\n\n /**\n * Asset config specific fields\n */\n assetConfig?: AssetConfigTransactionFields\n\n /**\n * App call specific fields\n */\n appCall?: AppCallTransactionFields\n\n /**\n * Key registration specific fields\n */\n keyRegistration?: KeyRegistrationTransactionFields\n\n /**\n * Asset freeze specific fields\n */\n assetFreeze?: AssetFreezeTransactionFields\n\n /**\n * Heartbeat specific fields\n */\n heartbeat?: HeartbeatTransactionFields\n\n /**\n * State proof specific fields\n */\n stateProof?: StateProofTransactionFields\n\n constructor(params: TransactionParams) {\n this[TXN_SYMBOL] = true\n this.type = params.type\n this.sender = params.sender\n this.fee = params.fee\n this.firstValid = params.firstValid\n this.lastValid = params.lastValid\n this.genesisHash = params.genesisHash\n this.genesisId = params.genesisId\n this.note = params.note\n this.rekeyTo = params.rekeyTo\n this.lease = params.lease\n this.group = params.group\n this.payment = params.payment\n this.assetTransfer = params.assetTransfer\n this.assetConfig = params.assetConfig\n this.appCall = params.appCall\n this.keyRegistration = params.keyRegistration\n this.assetFreeze = params.assetFreeze\n this.heartbeat = params.heartbeat\n this.stateProof = params.stateProof\n }\n\n private rawTxId(): Uint8Array {\n if (this.genesisHash === undefined) {\n throw new Error('Cannot compute transaction id without genesis hash')\n }\n\n const encodedBytes = encodeTransaction(this)\n return hash(encodedBytes)\n }\n\n /**\n * Get the transaction ID as a base32-encoded string.\n */\n txId(): string {\n const rawTxId = this.rawTxId()\n\n return base32.encode(rawTxId).slice(0, TRANSACTION_ID_LENGTH)\n }\n}\n\n// Define Symbol.hasInstance outside the class to avoid Metro/Hermes parser issues\n// with static computed property names like `static [Symbol.hasInstance]()`\n// Also must handle Babel's _classCallCheck which uses instanceof before TXN_SYMBOL is set\nObject.defineProperty(Transaction, Symbol.hasInstance, {\n value: function (obj: unknown): boolean {\n // First check prototype chain (handles Babel's _classCallCheck and normal instances)\n if (obj instanceof Object && Object.getPrototypeOf(obj) === Transaction.prototype) {\n return true\n }\n // Then check for the brand symbol (handles cross-realm/serialized instances)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Boolean(obj && typeof obj === 'object' && TXN_SYMBOL in obj && (obj as any)[TXN_SYMBOL])\n },\n})\n\n/**\n * Codec for Transaction class.\n * Handles encoding/decoding between Transaction class instances and wire format.\n */\nclass TransactionCodec extends Codec<Transaction, Record<string, unknown>, WireObject> {\n public defaultValue(): Transaction {\n return new Transaction({\n type: TransactionType.Unknown,\n sender: Address.zeroAddress(),\n firstValid: 0n,\n lastValid: 0n,\n })\n }\n\n protected toEncoded(value: Transaction, format: EncodingFormat): Record<string, unknown> {\n return transactionParamsCodec.encode({ ...value }, format)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Transaction {\n const params = transactionParamsCodec.decode(value, format)\n return new Transaction(params)\n }\n\n public isDefaultValue(_: Transaction): boolean {\n return false\n }\n}\n\nexport const transactionCodec = new TransactionCodec()\n\nexport type FeeParams = {\n feePerByte: bigint\n minFee: bigint\n extraFee?: bigint\n maxFee?: bigint\n}\n\n/**\n * Get the transaction type from the encoded transaction.\n * This is particularly useful when decoding a transaction that has an unknown type\n */\nexport function getEncodedTransactionType(encoded_transaction: Uint8Array): TransactionType {\n const decoded = decodeTransaction(encoded_transaction)\n return decoded.type\n}\n\n/**\n * Encode the transaction with the domain separation (e.g. \"TX\") prefix\n *\n * @param transaction - The transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransaction(transaction: Transaction): Uint8Array {\n const rawBytes = encodeTransactionRaw(transaction)\n\n // Add domain separation prefix\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n return concatArrays(prefixBytes, rawBytes)\n}\n\n/**\n * Encode transactions with the domain separation (e.g. \"TX\") prefix\n *\n * @param transactions - A collection of transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeTransactions(transactions: Transaction[]): Uint8Array[] {\n return transactions.map((tx) => encodeTransaction(tx))\n}\n\n/**\n * Validate a transaction\n */\nexport function validateTransaction(transaction: Transaction): void {\n // Validate that only one transaction type specific field is set\n const typeFields = [\n transaction.payment,\n transaction.assetTransfer,\n transaction.assetConfig,\n transaction.appCall,\n transaction.keyRegistration,\n transaction.assetFreeze,\n transaction.heartbeat,\n transaction.stateProof,\n ]\n\n const setFieldsCount = typeFields.filter((field) => field !== undefined).length\n\n if (setFieldsCount > 1) {\n throw new Error('Multiple transaction type specific fields set')\n }\n\n // Perform type-specific validation where applicable\n let typeName = 'Transaction'\n const errors = new Array<TransactionValidationError>()\n if (transaction.assetTransfer) {\n typeName = 'Asset transfer'\n errors.push(...validateAssetTransferTransaction(transaction.assetTransfer))\n } else if (transaction.assetConfig) {\n typeName = 'Asset config'\n errors.push(...validateAssetConfigTransaction(transaction.assetConfig))\n } else if (transaction.appCall) {\n typeName = 'App call'\n errors.push(...validateAppCallTransaction(transaction.appCall))\n } else if (transaction.keyRegistration) {\n typeName = 'Key registration'\n errors.push(...validateKeyRegistrationTransaction(transaction.keyRegistration))\n } else if (transaction.assetFreeze) {\n typeName = 'Asset freeze'\n errors.push(...validateAssetFreezeTransaction(transaction.assetFreeze))\n }\n\n if (errors.length > 0) {\n const errorMessages = errors.map((e) => getValidationErrorMessage(e))\n throw new Error(`${typeName} validation failed: ${errorMessages.join('\\n')}`)\n }\n}\n\n/**\n * Encode the transaction without the domain separation (e.g. \"TX\") prefix\n * This is useful for encoding the transaction for signing with tools that automatically add \"TX\" prefix to the transaction bytes.\n */\nexport function encodeTransactionRaw(transaction: Transaction): Uint8Array {\n const encodingData = transactionCodec.encode(transaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Decodes MsgPack bytes into a transaction.\n *\n * # Parameters\n * * `encoded_transaction` - MsgPack encoded bytes representing a transaction.\n *\n * # Returns\n * A decoded transaction or an error if decoding fails.\n */\nexport function decodeTransaction(encoded_transaction: Uint8Array): Transaction {\n if (encoded_transaction.length === 0) {\n throw new Error('attempted to decode 0 bytes')\n }\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_DOMAIN_SEPARATOR)\n // Check if the transaction has the domain separation prefix\n let hasPrefix = true\n if (encoded_transaction.length < prefixBytes.length) {\n hasPrefix = false\n } else {\n for (let i = 0; i < prefixBytes.length; i++) {\n if (encoded_transaction[i] !== prefixBytes[i]) {\n hasPrefix = false\n break\n }\n }\n }\n\n const decodedData = decodeMsgpack(hasPrefix ? encoded_transaction.slice(prefixBytes.length) : encoded_transaction)\n return transactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a transaction collection.\n *\n * # Parameters\n * * `encoded_transaction` - A collection of MsgPack encoded bytes, each representing a transaction.\n *\n * # Returns\n * A collection of decoded transactions or an error if decoding fails.\n */\nexport function decodeTransactions(encoded_transactions: Uint8Array[]): Transaction[] {\n return encoded_transactions.map((et) => decodeTransaction(et))\n}\n\n/**\n * Return the size of the transaction in bytes as if it was already signed and encoded.\n * This is useful for estimating the fee for the transaction.\n */\nexport function estimateTransactionSize(transaction: Transaction): bigint {\n const encoded = encodeTransactionRaw(transaction)\n return BigInt(encoded.length + SIGNATURE_ENCODING_INCR)\n}\n\n/**\n * Groups a collection of transactions by calculating and assigning the group to each transaction.\n */\nexport function groupTransactions(transactions: Transaction[]): Transaction[] {\n const group = computeGroup(transactions)\n return transactions.map(\n (tx) =>\n new Transaction({\n ...tx,\n group,\n }),\n )\n}\n\nexport function assignFee(transaction: Transaction, feeParams: FeeParams): Transaction {\n const fee = calculateFee(transaction, feeParams)\n return new Transaction({\n ...transaction,\n fee,\n })\n}\n\nfunction computeGroup(transactions: Transaction[]): Uint8Array {\n if (transactions.length === 0) {\n throw new Error('Transaction group size cannot be 0')\n }\n\n if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) {\n throw new Error(`Transaction group size exceeds the max limit of ${MAX_TRANSACTION_GROUP_SIZE}`)\n }\n\n const txHashes = transactions.map((tx) => {\n if (tx.group) {\n throw new Error('Transactions must not already be grouped')\n }\n\n const encodedBytes = encodeTransaction(tx)\n return hash(encodedBytes)\n })\n\n const prefixBytes = new TextEncoder().encode(TRANSACTION_GROUP_DOMAIN_SEPARATOR)\n const encodedBytes = encodeMsgpack({\n txlist: txHashes,\n })\n\n const prefixedBytes = concatArrays(prefixBytes, encodedBytes)\n return hash(prefixedBytes)\n}\n\nexport function calculateFee(transaction: Transaction, feeParams: FeeParams): bigint {\n let calculatedFee = 0n\n\n if (feeParams.feePerByte > 0n) {\n const estimatedSize = estimateTransactionSize(transaction)\n calculatedFee = feeParams.feePerByte * BigInt(estimatedSize)\n }\n\n if (calculatedFee < feeParams.minFee) {\n calculatedFee = feeParams.minFee\n }\n\n if (feeParams.extraFee) {\n calculatedFee += feeParams.extraFee\n }\n\n if (feeParams.maxFee && calculatedFee > feeParams.maxFee) {\n throw new Error(`Transaction fee ${calculatedFee} µALGO is greater than maxFee ${feeParams.maxFee} µALGO`)\n }\n\n return calculatedFee\n}\n"],"mappings":"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"}
@@ -2,11 +2,10 @@ import { Address } from "../packages/common/src/address.js";
2
2
  import { AddressWithSigners, AddressWithTransactionSigner } from "../packages/transact/src/signer.js";
3
3
  import { AlgodClient } from "../packages/algod_client/src/client.js";
4
4
  import { KmdClient } from "../packages/kmd_client/src/client.js";
5
- import { AlgorandClient } from "../types/algorand-client.js";
6
- import { GetTestAccountParams } from "../types/testing.js";
5
+ import { AlgorandClient } from "../algorand-client.js";
6
+ import { GetTestAccountParams } from "./types.js";
7
7
 
8
8
  //#region src/testing/account.d.ts
9
-
10
9
  /**
11
10
  * @deprecated Use `getTestAccount(params, algorandClient)` instead. The `algorandClient` object can be created using `AlgorandClient.fromClients({ algod, kmd })`.
12
11
  *
@@ -1,7 +1,6 @@
1
- const require_address = require('../packages/common/src/address.js');
2
- const require_config = require('../config.js');
3
- const require_algorand_client = require('../types/algorand-client.js');
4
-
1
+ const require_address = require("../packages/common/src/address.js");
2
+ const require_config = require("../config.js");
3
+ const require_algorand_client = require("../algorand-client.js");
5
4
  //#region src/testing/account.ts
6
5
  async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algodOrAlgorandClient, kmd) {
7
6
  const algorand = algodOrAlgorandClient instanceof require_algorand_client.AlgorandClient ? algodOrAlgorandClient : require_algorand_client.AlgorandClient.fromClients({
@@ -22,11 +21,10 @@ async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algo
22
21
  require_config.Config.getLogger(suppressLog).info("Test account funded; account balance: %d µALGO", accountInfo.balance.microAlgo);
23
22
  algorand.setSignerFromAccount(account);
24
23
  const address = require_address.Address.fromString(account.addr.toString());
25
- address.addr = account.addr;
26
- address.signer = algorand.account.getSigner(address);
24
+ for (const key of Object.keys(account)) if (!(key in address)) address[key] = account[key];
27
25
  return address;
28
26
  }
29
-
30
27
  //#endregion
31
28
  exports.getTestAccount = getTestAccount;
29
+
32
30
  //# sourceMappingURL=account.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","names":["AlgorandClient","Address"],"sources":["../../src/testing/account.ts"],"sourcesContent":["import { AlgodClient } from '@algorandfoundation/algokit-algod-client'\nimport { Address } from '@algorandfoundation/algokit-common'\nimport { AddressWithSigners, AddressWithTransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AlgorandClient, Config } from '../'\nimport { GetTestAccountParams } from '../types/testing'\n\n/**\n * @deprecated Use `getTestAccount(params, algorandClient)` instead. The `algorandClient` object can be created using `AlgorandClient.fromClients({ algod, kmd })`.\n *\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algod An algod client\n * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables and if not found fallback to the default LocalNet KMD client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(\n params: GetTestAccountParams,\n algod: AlgodClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner>\n/**\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algorand An AlgorandClient client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(params: GetTestAccountParams, algorand: AlgorandClient): Promise<Address & AddressWithSigners>\nexport async function getTestAccount(\n { suppressLog, initialFunds, accountGetter }: GetTestAccountParams,\n algodOrAlgorandClient: AlgodClient | AlgorandClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner> {\n const algorand =\n algodOrAlgorandClient instanceof AlgorandClient\n ? algodOrAlgorandClient\n : AlgorandClient.fromClients({\n algod: algodOrAlgorandClient,\n kmd,\n })\n\n const account = accountGetter ? await accountGetter(algorand) : algorand.account.random()\n\n Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}'.`)\n\n const dispenser = await algorand.account.dispenserFromEnvironment()\n\n await algorand.send.payment({\n sender: dispenser,\n receiver: account.addr,\n amount: initialFunds,\n note: 'Funding test account',\n suppressLog,\n })\n\n const accountInfo = await algorand.account.getInformation(account.addr)\n\n Config.getLogger(suppressLog).info('Test account funded; account balance: %d µALGO', accountInfo.balance.microAlgo)\n\n algorand.setSignerFromAccount(account)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const address = Address.fromString(account.addr.toString()) as any\n address.addr = account.addr\n address.signer = algorand.account.getSigner(address)\n\n return address\n}\n"],"mappings":";;;;;AAkCA,eAAsB,eACpB,EAAE,aAAa,cAAc,iBAC7B,uBACA,KACiD;CACjD,MAAM,WACJ,iCAAiCA,yCAC7B,wBACAA,uCAAe,YAAY;EACzB,OAAO;EACP;EACD,CAAC;CAER,MAAM,UAAU,gBAAgB,MAAM,cAAc,SAAS,GAAG,SAAS,QAAQ,QAAQ;AAEzF,uBAAO,UAAU,YAAY,CAAC,KAAK,0CAA0C,QAAQ,KAAK,IAAI;CAE9F,MAAM,YAAY,MAAM,SAAS,QAAQ,0BAA0B;AAEnE,OAAM,SAAS,KAAK,QAAQ;EAC1B,QAAQ;EACR,UAAU,QAAQ;EAClB,QAAQ;EACR,MAAM;EACN;EACD,CAAC;CAEF,MAAM,cAAc,MAAM,SAAS,QAAQ,eAAe,QAAQ,KAAK;AAEvE,uBAAO,UAAU,YAAY,CAAC,KAAK,kDAAkD,YAAY,QAAQ,UAAU;AAEnH,UAAS,qBAAqB,QAAQ;CAGtC,MAAM,UAAUC,wBAAQ,WAAW,QAAQ,KAAK,UAAU,CAAC;AAC3D,SAAQ,OAAO,QAAQ;AACvB,SAAQ,SAAS,SAAS,QAAQ,UAAU,QAAQ;AAEpD,QAAO"}
1
+ {"version":3,"file":"account.js","names":["AlgorandClient","Address"],"sources":["../../src/testing/account.ts"],"sourcesContent":["import { AlgodClient } from '@algorandfoundation/algokit-algod-client'\nimport { Address } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithSigners, AddressWithTransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { AlgorandClient, Config } from '../'\nimport { GetTestAccountParams } from './types'\n\n/**\n * @deprecated Use `getTestAccount(params, algorandClient)` instead. The `algorandClient` object can be created using `AlgorandClient.fromClients({ algod, kmd })`.\n *\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algod An algod client\n * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables and if not found fallback to the default LocalNet KMD client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(\n params: GetTestAccountParams,\n algod: AlgodClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner>\n/**\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algorand An AlgorandClient client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(params: GetTestAccountParams, algorand: AlgorandClient): Promise<Address & AddressWithSigners>\nexport async function getTestAccount(\n { suppressLog, initialFunds, accountGetter }: GetTestAccountParams,\n algodOrAlgorandClient: AlgodClient | AlgorandClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithSigners> {\n const algorand =\n algodOrAlgorandClient instanceof AlgorandClient\n ? algodOrAlgorandClient\n : AlgorandClient.fromClients({\n algod: algodOrAlgorandClient,\n kmd,\n })\n\n const account = accountGetter ? await accountGetter(algorand) : algorand.account.random()\n\n Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}'.`)\n\n const dispenser = await algorand.account.dispenserFromEnvironment()\n\n await algorand.send.payment({\n sender: dispenser,\n receiver: account.addr,\n amount: initialFunds,\n note: 'Funding test account',\n suppressLog,\n })\n\n const accountInfo = await algorand.account.getInformation(account.addr)\n\n Config.getLogger(suppressLog).info('Test account funded; account balance: %d µALGO', accountInfo.balance.microAlgo)\n\n algorand.setSignerFromAccount(account)\n\n const address = Address.fromString(account.addr.toString()) as Address & AddressWithSigners\n for (const key of Object.keys(account as AddressWithSigners)) {\n if (!(key in address)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(address as any)[key] = (account as any)[key]\n }\n }\n\n return address\n}\n"],"mappings":";;;;AAkCA,eAAsB,eACpB,EAAE,aAAa,cAAc,iBAC7B,uBACA,KACuC;CACvC,MAAM,WACJ,iCAAiCA,wBAAAA,iBAC7B,wBACAA,wBAAAA,eAAe,YAAY;EACzB,OAAO;EACP;EACD,CAAC;CAER,MAAM,UAAU,gBAAgB,MAAM,cAAc,SAAS,GAAG,SAAS,QAAQ,QAAQ;AAEzF,gBAAA,OAAO,UAAU,YAAY,CAAC,KAAK,0CAA0C,QAAQ,KAAK,IAAI;CAE9F,MAAM,YAAY,MAAM,SAAS,QAAQ,0BAA0B;AAEnE,OAAM,SAAS,KAAK,QAAQ;EAC1B,QAAQ;EACR,UAAU,QAAQ;EAClB,QAAQ;EACR,MAAM;EACN;EACD,CAAC;CAEF,MAAM,cAAc,MAAM,SAAS,QAAQ,eAAe,QAAQ,KAAK;AAEvE,gBAAA,OAAO,UAAU,YAAY,CAAC,KAAK,kDAAkD,YAAY,QAAQ,UAAU;AAEnH,UAAS,qBAAqB,QAAQ;CAEtC,MAAM,UAAUC,gBAAAA,QAAQ,WAAW,QAAQ,KAAK,UAAU,CAAC;AAC3D,MAAK,MAAM,OAAO,OAAO,KAAK,QAA8B,CAC1D,KAAI,EAAE,OAAO,SAET,SAAgB,OAAQ,QAAgB;AAI9C,QAAO"}
@@ -1,7 +1,6 @@
1
1
  import { Address } from "../packages/common/src/address.mjs";
2
2
  import { Config } from "../config.mjs";
3
- import { AlgorandClient } from "../types/algorand-client.mjs";
4
-
3
+ import { AlgorandClient } from "../algorand-client.mjs";
5
4
  //#region src/testing/account.ts
6
5
  async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algodOrAlgorandClient, kmd) {
7
6
  const algorand = algodOrAlgorandClient instanceof AlgorandClient ? algodOrAlgorandClient : AlgorandClient.fromClients({
@@ -22,11 +21,10 @@ async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algo
22
21
  Config.getLogger(suppressLog).info("Test account funded; account balance: %d µALGO", accountInfo.balance.microAlgo);
23
22
  algorand.setSignerFromAccount(account);
24
23
  const address = Address.fromString(account.addr.toString());
25
- address.addr = account.addr;
26
- address.signer = algorand.account.getSigner(address);
24
+ for (const key of Object.keys(account)) if (!(key in address)) address[key] = account[key];
27
25
  return address;
28
26
  }
29
-
30
27
  //#endregion
31
28
  export { getTestAccount };
29
+
32
30
  //# sourceMappingURL=account.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.mjs","names":[],"sources":["../../src/testing/account.ts"],"sourcesContent":["import { AlgodClient } from '@algorandfoundation/algokit-algod-client'\nimport { Address } from '@algorandfoundation/algokit-common'\nimport { AddressWithSigners, AddressWithTransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AlgorandClient, Config } from '../'\nimport { GetTestAccountParams } from '../types/testing'\n\n/**\n * @deprecated Use `getTestAccount(params, algorandClient)` instead. The `algorandClient` object can be created using `AlgorandClient.fromClients({ algod, kmd })`.\n *\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algod An algod client\n * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables and if not found fallback to the default LocalNet KMD client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(\n params: GetTestAccountParams,\n algod: AlgodClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner>\n/**\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algorand An AlgorandClient client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(params: GetTestAccountParams, algorand: AlgorandClient): Promise<Address & AddressWithSigners>\nexport async function getTestAccount(\n { suppressLog, initialFunds, accountGetter }: GetTestAccountParams,\n algodOrAlgorandClient: AlgodClient | AlgorandClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner> {\n const algorand =\n algodOrAlgorandClient instanceof AlgorandClient\n ? algodOrAlgorandClient\n : AlgorandClient.fromClients({\n algod: algodOrAlgorandClient,\n kmd,\n })\n\n const account = accountGetter ? await accountGetter(algorand) : algorand.account.random()\n\n Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}'.`)\n\n const dispenser = await algorand.account.dispenserFromEnvironment()\n\n await algorand.send.payment({\n sender: dispenser,\n receiver: account.addr,\n amount: initialFunds,\n note: 'Funding test account',\n suppressLog,\n })\n\n const accountInfo = await algorand.account.getInformation(account.addr)\n\n Config.getLogger(suppressLog).info('Test account funded; account balance: %d µALGO', accountInfo.balance.microAlgo)\n\n algorand.setSignerFromAccount(account)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const address = Address.fromString(account.addr.toString()) as any\n address.addr = account.addr\n address.signer = algorand.account.getSigner(address)\n\n return address\n}\n"],"mappings":";;;;;AAkCA,eAAsB,eACpB,EAAE,aAAa,cAAc,iBAC7B,uBACA,KACiD;CACjD,MAAM,WACJ,iCAAiC,iBAC7B,wBACA,eAAe,YAAY;EACzB,OAAO;EACP;EACD,CAAC;CAER,MAAM,UAAU,gBAAgB,MAAM,cAAc,SAAS,GAAG,SAAS,QAAQ,QAAQ;AAEzF,QAAO,UAAU,YAAY,CAAC,KAAK,0CAA0C,QAAQ,KAAK,IAAI;CAE9F,MAAM,YAAY,MAAM,SAAS,QAAQ,0BAA0B;AAEnE,OAAM,SAAS,KAAK,QAAQ;EAC1B,QAAQ;EACR,UAAU,QAAQ;EAClB,QAAQ;EACR,MAAM;EACN;EACD,CAAC;CAEF,MAAM,cAAc,MAAM,SAAS,QAAQ,eAAe,QAAQ,KAAK;AAEvE,QAAO,UAAU,YAAY,CAAC,KAAK,kDAAkD,YAAY,QAAQ,UAAU;AAEnH,UAAS,qBAAqB,QAAQ;CAGtC,MAAM,UAAU,QAAQ,WAAW,QAAQ,KAAK,UAAU,CAAC;AAC3D,SAAQ,OAAO,QAAQ;AACvB,SAAQ,SAAS,SAAS,QAAQ,UAAU,QAAQ;AAEpD,QAAO"}
1
+ {"version":3,"file":"account.mjs","names":[],"sources":["../../src/testing/account.ts"],"sourcesContent":["import { AlgodClient } from '@algorandfoundation/algokit-algod-client'\nimport { Address } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithSigners, AddressWithTransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { AlgorandClient, Config } from '../'\nimport { GetTestAccountParams } from './types'\n\n/**\n * @deprecated Use `getTestAccount(params, algorandClient)` instead. The `algorandClient` object can be created using `AlgorandClient.fromClients({ algod, kmd })`.\n *\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algod An algod client\n * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables and if not found fallback to the default LocalNet KMD client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(\n params: GetTestAccountParams,\n algod: AlgodClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithTransactionSigner>\n/**\n * Creates an ephemeral Algorand account for the purposes of testing.\n * Returns a newly created random test account that is funded from the dispenser\n * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!\n * Note: By default this will log the mnemonic of the account.\n * @param params The config for the test account to generate\n * @param algorand An AlgorandClient client\n * @returns The account, with private key loaded\n */\nexport async function getTestAccount(params: GetTestAccountParams, algorand: AlgorandClient): Promise<Address & AddressWithSigners>\nexport async function getTestAccount(\n { suppressLog, initialFunds, accountGetter }: GetTestAccountParams,\n algodOrAlgorandClient: AlgodClient | AlgorandClient,\n kmd?: KmdClient,\n): Promise<Address & AddressWithSigners> {\n const algorand =\n algodOrAlgorandClient instanceof AlgorandClient\n ? algodOrAlgorandClient\n : AlgorandClient.fromClients({\n algod: algodOrAlgorandClient,\n kmd,\n })\n\n const account = accountGetter ? await accountGetter(algorand) : algorand.account.random()\n\n Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}'.`)\n\n const dispenser = await algorand.account.dispenserFromEnvironment()\n\n await algorand.send.payment({\n sender: dispenser,\n receiver: account.addr,\n amount: initialFunds,\n note: 'Funding test account',\n suppressLog,\n })\n\n const accountInfo = await algorand.account.getInformation(account.addr)\n\n Config.getLogger(suppressLog).info('Test account funded; account balance: %d µALGO', accountInfo.balance.microAlgo)\n\n algorand.setSignerFromAccount(account)\n\n const address = Address.fromString(account.addr.toString()) as Address & AddressWithSigners\n for (const key of Object.keys(account as AddressWithSigners)) {\n if (!(key in address)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(address as any)[key] = (account as any)[key]\n }\n }\n\n return address\n}\n"],"mappings":";;;;AAkCA,eAAsB,eACpB,EAAE,aAAa,cAAc,iBAC7B,uBACA,KACuC;CACvC,MAAM,WACJ,iCAAiC,iBAC7B,wBACA,eAAe,YAAY;EACzB,OAAO;EACP;EACD,CAAC;CAER,MAAM,UAAU,gBAAgB,MAAM,cAAc,SAAS,GAAG,SAAS,QAAQ,QAAQ;AAEzF,QAAO,UAAU,YAAY,CAAC,KAAK,0CAA0C,QAAQ,KAAK,IAAI;CAE9F,MAAM,YAAY,MAAM,SAAS,QAAQ,0BAA0B;AAEnE,OAAM,SAAS,KAAK,QAAQ;EAC1B,QAAQ;EACR,UAAU,QAAQ;EAClB,QAAQ;EACR,MAAM;EACN;EACD,CAAC;CAEF,MAAM,cAAc,MAAM,SAAS,QAAQ,eAAe,QAAQ,KAAK;AAEvE,QAAO,UAAU,YAAY,CAAC,KAAK,kDAAkD,YAAY,QAAQ,UAAU;AAEnH,UAAS,qBAAqB,QAAQ;CAEtC,MAAM,UAAU,QAAQ,WAAW,QAAQ,KAAK,UAAU,CAAC;AAC3D,MAAK,MAAM,OAAO,OAAO,KAAK,QAA8B,CAC1D,KAAI,EAAE,OAAO,SAET,SAAgB,OAAQ,QAAgB;AAI9C,QAAO"}
@@ -1,7 +1,6 @@
1
- import { AlgoKitLogCaptureFixture } from "../../types/testing.js";
1
+ import { AlgoKitLogCaptureFixture } from "../types.js";
2
2
 
3
3
  //#region src/testing/fixtures/algokit-log-capture-fixture.d.ts
4
-
5
4
  /**
6
5
  * Creates a test fixture for capturing AlgoKit logs.
7
6
  *
@@ -1,6 +1,5 @@
1
- const require_config = require('../../config.js');
2
- const require_test_logger = require('../test-logger.js');
3
-
1
+ const require_config = require("../../config.js");
2
+ const require_test_logger = require("../test-logger.js");
4
3
  //#region src/testing/fixtures/algokit-log-capture-fixture.ts
5
4
  /**
6
5
  * Creates a test fixture for capturing AlgoKit logs.
@@ -35,7 +34,7 @@ const algoKitLogCaptureFixture = () => {
35
34
  }
36
35
  };
37
36
  };
38
-
39
37
  //#endregion
40
38
  exports.algoKitLogCaptureFixture = algoKitLogCaptureFixture;
39
+
41
40
  //# sourceMappingURL=algokit-log-capture-fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"algokit-log-capture-fixture.js","names":["algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture","Config","hybridLogger: TestLogger","TestLogger"],"sources":["../../../src/testing/fixtures/algokit-log-capture-fixture.ts"],"sourcesContent":["import { Config } from '../../'\nimport { AlgoKitLogCaptureFixture } from '../../types/testing'\nimport { TestLogger } from '../test-logger'\n\n/**\n * Creates a test fixture for capturing AlgoKit logs.\n *\n * @example\n * ```typescript\n * const logs = algoKitLogCaptureFixture()\n *\n * beforeEach(logs.beforeEach)\n * afterEach(logs.afterEach)\n *\n * test('My test', () => {\n * const capturedLogs = logs.testLogger.capturedLogs\n * })\n * ```\n *\n * @returns The fixture\n */\nexport const algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture = () => {\n const originalLogger = Config.logger\n\n let hybridLogger: TestLogger\n\n return {\n get testLogger() {\n return hybridLogger\n },\n beforeEach: () => {\n hybridLogger = new TestLogger(originalLogger)\n Config.configure({\n logger: hybridLogger,\n })\n },\n afterEach: () => {\n Config.configure({\n logger: originalLogger,\n })\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAaA,iCAAiE;CAC5E,MAAM,iBAAiBC,sBAAO;CAE9B,IAAIC;AAEJ,QAAO;EACL,IAAI,aAAa;AACf,UAAO;;EAET,kBAAkB;AAChB,kBAAe,IAAIC,+BAAW,eAAe;AAC7C,yBAAO,UAAU,EACf,QAAQ,cACT,CAAC;;EAEJ,iBAAiB;AACf,yBAAO,UAAU,EACf,QAAQ,gBACT,CAAC;;EAEL"}
1
+ {"version":3,"file":"algokit-log-capture-fixture.js","names":["Config","TestLogger"],"sources":["../../../src/testing/fixtures/algokit-log-capture-fixture.ts"],"sourcesContent":["import { Config } from '../../'\nimport { TestLogger } from '../test-logger'\nimport { AlgoKitLogCaptureFixture } from '../types'\n\n/**\n * Creates a test fixture for capturing AlgoKit logs.\n *\n * @example\n * ```typescript\n * const logs = algoKitLogCaptureFixture()\n *\n * beforeEach(logs.beforeEach)\n * afterEach(logs.afterEach)\n *\n * test('My test', () => {\n * const capturedLogs = logs.testLogger.capturedLogs\n * })\n * ```\n *\n * @returns The fixture\n */\nexport const algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture = () => {\n const originalLogger = Config.logger\n\n let hybridLogger: TestLogger\n\n return {\n get testLogger() {\n return hybridLogger\n },\n beforeEach: () => {\n hybridLogger = new TestLogger(originalLogger)\n Config.configure({\n logger: hybridLogger,\n })\n },\n afterEach: () => {\n Config.configure({\n logger: originalLogger,\n })\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,iCAAiE;CAC5E,MAAM,iBAAiBA,eAAAA,OAAO;CAE9B,IAAI;AAEJ,QAAO;EACL,IAAI,aAAa;AACf,UAAO;;EAET,kBAAkB;AAChB,kBAAe,IAAIC,oBAAAA,WAAW,eAAe;AAC7C,kBAAA,OAAO,UAAU,EACf,QAAQ,cACT,CAAC;;EAEJ,iBAAiB;AACf,kBAAA,OAAO,UAAU,EACf,QAAQ,gBACT,CAAC;;EAEL"}
@@ -1,6 +1,5 @@
1
1
  import { Config } from "../../config.mjs";
2
2
  import { TestLogger } from "../test-logger.mjs";
3
-
4
3
  //#region src/testing/fixtures/algokit-log-capture-fixture.ts
5
4
  /**
6
5
  * Creates a test fixture for capturing AlgoKit logs.
@@ -35,7 +34,7 @@ const algoKitLogCaptureFixture = () => {
35
34
  }
36
35
  };
37
36
  };
38
-
39
37
  //#endregion
40
38
  export { algoKitLogCaptureFixture };
39
+
41
40
  //# sourceMappingURL=algokit-log-capture-fixture.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"algokit-log-capture-fixture.mjs","names":["algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture","hybridLogger: TestLogger"],"sources":["../../../src/testing/fixtures/algokit-log-capture-fixture.ts"],"sourcesContent":["import { Config } from '../../'\nimport { AlgoKitLogCaptureFixture } from '../../types/testing'\nimport { TestLogger } from '../test-logger'\n\n/**\n * Creates a test fixture for capturing AlgoKit logs.\n *\n * @example\n * ```typescript\n * const logs = algoKitLogCaptureFixture()\n *\n * beforeEach(logs.beforeEach)\n * afterEach(logs.afterEach)\n *\n * test('My test', () => {\n * const capturedLogs = logs.testLogger.capturedLogs\n * })\n * ```\n *\n * @returns The fixture\n */\nexport const algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture = () => {\n const originalLogger = Config.logger\n\n let hybridLogger: TestLogger\n\n return {\n get testLogger() {\n return hybridLogger\n },\n beforeEach: () => {\n hybridLogger = new TestLogger(originalLogger)\n Config.configure({\n logger: hybridLogger,\n })\n },\n afterEach: () => {\n Config.configure({\n logger: originalLogger,\n })\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAaA,iCAAiE;CAC5E,MAAM,iBAAiB,OAAO;CAE9B,IAAIC;AAEJ,QAAO;EACL,IAAI,aAAa;AACf,UAAO;;EAET,kBAAkB;AAChB,kBAAe,IAAI,WAAW,eAAe;AAC7C,UAAO,UAAU,EACf,QAAQ,cACT,CAAC;;EAEJ,iBAAiB;AACf,UAAO,UAAU,EACf,QAAQ,gBACT,CAAC;;EAEL"}
1
+ {"version":3,"file":"algokit-log-capture-fixture.mjs","names":[],"sources":["../../../src/testing/fixtures/algokit-log-capture-fixture.ts"],"sourcesContent":["import { Config } from '../../'\nimport { TestLogger } from '../test-logger'\nimport { AlgoKitLogCaptureFixture } from '../types'\n\n/**\n * Creates a test fixture for capturing AlgoKit logs.\n *\n * @example\n * ```typescript\n * const logs = algoKitLogCaptureFixture()\n *\n * beforeEach(logs.beforeEach)\n * afterEach(logs.afterEach)\n *\n * test('My test', () => {\n * const capturedLogs = logs.testLogger.capturedLogs\n * })\n * ```\n *\n * @returns The fixture\n */\nexport const algoKitLogCaptureFixture: () => AlgoKitLogCaptureFixture = () => {\n const originalLogger = Config.logger\n\n let hybridLogger: TestLogger\n\n return {\n get testLogger() {\n return hybridLogger\n },\n beforeEach: () => {\n hybridLogger = new TestLogger(originalLogger)\n Config.configure({\n logger: hybridLogger,\n })\n },\n afterEach: () => {\n Config.configure({\n logger: originalLogger,\n })\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,iCAAiE;CAC5E,MAAM,iBAAiB,OAAO;CAE9B,IAAI;AAEJ,QAAO;EACL,IAAI,aAAa;AACf,UAAO;;EAET,kBAAkB;AAChB,kBAAe,IAAI,WAAW,eAAe;AAC7C,UAAO,UAAU,EACf,QAAQ,cACT,CAAC;;EAEJ,iBAAiB;AACf,UAAO,UAAU,EACf,QAAQ,gBACT,CAAC;;EAEL"}
@@ -1,8 +1,7 @@
1
- import { AlgoConfig } from "../../types/network-client.js";
2
- import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
1
+ import { AlgoConfig } from "../../network-client.js";
2
+ import { AlgorandFixture, AlgorandFixtureConfig } from "../types.js";
3
3
 
4
4
  //#region src/testing/fixtures/algorand-fixture.d.ts
5
-
6
5
  /**
7
6
  * Creates a test fixture for automated testing against Algorand.
8
7
  * By default it tests against an environment variable specified client
@@ -15,7 +14,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
15
14
  * ```typescript
16
15
  * const fixture = algorandFixture()
17
16
  *
18
- * beforeEach(fixture.newScope, 10_000)
17
+ * beforeEach(fixture.newScope)
19
18
  *
20
19
  * test('My test', async () => {
21
20
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -27,7 +26,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
27
26
  * ```typescript
28
27
  * const fixture = algorandFixture()
29
28
  *
30
- * beforeAll(fixture.newScope, 10_000)
29
+ * beforeAll(fixture.newScope)
31
30
  *
32
31
  * test('My test', async () => {
33
32
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -42,7 +41,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
42
41
  * // ...
43
42
  * })
44
43
  *
45
- * beforeEach(fixture.newScope, 10_000)
44
+ * beforeEach(fixture.newScope)
46
45
  *
47
46
  * test('My test', async () => {
48
47
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -1,11 +1,10 @@
1
- const require_amount = require('../../amount.js');
2
- const require_config = require('../../config.js');
3
- const require_client_manager = require('../../types/client-manager.js');
4
- const require_algorand_client = require('../../types/algorand-client.js');
5
- const require_account = require('../account.js');
6
- const require_indexer = require('../indexer.js');
7
- const require_transaction_logger = require('../transaction-logger.js');
8
-
1
+ const require_amount = require("../../amount.js");
2
+ const require_config = require("../../config.js");
3
+ const require_client_manager = require("../../client-manager.js");
4
+ const require_algorand_client = require("../../algorand-client.js");
5
+ const require_account = require("../account.js");
6
+ const require_indexer = require("../indexer.js");
7
+ const require_transaction_logger = require("../transaction-logger.js");
9
8
  //#region src/testing/fixtures/algorand-fixture.ts
10
9
  function algorandFixture(fixtureConfig, config) {
11
10
  fixtureConfig = {
@@ -64,7 +63,7 @@ function algorandFixture(fixtureConfig, config) {
64
63
  newScope
65
64
  };
66
65
  }
67
-
68
66
  //#endregion
69
67
  exports.algorandFixture = algorandFixture;
68
+
70
69
  //# sourceMappingURL=algorand-fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.js","names":["ClientManager","context: AlgorandTestAutomationContext","algorand: AlgorandClient","TransactionLogger","AlgorandClient","getTestAccount","algos","runWhenIndexerCaughtUp"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../types/algorand-client'\nimport { ClientManager } from '../../types/client-manager'\nimport { AlgoConfig } from '../../types/network-client'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../../types/testing'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAGA,qCAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAASA,qCAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAWA,qCAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAOA,qCAAc,aAAa,cAAc,UAAW;CACrF,IAAIC;CACJ,IAAIC;CAEJ,MAAM,WAAW,YAAY;AAC3B,wBAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAIC,8CAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAWC,uCAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAMC,+BAAe;GAAE,cAAc,eAAe,sBAAsBC,qBAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAMD,+BAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0BE,6CAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}
1
+ {"version":3,"file":"algorand-fixture.js","names":["ClientManager","TransactionLogger","AlgorandClient","getTestAccount","algos","runWhenIndexerCaughtUp"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../algorand-client'\nimport { ClientManager } from '../../client-manager'\nimport { AlgoConfig } from '../../network-client'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../types'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAGA,uBAAAA,cAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAASA,uBAAAA,cAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAWA,uBAAAA,cAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAOA,uBAAAA,cAAc,aAAa,cAAc,UAAW;CACrF,IAAI;CACJ,IAAI;CAEJ,MAAM,WAAW,YAAY;AAC3B,iBAAA,OAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAIC,2BAAAA,mBAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAWC,wBAAAA,eAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAMC,gBAAAA,eAAe;GAAE,cAAc,eAAe,sBAAsBC,eAAAA,MAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAMD,gBAAAA,eAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0BE,gBAAAA,6BAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}