@algorandfoundation/algokit-utils 10.0.0-alpha.4 → 10.0.0-alpha.41

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 (1132) hide show
  1. package/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +11 -16
  2. package/abi/index.d.ts +2 -1
  3. package/abi/index.js +4 -0
  4. package/abi/index.mjs +2 -1
  5. package/account-manager.d.ts +447 -0
  6. package/account-manager.js +618 -0
  7. package/account-manager.js.map +1 -0
  8. package/account-manager.mjs +614 -0
  9. package/account-manager.mjs.map +1 -0
  10. package/account.d.ts +156 -0
  11. package/account.js +11 -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 +1 -0
  16. package/algod-client/index.d.ts +3 -7
  17. package/algod-client/index.js +4 -5
  18. package/algod-client/index.mjs +2 -2
  19. package/algorand-client-transaction-creator.d.ts +891 -0
  20. package/algorand-client-transaction-creator.js +736 -0
  21. package/algorand-client-transaction-creator.js.map +1 -0
  22. package/algorand-client-transaction-creator.mjs +734 -0
  23. package/algorand-client-transaction-creator.mjs.map +1 -0
  24. package/algorand-client-transaction-sender.d.ts +1099 -0
  25. package/algorand-client-transaction-sender.js +928 -0
  26. package/algorand-client-transaction-sender.js.map +1 -0
  27. package/algorand-client-transaction-sender.mjs +926 -0
  28. package/algorand-client-transaction-sender.mjs.map +1 -0
  29. package/algorand-client.d.ts +266 -0
  30. package/algorand-client.js +350 -0
  31. package/algorand-client.js.map +1 -0
  32. package/algorand-client.mjs +349 -0
  33. package/algorand-client.mjs.map +1 -0
  34. package/amount.d.ts +58 -3
  35. package/amount.js +109 -17
  36. package/amount.js.map +1 -1
  37. package/amount.mjs +100 -11
  38. package/amount.mjs.map +1 -1
  39. package/app-client.d.ts +1064 -0
  40. package/app-client.js +912 -0
  41. package/app-client.js.map +1 -0
  42. package/app-client.mjs +910 -0
  43. package/app-client.mjs.map +1 -0
  44. package/app-deployer.d.ts +166 -0
  45. package/app-deployer.js +354 -0
  46. package/app-deployer.js.map +1 -0
  47. package/app-deployer.mjs +353 -0
  48. package/app-deployer.mjs.map +1 -0
  49. package/app-factory.d.ts +816 -0
  50. package/app-factory.js +449 -0
  51. package/app-factory.js.map +1 -0
  52. package/app-factory.mjs +448 -0
  53. package/app-factory.mjs.map +1 -0
  54. package/app-manager.d.ts +323 -0
  55. package/app-manager.js +469 -0
  56. package/app-manager.js.map +1 -0
  57. package/app-manager.mjs +468 -0
  58. package/app-manager.mjs.map +1 -0
  59. package/app-spec.d.ts +203 -0
  60. package/app-spec.js +138 -0
  61. package/app-spec.js.map +1 -0
  62. package/app-spec.mjs +137 -0
  63. package/app-spec.mjs.map +1 -0
  64. package/app.d.ts +257 -0
  65. package/app.js +50 -0
  66. package/app.js.map +1 -0
  67. package/app.mjs +42 -0
  68. package/app.mjs.map +1 -0
  69. package/asset-manager.d.ts +215 -0
  70. package/asset-manager.js +170 -0
  71. package/asset-manager.js.map +1 -0
  72. package/asset-manager.mjs +169 -0
  73. package/asset-manager.mjs.map +1 -0
  74. package/async-event-emitter.d.ts +16 -0
  75. package/async-event-emitter.js +39 -0
  76. package/async-event-emitter.js.map +1 -0
  77. package/async-event-emitter.mjs +37 -0
  78. package/async-event-emitter.mjs.map +1 -0
  79. package/client-manager.d.ts +475 -0
  80. package/client-manager.js +617 -0
  81. package/client-manager.js.map +1 -0
  82. package/client-manager.mjs +616 -0
  83. package/client-manager.mjs.map +1 -0
  84. package/common/index.d.ts +28 -0
  85. package/common/index.js +110 -0
  86. package/common/index.mjs +26 -0
  87. package/composer.d.ts +947 -0
  88. package/composer.js +1585 -0
  89. package/composer.js.map +1 -0
  90. package/composer.mjs +1583 -0
  91. package/composer.mjs.map +1 -0
  92. package/config.d.ts +1 -1
  93. package/config.js +3 -2
  94. package/config.js.map +1 -1
  95. package/config.mjs +1 -1
  96. package/config.mjs.map +1 -1
  97. package/crypto/index.d.ts +5 -0
  98. package/crypto/index.js +14 -0
  99. package/crypto/index.mjs +6 -0
  100. package/debugging.d.ts +47 -0
  101. package/debugging.js +21 -0
  102. package/debugging.js.map +1 -0
  103. package/debugging.mjs +15 -0
  104. package/debugging.mjs.map +1 -0
  105. package/dispenser-client.d.ts +91 -0
  106. package/dispenser-client.js +129 -0
  107. package/dispenser-client.js.map +1 -0
  108. package/dispenser-client.mjs +128 -0
  109. package/dispenser-client.mjs.map +1 -0
  110. package/expand.d.ts +2 -0
  111. package/expand.js +0 -0
  112. package/expand.mjs +0 -0
  113. package/index.d.ts +28 -7
  114. package/index.js +39 -10
  115. package/index.mjs +21 -6
  116. package/indexer-client/index.d.ts +2 -2
  117. package/indexer-client/index.js +7 -6
  118. package/indexer-client/index.mjs +2 -2
  119. package/{indexer-lookup.d.ts → indexer-client/indexer-lookup.d.ts} +8 -11
  120. package/{indexer-lookup.mjs → indexer-client/indexer-lookup.js} +6 -10
  121. package/indexer-client/indexer-lookup.js.map +1 -0
  122. package/{indexer-lookup.js → indexer-client/indexer-lookup.mjs} +3 -18
  123. package/indexer-client/indexer-lookup.mjs.map +1 -0
  124. package/indexer.d.ts +40 -0
  125. package/indexer.js +39 -0
  126. package/indexer.js.map +1 -0
  127. package/indexer.mjs +35 -0
  128. package/indexer.mjs.map +1 -0
  129. package/instance-of.d.ts +8 -0
  130. package/kmd-account-manager.d.ts +74 -0
  131. package/kmd-account-manager.js +168 -0
  132. package/kmd-account-manager.js.map +1 -0
  133. package/kmd-account-manager.mjs +165 -0
  134. package/kmd-account-manager.mjs.map +1 -0
  135. package/kmd-client/index.d.ts +1 -2
  136. package/kmd-client/index.js +1 -5
  137. package/kmd-client/index.mjs +1 -2
  138. package/lifecycle-events.d.ts +14 -0
  139. package/lifecycle-events.js +12 -0
  140. package/lifecycle-events.js.map +1 -0
  141. package/lifecycle-events.mjs +10 -0
  142. package/lifecycle-events.mjs.map +1 -0
  143. package/logging.d.ts +13 -0
  144. package/logging.js +48 -0
  145. package/logging.js.map +1 -0
  146. package/logging.mjs +42 -0
  147. package/logging.mjs.map +1 -0
  148. package/logic-error.d.ts +39 -0
  149. package/logic-error.js +55 -0
  150. package/logic-error.js.map +1 -0
  151. package/logic-error.mjs +53 -0
  152. package/logic-error.mjs.map +1 -0
  153. package/network-client.d.ts +43 -0
  154. package/network-client.js +15 -0
  155. package/network-client.js.map +1 -0
  156. package/network-client.mjs +13 -0
  157. package/network-client.mjs.map +1 -0
  158. package/network-manager.d.ts +143 -0
  159. package/network-manager.js +191 -0
  160. package/network-manager.js.map +1 -0
  161. package/network-manager.mjs +190 -0
  162. package/network-manager.mjs.map +1 -0
  163. package/package.json +28 -6
  164. package/packages/abi/src/abi-method.js +18 -19
  165. package/packages/abi/src/abi-method.js.map +1 -1
  166. package/packages/abi/src/abi-method.mjs +17 -17
  167. package/packages/abi/src/abi-method.mjs.map +1 -1
  168. package/packages/abi/src/abi-type.d.ts +1 -3
  169. package/packages/abi/src/abi-type.js +7 -36
  170. package/packages/abi/src/abi-type.js.map +1 -1
  171. package/packages/abi/src/abi-type.mjs +7 -36
  172. package/packages/abi/src/abi-type.mjs.map +1 -1
  173. package/packages/abi/src/arc56-contract.js +1 -0
  174. package/packages/abi/src/arc56-contract.js.map +1 -1
  175. package/packages/abi/src/arc56-contract.mjs +1 -0
  176. package/packages/abi/src/arc56-contract.mjs.map +1 -1
  177. package/packages/abi/src/utils.d.ts +22 -0
  178. package/packages/abi/src/utils.js +57 -0
  179. package/packages/abi/src/utils.js.map +1 -0
  180. package/packages/abi/src/utils.mjs +55 -0
  181. package/packages/abi/src/utils.mjs.map +1 -0
  182. package/packages/algo25/src/index.d.ts +2 -2
  183. package/packages/algo25/src/index.js +2 -2
  184. package/packages/algo25/src/index.js.map +1 -1
  185. package/packages/algo25/src/index.mjs +1 -1
  186. package/packages/algo25/src/index.mjs.map +1 -1
  187. package/packages/algod_client/src/apis/api-service.d.ts +44 -44
  188. package/packages/algod_client/src/apis/api-service.js +155 -155
  189. package/packages/algod_client/src/apis/api-service.js.map +1 -1
  190. package/packages/algod_client/src/apis/api-service.mjs +155 -155
  191. package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
  192. package/packages/algod_client/src/core/api-error.js +3 -1
  193. package/packages/algod_client/src/core/api-error.js.map +1 -1
  194. package/packages/algod_client/src/core/api-error.mjs +3 -1
  195. package/packages/algod_client/src/core/api-error.mjs.map +1 -1
  196. package/packages/algod_client/src/core/base-http-request.js.map +1 -1
  197. package/packages/algod_client/src/core/base-http-request.mjs.map +1 -1
  198. package/packages/algod_client/src/core/fetch-http-request.js.map +1 -1
  199. package/packages/algod_client/src/core/fetch-http-request.mjs.map +1 -1
  200. package/packages/algod_client/src/core/model-runtime.js +6 -6
  201. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  202. package/packages/algod_client/src/core/model-runtime.mjs +8 -8
  203. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  204. package/packages/algod_client/src/core/request.js.map +1 -1
  205. package/packages/algod_client/src/core/request.mjs.map +1 -1
  206. package/packages/algod_client/src/models/account-application-response.js.map +1 -1
  207. package/packages/algod_client/src/models/account-application-response.mjs.map +1 -1
  208. package/packages/algod_client/src/models/account-asset-response.js.map +1 -1
  209. package/packages/algod_client/src/models/account-asset-response.mjs.map +1 -1
  210. package/packages/algod_client/src/models/account-participation.js +4 -4
  211. package/packages/algod_client/src/models/account-participation.js.map +1 -1
  212. package/packages/algod_client/src/models/account-participation.mjs +4 -4
  213. package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
  214. package/packages/algod_client/src/models/account-state-delta.js.map +1 -1
  215. package/packages/algod_client/src/models/account-state-delta.mjs.map +1 -1
  216. package/packages/algod_client/src/models/account.js.map +1 -1
  217. package/packages/algod_client/src/models/account.mjs.map +1 -1
  218. package/packages/algod_client/src/models/application-initial-states.js.map +1 -1
  219. package/packages/algod_client/src/models/application-initial-states.mjs.map +1 -1
  220. package/packages/algod_client/src/models/application-kv-storage.js.map +1 -1
  221. package/packages/algod_client/src/models/application-kv-storage.mjs.map +1 -1
  222. package/packages/algod_client/src/models/application-local-state.js.map +1 -1
  223. package/packages/algod_client/src/models/application-local-state.mjs.map +1 -1
  224. package/packages/algod_client/src/models/application-params.js.map +1 -1
  225. package/packages/algod_client/src/models/application-params.mjs.map +1 -1
  226. package/packages/algod_client/src/models/application-state-operation.js.map +1 -1
  227. package/packages/algod_client/src/models/application-state-operation.mjs.map +1 -1
  228. package/packages/algod_client/src/models/application-state-schema.d.ts +2 -2
  229. package/packages/algod_client/src/models/application-state-schema.js +2 -2
  230. package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
  231. package/packages/algod_client/src/models/application-state-schema.mjs +2 -2
  232. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
  233. package/packages/algod_client/src/models/application.js.map +1 -1
  234. package/packages/algod_client/src/models/application.mjs.map +1 -1
  235. package/packages/algod_client/src/models/asset-holding.js.map +1 -1
  236. package/packages/algod_client/src/models/asset-holding.mjs.map +1 -1
  237. package/packages/algod_client/src/models/asset-params.js +2 -1
  238. package/packages/algod_client/src/models/asset-params.js.map +1 -1
  239. package/packages/algod_client/src/models/asset-params.mjs +2 -1
  240. package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
  241. package/packages/algod_client/src/models/asset.js.map +1 -1
  242. package/packages/algod_client/src/models/asset.mjs.map +1 -1
  243. package/packages/algod_client/src/models/avm-key-value.js.map +1 -1
  244. package/packages/algod_client/src/models/avm-key-value.mjs.map +1 -1
  245. package/packages/algod_client/src/models/avm-value.js.map +1 -1
  246. package/packages/algod_client/src/models/avm-value.mjs.map +1 -1
  247. package/packages/algod_client/src/models/block-hash-response.js.map +1 -1
  248. package/packages/algod_client/src/models/block-hash-response.mjs.map +1 -1
  249. package/packages/algod_client/src/models/block-response.js +1 -2
  250. package/packages/algod_client/src/models/block-response.js.map +1 -1
  251. package/packages/algod_client/src/models/block-response.mjs +2 -3
  252. package/packages/algod_client/src/models/block-response.mjs.map +1 -1
  253. package/packages/algod_client/src/models/block-txids-response.js.map +1 -1
  254. package/packages/algod_client/src/models/block-txids-response.mjs.map +1 -1
  255. package/packages/algod_client/src/models/block.d.ts +60 -40
  256. package/packages/algod_client/src/models/block.js +184 -108
  257. package/packages/algod_client/src/models/block.js.map +1 -1
  258. package/packages/algod_client/src/models/block.mjs +184 -108
  259. package/packages/algod_client/src/models/block.mjs.map +1 -1
  260. package/packages/algod_client/src/models/box-descriptor.js.map +1 -1
  261. package/packages/algod_client/src/models/box-descriptor.mjs.map +1 -1
  262. package/packages/algod_client/src/models/box.js.map +1 -1
  263. package/packages/algod_client/src/models/box.mjs.map +1 -1
  264. package/packages/algod_client/src/models/boxes-response.js.map +1 -1
  265. package/packages/algod_client/src/models/boxes-response.mjs.map +1 -1
  266. package/packages/algod_client/src/models/build-version.js.map +1 -1
  267. package/packages/algod_client/src/models/build-version.mjs.map +1 -1
  268. package/packages/algod_client/src/models/compile-response.js.map +1 -1
  269. package/packages/algod_client/src/models/compile-response.mjs.map +1 -1
  270. package/packages/algod_client/src/models/disassemble-response.js.map +1 -1
  271. package/packages/algod_client/src/models/disassemble-response.mjs.map +1 -1
  272. package/packages/algod_client/src/models/eval-delta-key-value.js +2 -2
  273. package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -1
  274. package/packages/algod_client/src/models/eval-delta-key-value.mjs +2 -2
  275. package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -1
  276. package/packages/algod_client/src/models/eval-delta.js +2 -2
  277. package/packages/algod_client/src/models/eval-delta.js.map +1 -1
  278. package/packages/algod_client/src/models/eval-delta.mjs +2 -2
  279. package/packages/algod_client/src/models/eval-delta.mjs.map +1 -1
  280. package/packages/algod_client/src/models/genesis-allocation.js.map +1 -1
  281. package/packages/algod_client/src/models/genesis-allocation.mjs.map +1 -1
  282. package/packages/algod_client/src/models/genesis.js.map +1 -1
  283. package/packages/algod_client/src/models/genesis.mjs.map +1 -1
  284. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js.map +1 -1
  285. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs.map +1 -1
  286. package/packages/algod_client/src/models/get-sync-round-response.js.map +1 -1
  287. package/packages/algod_client/src/models/get-sync-round-response.mjs.map +1 -1
  288. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js.map +1 -1
  289. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs.map +1 -1
  290. package/packages/algod_client/src/models/ledger-state-delta.js +1 -1
  291. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
  292. package/packages/algod_client/src/models/ledger-state-delta.mjs +2 -2
  293. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
  294. package/packages/algod_client/src/models/light-block-header-proof.js.map +1 -1
  295. package/packages/algod_client/src/models/light-block-header-proof.mjs.map +1 -1
  296. package/packages/algod_client/src/models/node-status-response.js.map +1 -1
  297. package/packages/algod_client/src/models/node-status-response.mjs.map +1 -1
  298. package/packages/algod_client/src/models/pending-transaction-response.js.map +1 -1
  299. package/packages/algod_client/src/models/pending-transaction-response.mjs.map +1 -1
  300. package/packages/algod_client/src/models/pending-transactions-response.js.map +1 -1
  301. package/packages/algod_client/src/models/pending-transactions-response.mjs.map +1 -1
  302. package/packages/algod_client/src/models/post-transactions-response.js.map +1 -1
  303. package/packages/algod_client/src/models/post-transactions-response.mjs.map +1 -1
  304. package/packages/algod_client/src/models/scratch-change.js.map +1 -1
  305. package/packages/algod_client/src/models/scratch-change.mjs.map +1 -1
  306. package/packages/algod_client/src/models/simulate-initial-states.js.map +1 -1
  307. package/packages/algod_client/src/models/simulate-initial-states.mjs.map +1 -1
  308. package/packages/algod_client/src/models/simulate-request-transaction-group.js.map +1 -1
  309. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs.map +1 -1
  310. package/packages/algod_client/src/models/simulate-request.js +1 -1
  311. package/packages/algod_client/src/models/simulate-request.js.map +1 -1
  312. package/packages/algod_client/src/models/simulate-request.mjs +1 -1
  313. package/packages/algod_client/src/models/simulate-request.mjs.map +1 -1
  314. package/packages/algod_client/src/models/simulate-response.d.ts +3 -1
  315. package/packages/algod_client/src/models/simulate-response.js +10 -1
  316. package/packages/algod_client/src/models/simulate-response.js.map +1 -1
  317. package/packages/algod_client/src/models/simulate-response.mjs +9 -2
  318. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
  319. package/packages/algod_client/src/models/simulate-trace-config.js.map +1 -1
  320. package/packages/algod_client/src/models/simulate-trace-config.mjs.map +1 -1
  321. package/packages/algod_client/src/models/simulate-transaction-group-result.js.map +1 -1
  322. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs.map +1 -1
  323. package/packages/algod_client/src/models/simulate-transaction-result.js.map +1 -1
  324. package/packages/algod_client/src/models/simulate-transaction-result.mjs.map +1 -1
  325. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +3 -5
  326. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +4 -6
  327. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
  328. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +3 -5
  329. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
  330. package/packages/algod_client/src/models/simulation-eval-overrides.js.map +1 -1
  331. package/packages/algod_client/src/models/simulation-eval-overrides.mjs.map +1 -1
  332. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js.map +1 -1
  333. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs.map +1 -1
  334. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js.map +1 -1
  335. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs.map +1 -1
  336. package/packages/algod_client/src/models/source-map.js.map +1 -1
  337. package/packages/algod_client/src/models/source-map.mjs.map +1 -1
  338. package/packages/algod_client/src/models/state-delta.js.map +1 -1
  339. package/packages/algod_client/src/models/state-delta.mjs.map +1 -1
  340. package/packages/algod_client/src/models/state-proof-message.js.map +1 -1
  341. package/packages/algod_client/src/models/state-proof-message.mjs.map +1 -1
  342. package/packages/algod_client/src/models/state-proof.js.map +1 -1
  343. package/packages/algod_client/src/models/state-proof.mjs.map +1 -1
  344. package/packages/algod_client/src/models/supply-response.js.map +1 -1
  345. package/packages/algod_client/src/models/supply-response.mjs.map +1 -1
  346. package/packages/algod_client/src/models/teal-key-value-store.js.map +1 -1
  347. package/packages/algod_client/src/models/teal-key-value-store.mjs.map +1 -1
  348. package/packages/algod_client/src/models/teal-key-value.js.map +1 -1
  349. package/packages/algod_client/src/models/teal-key-value.mjs.map +1 -1
  350. package/packages/algod_client/src/models/teal-value.js.map +1 -1
  351. package/packages/algod_client/src/models/teal-value.mjs.map +1 -1
  352. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js.map +1 -1
  353. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs.map +1 -1
  354. package/packages/algod_client/src/models/transaction-parameters-response.js +2 -2
  355. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
  356. package/packages/algod_client/src/models/transaction-parameters-response.mjs +2 -2
  357. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
  358. package/packages/algod_client/src/models/transaction-proof.js.map +1 -1
  359. package/packages/algod_client/src/models/transaction-proof.mjs.map +1 -1
  360. package/packages/algod_client/src/models/version.js.map +1 -1
  361. package/packages/algod_client/src/models/version.mjs.map +1 -1
  362. package/packages/common/src/address.d.ts +14 -3
  363. package/packages/common/src/address.js +14 -13
  364. package/packages/common/src/address.js.map +1 -1
  365. package/packages/common/src/address.mjs +8 -11
  366. package/packages/common/src/address.mjs.map +1 -1
  367. package/packages/common/src/array.d.ts +6 -0
  368. package/packages/common/src/codecs/composite/array.d.ts +25 -0
  369. package/packages/common/src/codecs/composite/array.js +1 -0
  370. package/packages/common/src/codecs/composite/array.js.map +1 -1
  371. package/packages/common/src/codecs/composite/array.mjs +1 -1
  372. package/packages/common/src/codecs/composite/array.mjs.map +1 -1
  373. package/packages/common/src/codecs/composite/map.d.ts +27 -0
  374. package/packages/common/src/codecs/composite/map.js +7 -4
  375. package/packages/common/src/codecs/composite/map.js.map +1 -1
  376. package/packages/common/src/codecs/composite/map.mjs +7 -4
  377. package/packages/common/src/codecs/composite/map.mjs.map +1 -1
  378. package/packages/common/src/codecs/composite/record.d.ts +20 -0
  379. package/packages/common/src/codecs/composite/record.js +1 -2
  380. package/packages/common/src/codecs/composite/record.js.map +1 -1
  381. package/packages/common/src/codecs/composite/record.mjs.map +1 -1
  382. package/packages/common/src/codecs/models/array-model.d.ts +19 -0
  383. package/packages/common/src/codecs/models/array-model.js.map +1 -1
  384. package/packages/common/src/codecs/models/array-model.mjs.map +1 -1
  385. package/packages/common/src/codecs/models/object-model.js +2 -2
  386. package/packages/common/src/codecs/models/object-model.js.map +1 -1
  387. package/packages/common/src/codecs/models/object-model.mjs +2 -2
  388. package/packages/common/src/codecs/models/object-model.mjs.map +1 -1
  389. package/packages/common/src/codecs/models/primitive-model.d.ts +19 -0
  390. package/packages/common/src/codecs/models/primitive-model.js.map +1 -1
  391. package/packages/common/src/codecs/models/primitive-model.mjs.map +1 -1
  392. package/packages/common/src/codecs/primitives/address.d.ts +16 -0
  393. package/packages/common/src/codecs/primitives/address.js +1 -2
  394. package/packages/common/src/codecs/primitives/address.js.map +1 -1
  395. package/packages/common/src/codecs/primitives/bigint.d.ts +13 -0
  396. package/packages/common/src/codecs/primitives/boolean.d.ts +10 -0
  397. package/packages/common/src/codecs/primitives/bytes-base64.d.ts +15 -0
  398. package/packages/common/src/codecs/primitives/bytes-base64.js +26 -0
  399. package/packages/common/src/codecs/primitives/bytes-base64.js.map +1 -0
  400. package/packages/common/src/codecs/primitives/bytes-base64.mjs +25 -0
  401. package/packages/common/src/codecs/primitives/bytes-base64.mjs.map +1 -0
  402. package/packages/common/src/codecs/primitives/bytes.d.ts +15 -0
  403. package/packages/common/src/codecs/primitives/bytes.js +1 -2
  404. package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
  405. package/packages/common/src/codecs/primitives/fixed-bytes.d.ts +19 -0
  406. package/packages/common/src/codecs/primitives/fixed-bytes.js +1 -2
  407. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
  408. package/packages/common/src/codecs/primitives/fixed-bytes.mjs.map +1 -1
  409. package/packages/common/src/codecs/primitives/number.d.ts +11 -0
  410. package/packages/common/src/codecs/primitives/string.d.ts +13 -0
  411. package/packages/common/src/codecs/primitives/unknown.d.ts +27 -0
  412. package/packages/common/src/codecs/types.d.ts +12 -1
  413. package/packages/common/src/codecs/wire.d.ts +17 -1
  414. package/packages/common/src/codecs/wire.js +1 -2
  415. package/packages/common/src/codecs/wire.js.map +1 -1
  416. package/packages/common/src/codecs/wire.mjs.map +1 -1
  417. package/packages/common/src/constants.d.ts +34 -0
  418. package/packages/common/src/constants.js +2 -0
  419. package/packages/common/src/constants.js.map +1 -1
  420. package/packages/common/src/constants.mjs +2 -1
  421. package/packages/common/src/constants.mjs.map +1 -1
  422. package/packages/common/src/encoding.d.ts +10 -0
  423. package/packages/common/src/encoding.js +31 -0
  424. package/packages/common/src/encoding.js.map +1 -0
  425. package/packages/common/src/encoding.mjs +25 -0
  426. package/packages/common/src/encoding.mjs.map +1 -0
  427. package/packages/common/src/json.d.ts +17 -0
  428. package/packages/common/src/json.js +2 -2
  429. package/packages/common/src/json.mjs +2 -2
  430. package/packages/common/src/json.mjs.map +1 -1
  431. package/packages/common/src/msgpack.d.ts +11 -0
  432. package/packages/common/src/msgpack.js +1 -2
  433. package/packages/common/src/msgpack.js.map +1 -1
  434. package/packages/{sdk/src/logic → common/src}/sourcemap.d.ts +1 -1
  435. package/packages/{sdk/src/logic → common/src}/sourcemap.js +3 -3
  436. package/packages/common/src/sourcemap.js.map +1 -0
  437. package/packages/{sdk/src/logic → common/src}/sourcemap.mjs +1 -1
  438. package/packages/common/src/sourcemap.mjs.map +1 -0
  439. package/packages/crypto/src/ed25519.d.ts +60 -0
  440. package/packages/crypto/src/ed25519.js +59 -0
  441. package/packages/crypto/src/ed25519.js.map +1 -0
  442. package/packages/crypto/src/ed25519.mjs +54 -0
  443. package/packages/crypto/src/ed25519.mjs.map +1 -0
  444. package/packages/crypto/src/hash.d.ts +8 -0
  445. package/packages/crypto/src/hash.js +15 -0
  446. package/packages/crypto/src/hash.js.map +1 -0
  447. package/packages/crypto/src/hash.mjs +14 -0
  448. package/packages/crypto/src/hash.mjs.map +1 -0
  449. package/packages/crypto/src/hd.d.ts +40 -0
  450. package/packages/crypto/src/hd.js +37 -0
  451. package/packages/crypto/src/hd.js.map +1 -0
  452. package/packages/crypto/src/hd.mjs +36 -0
  453. package/packages/crypto/src/hd.mjs.map +1 -0
  454. package/packages/crypto/src/index.d.ts +28 -0
  455. package/packages/crypto/src/index.js +141 -0
  456. package/packages/crypto/src/index.js.map +1 -0
  457. package/packages/crypto/src/index.mjs +138 -0
  458. package/packages/crypto/src/index.mjs.map +1 -0
  459. package/packages/indexer_client/src/apis/api-service.d.ts +1 -1
  460. package/packages/indexer_client/src/apis/api-service.js +12 -12
  461. package/packages/indexer_client/src/apis/api-service.js.map +1 -1
  462. package/packages/indexer_client/src/apis/api-service.mjs +12 -12
  463. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
  464. package/packages/indexer_client/src/core/api-error.js +3 -1
  465. package/packages/indexer_client/src/core/api-error.js.map +1 -1
  466. package/packages/indexer_client/src/core/api-error.mjs +3 -1
  467. package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
  468. package/packages/indexer_client/src/core/base-http-request.js.map +1 -1
  469. package/packages/indexer_client/src/core/base-http-request.mjs.map +1 -1
  470. package/packages/indexer_client/src/core/fetch-http-request.js.map +1 -1
  471. package/packages/indexer_client/src/core/fetch-http-request.mjs.map +1 -1
  472. package/packages/indexer_client/src/core/model-runtime.js +0 -15
  473. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  474. package/packages/indexer_client/src/core/model-runtime.mjs +1 -13
  475. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  476. package/packages/indexer_client/src/core/request.js.map +1 -1
  477. package/packages/indexer_client/src/core/request.mjs.map +1 -1
  478. package/packages/indexer_client/src/models/account-participation.js +4 -4
  479. package/packages/indexer_client/src/models/account-participation.js.map +1 -1
  480. package/packages/indexer_client/src/models/account-participation.mjs +4 -4
  481. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
  482. package/packages/indexer_client/src/models/account-response.js.map +1 -1
  483. package/packages/indexer_client/src/models/account-response.mjs.map +1 -1
  484. package/packages/indexer_client/src/models/account-state-delta.js.map +1 -1
  485. package/packages/indexer_client/src/models/account-state-delta.mjs.map +1 -1
  486. package/packages/indexer_client/src/models/account.js.map +1 -1
  487. package/packages/indexer_client/src/models/account.mjs.map +1 -1
  488. package/packages/indexer_client/src/models/accounts-response.js.map +1 -1
  489. package/packages/indexer_client/src/models/accounts-response.mjs.map +1 -1
  490. package/packages/indexer_client/src/models/application-local-state.js.map +1 -1
  491. package/packages/indexer_client/src/models/application-local-state.mjs.map +1 -1
  492. package/packages/indexer_client/src/models/application-local-states-response.js.map +1 -1
  493. package/packages/indexer_client/src/models/application-local-states-response.mjs.map +1 -1
  494. package/packages/indexer_client/src/models/application-log-data.js.map +1 -1
  495. package/packages/indexer_client/src/models/application-log-data.mjs.map +1 -1
  496. package/packages/indexer_client/src/models/application-logs-response.js.map +1 -1
  497. package/packages/indexer_client/src/models/application-logs-response.mjs.map +1 -1
  498. package/packages/indexer_client/src/models/application-params.js.map +1 -1
  499. package/packages/indexer_client/src/models/application-params.mjs.map +1 -1
  500. package/packages/indexer_client/src/models/application-response.js.map +1 -1
  501. package/packages/indexer_client/src/models/application-response.mjs.map +1 -1
  502. package/packages/indexer_client/src/models/application-state-schema.d.ts +2 -2
  503. package/packages/indexer_client/src/models/application-state-schema.js +2 -2
  504. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
  505. package/packages/indexer_client/src/models/application-state-schema.mjs +2 -2
  506. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
  507. package/packages/indexer_client/src/models/application.js.map +1 -1
  508. package/packages/indexer_client/src/models/application.mjs.map +1 -1
  509. package/packages/indexer_client/src/models/applications-response.js.map +1 -1
  510. package/packages/indexer_client/src/models/applications-response.mjs.map +1 -1
  511. package/packages/indexer_client/src/models/asset-balances-response.js.map +1 -1
  512. package/packages/indexer_client/src/models/asset-balances-response.mjs.map +1 -1
  513. package/packages/indexer_client/src/models/asset-holding.js.map +1 -1
  514. package/packages/indexer_client/src/models/asset-holding.mjs.map +1 -1
  515. package/packages/indexer_client/src/models/asset-holdings-response.js.map +1 -1
  516. package/packages/indexer_client/src/models/asset-holdings-response.mjs.map +1 -1
  517. package/packages/indexer_client/src/models/asset-params.js +2 -1
  518. package/packages/indexer_client/src/models/asset-params.js.map +1 -1
  519. package/packages/indexer_client/src/models/asset-params.mjs +2 -1
  520. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
  521. package/packages/indexer_client/src/models/asset-response.js.map +1 -1
  522. package/packages/indexer_client/src/models/asset-response.mjs.map +1 -1
  523. package/packages/indexer_client/src/models/asset.js.map +1 -1
  524. package/packages/indexer_client/src/models/asset.mjs.map +1 -1
  525. package/packages/indexer_client/src/models/assets-response.js.map +1 -1
  526. package/packages/indexer_client/src/models/assets-response.mjs.map +1 -1
  527. package/packages/indexer_client/src/models/block-headers-response.js.map +1 -1
  528. package/packages/indexer_client/src/models/block-headers-response.mjs.map +1 -1
  529. package/packages/indexer_client/src/models/block-rewards.js.map +1 -1
  530. package/packages/indexer_client/src/models/block-rewards.mjs.map +1 -1
  531. package/packages/indexer_client/src/models/block-upgrade-state.js.map +1 -1
  532. package/packages/indexer_client/src/models/block-upgrade-state.mjs.map +1 -1
  533. package/packages/indexer_client/src/models/block-upgrade-vote.js.map +1 -1
  534. package/packages/indexer_client/src/models/block-upgrade-vote.mjs.map +1 -1
  535. package/packages/indexer_client/src/models/block.d.ts +5 -5
  536. package/packages/indexer_client/src/models/block.js +13 -13
  537. package/packages/indexer_client/src/models/block.js.map +1 -1
  538. package/packages/indexer_client/src/models/block.mjs +13 -13
  539. package/packages/indexer_client/src/models/block.mjs.map +1 -1
  540. package/packages/indexer_client/src/models/box-descriptor.js.map +1 -1
  541. package/packages/indexer_client/src/models/box-descriptor.mjs.map +1 -1
  542. package/packages/indexer_client/src/models/box-reference.js.map +1 -1
  543. package/packages/indexer_client/src/models/box-reference.mjs.map +1 -1
  544. package/packages/indexer_client/src/models/box.js.map +1 -1
  545. package/packages/indexer_client/src/models/box.mjs.map +1 -1
  546. package/packages/indexer_client/src/models/boxes-response.js.map +1 -1
  547. package/packages/indexer_client/src/models/boxes-response.mjs.map +1 -1
  548. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +1 -1
  549. package/packages/indexer_client/src/models/eval-delta-key-value.js +2 -2
  550. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
  551. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +2 -2
  552. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
  553. package/packages/indexer_client/src/models/eval-delta.d.ts +1 -1
  554. package/packages/indexer_client/src/models/eval-delta.js +2 -2
  555. package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
  556. package/packages/indexer_client/src/models/eval-delta.mjs +2 -2
  557. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
  558. package/packages/indexer_client/src/models/hash-factory.js.map +1 -1
  559. package/packages/indexer_client/src/models/hash-factory.mjs.map +1 -1
  560. package/packages/indexer_client/src/models/hb-proof-fields.js +6 -6
  561. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
  562. package/packages/indexer_client/src/models/hb-proof-fields.mjs +6 -6
  563. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
  564. package/packages/indexer_client/src/models/health-check.js.map +1 -1
  565. package/packages/indexer_client/src/models/health-check.mjs.map +1 -1
  566. package/packages/indexer_client/src/models/holding-ref.js.map +1 -1
  567. package/packages/indexer_client/src/models/holding-ref.mjs.map +1 -1
  568. package/packages/indexer_client/src/models/indexer-state-proof-message.js.map +1 -1
  569. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs.map +1 -1
  570. package/packages/indexer_client/src/models/locals-ref.js.map +1 -1
  571. package/packages/indexer_client/src/models/locals-ref.mjs.map +1 -1
  572. package/packages/indexer_client/src/models/merkle-array-proof.js.map +1 -1
  573. package/packages/indexer_client/src/models/merkle-array-proof.mjs.map +1 -1
  574. package/packages/indexer_client/src/models/mini-asset-holding.js.map +1 -1
  575. package/packages/indexer_client/src/models/mini-asset-holding.mjs.map +1 -1
  576. package/packages/indexer_client/src/models/on-completion.js.map +1 -1
  577. package/packages/indexer_client/src/models/on-completion.mjs.map +1 -1
  578. package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
  579. package/packages/indexer_client/src/models/participation-updates.js +2 -2
  580. package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
  581. package/packages/indexer_client/src/models/participation-updates.mjs +2 -2
  582. package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
  583. package/packages/indexer_client/src/models/resource-ref.js.map +1 -1
  584. package/packages/indexer_client/src/models/resource-ref.mjs.map +1 -1
  585. package/packages/indexer_client/src/models/state-delta.js.map +1 -1
  586. package/packages/indexer_client/src/models/state-delta.mjs.map +1 -1
  587. package/packages/indexer_client/src/models/state-proof-fields.js.map +1 -1
  588. package/packages/indexer_client/src/models/state-proof-fields.mjs.map +1 -1
  589. package/packages/indexer_client/src/models/state-proof-participant.js.map +1 -1
  590. package/packages/indexer_client/src/models/state-proof-participant.mjs.map +1 -1
  591. package/packages/indexer_client/src/models/state-proof-reveal.js.map +1 -1
  592. package/packages/indexer_client/src/models/state-proof-reveal.mjs.map +1 -1
  593. package/packages/indexer_client/src/models/state-proof-sig-slot.js.map +1 -1
  594. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs.map +1 -1
  595. package/packages/indexer_client/src/models/state-proof-signature.js.map +1 -1
  596. package/packages/indexer_client/src/models/state-proof-signature.mjs.map +1 -1
  597. package/packages/indexer_client/src/models/state-proof-tracking.js.map +1 -1
  598. package/packages/indexer_client/src/models/state-proof-tracking.mjs.map +1 -1
  599. package/packages/indexer_client/src/models/state-proof-verifier.js +2 -2
  600. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
  601. package/packages/indexer_client/src/models/state-proof-verifier.mjs +2 -2
  602. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
  603. package/packages/indexer_client/src/models/state-schema.d.ts +2 -2
  604. package/packages/indexer_client/src/models/state-schema.js +2 -2
  605. package/packages/indexer_client/src/models/state-schema.js.map +1 -1
  606. package/packages/indexer_client/src/models/state-schema.mjs +2 -2
  607. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
  608. package/packages/indexer_client/src/models/teal-key-value-store.js.map +1 -1
  609. package/packages/indexer_client/src/models/teal-key-value-store.mjs.map +1 -1
  610. package/packages/indexer_client/src/models/teal-key-value.d.ts +1 -1
  611. package/packages/indexer_client/src/models/teal-key-value.js +2 -2
  612. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
  613. package/packages/indexer_client/src/models/teal-key-value.mjs +2 -2
  614. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
  615. package/packages/indexer_client/src/models/teal-value.js.map +1 -1
  616. package/packages/indexer_client/src/models/teal-value.mjs.map +1 -1
  617. package/packages/indexer_client/src/models/transaction-application.js.map +1 -1
  618. package/packages/indexer_client/src/models/transaction-application.mjs.map +1 -1
  619. package/packages/indexer_client/src/models/transaction-asset-config.js.map +1 -1
  620. package/packages/indexer_client/src/models/transaction-asset-config.mjs.map +1 -1
  621. package/packages/indexer_client/src/models/transaction-asset-freeze.js.map +1 -1
  622. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs.map +1 -1
  623. package/packages/indexer_client/src/models/transaction-asset-transfer.js.map +1 -1
  624. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs.map +1 -1
  625. package/packages/indexer_client/src/models/transaction-heartbeat.js +2 -1
  626. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
  627. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +2 -1
  628. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
  629. package/packages/indexer_client/src/models/transaction-keyreg.js +4 -4
  630. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
  631. package/packages/indexer_client/src/models/transaction-keyreg.mjs +4 -4
  632. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
  633. package/packages/indexer_client/src/models/transaction-payment.js.map +1 -1
  634. package/packages/indexer_client/src/models/transaction-payment.mjs.map +1 -1
  635. package/packages/indexer_client/src/models/transaction-response.js.map +1 -1
  636. package/packages/indexer_client/src/models/transaction-response.mjs.map +1 -1
  637. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +2 -1
  638. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
  639. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +2 -1
  640. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
  641. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +3 -3
  642. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
  643. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +3 -3
  644. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
  645. package/packages/indexer_client/src/models/transaction-signature-multisig.js.map +1 -1
  646. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs.map +1 -1
  647. package/packages/indexer_client/src/models/transaction-signature.js.map +1 -1
  648. package/packages/indexer_client/src/models/transaction-signature.mjs.map +1 -1
  649. package/packages/indexer_client/src/models/transaction-state-proof.d.ts +1 -1
  650. package/packages/indexer_client/src/models/transaction-state-proof.js +2 -2
  651. package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -1
  652. package/packages/indexer_client/src/models/transaction-state-proof.mjs +2 -2
  653. package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -1
  654. package/packages/indexer_client/src/models/transaction.d.ts +2 -2
  655. package/packages/indexer_client/src/models/transaction.js +6 -5
  656. package/packages/indexer_client/src/models/transaction.js.map +1 -1
  657. package/packages/indexer_client/src/models/transaction.mjs +6 -5
  658. package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
  659. package/packages/indexer_client/src/models/transactions-response.js.map +1 -1
  660. package/packages/indexer_client/src/models/transactions-response.mjs.map +1 -1
  661. package/packages/kmd_client/src/apis/api-service.d.ts +5 -5
  662. package/packages/kmd_client/src/apis/api-service.js +32 -32
  663. package/packages/kmd_client/src/apis/api-service.js.map +1 -1
  664. package/packages/kmd_client/src/apis/api-service.mjs +32 -32
  665. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
  666. package/packages/kmd_client/src/core/api-error.js +3 -1
  667. package/packages/kmd_client/src/core/api-error.js.map +1 -1
  668. package/packages/kmd_client/src/core/api-error.mjs +3 -1
  669. package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
  670. package/packages/kmd_client/src/core/base-http-request.js.map +1 -1
  671. package/packages/kmd_client/src/core/base-http-request.mjs.map +1 -1
  672. package/packages/kmd_client/src/core/fetch-http-request.js.map +1 -1
  673. package/packages/kmd_client/src/core/fetch-http-request.mjs.map +1 -1
  674. package/packages/kmd_client/src/core/model-runtime.js +2 -12
  675. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  676. package/packages/kmd_client/src/core/model-runtime.mjs +3 -11
  677. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  678. package/packages/kmd_client/src/core/request.js.map +1 -1
  679. package/packages/kmd_client/src/core/request.mjs.map +1 -1
  680. package/packages/kmd_client/src/models/create-wallet-request.js.map +1 -1
  681. package/packages/kmd_client/src/models/create-wallet-request.mjs.map +1 -1
  682. package/packages/kmd_client/src/models/create-wallet-response.js.map +1 -1
  683. package/packages/kmd_client/src/models/create-wallet-response.mjs.map +1 -1
  684. package/packages/kmd_client/src/models/delete-key-request.js.map +1 -1
  685. package/packages/kmd_client/src/models/delete-key-request.mjs.map +1 -1
  686. package/packages/kmd_client/src/models/delete-multisig-request.js.map +1 -1
  687. package/packages/kmd_client/src/models/delete-multisig-request.mjs.map +1 -1
  688. package/packages/kmd_client/src/models/export-key-request.js.map +1 -1
  689. package/packages/kmd_client/src/models/export-key-request.mjs.map +1 -1
  690. package/packages/kmd_client/src/models/export-key-response.js.map +1 -1
  691. package/packages/kmd_client/src/models/export-key-response.mjs.map +1 -1
  692. package/packages/kmd_client/src/models/export-master-key-request.js.map +1 -1
  693. package/packages/kmd_client/src/models/export-master-key-request.mjs.map +1 -1
  694. package/packages/kmd_client/src/models/export-master-key-response.js.map +1 -1
  695. package/packages/kmd_client/src/models/export-master-key-response.mjs.map +1 -1
  696. package/packages/kmd_client/src/models/export-multisig-request.js.map +1 -1
  697. package/packages/kmd_client/src/models/export-multisig-request.mjs.map +1 -1
  698. package/packages/kmd_client/src/models/export-multisig-response.js.map +1 -1
  699. package/packages/kmd_client/src/models/export-multisig-response.mjs.map +1 -1
  700. package/packages/kmd_client/src/models/generate-key-request.js.map +1 -1
  701. package/packages/kmd_client/src/models/generate-key-request.mjs.map +1 -1
  702. package/packages/kmd_client/src/models/generate-key-response.js.map +1 -1
  703. package/packages/kmd_client/src/models/generate-key-response.mjs.map +1 -1
  704. package/packages/kmd_client/src/models/import-key-request.js.map +1 -1
  705. package/packages/kmd_client/src/models/import-key-request.mjs.map +1 -1
  706. package/packages/kmd_client/src/models/import-key-response.js.map +1 -1
  707. package/packages/kmd_client/src/models/import-key-response.mjs.map +1 -1
  708. package/packages/kmd_client/src/models/import-multisig-request.js.map +1 -1
  709. package/packages/kmd_client/src/models/import-multisig-request.mjs.map +1 -1
  710. package/packages/kmd_client/src/models/import-multisig-response.js.map +1 -1
  711. package/packages/kmd_client/src/models/import-multisig-response.mjs.map +1 -1
  712. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js.map +1 -1
  713. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs.map +1 -1
  714. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js.map +1 -1
  715. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs.map +1 -1
  716. package/packages/kmd_client/src/models/list-keys-request.js.map +1 -1
  717. package/packages/kmd_client/src/models/list-keys-request.mjs.map +1 -1
  718. package/packages/kmd_client/src/models/list-keys-response.js.map +1 -1
  719. package/packages/kmd_client/src/models/list-keys-response.mjs.map +1 -1
  720. package/packages/kmd_client/src/models/list-multisig-request.js.map +1 -1
  721. package/packages/kmd_client/src/models/list-multisig-request.mjs.map +1 -1
  722. package/packages/kmd_client/src/models/list-multisig-response.js.map +1 -1
  723. package/packages/kmd_client/src/models/list-multisig-response.mjs.map +1 -1
  724. package/packages/kmd_client/src/models/list-wallets-response.js.map +1 -1
  725. package/packages/kmd_client/src/models/list-wallets-response.mjs.map +1 -1
  726. package/packages/kmd_client/src/models/multisig-sig.js.map +1 -1
  727. package/packages/kmd_client/src/models/multisig-sig.mjs.map +1 -1
  728. package/packages/kmd_client/src/models/multisig-subsig.js.map +1 -1
  729. package/packages/kmd_client/src/models/multisig-subsig.mjs.map +1 -1
  730. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js.map +1 -1
  731. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs.map +1 -1
  732. package/packages/kmd_client/src/models/rename-wallet-request.js.map +1 -1
  733. package/packages/kmd_client/src/models/rename-wallet-request.mjs.map +1 -1
  734. package/packages/kmd_client/src/models/rename-wallet-response.js.map +1 -1
  735. package/packages/kmd_client/src/models/rename-wallet-response.mjs.map +1 -1
  736. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js.map +1 -1
  737. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs.map +1 -1
  738. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js.map +1 -1
  739. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs.map +1 -1
  740. package/packages/kmd_client/src/models/sign-multisig-response.js.map +1 -1
  741. package/packages/kmd_client/src/models/sign-multisig-response.mjs.map +1 -1
  742. package/packages/kmd_client/src/models/sign-multisig-txn-request.js.map +1 -1
  743. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs.map +1 -1
  744. package/packages/kmd_client/src/models/sign-program-multisig-request.js.map +1 -1
  745. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs.map +1 -1
  746. package/packages/kmd_client/src/models/sign-program-multisig-response.js.map +1 -1
  747. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs.map +1 -1
  748. package/packages/kmd_client/src/models/sign-program-request.js.map +1 -1
  749. package/packages/kmd_client/src/models/sign-program-request.mjs.map +1 -1
  750. package/packages/kmd_client/src/models/sign-program-response.js.map +1 -1
  751. package/packages/kmd_client/src/models/sign-program-response.mjs.map +1 -1
  752. package/packages/kmd_client/src/models/sign-transaction-response.js.map +1 -1
  753. package/packages/kmd_client/src/models/sign-transaction-response.mjs.map +1 -1
  754. package/packages/kmd_client/src/models/sign-txn-request.js.map +1 -1
  755. package/packages/kmd_client/src/models/sign-txn-request.mjs.map +1 -1
  756. package/packages/kmd_client/src/models/tx-type.js.map +1 -1
  757. package/packages/kmd_client/src/models/tx-type.mjs.map +1 -1
  758. package/packages/kmd_client/src/models/versions-response.js.map +1 -1
  759. package/packages/kmd_client/src/models/versions-response.mjs.map +1 -1
  760. package/packages/kmd_client/src/models/wallet-handle.js.map +1 -1
  761. package/packages/kmd_client/src/models/wallet-handle.mjs.map +1 -1
  762. package/packages/kmd_client/src/models/wallet-info-request.js.map +1 -1
  763. package/packages/kmd_client/src/models/wallet-info-request.mjs.map +1 -1
  764. package/packages/kmd_client/src/models/wallet-info-response.js.map +1 -1
  765. package/packages/kmd_client/src/models/wallet-info-response.mjs.map +1 -1
  766. package/packages/kmd_client/src/models/wallet.js.map +1 -1
  767. package/packages/kmd_client/src/models/wallet.mjs.map +1 -1
  768. package/packages/testing/src/globalSetup.js +40 -0
  769. package/packages/testing/src/globalSetup.js.map +1 -0
  770. package/packages/testing/src/globalSetup.mjs +36 -0
  771. package/packages/testing/src/globalSetup.mjs.map +1 -0
  772. package/packages/testing/src/mockServer.js +95 -0
  773. package/packages/testing/src/mockServer.js.map +1 -0
  774. package/packages/testing/src/mockServer.mjs +83 -0
  775. package/packages/testing/src/mockServer.mjs.map +1 -0
  776. package/packages/transact/src/logicsig.d.ts +35 -33
  777. package/packages/transact/src/logicsig.js +75 -77
  778. package/packages/transact/src/logicsig.js.map +1 -1
  779. package/packages/transact/src/logicsig.mjs +78 -79
  780. package/packages/transact/src/logicsig.mjs.map +1 -1
  781. package/packages/transact/src/multisig.d.ts +11 -116
  782. package/packages/transact/src/multisig.js +108 -138
  783. package/packages/transact/src/multisig.js.map +1 -1
  784. package/packages/transact/src/multisig.mjs +109 -119
  785. package/packages/transact/src/multisig.mjs.map +1 -1
  786. package/packages/transact/src/signer.d.ts +11 -3
  787. package/packages/transact/src/signer.js +24 -2
  788. package/packages/transact/src/signer.js.map +1 -1
  789. package/packages/transact/src/signer.mjs +25 -4
  790. package/packages/transact/src/signer.mjs.map +1 -1
  791. package/packages/transact/src/transactions/app-call.d.ts +10 -15
  792. package/packages/transact/src/transactions/app-call.js +8 -8
  793. package/packages/transact/src/transactions/app-call.js.map +1 -1
  794. package/packages/transact/src/transactions/app-call.mjs +8 -8
  795. package/packages/transact/src/transactions/app-call.mjs.map +1 -1
  796. package/packages/transact/src/transactions/asset-config.d.ts +1 -6
  797. package/packages/transact/src/transactions/asset-config.js.map +1 -1
  798. package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
  799. package/packages/transact/src/transactions/asset-freeze.d.ts +1 -6
  800. package/packages/transact/src/transactions/asset-transfer.d.ts +1 -6
  801. package/packages/transact/src/transactions/common.js +7 -7
  802. package/packages/transact/src/transactions/common.js.map +1 -1
  803. package/packages/transact/src/transactions/common.mjs +7 -7
  804. package/packages/transact/src/transactions/common.mjs.map +1 -1
  805. package/packages/transact/src/transactions/key-registration.d.ts +1 -8
  806. package/packages/transact/src/transactions/reference-types-meta.d.ts +26 -0
  807. package/packages/transact/src/transactions/reference-types-meta.js +71 -0
  808. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -0
  809. package/packages/transact/src/transactions/reference-types-meta.mjs +69 -0
  810. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -0
  811. package/packages/transact/src/transactions/signed-transaction-meta.js +8 -9
  812. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
  813. package/packages/transact/src/transactions/signed-transaction-meta.mjs +8 -8
  814. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
  815. package/packages/transact/src/transactions/signed-transaction.d.ts +22 -6
  816. package/packages/transact/src/transactions/signed-transaction.js +17 -1
  817. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  818. package/packages/transact/src/transactions/signed-transaction.mjs +16 -2
  819. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  820. package/packages/transact/src/transactions/state-proof.d.ts +1 -1
  821. package/packages/transact/src/transactions/transaction-meta.js +29 -23
  822. package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
  823. package/packages/transact/src/transactions/transaction-meta.mjs +29 -23
  824. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
  825. package/packages/transact/src/transactions/transaction-type.js +11 -11
  826. package/packages/transact/src/transactions/transaction-type.js.map +1 -1
  827. package/packages/transact/src/transactions/transaction-type.mjs +11 -11
  828. package/packages/transact/src/transactions/transaction-type.mjs.map +1 -1
  829. package/packages/transact/src/transactions/transaction.d.ts +5 -2
  830. package/packages/transact/src/transactions/transaction.js +11 -10
  831. package/packages/transact/src/transactions/transaction.js.map +1 -1
  832. package/packages/transact/src/transactions/transaction.mjs +6 -5
  833. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  834. package/testing/account.d.ts +2 -2
  835. package/testing/account.js +2 -3
  836. package/testing/account.js.map +1 -1
  837. package/testing/account.mjs +2 -3
  838. package/testing/account.mjs.map +1 -1
  839. package/testing/fixtures/algokit-log-capture-fixture.d.ts +1 -1
  840. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  841. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  842. package/testing/fixtures/algorand-fixture.d.ts +5 -5
  843. package/testing/fixtures/algorand-fixture.js +2 -2
  844. package/testing/fixtures/algorand-fixture.js.map +1 -1
  845. package/testing/fixtures/algorand-fixture.mjs +2 -2
  846. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  847. package/testing/index.d.ts +2 -1
  848. package/testing/index.js +19 -0
  849. package/testing/index.mjs +3 -1
  850. package/testing/indexer.js.map +1 -1
  851. package/testing/indexer.mjs.map +1 -1
  852. package/testing/test-logger.d.ts +1 -1
  853. package/testing/test-logger.js.map +1 -1
  854. package/testing/test-logger.mjs.map +1 -1
  855. package/testing/types.d.ts +156 -0
  856. package/transact/index.d.ts +12 -11
  857. package/transact/index.js +10 -31
  858. package/transact/index.mjs +8 -11
  859. package/transaction/index.d.ts +4 -0
  860. package/transaction/index.js +10 -0
  861. package/transaction/index.mjs +4 -0
  862. package/transaction/perform-transaction-composer-simulate.d.ts +1 -1
  863. package/transaction/perform-transaction-composer-simulate.js.map +1 -1
  864. package/transaction/perform-transaction-composer-simulate.mjs.map +1 -1
  865. package/transaction/transaction.d.ts +2 -4
  866. package/transaction/transaction.js +2 -4
  867. package/transaction/transaction.js.map +1 -1
  868. package/transaction/transaction.mjs +2 -4
  869. package/transaction/transaction.mjs.map +1 -1
  870. package/transaction/types.d.ts +133 -0
  871. package/transactions/app-call.d.ts +6 -5
  872. package/transactions/app-call.js +49 -49
  873. package/transactions/app-call.js.map +1 -1
  874. package/transactions/app-call.mjs +49 -49
  875. package/transactions/app-call.mjs.map +1 -1
  876. package/transactions/asset-config.d.ts +1 -1
  877. package/transactions/asset-config.js +1 -1
  878. package/transactions/asset-config.js.map +1 -1
  879. package/transactions/asset-config.mjs +1 -1
  880. package/transactions/asset-config.mjs.map +1 -1
  881. package/transactions/common.d.ts +1 -1
  882. package/transactions/common.js.map +1 -1
  883. package/transactions/common.mjs.map +1 -1
  884. package/transactions/fee-coverage.js +6 -6
  885. package/transactions/fee-coverage.js.map +1 -1
  886. package/transactions/fee-coverage.mjs +6 -6
  887. package/transactions/fee-coverage.mjs.map +1 -1
  888. package/transactions/key-registration.d.ts +1 -1
  889. package/transactions/key-registration.js.map +1 -1
  890. package/transactions/key-registration.mjs.map +1 -1
  891. package/transactions/method-call.d.ts +2 -2
  892. package/transactions/method-call.js +74 -81
  893. package/transactions/method-call.js.map +1 -1
  894. package/transactions/method-call.mjs +74 -81
  895. package/transactions/method-call.mjs.map +1 -1
  896. package/transactions/payment.d.ts +1 -1
  897. package/transactions/payment.js.map +1 -1
  898. package/transactions/payment.mjs.map +1 -1
  899. package/types/account-manager.d.ts +11 -444
  900. package/types/account-manager.js +6 -606
  901. package/types/account-manager.js.map +1 -1
  902. package/types/account-manager.mjs +5 -604
  903. package/types/account-manager.mjs.map +1 -1
  904. package/types/account.d.ts +8 -150
  905. package/types/account.js +4 -4
  906. package/types/account.js.map +1 -1
  907. package/types/account.mjs +4 -4
  908. package/types/account.mjs.map +1 -1
  909. package/types/algorand-client-transaction-creator.d.ts +5 -1084
  910. package/types/algorand-client-transaction-creator.js +4 -721
  911. package/types/algorand-client-transaction-creator.js.map +1 -1
  912. package/types/algorand-client-transaction-creator.mjs +4 -721
  913. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  914. package/types/algorand-client-transaction-sender.d.ts +5 -1298
  915. package/types/algorand-client-transaction-sender.js +4 -920
  916. package/types/algorand-client-transaction-sender.js.map +1 -1
  917. package/types/algorand-client-transaction-sender.mjs +3 -918
  918. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  919. package/types/algorand-client.d.ts +5 -241
  920. package/types/algorand-client.js +4 -319
  921. package/types/algorand-client.js.map +1 -1
  922. package/types/algorand-client.mjs +3 -319
  923. package/types/algorand-client.mjs.map +1 -1
  924. package/types/amount.d.ts +6 -45
  925. package/types/amount.js +4 -60
  926. package/types/amount.js.map +1 -1
  927. package/types/amount.mjs +3 -60
  928. package/types/amount.mjs.map +1 -1
  929. package/types/app-client.d.ts +75 -2120
  930. package/types/app-client.js +4 -904
  931. package/types/app-client.js.map +1 -1
  932. package/types/app-client.mjs +3 -902
  933. package/types/app-client.mjs.map +1 -1
  934. package/types/app-deployer.d.ts +21 -161
  935. package/types/app-deployer.js +4 -347
  936. package/types/app-deployer.js.map +1 -1
  937. package/types/app-deployer.mjs +3 -347
  938. package/types/app-deployer.mjs.map +1 -1
  939. package/types/app-factory.d.ts +21 -957
  940. package/types/app-factory.js +4 -442
  941. package/types/app-factory.js.map +1 -1
  942. package/types/app-factory.mjs +3 -442
  943. package/types/app-factory.mjs.map +1 -1
  944. package/types/app-manager.d.ts +15 -316
  945. package/types/app-manager.js +4 -461
  946. package/types/app-manager.js.map +1 -1
  947. package/types/app-manager.mjs +3 -461
  948. package/types/app-manager.mjs.map +1 -1
  949. package/types/app-spec.d.ts +39 -198
  950. package/types/app-spec.js +4 -124
  951. package/types/app-spec.js.map +1 -1
  952. package/types/app-spec.mjs +3 -124
  953. package/types/app-spec.mjs.map +1 -1
  954. package/types/app.d.ts +63 -248
  955. package/types/app.js +16 -37
  956. package/types/app.js.map +1 -1
  957. package/types/app.mjs +16 -37
  958. package/types/app.mjs.map +1 -1
  959. package/types/asset-manager.d.ts +9 -207
  960. package/types/asset-manager.js +4 -160
  961. package/types/asset-manager.js.map +1 -1
  962. package/types/asset-manager.mjs +3 -160
  963. package/types/asset-manager.mjs.map +1 -1
  964. package/types/async-event-emitter.d.ts +7 -14
  965. package/types/async-event-emitter.js +4 -32
  966. package/types/async-event-emitter.js.map +1 -1
  967. package/types/async-event-emitter.mjs +4 -32
  968. package/types/async-event-emitter.mjs.map +1 -1
  969. package/types/client-manager.d.ts +27 -470
  970. package/types/client-manager.js +4 -610
  971. package/types/client-manager.js.map +1 -1
  972. package/types/client-manager.mjs +3 -610
  973. package/types/client-manager.mjs.map +1 -1
  974. package/types/composer.d.ts +79 -935
  975. package/types/composer.js +4 -1566
  976. package/types/composer.js.map +1 -1
  977. package/types/composer.mjs +3 -1564
  978. package/types/composer.mjs.map +1 -1
  979. package/types/config.d.ts +7 -52
  980. package/types/config.js +4 -74
  981. package/types/config.js.map +1 -1
  982. package/types/config.mjs +3 -74
  983. package/types/config.mjs.map +1 -1
  984. package/types/debugging.d.ts +12 -33
  985. package/types/debugging.js +12 -10
  986. package/types/debugging.js.map +1 -1
  987. package/types/debugging.mjs +12 -10
  988. package/types/debugging.mjs.map +1 -1
  989. package/types/dispenser-client.d.ts +11 -85
  990. package/types/dispenser-client.js +4 -121
  991. package/types/dispenser-client.js.map +1 -1
  992. package/types/dispenser-client.mjs +3 -121
  993. package/types/dispenser-client.mjs.map +1 -1
  994. package/types/expand.d.ts +4 -5
  995. package/types/indexer.d.ts +16 -36
  996. package/types/indexer.js +8 -30
  997. package/types/indexer.js.map +1 -1
  998. package/types/indexer.mjs +8 -30
  999. package/types/indexer.mjs.map +1 -1
  1000. package/types/instance-of.d.ts +4 -4
  1001. package/types/kmd-account-manager.d.ts +5 -68
  1002. package/types/kmd-account-manager.js +4 -150
  1003. package/types/kmd-account-manager.js.map +1 -1
  1004. package/types/kmd-account-manager.mjs +3 -148
  1005. package/types/kmd-account-manager.mjs.map +1 -1
  1006. package/types/lifecycle-events.d.ts +7 -10
  1007. package/types/lifecycle-events.js +4 -5
  1008. package/types/lifecycle-events.js.map +1 -1
  1009. package/types/lifecycle-events.mjs +4 -5
  1010. package/types/lifecycle-events.mjs.map +1 -1
  1011. package/types/logging.d.ts +14 -9
  1012. package/types/logging.js +12 -37
  1013. package/types/logging.js.map +1 -1
  1014. package/types/logging.mjs +12 -37
  1015. package/types/logging.mjs.map +1 -1
  1016. package/types/logic-error.d.ts +8 -35
  1017. package/types/logic-error.js +4 -48
  1018. package/types/logic-error.js.map +1 -1
  1019. package/types/logic-error.mjs +4 -48
  1020. package/types/logic-error.mjs.map +1 -1
  1021. package/types/network-client.d.ts +10 -39
  1022. package/types/network-client.js +4 -8
  1023. package/types/network-client.js.map +1 -1
  1024. package/types/network-client.mjs +4 -8
  1025. package/types/network-client.mjs.map +1 -1
  1026. package/types/testing.d.ts +13 -151
  1027. package/types/transaction.d.ts +33 -128
  1028. package/updatable-config.d.ts +57 -0
  1029. package/updatable-config.js +80 -0
  1030. package/updatable-config.js.map +1 -0
  1031. package/updatable-config.mjs +80 -0
  1032. package/updatable-config.mjs.map +1 -0
  1033. package/util.js +1 -1
  1034. package/util.js.map +1 -1
  1035. package/util.mjs +1 -1
  1036. package/util.mjs.map +1 -1
  1037. package/_virtual/rolldown_runtime.mjs +0 -13
  1038. package/indexer-lookup.js.map +0 -1
  1039. package/indexer-lookup.mjs.map +0 -1
  1040. package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
  1041. package/packages/algod_client/src/models/application-local-reference.d.ts +0 -20
  1042. package/packages/algod_client/src/models/application-local-reference.js +0 -23
  1043. package/packages/algod_client/src/models/application-local-reference.js.map +0 -1
  1044. package/packages/algod_client/src/models/application-local-reference.mjs +0 -23
  1045. package/packages/algod_client/src/models/application-local-reference.mjs.map +0 -1
  1046. package/packages/algod_client/src/models/asset-holding-reference.d.ts +0 -20
  1047. package/packages/algod_client/src/models/asset-holding-reference.js +0 -23
  1048. package/packages/algod_client/src/models/asset-holding-reference.js.map +0 -1
  1049. package/packages/algod_client/src/models/asset-holding-reference.mjs +0 -23
  1050. package/packages/algod_client/src/models/asset-holding-reference.mjs.map +0 -1
  1051. package/packages/algod_client/src/models/box-reference.d.ts +0 -17
  1052. package/packages/algod_client/src/models/box-reference.js +0 -23
  1053. package/packages/algod_client/src/models/box-reference.js.map +0 -1
  1054. package/packages/algod_client/src/models/box-reference.mjs +0 -23
  1055. package/packages/algod_client/src/models/box-reference.mjs.map +0 -1
  1056. package/packages/common/src/crypto.js +0 -13
  1057. package/packages/common/src/crypto.js.map +0 -1
  1058. package/packages/common/src/crypto.mjs +0 -11
  1059. package/packages/common/src/crypto.mjs.map +0 -1
  1060. package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
  1061. package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
  1062. package/packages/sdk/src/convert.d.ts +0 -17
  1063. package/packages/sdk/src/convert.js +0 -28
  1064. package/packages/sdk/src/convert.js.map +0 -1
  1065. package/packages/sdk/src/convert.mjs +0 -25
  1066. package/packages/sdk/src/convert.mjs.map +0 -1
  1067. package/packages/sdk/src/encoding/binarydata.d.ts +0 -34
  1068. package/packages/sdk/src/encoding/binarydata.js +0 -65
  1069. package/packages/sdk/src/encoding/binarydata.js.map +0 -1
  1070. package/packages/sdk/src/encoding/binarydata.mjs +0 -60
  1071. package/packages/sdk/src/encoding/binarydata.mjs.map +0 -1
  1072. package/packages/sdk/src/encoding/encoding.d.ts +0 -237
  1073. package/packages/sdk/src/encoding/encoding.js +0 -302
  1074. package/packages/sdk/src/encoding/encoding.js.map +0 -1
  1075. package/packages/sdk/src/encoding/encoding.mjs +0 -287
  1076. package/packages/sdk/src/encoding/encoding.mjs.map +0 -1
  1077. package/packages/sdk/src/encoding/schema/array.js +0 -35
  1078. package/packages/sdk/src/encoding/schema/array.js.map +0 -1
  1079. package/packages/sdk/src/encoding/schema/array.mjs +0 -35
  1080. package/packages/sdk/src/encoding/schema/array.mjs.map +0 -1
  1081. package/packages/sdk/src/encoding/schema/bytearray.js +0 -49
  1082. package/packages/sdk/src/encoding/schema/bytearray.js.map +0 -1
  1083. package/packages/sdk/src/encoding/schema/bytearray.mjs +0 -49
  1084. package/packages/sdk/src/encoding/schema/bytearray.mjs.map +0 -1
  1085. package/packages/sdk/src/encoding/schema/map.d.ts +0 -58
  1086. package/packages/sdk/src/encoding/schema/map.js +0 -110
  1087. package/packages/sdk/src/encoding/schema/map.js.map +0 -1
  1088. package/packages/sdk/src/encoding/schema/map.mjs +0 -107
  1089. package/packages/sdk/src/encoding/schema/map.mjs.map +0 -1
  1090. package/packages/sdk/src/encoding/schema/optional.js +0 -46
  1091. package/packages/sdk/src/encoding/schema/optional.js.map +0 -1
  1092. package/packages/sdk/src/encoding/schema/optional.mjs +0 -46
  1093. package/packages/sdk/src/encoding/schema/optional.mjs.map +0 -1
  1094. package/packages/sdk/src/encoding/schema/uint64.js +0 -30
  1095. package/packages/sdk/src/encoding/schema/uint64.js.map +0 -1
  1096. package/packages/sdk/src/encoding/schema/uint64.mjs +0 -30
  1097. package/packages/sdk/src/encoding/schema/uint64.mjs.map +0 -1
  1098. package/packages/sdk/src/encoding/uint64.d.ts +0 -34
  1099. package/packages/sdk/src/encoding/uint64.js +0 -34
  1100. package/packages/sdk/src/encoding/uint64.js.map +0 -1
  1101. package/packages/sdk/src/encoding/uint64.mjs +0 -33
  1102. package/packages/sdk/src/encoding/uint64.mjs.map +0 -1
  1103. package/packages/sdk/src/index.d.ts +0 -44
  1104. package/packages/sdk/src/index.js +0 -62
  1105. package/packages/sdk/src/index.js.map +0 -1
  1106. package/packages/sdk/src/index.mjs +0 -58
  1107. package/packages/sdk/src/index.mjs.map +0 -1
  1108. package/packages/sdk/src/logic/sourcemap.js.map +0 -1
  1109. package/packages/sdk/src/logic/sourcemap.mjs.map +0 -1
  1110. package/packages/sdk/src/nacl/naclWrappers.js +0 -14
  1111. package/packages/sdk/src/nacl/naclWrappers.js.map +0 -1
  1112. package/packages/sdk/src/nacl/naclWrappers.mjs +0 -11
  1113. package/packages/sdk/src/nacl/naclWrappers.mjs.map +0 -1
  1114. package/packages/sdk/src/types/intDecoding.d.ts +0 -28
  1115. package/packages/sdk/src/types/intDecoding.js +0 -32
  1116. package/packages/sdk/src/types/intDecoding.js.map +0 -1
  1117. package/packages/sdk/src/types/intDecoding.mjs +0 -31
  1118. package/packages/sdk/src/types/intDecoding.mjs.map +0 -1
  1119. package/packages/sdk/src/types/transactions/encoded.d.ts +0 -40
  1120. package/packages/sdk/src/types/transactions/encoded.js +0 -64
  1121. package/packages/sdk/src/types/transactions/encoded.js.map +0 -1
  1122. package/packages/sdk/src/types/transactions/encoded.mjs +0 -59
  1123. package/packages/sdk/src/types/transactions/encoded.mjs.map +0 -1
  1124. package/packages/sdk/src/utils/utils.d.ts +0 -64
  1125. package/packages/sdk/src/utils/utils.js +0 -140
  1126. package/packages/sdk/src/utils/utils.js.map +0 -1
  1127. package/packages/sdk/src/utils/utils.mjs +0 -128
  1128. package/packages/sdk/src/utils/utils.mjs.map +0 -1
  1129. package/packages/transact/src/transactions/common.d.ts +0 -37
  1130. package/sdk/index.d.ts +0 -10
  1131. package/sdk/index.js +0 -59
  1132. package/sdk/index.mjs +0 -11
@@ -1,7 +1,7 @@
1
1
  import { concatArrays } from "../../common/src/array.mjs";
2
2
  import { Address } from "../../common/src/address.mjs";
3
3
  import { encodeTransaction } from "./transactions/transaction.mjs";
4
- import { encodeSignedTransaction } from "./transactions/signed-transaction.mjs";
4
+ import { encodeSignedTransaction, validateSignedTransaction } from "./transactions/signed-transaction.mjs";
5
5
 
6
6
  //#region packages/transact/src/signer.ts
7
7
  const SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]);
@@ -28,10 +28,16 @@ function generateAddressWithSigners(args) {
28
28
  if (!txn.sender.equals(sendingAddress)) stxn.authAddress = authAddr;
29
29
  stxns.push(stxn);
30
30
  }
31
- return stxns.map(encodeSignedTransaction);
31
+ return stxns.map((stxn) => {
32
+ validateSignedTransaction(stxn);
33
+ return encodeSignedTransaction(stxn);
34
+ });
32
35
  };
33
36
  const lsigSigner = async (lsig, msig) => {
34
- return await rawEd25519Signer(lsig.bytesToSignForDelegation(msig));
37
+ return {
38
+ sig: await rawEd25519Signer(lsig.bytesToSignForDelegation(msig)),
39
+ addr: sendingAddress
40
+ };
35
41
  };
36
42
  const programDataSigner = async (data, lsig) => {
37
43
  return await rawEd25519Signer(lsig.programDataToSign(data));
@@ -59,12 +65,27 @@ function makeEmptyTransactionSigner() {
59
65
  txn: txnGroup[index],
60
66
  sig: new Uint8Array(64).fill(0)
61
67
  };
68
+ validateSignedTransaction(stxn);
62
69
  unsigned.push(encodeSignedTransaction(stxn));
63
70
  }
64
71
  return Promise.resolve(unsigned);
65
72
  };
66
73
  }
74
+ const bytesForSigning = {
75
+ transaction(txn) {
76
+ return encodeTransaction(txn);
77
+ },
78
+ mxBytes(bytes) {
79
+ return concatArrays(SIGN_BYTES_PREFIX, bytes);
80
+ },
81
+ lsigForDelegation(lsig, msig) {
82
+ return lsig.bytesToSignForDelegation(msig);
83
+ },
84
+ programData(lsig, data) {
85
+ return lsig.programDataToSign(data);
86
+ }
87
+ };
67
88
 
68
89
  //#endregion
69
- export { generateAddressWithSigners, makeEmptyTransactionSigner };
90
+ export { bytesForSigning, generateAddressWithSigners, makeEmptyTransactionSigner };
70
91
  //# sourceMappingURL=signer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.mjs","names":["signer: TransactionSigner","stxns: SignedTransaction[]","stxn: SignedTransaction","lsigSigner: DelegatedLsigSigner","programDataSigner: ProgramDataSigner","mxBytesSigner: MxBytesSigner","unsigned: Uint8Array[]"],"sources":["../../../../packages/transact/src/signer.ts"],"sourcesContent":["import { Address, Addressable, concatArrays, Expand, ReadableAddress } from '@algorandfoundation/algokit-common'\nimport { encodeTransaction, Transaction } from './transactions/transaction'\nimport { DelegatedLsigSigner, ProgramDataSigner } from './logicsig'\nimport { encodeSignedTransaction, SignedTransaction } from './transactions/signed-transaction'\n\n/** Function for signing a group of transactions */\nexport type TransactionSigner = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>\n\n/** A transaction signer attached to an address */\nexport interface AddressWithTransactionSigner extends Addressable {\n signer: TransactionSigner\n}\n\n/** An address that can be used to send transactions that may or may not have a signer */\nexport type SendingAddress = ReadableAddress | AddressWithTransactionSigner\n\n/** A delegated logic signature signer attached to an address */\nexport interface AddressWithDelegatedLsigSigner extends Addressable {\n lsigSigner: DelegatedLsigSigner\n}\n\nexport interface AddressWithProgramDataSigner extends Addressable {\n programDataSigner: ProgramDataSigner\n}\n\nexport type MxBytesSigner = (bytesToSign: Uint8Array) => Promise<Uint8Array>\n\nexport interface AddressWithMxBytesSigner extends Addressable {\n mxBytesSigner: MxBytesSigner\n}\n\nexport type AddressWithSigners = Expand<\n Addressable & AddressWithTransactionSigner & AddressWithDelegatedLsigSigner & AddressWithProgramDataSigner & AddressWithMxBytesSigner\n>\n\nconst SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]) // \"MX\"\n\n/**\n * Generate type-safe domain-separated signer callbacks given an ed25519 pubkey and a signing callback\n * @param args - The arguments for generating signers\n * @param args.ed25519Pubkey - The ed25519 public key used for signing\n * @param args.sendingAddress - The address that will be used as the sender of transactions. If not provided, defaults to the address derived from the ed25519 public key. This is useful when signing for a rekeyed account where the sending address differs from the auth address.\n * @param args.rawEd25519Signer - A callback function that signs raw bytes using the ed25519 private key\n * @returns An object containing the sending address and various signer functions\n */\nexport function generateAddressWithSigners(args: {\n ed25519Pubkey: Uint8Array\n sendingAddress?: Address\n rawEd25519Signer: (bytesToSign: Uint8Array) => Promise<Uint8Array>\n}): AddressWithSigners {\n const { ed25519Pubkey, rawEd25519Signer } = args\n const authAddr = new Address(ed25519Pubkey)\n const sendingAddress = args.sendingAddress ?? authAddr\n\n const signer: TransactionSigner = async (txnGroup: Transaction[], indexesToSign: number[]) => {\n const stxns: SignedTransaction[] = []\n for (const index of indexesToSign) {\n const txn = txnGroup[index]\n const bytesToSign = encodeTransaction(txn)\n const signature = await rawEd25519Signer(bytesToSign)\n const stxn: SignedTransaction = {\n txn,\n sig: signature,\n }\n\n if (!txn.sender.equals(sendingAddress)) {\n stxn.authAddress = authAddr\n }\n\n stxns.push(stxn)\n }\n\n return stxns.map(encodeSignedTransaction)\n }\n\n const lsigSigner: DelegatedLsigSigner = async (lsig, msig) => {\n const bytesToSign = lsig.bytesToSignForDelegation(msig)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const programDataSigner: ProgramDataSigner = async (data, lsig) => {\n const bytesToSign = lsig.programDataToSign(data)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const mxBytesSigner: MxBytesSigner = async (bytes: Uint8Array) => {\n const bytesToSign = concatArrays(SIGN_BYTES_PREFIX, bytes)\n return await rawEd25519Signer(bytesToSign)\n }\n\n return { addr: sendingAddress, signer, lsigSigner, programDataSigner, mxBytesSigner }\n}\n\n/**\n * Create a makeEmptyTransactionSigner that does not specify any signer or\n * signing capabilities. This should only be used to simulate transactions.\n */\nexport function makeEmptyTransactionSigner(): TransactionSigner {\n return (txnGroup: Transaction[], indexesToSign: number[]) => {\n const unsigned: Uint8Array[] = []\n\n for (const index of indexesToSign) {\n const stxn: SignedTransaction = {\n txn: txnGroup[index],\n sig: new Uint8Array(64).fill(0),\n }\n unsigned.push(encodeSignedTransaction(stxn))\n }\n\n return Promise.resolve(unsigned)\n }\n}\n"],"mappings":";;;;;;AAmCA,MAAM,oBAAoB,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC;;;;;;;;;AAUnD,SAAgB,2BAA2B,MAIpB;CACrB,MAAM,EAAE,eAAe,qBAAqB;CAC5C,MAAM,WAAW,IAAI,QAAQ,cAAc;CAC3C,MAAM,iBAAiB,KAAK,kBAAkB;CAE9C,MAAMA,SAA4B,OAAO,UAAyB,kBAA4B;EAC5F,MAAMC,QAA6B,EAAE;AACrC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,MAAM,SAAS;GAGrB,MAAMC,OAA0B;IAC9B;IACA,KAHgB,MAAM,iBADJ,kBAAkB,IAAI,CACW;IAIpD;AAED,OAAI,CAAC,IAAI,OAAO,OAAO,eAAe,CACpC,MAAK,cAAc;AAGrB,SAAM,KAAK,KAAK;;AAGlB,SAAO,MAAM,IAAI,wBAAwB;;CAG3C,MAAMC,aAAkC,OAAO,MAAM,SAAS;AAE5D,SAAO,MAAM,iBADO,KAAK,yBAAyB,KAAK,CACb;;CAG5C,MAAMC,oBAAuC,OAAO,MAAM,SAAS;AAEjE,SAAO,MAAM,iBADO,KAAK,kBAAkB,KAAK,CACN;;CAG5C,MAAMC,gBAA+B,OAAO,UAAsB;AAEhE,SAAO,MAAM,iBADO,aAAa,mBAAmB,MAAM,CAChB;;AAG5C,QAAO;EAAE,MAAM;EAAgB;EAAQ;EAAY;EAAmB;EAAe;;;;;;AAOvF,SAAgB,6BAAgD;AAC9D,SAAQ,UAAyB,kBAA4B;EAC3D,MAAMC,WAAyB,EAAE;AAEjC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAMJ,OAA0B;IAC9B,KAAK,SAAS;IACd,KAAK,IAAI,WAAW,GAAG,CAAC,KAAK,EAAE;IAChC;AACD,YAAS,KAAK,wBAAwB,KAAK,CAAC;;AAG9C,SAAO,QAAQ,QAAQ,SAAS"}
1
+ {"version":3,"file":"signer.mjs","names":[],"sources":["../../../../packages/transact/src/signer.ts"],"sourcesContent":["import { Address, Addressable, concatArrays, Expand, ReadableAddress } from '@algorandfoundation/algokit-common'\nimport { DelegatedLsigSigner, LogicSig, ProgramDataSigner } from './logicsig'\nimport { encodeSignedTransaction, SignedTransaction, validateSignedTransaction } from './transactions/signed-transaction'\nimport { encodeTransaction, Transaction } from './transactions/transaction'\nimport type { RawEd25519Signer } from '@algorandfoundation/algokit-crypto'\nimport { MultisigAccount } from './multisig'\n\n/** Function for signing a group of transactions */\nexport type TransactionSigner = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>\n\n/** A transaction signer attached to an address */\nexport interface AddressWithTransactionSigner extends Addressable {\n signer: TransactionSigner\n}\n\n/** An address that can be used to send transactions that may or may not have a signer */\nexport type SendingAddress = ReadableAddress | AddressWithTransactionSigner\n\n/** A delegated logic signature signer attached to an address */\nexport interface AddressWithDelegatedLsigSigner extends Addressable {\n lsigSigner: DelegatedLsigSigner\n}\n\nexport interface AddressWithProgramDataSigner extends Addressable {\n programDataSigner: ProgramDataSigner\n}\n\nexport type MxBytesSigner = (bytesToSign: Uint8Array) => Promise<Uint8Array>\n\nexport interface AddressWithMxBytesSigner extends Addressable {\n mxBytesSigner: MxBytesSigner\n}\n\nexport type AddressWithSigners = Expand<\n Addressable & AddressWithTransactionSigner & AddressWithDelegatedLsigSigner & AddressWithProgramDataSigner & AddressWithMxBytesSigner\n>\n\nconst SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]) // \"MX\"\n\n/**\n * Generate type-safe domain-separated signer callbacks given an ed25519 pubkey and a signing callback\n * @param args - The arguments for generating signers\n * @param args.ed25519Pubkey - The ed25519 public key used for signing\n * @param args.sendingAddress - The address that will be used as the sender of transactions. If not provided, defaults to the address derived from the ed25519 public key. This is useful when signing for a rekeyed account where the sending address differs from the auth address.\n * @param args.rawEd25519Signer - A callback function that signs raw bytes using the ed25519 private key\n * @returns An object containing the sending address and various signer functions\n */\nexport function generateAddressWithSigners(args: {\n ed25519Pubkey: Uint8Array\n sendingAddress?: Address\n rawEd25519Signer: RawEd25519Signer\n}): AddressWithSigners {\n const { ed25519Pubkey, rawEd25519Signer } = args\n const authAddr = new Address(ed25519Pubkey)\n const sendingAddress = args.sendingAddress ?? authAddr\n\n const signer: TransactionSigner = async (txnGroup: Transaction[], indexesToSign: number[]) => {\n const stxns: SignedTransaction[] = []\n for (const index of indexesToSign) {\n const txn = txnGroup[index]\n const bytesToSign = encodeTransaction(txn)\n const signature = await rawEd25519Signer(bytesToSign)\n const stxn: SignedTransaction = {\n txn,\n sig: signature,\n }\n\n if (!txn.sender.equals(sendingAddress)) {\n stxn.authAddress = authAddr\n }\n\n stxns.push(stxn)\n }\n\n return stxns.map((stxn) => {\n validateSignedTransaction(stxn)\n return encodeSignedTransaction(stxn)\n })\n }\n\n const lsigSigner: DelegatedLsigSigner = async (lsig, msig) => {\n const bytesToSign = lsig.bytesToSignForDelegation(msig)\n const sig = await rawEd25519Signer(bytesToSign)\n return { sig, addr: sendingAddress }\n }\n\n const programDataSigner: ProgramDataSigner = async (data, lsig) => {\n const bytesToSign = lsig.programDataToSign(data)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const mxBytesSigner: MxBytesSigner = async (bytes: Uint8Array) => {\n const bytesToSign = concatArrays(SIGN_BYTES_PREFIX, bytes)\n return await rawEd25519Signer(bytesToSign)\n }\n\n return { addr: sendingAddress, signer, lsigSigner, programDataSigner, mxBytesSigner }\n}\n\n/**\n * Create a makeEmptyTransactionSigner that does not specify any signer or\n * signing capabilities. This should only be used to simulate transactions.\n */\nexport function makeEmptyTransactionSigner(): TransactionSigner {\n return (txnGroup: Transaction[], indexesToSign: number[]) => {\n const unsigned: Uint8Array[] = []\n\n for (const index of indexesToSign) {\n const stxn: SignedTransaction = {\n txn: txnGroup[index],\n sig: new Uint8Array(64).fill(0),\n }\n validateSignedTransaction(stxn)\n unsigned.push(encodeSignedTransaction(stxn))\n }\n\n return Promise.resolve(unsigned)\n }\n}\n\nexport const bytesForSigning = {\n transaction(txn: Transaction): Uint8Array {\n return encodeTransaction(txn)\n },\n mxBytes(bytes: Uint8Array): Uint8Array {\n return concatArrays(SIGN_BYTES_PREFIX, bytes)\n },\n lsigForDelegation(lsig: LogicSig, msig?: MultisigAccount): Uint8Array {\n return lsig.bytesToSignForDelegation(msig)\n },\n programData(lsig: LogicSig, data: Uint8Array): Uint8Array {\n return lsig.programDataToSign(data)\n },\n}\n"],"mappings":";;;;;;AAqCA,MAAM,oBAAoB,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC;;;;;;;;;AAUnD,SAAgB,2BAA2B,MAIpB;CACrB,MAAM,EAAE,eAAe,qBAAqB;CAC5C,MAAM,WAAW,IAAI,QAAQ,cAAc;CAC3C,MAAM,iBAAiB,KAAK,kBAAkB;CAE9C,MAAM,SAA4B,OAAO,UAAyB,kBAA4B;EAC5F,MAAM,QAA6B,EAAE;AACrC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,MAAM,SAAS;GAGrB,MAAM,OAA0B;IAC9B;IACA,KAHgB,MAAM,iBADJ,kBAAkB,IAAI,CACW;IAIpD;AAED,OAAI,CAAC,IAAI,OAAO,OAAO,eAAe,CACpC,MAAK,cAAc;AAGrB,SAAM,KAAK,KAAK;;AAGlB,SAAO,MAAM,KAAK,SAAS;AACzB,6BAA0B,KAAK;AAC/B,UAAO,wBAAwB,KAAK;IACpC;;CAGJ,MAAM,aAAkC,OAAO,MAAM,SAAS;AAG5D,SAAO;GAAE,KADG,MAAM,iBADE,KAAK,yBAAyB,KAAK,CACR;GACjC,MAAM;GAAgB;;CAGtC,MAAM,oBAAuC,OAAO,MAAM,SAAS;AAEjE,SAAO,MAAM,iBADO,KAAK,kBAAkB,KAAK,CACN;;CAG5C,MAAM,gBAA+B,OAAO,UAAsB;AAEhE,SAAO,MAAM,iBADO,aAAa,mBAAmB,MAAM,CAChB;;AAG5C,QAAO;EAAE,MAAM;EAAgB;EAAQ;EAAY;EAAmB;EAAe;;;;;;AAOvF,SAAgB,6BAAgD;AAC9D,SAAQ,UAAyB,kBAA4B;EAC3D,MAAM,WAAyB,EAAE;AAEjC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,OAA0B;IAC9B,KAAK,SAAS;IACd,KAAK,IAAI,WAAW,GAAG,CAAC,KAAK,EAAE;IAChC;AACD,6BAA0B,KAAK;AAC/B,YAAS,KAAK,wBAAwB,KAAK,CAAC;;AAG9C,SAAO,QAAQ,QAAQ,SAAS;;;AAIpC,MAAa,kBAAkB;CAC7B,YAAY,KAA8B;AACxC,SAAO,kBAAkB,IAAI;;CAE/B,QAAQ,OAA+B;AACrC,SAAO,aAAa,mBAAmB,MAAM;;CAE/C,kBAAkB,MAAgB,MAAoC;AACpE,SAAO,KAAK,yBAAyB,KAAK;;CAE5C,YAAY,MAAgB,MAA8B;AACxD,SAAO,KAAK,kBAAkB,KAAK;;CAEtC"}
@@ -1,5 +1,4 @@
1
1
  import { Address } from "../../../common/src/address.js";
2
- import { TransactionValidationError } from "./common.js";
3
2
 
4
3
  //#region packages/transact/src/transactions/app-call.d.ts
5
4
 
@@ -88,10 +87,10 @@ type AppCallTransactionFields = {
88
87
  /**
89
88
  * Resources accessed by the application
90
89
  */
91
- accessReferences?: AccessReference[];
90
+ accessReferences?: ResourceReference[];
92
91
  /**
93
- * The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed.
94
- */
92
+ * If set, the transaction will be rejected when the app's version is greater than or equal to this value. This can be used to prevent calling an app after it has been updated. Set to 0 or leave undefined to skip the version check.
93
+ * */
95
94
  rejectVersion?: number;
96
95
  };
97
96
  /**
@@ -169,7 +168,7 @@ type BoxReference = {
169
168
  /**
170
169
  * Names a single resource reference. Only one of the fields should be set.
171
170
  */
172
- interface AccessReference {
171
+ type ResourceReference = {
173
172
  /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */
174
173
  address?: Address;
175
174
  /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */
@@ -182,28 +181,24 @@ interface AccessReference {
182
181
  locals?: LocalsReference;
183
182
  /** Defines a box by its name and the application ID it belongs to. */
184
183
  box?: BoxReference;
185
- }
184
+ };
186
185
  /**
187
186
  * A grouping of the asset index and address of the account
188
187
  */
189
- interface HoldingReference {
188
+ type HoldingReference = {
190
189
  /** The asset index of the holding */
191
190
  assetId: bigint;
192
191
  /** The address of the account holding the asset */
193
192
  address: Address;
194
- }
193
+ };
195
194
  /** A grouping of the application index and address of the account
196
195
  */
197
- interface LocalsReference {
196
+ type LocalsReference = {
198
197
  /** The application index of the local state */
199
198
  appId: bigint;
200
199
  /** The address of the account holding the local state */
201
200
  address: Address;
202
- }
203
- /**
204
- * Validate app call transaction fields
205
- */
206
- declare function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[];
201
+ };
207
202
  //#endregion
208
- export { AccessReference, AppCallTransactionFields, BoxReference, HoldingReference, LocalsReference, OnApplicationComplete, StateSchema, validateAppCallTransaction };
203
+ export { AppCallTransactionFields, BoxReference, HoldingReference, LocalsReference, OnApplicationComplete, ResourceReference, StateSchema };
209
204
  //# sourceMappingURL=app-call.d.ts.map
@@ -7,40 +7,40 @@ const require_common = require('./common.js');
7
7
  *
8
8
  * These values define what additional actions occur with the transaction.
9
9
  */
10
- let OnApplicationComplete = /* @__PURE__ */ function(OnApplicationComplete$1) {
10
+ let OnApplicationComplete = /* @__PURE__ */ function(OnApplicationComplete) {
11
11
  /**
12
12
  * NoOp indicates that an app transaction will simply call its
13
13
  * approval program without any additional action.
14
14
  */
15
- OnApplicationComplete$1[OnApplicationComplete$1["NoOp"] = 0] = "NoOp";
15
+ OnApplicationComplete[OnApplicationComplete["NoOp"] = 0] = "NoOp";
16
16
  /**
17
17
  * OptIn indicates that an app transaction will allocate some
18
18
  * local state for the app in the sender's account.
19
19
  */
20
- OnApplicationComplete$1[OnApplicationComplete$1["OptIn"] = 1] = "OptIn";
20
+ OnApplicationComplete[OnApplicationComplete["OptIn"] = 1] = "OptIn";
21
21
  /**
22
22
  * CloseOut indicates that an app transaction will deallocate
23
23
  * some local state for the app from the user's account.
24
24
  */
25
- OnApplicationComplete$1[OnApplicationComplete$1["CloseOut"] = 2] = "CloseOut";
25
+ OnApplicationComplete[OnApplicationComplete["CloseOut"] = 2] = "CloseOut";
26
26
  /**
27
27
  * ClearState is similar to CloseOut, but may never fail. This
28
28
  * allows users to reclaim their minimum balance from an app
29
29
  * they no longer wish to opt in to.
30
30
  */
31
- OnApplicationComplete$1[OnApplicationComplete$1["ClearState"] = 3] = "ClearState";
31
+ OnApplicationComplete[OnApplicationComplete["ClearState"] = 3] = "ClearState";
32
32
  /**
33
33
  * UpdateApplication indicates that an app transaction will
34
34
  * update the approval program and clear state program for the app.
35
35
  */
36
- OnApplicationComplete$1[OnApplicationComplete$1["UpdateApplication"] = 4] = "UpdateApplication";
36
+ OnApplicationComplete[OnApplicationComplete["UpdateApplication"] = 4] = "UpdateApplication";
37
37
  /**
38
38
  * DeleteApplication indicates that an app transaction will
39
39
  * delete the app parameters for the app from the creator's
40
40
  * balance record.
41
41
  */
42
- OnApplicationComplete$1[OnApplicationComplete$1["DeleteApplication"] = 5] = "DeleteApplication";
43
- return OnApplicationComplete$1;
42
+ OnApplicationComplete[OnApplicationComplete["DeleteApplication"] = 5] = "DeleteApplication";
43
+ return OnApplicationComplete;
44
44
  }({});
45
45
  const FIELD_ARGS = "Args";
46
46
  const FIELD_APPROVAL_PROGRAM = "Approval program";
@@ -1 +1 @@
1
- {"version":3,"file":"app-call.js","names":["TransactionValidationErrorType","MAX_EXTRA_PROGRAM_PAGES","PROGRAM_PAGE_SIZE","MAX_GLOBAL_STATE_KEYS","MAX_LOCAL_STATE_KEYS","MAX_APP_ARGS","MAX_ARGS_SIZE","MAX_ACCOUNT_REFERENCES","MAX_APP_REFERENCES","MAX_ASSET_REFERENCES","MAX_BOX_REFERENCES","MAX_OVERALL_REFERENCES"],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n Address,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: AccessReference[]\n\n /**\n * The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed.\n */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport interface AccessReference {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport interface HoldingReference {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport interface LocalsReference {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_EXTRA_PROGRAM_PAGES,\n actual: extraPages,\n max: MAX_EXTRA_PROGRAM_PAGES,\n unit: 'pages',\n },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_APPROVAL_PROGRAM,\n actual: appCall.approvalProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_CLEAR_STATE_PROGRAM,\n actual: appCall.clearStateProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Combined approval and clear state programs',\n actual: totalProgramSize,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_GLOBAL_STATE_SCHEMA,\n })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_LOCAL_STATE_SCHEMA,\n })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_EXTRA_PROGRAM_PAGES,\n })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_ARGS,\n actual: appCall.args.length,\n max: MAX_APP_ARGS,\n unit: 'arguments',\n },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Args total size',\n actual: totalArgsSize,\n max: MAX_ARGS_SIZE,\n unit: 'bytes',\n },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Account references',\n actual: appCall.accountReferences.length,\n max: MAX_ACCOUNT_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'App references',\n actual: appCall.appReferences.length,\n max: MAX_APP_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset references',\n actual: appCall.assetReferences.length,\n max: MAX_ASSET_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Box references',\n actual: appCall.boxReferences.length,\n max: MAX_BOX_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Total references',\n actual: totalReferences,\n max: MAX_OVERALL_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n return errors\n}\n"],"mappings":";;;;;;;;;AA8HA,IAAY,0EAAL;;;;;AAKL;;;;;AAKA;;;;;AAKA;;;;;;AAMA;;;;;AAKA;;;;;;AAMA;;;AA+EF,MAAM,aAAa;AACnB,MAAM,yBAAyB;AAC/B,MAAM,4BAA4B;AAClC,MAAM,4BAA4B;AAClC,MAAM,2BAA2B;AACjC,MAAM,4BAA4B;;;;AAKlC,SAAgB,2BAA2B,SAAiE;CAC1G,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,QAAQ,UAAU,GAEpB,QAAO,KAAK,GAAG,oBAAoB,QAAQ,CAAC;KAG5C,QAAO,KAAK,GAAG,qBAAqB,QAAQ,CAAC;AAI/C,QAAO,KAAK,GAAG,wBAAwB,QAAQ,CAAC;AAEhD,QAAO;;;;;AAMT,SAAS,oBAAoB,SAAiE;CAC5F,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,EACjE,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,KAAI,CAAC,QAAQ,qBAAqB,QAAQ,kBAAkB,WAAW,EACrE,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;CAGJ,MAAM,aAAa,QAAQ,qBAAqB;AAChD,KAAI,aAAaC,0CACf,QAAO,KAAK;EACV,MAAMD,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ;GACR,KAAKC;GACL,MAAM;GACP;EACF,CAAC;CAGJ,MAAM,iBAAiBC,sCAAoB,aAAaA;AAExD,KAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAAS,eAC9D,QAAO,KAAK;EACV,MAAMF,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,QAAQ,gBAAgB;GAChC,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,QAAQ,qBAAqB,QAAQ,kBAAkB,SAAS,eAClE,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,QAAQ,kBAAkB;GAClC,KAAK;GACL,MAAM;GACP;EACF,CAAC;CAGJ,MAAM,oBAAoB,QAAQ,iBAAiB,UAAU,MAAM,QAAQ,mBAAmB,UAAU;AACxG,KAAI,mBAAmB,eACrB,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ;GACR,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,QAAQ,mBAEV;MADkB,QAAQ,kBAAkB,WAAW,QAAQ,kBAAkB,gBACjEG,wCACd,QAAO,KAAK;GACV,MAAMH,8CAA+B;GACrC,MAAM;IACJ,OAAO;IACP,QAAQ,QAAQ,kBAAkB,WAAW,QAAQ,kBAAkB;IACvE,KAAKG;IACL,MAAM;IACP;GACF,CAAC;;AAIN,KAAI,QAAQ,kBAEV;MADkB,QAAQ,iBAAiB,WAAW,QAAQ,iBAAiB,gBAC/DC,uCACd,QAAO,KAAK;GACV,MAAMJ,8CAA+B;GACrC,MAAM;IACJ,OAAO;IACP,QAAQ,QAAQ,iBAAiB,WAAW,QAAQ,iBAAiB;IACrE,KAAKI;IACL,MAAM;IACP;GACF,CAAC;;AAIN,QAAO;;;;;AAMT,SAAS,qBAAqB,SAAiE;CAC7F,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,QAAQ,eAAe,sBAAsB,mBAAmB;AAClE,MAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,EACjE,QAAO,KAAK;GACV,MAAMJ,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,CAAC,QAAQ,qBAAqB,QAAQ,kBAAkB,WAAW,EACrE,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;;AAKN,KAAI,QAAQ,sBAAsB,OAChC,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAEJ,KAAI,QAAQ,qBAAqB,OAC/B,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAEJ,KAAI,QAAQ,sBAAsB,OAChC,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,QAAO;;;;;AAMT,SAAS,wBAAwB,SAAiE;CAChG,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,QAAQ,MAAM;AAChB,MAAI,QAAQ,KAAK,SAASK,+BACxB,QAAO,KAAK;GACV,MAAML,8CAA+B;GACrC,MAAM;IACJ,OAAO;IACP,QAAQ,QAAQ,KAAK;IACrB,KAAKK;IACL,MAAM;IACP;GACF,CAAC;EAGJ,MAAM,gBAAgB,QAAQ,KAAK,QAAQ,KAAK,QAAQ,MAAM,IAAI,QAAQ,EAAE;AAC5E,MAAI,gBAAgBC,gCAClB,QAAO,KAAK;GACV,MAAMN,8CAA+B;GACrC,MAAM;IACJ,OAAO;IACP,QAAQ;IACR,KAAKM;IACL,MAAM;IACP;GACF,CAAC;;AAIN,KAAI,QAAQ,qBAAqB,QAAQ,kBAAkB,SAASC,yCAClE,QAAO,KAAK;EACV,MAAMP,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,QAAQ,kBAAkB;GAClC,KAAKO;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,QAAQ,iBAAiB,QAAQ,cAAc,SAASC,qCAC1D,QAAO,KAAK;EACV,MAAMR,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,QAAQ,cAAc;GAC9B,KAAKQ;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAASC,uCAC9D,QAAO,KAAK;EACV,MAAMT,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,QAAQ,gBAAgB;GAChC,KAAKS;GACL,MAAM;GACP;EACF,CAAC;AAIJ,KAAI,QAAQ,eAAe;AACzB,MAAI,QAAQ,cAAc,SAASC,qCACjC,QAAO,KAAK;GACV,MAAMV,8CAA+B;GACrC,MAAM;IACJ,OAAO;IACP,QAAQ,QAAQ,cAAc;IAC9B,KAAKU;IACL,MAAM;IACP;GACF,CAAC;EAIJ,MAAM,UAAU,QAAQ,iBAAiB,EAAE;AAC3C,OAAK,MAAM,UAAU,QAAQ,cAC3B,KAAI,OAAO,UAAU,MAAM,OAAO,UAAU,QAAQ,SAAS,CAAC,QAAQ,SAAS,OAAO,MAAM,CAC1F,QAAO,KAAK;GACV,MAAMV,8CAA+B;GACrC,MAAM,4BAA4B,OAAO,MAAM;GAChD,CAAC;;CAMR,MAAM,mBACH,QAAQ,mBAAmB,UAAU,MACrC,QAAQ,eAAe,UAAU,MACjC,QAAQ,iBAAiB,UAAU,MACnC,QAAQ,eAAe,UAAU;AAEpC,KAAI,kBAAkBW,yCACpB,QAAO,KAAK;EACV,MAAMX,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ;GACR,KAAKW;GACL,MAAM;GACP;EACF,CAAC;AAGJ,QAAO"}
1
+ {"version":3,"file":"app-call.js","names":["TransactionValidationErrorType","MAX_EXTRA_PROGRAM_PAGES","PROGRAM_PAGE_SIZE","MAX_GLOBAL_STATE_KEYS","MAX_LOCAL_STATE_KEYS","MAX_APP_ARGS","MAX_ARGS_SIZE","MAX_ACCOUNT_REFERENCES","MAX_APP_REFERENCES","MAX_ASSET_REFERENCES","MAX_BOX_REFERENCES","MAX_OVERALL_REFERENCES"],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n Address,\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: ResourceReference[]\n\n /**\n * If set, the transaction will be rejected when the app's version is greater than or equal to this value. This can be used to prevent calling an app after it has been updated. Set to 0 or leave undefined to skip the version check.\n * */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport type ResourceReference = {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport type HoldingReference = {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport type LocalsReference = {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_EXTRA_PROGRAM_PAGES, actual: extraPages, max: MAX_EXTRA_PROGRAM_PAGES, unit: 'pages' },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_APPROVAL_PROGRAM, actual: appCall.approvalProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_CLEAR_STATE_PROGRAM, actual: appCall.clearStateProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Combined approval and clear state programs', actual: totalProgramSize, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_GLOBAL_STATE_SCHEMA })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_LOCAL_STATE_SCHEMA })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_EXTRA_PROGRAM_PAGES })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_ARGS, actual: appCall.args.length, max: MAX_APP_ARGS, unit: 'arguments' },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Args total size', actual: totalArgsSize, max: MAX_ARGS_SIZE, unit: 'bytes' },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Account references', actual: appCall.accountReferences.length, max: MAX_ACCOUNT_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'App references', actual: appCall.appReferences.length, max: MAX_APP_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Asset references', actual: appCall.assetReferences.length, max: MAX_ASSET_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Box references', actual: appCall.boxReferences.length, max: MAX_BOX_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Total references', actual: totalReferences, max: MAX_OVERALL_REFERENCES, unit: 'refs' },\n })\n }\n\n return errors\n}\n"],"mappings":"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"}
@@ -7,40 +7,40 @@ import { TransactionValidationErrorType } from "./common.mjs";
7
7
  *
8
8
  * These values define what additional actions occur with the transaction.
9
9
  */
10
- let OnApplicationComplete = /* @__PURE__ */ function(OnApplicationComplete$1) {
10
+ let OnApplicationComplete = /* @__PURE__ */ function(OnApplicationComplete) {
11
11
  /**
12
12
  * NoOp indicates that an app transaction will simply call its
13
13
  * approval program without any additional action.
14
14
  */
15
- OnApplicationComplete$1[OnApplicationComplete$1["NoOp"] = 0] = "NoOp";
15
+ OnApplicationComplete[OnApplicationComplete["NoOp"] = 0] = "NoOp";
16
16
  /**
17
17
  * OptIn indicates that an app transaction will allocate some
18
18
  * local state for the app in the sender's account.
19
19
  */
20
- OnApplicationComplete$1[OnApplicationComplete$1["OptIn"] = 1] = "OptIn";
20
+ OnApplicationComplete[OnApplicationComplete["OptIn"] = 1] = "OptIn";
21
21
  /**
22
22
  * CloseOut indicates that an app transaction will deallocate
23
23
  * some local state for the app from the user's account.
24
24
  */
25
- OnApplicationComplete$1[OnApplicationComplete$1["CloseOut"] = 2] = "CloseOut";
25
+ OnApplicationComplete[OnApplicationComplete["CloseOut"] = 2] = "CloseOut";
26
26
  /**
27
27
  * ClearState is similar to CloseOut, but may never fail. This
28
28
  * allows users to reclaim their minimum balance from an app
29
29
  * they no longer wish to opt in to.
30
30
  */
31
- OnApplicationComplete$1[OnApplicationComplete$1["ClearState"] = 3] = "ClearState";
31
+ OnApplicationComplete[OnApplicationComplete["ClearState"] = 3] = "ClearState";
32
32
  /**
33
33
  * UpdateApplication indicates that an app transaction will
34
34
  * update the approval program and clear state program for the app.
35
35
  */
36
- OnApplicationComplete$1[OnApplicationComplete$1["UpdateApplication"] = 4] = "UpdateApplication";
36
+ OnApplicationComplete[OnApplicationComplete["UpdateApplication"] = 4] = "UpdateApplication";
37
37
  /**
38
38
  * DeleteApplication indicates that an app transaction will
39
39
  * delete the app parameters for the app from the creator's
40
40
  * balance record.
41
41
  */
42
- OnApplicationComplete$1[OnApplicationComplete$1["DeleteApplication"] = 5] = "DeleteApplication";
43
- return OnApplicationComplete$1;
42
+ OnApplicationComplete[OnApplicationComplete["DeleteApplication"] = 5] = "DeleteApplication";
43
+ return OnApplicationComplete;
44
44
  }({});
45
45
  const FIELD_ARGS = "Args";
46
46
  const FIELD_APPROVAL_PROGRAM = "Approval program";
@@ -1 +1 @@
1
- {"version":3,"file":"app-call.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n Address,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: AccessReference[]\n\n /**\n * The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed.\n */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport interface AccessReference {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport interface HoldingReference {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport interface LocalsReference {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_EXTRA_PROGRAM_PAGES,\n actual: extraPages,\n max: MAX_EXTRA_PROGRAM_PAGES,\n unit: 'pages',\n },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_APPROVAL_PROGRAM,\n actual: appCall.approvalProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_CLEAR_STATE_PROGRAM,\n actual: appCall.clearStateProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Combined approval and clear state programs',\n actual: totalProgramSize,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_GLOBAL_STATE_SCHEMA,\n })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_LOCAL_STATE_SCHEMA,\n })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_EXTRA_PROGRAM_PAGES,\n })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_ARGS,\n actual: appCall.args.length,\n max: MAX_APP_ARGS,\n unit: 'arguments',\n },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Args total size',\n actual: totalArgsSize,\n max: MAX_ARGS_SIZE,\n unit: 'bytes',\n },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Account references',\n actual: appCall.accountReferences.length,\n max: MAX_ACCOUNT_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'App references',\n actual: appCall.appReferences.length,\n max: MAX_APP_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset references',\n actual: appCall.assetReferences.length,\n max: MAX_ASSET_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Box references',\n actual: appCall.boxReferences.length,\n max: MAX_BOX_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Total references',\n actual: totalReferences,\n max: MAX_OVERALL_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n return errors\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"app-call.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n Address,\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: ResourceReference[]\n\n /**\n * If set, the transaction will be rejected when the app's version is greater than or equal to this value. This can be used to prevent calling an app after it has been updated. Set to 0 or leave undefined to skip the version check.\n * */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport type ResourceReference = {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport type HoldingReference = {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport type LocalsReference = {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_EXTRA_PROGRAM_PAGES, actual: extraPages, max: MAX_EXTRA_PROGRAM_PAGES, unit: 'pages' },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_APPROVAL_PROGRAM, actual: appCall.approvalProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_CLEAR_STATE_PROGRAM, actual: appCall.clearStateProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Combined approval and clear state programs', actual: totalProgramSize, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_GLOBAL_STATE_SCHEMA })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_LOCAL_STATE_SCHEMA })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_EXTRA_PROGRAM_PAGES })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_ARGS, actual: appCall.args.length, max: MAX_APP_ARGS, unit: 'arguments' },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Args total size', actual: totalArgsSize, max: MAX_ARGS_SIZE, unit: 'bytes' },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Account references', actual: appCall.accountReferences.length, max: MAX_ACCOUNT_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'App references', actual: appCall.appReferences.length, max: MAX_APP_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Asset references', actual: appCall.assetReferences.length, max: MAX_ASSET_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Box references', actual: appCall.boxReferences.length, max: MAX_BOX_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Total references', actual: totalReferences, max: MAX_OVERALL_REFERENCES, unit: 'refs' },\n })\n }\n\n return errors\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { Address } from "../../../common/src/address.js";
2
- import { TransactionValidationError } from "./common.js";
3
2
 
4
3
  //#region packages/transact/src/transactions/asset-config.d.ts
5
4
 
@@ -122,10 +121,6 @@ type AssetConfigTransactionFields = {
122
121
  */
123
122
  clawback?: Address;
124
123
  };
125
- /**
126
- * Validate asset configuration transaction fields
127
- */
128
- declare function validateAssetConfigTransaction(assetConfig: AssetConfigTransactionFields): TransactionValidationError[];
129
124
  //#endregion
130
- export { AssetConfigTransactionFields, validateAssetConfigTransaction };
125
+ export { AssetConfigTransactionFields };
131
126
  //# sourceMappingURL=asset-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-config.js","names":["TransactionValidationErrorType","MAX_ASSET_DECIMALS","MAX_ASSET_UNIT_NAME_LENGTH","MAX_ASSET_NAME_LENGTH","MAX_ASSET_URL_LENGTH"],"sources":["../../../../../packages/transact/src/transactions/asset-config.ts"],"sourcesContent":["import {\n MAX_ASSET_DECIMALS,\n MAX_ASSET_NAME_LENGTH,\n MAX_ASSET_UNIT_NAME_LENGTH,\n MAX_ASSET_URL_LENGTH,\n Address,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an asset configuration transaction that creates, reconfigures, or destroys assets.\n */\nexport type AssetConfigTransactionFields = {\n /**\n * ID of the asset to operate on.\n *\n * For asset creation, this must be 0.\n * For asset reconfiguration this is the ID of the existing asset to be reconfigured,\n * For asset destroy this is the ID of the existing asset to be destroyed.\n */\n assetId: bigint\n\n /**\n * The total amount of the smallest divisible (decimal) unit to create.\n *\n * Required when creating a new asset.\n * For example, if creating a asset with 2 decimals and wanting a total supply of 100 units, this value should be 10000.\n *\n * This field can only be specified upon asset creation.\n */\n total?: bigint\n\n /**\n * The amount of decimal places the asset should have.\n *\n * If unspecified then the asset will be in whole units (i.e. `0`).\n * * If 0, the asset is not divisible;\n * * If 1, the base unit of the asset is in tenths;\n * * If 2, the base unit of the asset is in hundredths;\n * * If 3, the base unit of the asset is in thousandths;\n *\n * and so on up to 19 decimal places.\n *\n * This field can only be specified upon asset creation.\n */\n decimals?: number\n\n /**\n * Whether the asset is frozen by default for all accounts.\n * Defaults to `false`.\n *\n * If `true` then for anyone apart from the creator to hold the\n * asset it needs to be unfrozen per account using an asset freeze\n * transaction from the `freeze` account, which must be set on creation.\n *\n * This field can only be specified upon asset creation.\n */\n defaultFrozen?: boolean\n\n /**\n * The optional name of the asset.\n *\n * Max size is 32 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n assetName?: string\n\n /**\n * The optional name of the unit of this asset (e.g. ticker name).\n *\n * Max size is 8 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n unitName?: string\n\n /**\n * Specifies an optional URL where more information about the asset can be retrieved (e.g. metadata).\n *\n * Max size is 96 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n url?: string\n\n /**\n * 32-byte hash of some metadata that is relevant to your asset and/or asset holders.\n *\n * The format of this metadata is up to the application.\n *\n * This field can only be specified upon asset creation.\n */\n metadataHash?: Uint8Array\n\n /**\n * The address of the optional account that can manage the configuration of the asset and destroy it.\n *\n * The configuration fields it can change are `manager`, `reserve`, `clawback`, and `freeze`.\n *\n * If not set or set to the Zero address the asset becomes permanently immutable.\n */\n manager?: Address\n\n /**\n * The address of the optional account that holds the reserve (uncirculated supply) units of the asset.\n *\n * This address has no specific authority in the protocol itself and is informational only.\n *\n * Some standards like [ARC-19](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0019.md)\n * rely on this field to hold meaningful data.\n *\n * It can be used in the case where you want to signal to holders of your asset that the uncirculated units\n * of the asset reside in an account that is different from the default creator account.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n reserve?: Address\n\n /**\n * The address of the optional account that can be used to freeze or unfreeze holdings of this asset for any account.\n *\n * If empty, freezing is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n freeze?: Address\n\n /**\n * The address of the optional account that can clawback holdings of this asset from any account.\n *\n * **This field should be used with caution** as the clawback account has the ability to **unconditionally take assets from any account**.\n *\n * If empty, clawback is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n clawback?: Address\n}\n\n/**\n * Validate asset configuration transaction fields\n */\nexport function validateAssetConfigTransaction(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.assetId === 0n) {\n // Asset creation\n errors.push(...validateAssetCreation(assetConfig))\n } else {\n // Asset configuration or destruction\n errors.push(...validateAssetConfiguration(assetConfig))\n }\n\n return errors\n}\n\n/**\n * Validate asset creation fields\n */\nfunction validateAssetCreation(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.total === undefined) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: 'Total',\n })\n }\n\n if (assetConfig.decimals !== undefined && assetConfig.decimals > MAX_ASSET_DECIMALS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Decimals',\n actual: assetConfig.decimals,\n max: MAX_ASSET_DECIMALS,\n unit: 'decimal places',\n },\n })\n }\n\n if (assetConfig.unitName && assetConfig.unitName.length > MAX_ASSET_UNIT_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Unit name',\n actual: assetConfig.unitName.length,\n max: MAX_ASSET_UNIT_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.assetName && assetConfig.assetName.length > MAX_ASSET_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset name',\n actual: assetConfig.assetName.length,\n max: MAX_ASSET_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.url && assetConfig.url.length > MAX_ASSET_URL_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Url',\n actual: assetConfig.url.length,\n max: MAX_ASSET_URL_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n return errors\n}\n\n/**\n * Validate asset configuration fields\n */\nfunction validateAssetConfiguration(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n const hasAssetParams =\n assetConfig.total !== undefined ||\n assetConfig.decimals !== undefined ||\n assetConfig.defaultFrozen !== undefined ||\n assetConfig.assetName !== undefined ||\n assetConfig.unitName !== undefined ||\n assetConfig.url !== undefined ||\n assetConfig.metadataHash !== undefined ||\n assetConfig.manager !== undefined ||\n assetConfig.reserve !== undefined ||\n assetConfig.freeze !== undefined ||\n assetConfig.clawback !== undefined\n\n if (hasAssetParams) {\n // These fields are immutable after creation\n if (assetConfig.total !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Total',\n })\n }\n if (assetConfig.decimals !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Decimals',\n })\n }\n if (assetConfig.defaultFrozen !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Default frozen',\n })\n }\n if (assetConfig.assetName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Asset name',\n })\n }\n if (assetConfig.unitName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Unit name',\n })\n }\n if (assetConfig.url !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Url',\n })\n }\n if (assetConfig.metadataHash !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Metadata hash',\n })\n }\n }\n\n return errors\n}\n"],"mappings":";;;;;;;AA+IA,SAAgB,+BAA+B,aAAyE;CACtH,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,YAAY,GAE1B,QAAO,KAAK,GAAG,sBAAsB,YAAY,CAAC;KAGlD,QAAO,KAAK,GAAG,2BAA2B,YAAY,CAAC;AAGzD,QAAO;;;;;AAMT,SAAS,sBAAsB,aAAyE;CACtG,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,UAAU,OACxB,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,KAAI,YAAY,aAAa,UAAa,YAAY,WAAWC,qCAC/D,QAAO,KAAK;EACV,MAAMD,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY;GACpB,KAAKC;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,YAAY,YAAY,SAAS,SAASC,6CACxD,QAAO,KAAK;EACV,MAAMF,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,SAAS;GAC7B,KAAKE;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,aAAa,YAAY,UAAU,SAASC,wCAC1D,QAAO,KAAK;EACV,MAAMH,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,UAAU;GAC9B,KAAKG;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,OAAO,YAAY,IAAI,SAASC,uCAC9C,QAAO,KAAK;EACV,MAAMJ,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,IAAI;GACxB,KAAKI;GACL,MAAM;GACP;EACF,CAAC;AAGJ,QAAO;;;;;AAMT,SAAS,2BAA2B,aAAyE;CAC3G,MAAM,SAAS,IAAI,OAAmC;AAetD,KAZE,YAAY,UAAU,UACtB,YAAY,aAAa,UACzB,YAAY,kBAAkB,UAC9B,YAAY,cAAc,UAC1B,YAAY,aAAa,UACzB,YAAY,QAAQ,UACpB,YAAY,iBAAiB,UAC7B,YAAY,YAAY,UACxB,YAAY,YAAY,UACxB,YAAY,WAAW,UACvB,YAAY,aAAa,QAEP;AAElB,MAAI,YAAY,UAAU,OACxB,QAAO,KAAK;GACV,MAAMJ,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,kBAAkB,OAChC,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,cAAc,OAC5B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,QAAQ,OACtB,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,iBAAiB,OAC/B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;;AAIN,QAAO"}
1
+ {"version":3,"file":"asset-config.js","names":["TransactionValidationErrorType","MAX_ASSET_DECIMALS","MAX_ASSET_UNIT_NAME_LENGTH","MAX_ASSET_NAME_LENGTH","MAX_ASSET_URL_LENGTH"],"sources":["../../../../../packages/transact/src/transactions/asset-config.ts"],"sourcesContent":["import {\n Address,\n MAX_ASSET_DECIMALS,\n MAX_ASSET_NAME_LENGTH,\n MAX_ASSET_UNIT_NAME_LENGTH,\n MAX_ASSET_URL_LENGTH,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an asset configuration transaction that creates, reconfigures, or destroys assets.\n */\nexport type AssetConfigTransactionFields = {\n /**\n * ID of the asset to operate on.\n *\n * For asset creation, this must be 0.\n * For asset reconfiguration this is the ID of the existing asset to be reconfigured,\n * For asset destroy this is the ID of the existing asset to be destroyed.\n */\n assetId: bigint\n\n /**\n * The total amount of the smallest divisible (decimal) unit to create.\n *\n * Required when creating a new asset.\n * For example, if creating a asset with 2 decimals and wanting a total supply of 100 units, this value should be 10000.\n *\n * This field can only be specified upon asset creation.\n */\n total?: bigint\n\n /**\n * The amount of decimal places the asset should have.\n *\n * If unspecified then the asset will be in whole units (i.e. `0`).\n * * If 0, the asset is not divisible;\n * * If 1, the base unit of the asset is in tenths;\n * * If 2, the base unit of the asset is in hundredths;\n * * If 3, the base unit of the asset is in thousandths;\n *\n * and so on up to 19 decimal places.\n *\n * This field can only be specified upon asset creation.\n */\n decimals?: number\n\n /**\n * Whether the asset is frozen by default for all accounts.\n * Defaults to `false`.\n *\n * If `true` then for anyone apart from the creator to hold the\n * asset it needs to be unfrozen per account using an asset freeze\n * transaction from the `freeze` account, which must be set on creation.\n *\n * This field can only be specified upon asset creation.\n */\n defaultFrozen?: boolean\n\n /**\n * The optional name of the asset.\n *\n * Max size is 32 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n assetName?: string\n\n /**\n * The optional name of the unit of this asset (e.g. ticker name).\n *\n * Max size is 8 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n unitName?: string\n\n /**\n * Specifies an optional URL where more information about the asset can be retrieved (e.g. metadata).\n *\n * Max size is 96 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n url?: string\n\n /**\n * 32-byte hash of some metadata that is relevant to your asset and/or asset holders.\n *\n * The format of this metadata is up to the application.\n *\n * This field can only be specified upon asset creation.\n */\n metadataHash?: Uint8Array\n\n /**\n * The address of the optional account that can manage the configuration of the asset and destroy it.\n *\n * The configuration fields it can change are `manager`, `reserve`, `clawback`, and `freeze`.\n *\n * If not set or set to the Zero address the asset becomes permanently immutable.\n */\n manager?: Address\n\n /**\n * The address of the optional account that holds the reserve (uncirculated supply) units of the asset.\n *\n * This address has no specific authority in the protocol itself and is informational only.\n *\n * Some standards like [ARC-19](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0019.md)\n * rely on this field to hold meaningful data.\n *\n * It can be used in the case where you want to signal to holders of your asset that the uncirculated units\n * of the asset reside in an account that is different from the default creator account.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n reserve?: Address\n\n /**\n * The address of the optional account that can be used to freeze or unfreeze holdings of this asset for any account.\n *\n * If empty, freezing is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n freeze?: Address\n\n /**\n * The address of the optional account that can clawback holdings of this asset from any account.\n *\n * **This field should be used with caution** as the clawback account has the ability to **unconditionally take assets from any account**.\n *\n * If empty, clawback is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n clawback?: Address\n}\n\n/**\n * Validate asset configuration transaction fields\n */\nexport function validateAssetConfigTransaction(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.assetId === 0n) {\n // Asset creation\n errors.push(...validateAssetCreation(assetConfig))\n } else {\n // Asset configuration or destruction\n errors.push(...validateAssetConfiguration(assetConfig))\n }\n\n return errors\n}\n\n/**\n * Validate asset creation fields\n */\nfunction validateAssetCreation(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.total === undefined) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: 'Total',\n })\n }\n\n if (assetConfig.decimals !== undefined && assetConfig.decimals > MAX_ASSET_DECIMALS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Decimals',\n actual: assetConfig.decimals,\n max: MAX_ASSET_DECIMALS,\n unit: 'decimal places',\n },\n })\n }\n\n if (assetConfig.unitName && assetConfig.unitName.length > MAX_ASSET_UNIT_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Unit name',\n actual: assetConfig.unitName.length,\n max: MAX_ASSET_UNIT_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.assetName && assetConfig.assetName.length > MAX_ASSET_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset name',\n actual: assetConfig.assetName.length,\n max: MAX_ASSET_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.url && assetConfig.url.length > MAX_ASSET_URL_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Url',\n actual: assetConfig.url.length,\n max: MAX_ASSET_URL_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n return errors\n}\n\n/**\n * Validate asset configuration fields\n */\nfunction validateAssetConfiguration(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n const hasAssetParams =\n assetConfig.total !== undefined ||\n assetConfig.decimals !== undefined ||\n assetConfig.defaultFrozen !== undefined ||\n assetConfig.assetName !== undefined ||\n assetConfig.unitName !== undefined ||\n assetConfig.url !== undefined ||\n assetConfig.metadataHash !== undefined ||\n assetConfig.manager !== undefined ||\n assetConfig.reserve !== undefined ||\n assetConfig.freeze !== undefined ||\n assetConfig.clawback !== undefined\n\n if (hasAssetParams) {\n // These fields are immutable after creation\n if (assetConfig.total !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Total',\n })\n }\n if (assetConfig.decimals !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Decimals',\n })\n }\n if (assetConfig.defaultFrozen !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Default frozen',\n })\n }\n if (assetConfig.assetName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Asset name',\n })\n }\n if (assetConfig.unitName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Unit name',\n })\n }\n if (assetConfig.url !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Url',\n })\n }\n if (assetConfig.metadataHash !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Metadata hash',\n })\n }\n }\n\n return errors\n}\n"],"mappings":";;;;;;;AA+IA,SAAgB,+BAA+B,aAAyE;CACtH,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,YAAY,GAE1B,QAAO,KAAK,GAAG,sBAAsB,YAAY,CAAC;KAGlD,QAAO,KAAK,GAAG,2BAA2B,YAAY,CAAC;AAGzD,QAAO;;;;;AAMT,SAAS,sBAAsB,aAAyE;CACtG,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,UAAU,OACxB,QAAO,KAAK;EACV,MAAMA,8CAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,KAAI,YAAY,aAAa,UAAa,YAAY,WAAWC,qCAC/D,QAAO,KAAK;EACV,MAAMD,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY;GACpB,KAAKC;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,YAAY,YAAY,SAAS,SAASC,6CACxD,QAAO,KAAK;EACV,MAAMF,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,SAAS;GAC7B,KAAKE;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,aAAa,YAAY,UAAU,SAASC,wCAC1D,QAAO,KAAK;EACV,MAAMH,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,UAAU;GAC9B,KAAKG;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,OAAO,YAAY,IAAI,SAASC,uCAC9C,QAAO,KAAK;EACV,MAAMJ,8CAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,IAAI;GACxB,KAAKI;GACL,MAAM;GACP;EACF,CAAC;AAGJ,QAAO;;;;;AAMT,SAAS,2BAA2B,aAAyE;CAC3G,MAAM,SAAS,IAAI,OAAmC;AAetD,KAZE,YAAY,UAAU,UACtB,YAAY,aAAa,UACzB,YAAY,kBAAkB,UAC9B,YAAY,cAAc,UAC1B,YAAY,aAAa,UACzB,YAAY,QAAQ,UACpB,YAAY,iBAAiB,UAC7B,YAAY,YAAY,UACxB,YAAY,YAAY,UACxB,YAAY,WAAW,UACvB,YAAY,aAAa,QAEP;AAElB,MAAI,YAAY,UAAU,OACxB,QAAO,KAAK;GACV,MAAMJ,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,kBAAkB,OAChC,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,cAAc,OAC5B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,QAAQ,OACtB,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,iBAAiB,OAC/B,QAAO,KAAK;GACV,MAAMA,8CAA+B;GACrC,MAAM;GACP,CAAC;;AAIN,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset-config.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/asset-config.ts"],"sourcesContent":["import {\n MAX_ASSET_DECIMALS,\n MAX_ASSET_NAME_LENGTH,\n MAX_ASSET_UNIT_NAME_LENGTH,\n MAX_ASSET_URL_LENGTH,\n Address,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an asset configuration transaction that creates, reconfigures, or destroys assets.\n */\nexport type AssetConfigTransactionFields = {\n /**\n * ID of the asset to operate on.\n *\n * For asset creation, this must be 0.\n * For asset reconfiguration this is the ID of the existing asset to be reconfigured,\n * For asset destroy this is the ID of the existing asset to be destroyed.\n */\n assetId: bigint\n\n /**\n * The total amount of the smallest divisible (decimal) unit to create.\n *\n * Required when creating a new asset.\n * For example, if creating a asset with 2 decimals and wanting a total supply of 100 units, this value should be 10000.\n *\n * This field can only be specified upon asset creation.\n */\n total?: bigint\n\n /**\n * The amount of decimal places the asset should have.\n *\n * If unspecified then the asset will be in whole units (i.e. `0`).\n * * If 0, the asset is not divisible;\n * * If 1, the base unit of the asset is in tenths;\n * * If 2, the base unit of the asset is in hundredths;\n * * If 3, the base unit of the asset is in thousandths;\n *\n * and so on up to 19 decimal places.\n *\n * This field can only be specified upon asset creation.\n */\n decimals?: number\n\n /**\n * Whether the asset is frozen by default for all accounts.\n * Defaults to `false`.\n *\n * If `true` then for anyone apart from the creator to hold the\n * asset it needs to be unfrozen per account using an asset freeze\n * transaction from the `freeze` account, which must be set on creation.\n *\n * This field can only be specified upon asset creation.\n */\n defaultFrozen?: boolean\n\n /**\n * The optional name of the asset.\n *\n * Max size is 32 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n assetName?: string\n\n /**\n * The optional name of the unit of this asset (e.g. ticker name).\n *\n * Max size is 8 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n unitName?: string\n\n /**\n * Specifies an optional URL where more information about the asset can be retrieved (e.g. metadata).\n *\n * Max size is 96 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n url?: string\n\n /**\n * 32-byte hash of some metadata that is relevant to your asset and/or asset holders.\n *\n * The format of this metadata is up to the application.\n *\n * This field can only be specified upon asset creation.\n */\n metadataHash?: Uint8Array\n\n /**\n * The address of the optional account that can manage the configuration of the asset and destroy it.\n *\n * The configuration fields it can change are `manager`, `reserve`, `clawback`, and `freeze`.\n *\n * If not set or set to the Zero address the asset becomes permanently immutable.\n */\n manager?: Address\n\n /**\n * The address of the optional account that holds the reserve (uncirculated supply) units of the asset.\n *\n * This address has no specific authority in the protocol itself and is informational only.\n *\n * Some standards like [ARC-19](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0019.md)\n * rely on this field to hold meaningful data.\n *\n * It can be used in the case where you want to signal to holders of your asset that the uncirculated units\n * of the asset reside in an account that is different from the default creator account.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n reserve?: Address\n\n /**\n * The address of the optional account that can be used to freeze or unfreeze holdings of this asset for any account.\n *\n * If empty, freezing is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n freeze?: Address\n\n /**\n * The address of the optional account that can clawback holdings of this asset from any account.\n *\n * **This field should be used with caution** as the clawback account has the ability to **unconditionally take assets from any account**.\n *\n * If empty, clawback is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n clawback?: Address\n}\n\n/**\n * Validate asset configuration transaction fields\n */\nexport function validateAssetConfigTransaction(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.assetId === 0n) {\n // Asset creation\n errors.push(...validateAssetCreation(assetConfig))\n } else {\n // Asset configuration or destruction\n errors.push(...validateAssetConfiguration(assetConfig))\n }\n\n return errors\n}\n\n/**\n * Validate asset creation fields\n */\nfunction validateAssetCreation(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.total === undefined) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: 'Total',\n })\n }\n\n if (assetConfig.decimals !== undefined && assetConfig.decimals > MAX_ASSET_DECIMALS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Decimals',\n actual: assetConfig.decimals,\n max: MAX_ASSET_DECIMALS,\n unit: 'decimal places',\n },\n })\n }\n\n if (assetConfig.unitName && assetConfig.unitName.length > MAX_ASSET_UNIT_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Unit name',\n actual: assetConfig.unitName.length,\n max: MAX_ASSET_UNIT_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.assetName && assetConfig.assetName.length > MAX_ASSET_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset name',\n actual: assetConfig.assetName.length,\n max: MAX_ASSET_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.url && assetConfig.url.length > MAX_ASSET_URL_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Url',\n actual: assetConfig.url.length,\n max: MAX_ASSET_URL_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n return errors\n}\n\n/**\n * Validate asset configuration fields\n */\nfunction validateAssetConfiguration(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n const hasAssetParams =\n assetConfig.total !== undefined ||\n assetConfig.decimals !== undefined ||\n assetConfig.defaultFrozen !== undefined ||\n assetConfig.assetName !== undefined ||\n assetConfig.unitName !== undefined ||\n assetConfig.url !== undefined ||\n assetConfig.metadataHash !== undefined ||\n assetConfig.manager !== undefined ||\n assetConfig.reserve !== undefined ||\n assetConfig.freeze !== undefined ||\n assetConfig.clawback !== undefined\n\n if (hasAssetParams) {\n // These fields are immutable after creation\n if (assetConfig.total !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Total',\n })\n }\n if (assetConfig.decimals !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Decimals',\n })\n }\n if (assetConfig.defaultFrozen !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Default frozen',\n })\n }\n if (assetConfig.assetName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Asset name',\n })\n }\n if (assetConfig.unitName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Unit name',\n })\n }\n if (assetConfig.url !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Url',\n })\n }\n if (assetConfig.metadataHash !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Metadata hash',\n })\n }\n }\n\n return errors\n}\n"],"mappings":";;;;;;;AA+IA,SAAgB,+BAA+B,aAAyE;CACtH,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,YAAY,GAE1B,QAAO,KAAK,GAAG,sBAAsB,YAAY,CAAC;KAGlD,QAAO,KAAK,GAAG,2BAA2B,YAAY,CAAC;AAGzD,QAAO;;;;;AAMT,SAAS,sBAAsB,aAAyE;CACtG,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,UAAU,OACxB,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,KAAI,YAAY,aAAa,UAAa,YAAY,WAAW,mBAC/D,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY;GACpB,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,YAAY,YAAY,SAAS,SAAS,2BACxD,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,SAAS;GAC7B,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,aAAa,YAAY,UAAU,SAAS,sBAC1D,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,UAAU;GAC9B,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,OAAO,YAAY,IAAI,SAAS,qBAC9C,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,IAAI;GACxB,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,QAAO;;;;;AAMT,SAAS,2BAA2B,aAAyE;CAC3G,MAAM,SAAS,IAAI,OAAmC;AAetD,KAZE,YAAY,UAAU,UACtB,YAAY,aAAa,UACzB,YAAY,kBAAkB,UAC9B,YAAY,cAAc,UAC1B,YAAY,aAAa,UACzB,YAAY,QAAQ,UACpB,YAAY,iBAAiB,UAC7B,YAAY,YAAY,UACxB,YAAY,YAAY,UACxB,YAAY,WAAW,UACvB,YAAY,aAAa,QAEP;AAElB,MAAI,YAAY,UAAU,OACxB,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,kBAAkB,OAChC,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,cAAc,OAC5B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,QAAQ,OACtB,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,iBAAiB,OAC/B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;;AAIN,QAAO"}
1
+ {"version":3,"file":"asset-config.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/asset-config.ts"],"sourcesContent":["import {\n Address,\n MAX_ASSET_DECIMALS,\n MAX_ASSET_NAME_LENGTH,\n MAX_ASSET_UNIT_NAME_LENGTH,\n MAX_ASSET_URL_LENGTH,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an asset configuration transaction that creates, reconfigures, or destroys assets.\n */\nexport type AssetConfigTransactionFields = {\n /**\n * ID of the asset to operate on.\n *\n * For asset creation, this must be 0.\n * For asset reconfiguration this is the ID of the existing asset to be reconfigured,\n * For asset destroy this is the ID of the existing asset to be destroyed.\n */\n assetId: bigint\n\n /**\n * The total amount of the smallest divisible (decimal) unit to create.\n *\n * Required when creating a new asset.\n * For example, if creating a asset with 2 decimals and wanting a total supply of 100 units, this value should be 10000.\n *\n * This field can only be specified upon asset creation.\n */\n total?: bigint\n\n /**\n * The amount of decimal places the asset should have.\n *\n * If unspecified then the asset will be in whole units (i.e. `0`).\n * * If 0, the asset is not divisible;\n * * If 1, the base unit of the asset is in tenths;\n * * If 2, the base unit of the asset is in hundredths;\n * * If 3, the base unit of the asset is in thousandths;\n *\n * and so on up to 19 decimal places.\n *\n * This field can only be specified upon asset creation.\n */\n decimals?: number\n\n /**\n * Whether the asset is frozen by default for all accounts.\n * Defaults to `false`.\n *\n * If `true` then for anyone apart from the creator to hold the\n * asset it needs to be unfrozen per account using an asset freeze\n * transaction from the `freeze` account, which must be set on creation.\n *\n * This field can only be specified upon asset creation.\n */\n defaultFrozen?: boolean\n\n /**\n * The optional name of the asset.\n *\n * Max size is 32 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n assetName?: string\n\n /**\n * The optional name of the unit of this asset (e.g. ticker name).\n *\n * Max size is 8 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n unitName?: string\n\n /**\n * Specifies an optional URL where more information about the asset can be retrieved (e.g. metadata).\n *\n * Max size is 96 bytes.\n *\n * This field can only be specified upon asset creation.\n */\n url?: string\n\n /**\n * 32-byte hash of some metadata that is relevant to your asset and/or asset holders.\n *\n * The format of this metadata is up to the application.\n *\n * This field can only be specified upon asset creation.\n */\n metadataHash?: Uint8Array\n\n /**\n * The address of the optional account that can manage the configuration of the asset and destroy it.\n *\n * The configuration fields it can change are `manager`, `reserve`, `clawback`, and `freeze`.\n *\n * If not set or set to the Zero address the asset becomes permanently immutable.\n */\n manager?: Address\n\n /**\n * The address of the optional account that holds the reserve (uncirculated supply) units of the asset.\n *\n * This address has no specific authority in the protocol itself and is informational only.\n *\n * Some standards like [ARC-19](https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0019.md)\n * rely on this field to hold meaningful data.\n *\n * It can be used in the case where you want to signal to holders of your asset that the uncirculated units\n * of the asset reside in an account that is different from the default creator account.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n reserve?: Address\n\n /**\n * The address of the optional account that can be used to freeze or unfreeze holdings of this asset for any account.\n *\n * If empty, freezing is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n freeze?: Address\n\n /**\n * The address of the optional account that can clawback holdings of this asset from any account.\n *\n * **This field should be used with caution** as the clawback account has the ability to **unconditionally take assets from any account**.\n *\n * If empty, clawback is not permitted.\n *\n * If not set or set to the Zero address the field is permanently empty.\n */\n clawback?: Address\n}\n\n/**\n * Validate asset configuration transaction fields\n */\nexport function validateAssetConfigTransaction(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.assetId === 0n) {\n // Asset creation\n errors.push(...validateAssetCreation(assetConfig))\n } else {\n // Asset configuration or destruction\n errors.push(...validateAssetConfiguration(assetConfig))\n }\n\n return errors\n}\n\n/**\n * Validate asset creation fields\n */\nfunction validateAssetCreation(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (assetConfig.total === undefined) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: 'Total',\n })\n }\n\n if (assetConfig.decimals !== undefined && assetConfig.decimals > MAX_ASSET_DECIMALS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Decimals',\n actual: assetConfig.decimals,\n max: MAX_ASSET_DECIMALS,\n unit: 'decimal places',\n },\n })\n }\n\n if (assetConfig.unitName && assetConfig.unitName.length > MAX_ASSET_UNIT_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Unit name',\n actual: assetConfig.unitName.length,\n max: MAX_ASSET_UNIT_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.assetName && assetConfig.assetName.length > MAX_ASSET_NAME_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset name',\n actual: assetConfig.assetName.length,\n max: MAX_ASSET_NAME_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n if (assetConfig.url && assetConfig.url.length > MAX_ASSET_URL_LENGTH) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Url',\n actual: assetConfig.url.length,\n max: MAX_ASSET_URL_LENGTH,\n unit: 'bytes',\n },\n })\n }\n\n return errors\n}\n\n/**\n * Validate asset configuration fields\n */\nfunction validateAssetConfiguration(assetConfig: AssetConfigTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n const hasAssetParams =\n assetConfig.total !== undefined ||\n assetConfig.decimals !== undefined ||\n assetConfig.defaultFrozen !== undefined ||\n assetConfig.assetName !== undefined ||\n assetConfig.unitName !== undefined ||\n assetConfig.url !== undefined ||\n assetConfig.metadataHash !== undefined ||\n assetConfig.manager !== undefined ||\n assetConfig.reserve !== undefined ||\n assetConfig.freeze !== undefined ||\n assetConfig.clawback !== undefined\n\n if (hasAssetParams) {\n // These fields are immutable after creation\n if (assetConfig.total !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Total',\n })\n }\n if (assetConfig.decimals !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Decimals',\n })\n }\n if (assetConfig.defaultFrozen !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Default frozen',\n })\n }\n if (assetConfig.assetName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Asset name',\n })\n }\n if (assetConfig.unitName !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Unit name',\n })\n }\n if (assetConfig.url !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Url',\n })\n }\n if (assetConfig.metadataHash !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: 'Metadata hash',\n })\n }\n }\n\n return errors\n}\n"],"mappings":";;;;;;;AA+IA,SAAgB,+BAA+B,aAAyE;CACtH,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,YAAY,GAE1B,QAAO,KAAK,GAAG,sBAAsB,YAAY,CAAC;KAGlD,QAAO,KAAK,GAAG,2BAA2B,YAAY,CAAC;AAGzD,QAAO;;;;;AAMT,SAAS,sBAAsB,aAAyE;CACtG,MAAM,SAAS,IAAI,OAAmC;AAEtD,KAAI,YAAY,UAAU,OACxB,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;EACP,CAAC;AAGJ,KAAI,YAAY,aAAa,UAAa,YAAY,WAAW,mBAC/D,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY;GACpB,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,YAAY,YAAY,SAAS,SAAS,2BACxD,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,SAAS;GAC7B,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,aAAa,YAAY,UAAU,SAAS,sBAC1D,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,UAAU;GAC9B,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,KAAI,YAAY,OAAO,YAAY,IAAI,SAAS,qBAC9C,QAAO,KAAK;EACV,MAAM,+BAA+B;EACrC,MAAM;GACJ,OAAO;GACP,QAAQ,YAAY,IAAI;GACxB,KAAK;GACL,MAAM;GACP;EACF,CAAC;AAGJ,QAAO;;;;;AAMT,SAAS,2BAA2B,aAAyE;CAC3G,MAAM,SAAS,IAAI,OAAmC;AAetD,KAZE,YAAY,UAAU,UACtB,YAAY,aAAa,UACzB,YAAY,kBAAkB,UAC9B,YAAY,cAAc,UAC1B,YAAY,aAAa,UACzB,YAAY,QAAQ,UACpB,YAAY,iBAAiB,UAC7B,YAAY,YAAY,UACxB,YAAY,YAAY,UACxB,YAAY,WAAW,UACvB,YAAY,aAAa,QAEP;AAElB,MAAI,YAAY,UAAU,OACxB,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,kBAAkB,OAChC,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,cAAc,OAC5B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,aAAa,OAC3B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,QAAQ,OACtB,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;AAEJ,MAAI,YAAY,iBAAiB,OAC/B,QAAO,KAAK;GACV,MAAM,+BAA+B;GACrC,MAAM;GACP,CAAC;;AAIN,QAAO"}
@@ -1,5 +1,4 @@
1
1
  import { Address } from "../../../common/src/address.js";
2
- import { TransactionValidationError } from "./common.js";
3
2
 
4
3
  //#region packages/transact/src/transactions/asset-freeze.d.ts
5
4
 
@@ -26,10 +25,6 @@ type AssetFreezeTransactionFields = {
26
25
  */
27
26
  frozen: boolean;
28
27
  };
29
- /**
30
- * Validate asset freeze transaction fields
31
- */
32
- declare function validateAssetFreezeTransaction(assetFreeze: AssetFreezeTransactionFields): TransactionValidationError[];
33
28
  //#endregion
34
- export { AssetFreezeTransactionFields, validateAssetFreezeTransaction };
29
+ export { AssetFreezeTransactionFields };
35
30
  //# sourceMappingURL=asset-freeze.d.ts.map
@@ -1,5 +1,4 @@
1
1
  import { Address } from "../../../common/src/address.js";
2
- import { TransactionValidationError } from "./common.js";
3
2
 
4
3
  //#region packages/transact/src/transactions/asset-transfer.d.ts
5
4
 
@@ -47,10 +46,6 @@ type AssetTransferTransactionFields = {
47
46
  */
48
47
  closeRemainderTo?: Address;
49
48
  };
50
- /**
51
- * Validate asset transfer transaction fields
52
- */
53
- declare function validateAssetTransferTransaction(assetTransfer: AssetTransferTransactionFields): TransactionValidationError[];
54
49
  //#endregion
55
- export { AssetTransferTransactionFields, validateAssetTransferTransaction };
50
+ export { AssetTransferTransactionFields };
56
51
  //# sourceMappingURL=asset-transfer.d.ts.map