@algorandfoundation/algokit-utils 9.2.0 → 10.0.0-alpha.10

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 (1677) hide show
  1. package/README.md +60 -1
  2. package/_virtual/rolldown_runtime.js +43 -0
  3. package/_virtual/rolldown_runtime.mjs +18 -0
  4. package/abi/index.d.ts +6 -0
  5. package/abi/index.js +40 -0
  6. package/abi/index.mjs +5 -0
  7. package/algo25/index.d.ts +2 -0
  8. package/algo25/index.js +9 -0
  9. package/algo25/index.mjs +3 -0
  10. package/algod-client/index.d.ts +73 -0
  11. package/algod-client/index.js +17 -0
  12. package/algod-client/index.mjs +8 -0
  13. package/amount.d.ts +40 -35
  14. package/amount.js +36 -36
  15. package/amount.js.map +1 -1
  16. package/amount.mjs +36 -34
  17. package/amount.mjs.map +1 -1
  18. package/config.d.ts +7 -2
  19. package/config.js +5 -5
  20. package/config.js.map +1 -1
  21. package/config.mjs +4 -2
  22. package/config.mjs.map +1 -1
  23. package/index.d.ts +10 -18
  24. package/index.js +41 -143
  25. package/index.mjs +11 -29
  26. package/indexer-client/index.d.ts +78 -0
  27. package/indexer-client/index.js +17 -0
  28. package/indexer-client/index.mjs +8 -0
  29. package/indexer-lookup.d.ts +20 -27
  30. package/indexer-lookup.js +98 -128
  31. package/indexer-lookup.js.map +1 -1
  32. package/indexer-lookup.mjs +93 -123
  33. package/indexer-lookup.mjs.map +1 -1
  34. package/kmd-client/index.d.ts +54 -0
  35. package/kmd-client/index.js +17 -0
  36. package/kmd-client/index.mjs +8 -0
  37. package/package.json +43 -5
  38. package/packages/abi/src/abi-method.d.ts +117 -0
  39. package/packages/abi/src/abi-method.js +209 -0
  40. package/packages/abi/src/abi-method.js.map +1 -0
  41. package/packages/abi/src/abi-method.mjs +196 -0
  42. package/packages/abi/src/abi-method.mjs.map +1 -0
  43. package/packages/abi/src/abi-type.d.ts +253 -0
  44. package/packages/abi/src/abi-type.js +686 -0
  45. package/packages/abi/src/abi-type.js.map +1 -0
  46. package/packages/abi/src/abi-type.mjs +675 -0
  47. package/packages/abi/src/abi-type.mjs.map +1 -0
  48. package/packages/abi/src/abi-value.d.ts +11 -0
  49. package/packages/abi/src/arc28-event.d.ts +20 -0
  50. package/packages/abi/src/arc56-contract.d.ts +389 -0
  51. package/packages/abi/src/arc56-contract.js +197 -0
  52. package/packages/abi/src/arc56-contract.js.map +1 -0
  53. package/packages/abi/src/arc56-contract.mjs +186 -0
  54. package/packages/abi/src/arc56-contract.mjs.map +1 -0
  55. package/packages/abi/src/bigint.js +32 -0
  56. package/packages/abi/src/bigint.js.map +1 -0
  57. package/packages/abi/src/bigint.mjs +30 -0
  58. package/packages/abi/src/bigint.mjs.map +1 -0
  59. package/packages/algo25/src/english.js +2057 -0
  60. package/packages/algo25/src/english.js.map +1 -0
  61. package/packages/algo25/src/english.mjs +2056 -0
  62. package/packages/algo25/src/english.mjs.map +1 -0
  63. package/packages/algo25/src/index.d.ts +40 -0
  64. package/packages/algo25/src/index.js +119 -0
  65. package/packages/algo25/src/index.js.map +1 -0
  66. package/packages/algo25/src/index.mjs +113 -0
  67. package/packages/algo25/src/index.mjs.map +1 -0
  68. package/packages/algod_client/src/apis/api-service.d.ts +184 -0
  69. package/packages/algod_client/src/apis/api-service.js +627 -0
  70. package/packages/algod_client/src/apis/api-service.js.map +1 -0
  71. package/packages/algod_client/src/apis/api-service.mjs +627 -0
  72. package/packages/algod_client/src/apis/api-service.mjs.map +1 -0
  73. package/packages/algod_client/src/client.d.ts +10 -0
  74. package/packages/algod_client/src/client.js +13 -0
  75. package/packages/algod_client/src/client.js.map +1 -0
  76. package/packages/algod_client/src/client.mjs +13 -0
  77. package/packages/algod_client/src/client.mjs.map +1 -0
  78. package/packages/algod_client/src/core/api-error.d.ts +10 -0
  79. package/packages/algod_client/src/core/api-error.js +19 -0
  80. package/packages/algod_client/src/core/api-error.js.map +1 -0
  81. package/packages/algod_client/src/core/api-error.mjs +18 -0
  82. package/packages/algod_client/src/core/api-error.mjs.map +1 -0
  83. package/packages/algod_client/src/core/base-http-request.d.ts +25 -0
  84. package/packages/algod_client/src/core/base-http-request.js +16 -0
  85. package/packages/algod_client/src/core/base-http-request.js.map +1 -0
  86. package/packages/algod_client/src/core/base-http-request.mjs +14 -0
  87. package/packages/algod_client/src/core/base-http-request.mjs.map +1 -0
  88. package/packages/algod_client/src/core/client-config.d.ts +17 -0
  89. package/packages/algod_client/src/core/fetch-http-request.d.ts +10 -0
  90. package/packages/algod_client/src/core/fetch-http-request.js +85 -0
  91. package/packages/algod_client/src/core/fetch-http-request.js.map +1 -0
  92. package/packages/algod_client/src/core/fetch-http-request.mjs +85 -0
  93. package/packages/algod_client/src/core/fetch-http-request.mjs.map +1 -0
  94. package/packages/algod_client/src/core/model-runtime.d.ts +10 -0
  95. package/packages/algod_client/src/core/model-runtime.js +25 -0
  96. package/packages/algod_client/src/core/model-runtime.js.map +1 -0
  97. package/packages/algod_client/src/core/model-runtime.mjs +22 -0
  98. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -0
  99. package/packages/algod_client/src/core/request.js +62 -0
  100. package/packages/algod_client/src/core/request.js.map +1 -0
  101. package/packages/algod_client/src/core/request.mjs +62 -0
  102. package/packages/algod_client/src/core/request.mjs.map +1 -0
  103. package/packages/algod_client/src/models/account-application-response.d.ts +15 -0
  104. package/packages/algod_client/src/models/account-application-response.js +34 -0
  105. package/packages/algod_client/src/models/account-application-response.js.map +1 -0
  106. package/packages/algod_client/src/models/account-application-response.mjs +34 -0
  107. package/packages/algod_client/src/models/account-application-response.mjs.map +1 -0
  108. package/packages/algod_client/src/models/account-asset-response.d.ts +15 -0
  109. package/packages/algod_client/src/models/account-asset-response.js +34 -0
  110. package/packages/algod_client/src/models/account-asset-response.js.map +1 -0
  111. package/packages/algod_client/src/models/account-asset-response.mjs +34 -0
  112. package/packages/algod_client/src/models/account-asset-response.mjs.map +1 -0
  113. package/packages/algod_client/src/models/account-participation.d.ts +33 -0
  114. package/packages/algod_client/src/models/account-participation.js +50 -0
  115. package/packages/algod_client/src/models/account-participation.js.map +1 -0
  116. package/packages/algod_client/src/models/account-participation.mjs +50 -0
  117. package/packages/algod_client/src/models/account-participation.mjs.map +1 -0
  118. package/packages/algod_client/src/models/account-state-delta.d.ts +15 -0
  119. package/packages/algod_client/src/models/account-state-delta.js +24 -0
  120. package/packages/algod_client/src/models/account-state-delta.js.map +1 -0
  121. package/packages/algod_client/src/models/account-state-delta.mjs +24 -0
  122. package/packages/algod_client/src/models/account-state-delta.mjs.map +1 -0
  123. package/packages/algod_client/src/models/account.d.ts +139 -0
  124. package/packages/algod_client/src/models/account.js +187 -0
  125. package/packages/algod_client/src/models/account.js.map +1 -0
  126. package/packages/algod_client/src/models/account.mjs +187 -0
  127. package/packages/algod_client/src/models/account.mjs.map +1 -0
  128. package/packages/algod_client/src/models/application-initial-states.d.ts +22 -0
  129. package/packages/algod_client/src/models/application-initial-states.js +40 -0
  130. package/packages/algod_client/src/models/application-initial-states.js.map +1 -0
  131. package/packages/algod_client/src/models/application-initial-states.mjs +40 -0
  132. package/packages/algod_client/src/models/application-initial-states.mjs.map +1 -0
  133. package/packages/algod_client/src/models/application-kv-storage.d.ts +21 -0
  134. package/packages/algod_client/src/models/application-kv-storage.js +25 -0
  135. package/packages/algod_client/src/models/application-kv-storage.js.map +1 -0
  136. package/packages/algod_client/src/models/application-kv-storage.mjs +25 -0
  137. package/packages/algod_client/src/models/application-kv-storage.mjs.map +1 -0
  138. package/packages/algod_client/src/models/application-local-state.d.ts +19 -0
  139. package/packages/algod_client/src/models/application-local-state.js +35 -0
  140. package/packages/algod_client/src/models/application-local-state.js.map +1 -0
  141. package/packages/algod_client/src/models/application-local-state.mjs +35 -0
  142. package/packages/algod_client/src/models/application-local-state.mjs.map +1 -0
  143. package/packages/algod_client/src/models/application-params.d.ts +37 -0
  144. package/packages/algod_client/src/models/application-params.js +67 -0
  145. package/packages/algod_client/src/models/application-params.js.map +1 -0
  146. package/packages/algod_client/src/models/application-params.mjs +67 -0
  147. package/packages/algod_client/src/models/application-params.mjs.map +1 -0
  148. package/packages/algod_client/src/models/application-state-operation.d.ts +30 -0
  149. package/packages/algod_client/src/models/application-state-operation.js +47 -0
  150. package/packages/algod_client/src/models/application-state-operation.js.map +1 -0
  151. package/packages/algod_client/src/models/application-state-operation.mjs +47 -0
  152. package/packages/algod_client/src/models/application-state-operation.mjs.map +1 -0
  153. package/packages/algod_client/src/models/application-state-schema.d.ts +17 -0
  154. package/packages/algod_client/src/models/application-state-schema.js +22 -0
  155. package/packages/algod_client/src/models/application-state-schema.js.map +1 -0
  156. package/packages/algod_client/src/models/application-state-schema.mjs +22 -0
  157. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -0
  158. package/packages/algod_client/src/models/application.d.ts +17 -0
  159. package/packages/algod_client/src/models/application.js +24 -0
  160. package/packages/algod_client/src/models/application.js.map +1 -0
  161. package/packages/algod_client/src/models/application.mjs +24 -0
  162. package/packages/algod_client/src/models/application.mjs.map +1 -0
  163. package/packages/algod_client/src/models/asset-holding.d.ts +24 -0
  164. package/packages/algod_client/src/models/asset-holding.js +32 -0
  165. package/packages/algod_client/src/models/asset-holding.js.map +1 -0
  166. package/packages/algod_client/src/models/asset-holding.mjs +32 -0
  167. package/packages/algod_client/src/models/asset-holding.mjs.map +1 -0
  168. package/packages/algod_client/src/models/asset-params.d.ts +74 -0
  169. package/packages/algod_client/src/models/asset-params.js +108 -0
  170. package/packages/algod_client/src/models/asset-params.js.map +1 -0
  171. package/packages/algod_client/src/models/asset-params.mjs +108 -0
  172. package/packages/algod_client/src/models/asset-params.mjs.map +1 -0
  173. package/packages/algod_client/src/models/asset.d.ts +17 -0
  174. package/packages/algod_client/src/models/asset.js +24 -0
  175. package/packages/algod_client/src/models/asset.js.map +1 -0
  176. package/packages/algod_client/src/models/asset.mjs +24 -0
  177. package/packages/algod_client/src/models/asset.mjs.map +1 -0
  178. package/packages/algod_client/src/models/avm-key-value.d.ts +14 -0
  179. package/packages/algod_client/src/models/avm-key-value.js +24 -0
  180. package/packages/algod_client/src/models/avm-key-value.js.map +1 -0
  181. package/packages/algod_client/src/models/avm-key-value.mjs +24 -0
  182. package/packages/algod_client/src/models/avm-key-value.mjs.map +1 -0
  183. package/packages/algod_client/src/models/avm-value.d.ts +21 -0
  184. package/packages/algod_client/src/models/avm-value.js +33 -0
  185. package/packages/algod_client/src/models/avm-value.js.map +1 -0
  186. package/packages/algod_client/src/models/avm-value.mjs +33 -0
  187. package/packages/algod_client/src/models/avm-value.mjs.map +1 -0
  188. package/packages/algod_client/src/models/block-hash-response.d.ts +10 -0
  189. package/packages/algod_client/src/models/block-hash-response.js +17 -0
  190. package/packages/algod_client/src/models/block-hash-response.js.map +1 -0
  191. package/packages/algod_client/src/models/block-hash-response.mjs +17 -0
  192. package/packages/algod_client/src/models/block-hash-response.mjs.map +1 -0
  193. package/packages/algod_client/src/models/block-response.d.ts +12 -0
  194. package/packages/algod_client/src/models/block-response.js +24 -0
  195. package/packages/algod_client/src/models/block-response.js.map +1 -0
  196. package/packages/algod_client/src/models/block-response.mjs +24 -0
  197. package/packages/algod_client/src/models/block-response.mjs.map +1 -0
  198. package/packages/algod_client/src/models/block-txids-response.d.ts +10 -0
  199. package/packages/algod_client/src/models/block-txids-response.js +17 -0
  200. package/packages/algod_client/src/models/block-txids-response.js.map +1 -0
  201. package/packages/algod_client/src/models/block-txids-response.mjs +17 -0
  202. package/packages/algod_client/src/models/block-txids-response.mjs.map +1 -0
  203. package/packages/algod_client/src/models/block.d.ts +166 -0
  204. package/packages/algod_client/src/models/block.js +491 -0
  205. package/packages/algod_client/src/models/block.js.map +1 -0
  206. package/packages/algod_client/src/models/block.mjs +491 -0
  207. package/packages/algod_client/src/models/block.mjs.map +1 -0
  208. package/packages/algod_client/src/models/box-descriptor.d.ts +13 -0
  209. package/packages/algod_client/src/models/box-descriptor.js +17 -0
  210. package/packages/algod_client/src/models/box-descriptor.js.map +1 -0
  211. package/packages/algod_client/src/models/box-descriptor.mjs +17 -0
  212. package/packages/algod_client/src/models/box-descriptor.mjs.map +1 -0
  213. package/packages/algod_client/src/models/box.d.ts +21 -0
  214. package/packages/algod_client/src/models/box.js +32 -0
  215. package/packages/algod_client/src/models/box.js.map +1 -0
  216. package/packages/algod_client/src/models/box.mjs +32 -0
  217. package/packages/algod_client/src/models/box.mjs.map +1 -0
  218. package/packages/algod_client/src/models/boxes-response.d.ts +9 -0
  219. package/packages/algod_client/src/models/boxes-response.js +19 -0
  220. package/packages/algod_client/src/models/boxes-response.js.map +1 -0
  221. package/packages/algod_client/src/models/boxes-response.mjs +19 -0
  222. package/packages/algod_client/src/models/boxes-response.mjs.map +1 -0
  223. package/packages/algod_client/src/models/build-version.d.ts +12 -0
  224. package/packages/algod_client/src/models/build-version.js +50 -0
  225. package/packages/algod_client/src/models/build-version.js.map +1 -0
  226. package/packages/algod_client/src/models/build-version.mjs +50 -0
  227. package/packages/algod_client/src/models/build-version.mjs.map +1 -0
  228. package/packages/algod_client/src/models/compile-response.d.ts +17 -0
  229. package/packages/algod_client/src/models/compile-response.js +33 -0
  230. package/packages/algod_client/src/models/compile-response.js.map +1 -0
  231. package/packages/algod_client/src/models/compile-response.mjs +33 -0
  232. package/packages/algod_client/src/models/compile-response.mjs.map +1 -0
  233. package/packages/algod_client/src/models/disassemble-response.d.ts +10 -0
  234. package/packages/algod_client/src/models/disassemble-response.js +17 -0
  235. package/packages/algod_client/src/models/disassemble-response.js.map +1 -0
  236. package/packages/algod_client/src/models/disassemble-response.mjs +17 -0
  237. package/packages/algod_client/src/models/disassemble-response.mjs.map +1 -0
  238. package/packages/algod_client/src/models/eval-delta-key-value.d.ts +14 -0
  239. package/packages/algod_client/src/models/eval-delta-key-value.js +24 -0
  240. package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -0
  241. package/packages/algod_client/src/models/eval-delta-key-value.mjs +24 -0
  242. package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -0
  243. package/packages/algod_client/src/models/eval-delta.d.ts +21 -0
  244. package/packages/algod_client/src/models/eval-delta.js +33 -0
  245. package/packages/algod_client/src/models/eval-delta.js.map +1 -0
  246. package/packages/algod_client/src/models/eval-delta.mjs +33 -0
  247. package/packages/algod_client/src/models/eval-delta.mjs.map +1 -0
  248. package/packages/algod_client/src/models/genesis-allocation.d.ts +18 -0
  249. package/packages/algod_client/src/models/genesis-allocation.js +88 -0
  250. package/packages/algod_client/src/models/genesis-allocation.js.map +1 -0
  251. package/packages/algod_client/src/models/genesis-allocation.mjs +88 -0
  252. package/packages/algod_client/src/models/genesis-allocation.mjs.map +1 -0
  253. package/packages/algod_client/src/models/genesis.d.ts +17 -0
  254. package/packages/algod_client/src/models/genesis.js +72 -0
  255. package/packages/algod_client/src/models/genesis.js.map +1 -0
  256. package/packages/algod_client/src/models/genesis.mjs +72 -0
  257. package/packages/algod_client/src/models/genesis.mjs.map +1 -0
  258. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.d.ts +10 -0
  259. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js +17 -0
  260. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js.map +1 -0
  261. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs +17 -0
  262. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs.map +1 -0
  263. package/packages/algod_client/src/models/get-sync-round-response.d.ts +10 -0
  264. package/packages/algod_client/src/models/get-sync-round-response.js +17 -0
  265. package/packages/algod_client/src/models/get-sync-round-response.js.map +1 -0
  266. package/packages/algod_client/src/models/get-sync-round-response.mjs +17 -0
  267. package/packages/algod_client/src/models/get-sync-round-response.mjs.map +1 -0
  268. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.d.ts +14 -0
  269. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js +24 -0
  270. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js.map +1 -0
  271. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs +24 -0
  272. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs.map +1 -0
  273. package/packages/algod_client/src/models/ledger-state-delta.d.ts +351 -0
  274. package/packages/algod_client/src/models/ledger-state-delta.js +688 -0
  275. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -0
  276. package/packages/algod_client/src/models/ledger-state-delta.mjs +688 -0
  277. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -0
  278. package/packages/algod_client/src/models/light-block-header-proof.d.ts +21 -0
  279. package/packages/algod_client/src/models/light-block-header-proof.js +32 -0
  280. package/packages/algod_client/src/models/light-block-header-proof.js.map +1 -0
  281. package/packages/algod_client/src/models/light-block-header-proof.mjs +32 -0
  282. package/packages/algod_client/src/models/light-block-header-proof.mjs.map +1 -0
  283. package/packages/algod_client/src/models/node-status-response.d.ts +113 -0
  284. package/packages/algod_client/src/models/node-status-response.js +172 -0
  285. package/packages/algod_client/src/models/node-status-response.js.map +1 -0
  286. package/packages/algod_client/src/models/node-status-response.mjs +172 -0
  287. package/packages/algod_client/src/models/node-status-response.mjs.map +1 -0
  288. package/packages/algod_client/src/models/pending-transaction-response.d.ts +67 -0
  289. package/packages/algod_client/src/models/pending-transaction-response.js +104 -0
  290. package/packages/algod_client/src/models/pending-transaction-response.js.map +1 -0
  291. package/packages/algod_client/src/models/pending-transaction-response.mjs +104 -0
  292. package/packages/algod_client/src/models/pending-transaction-response.mjs.map +1 -0
  293. package/packages/algod_client/src/models/pending-transactions-response.d.ts +20 -0
  294. package/packages/algod_client/src/models/pending-transactions-response.js +25 -0
  295. package/packages/algod_client/src/models/pending-transactions-response.js.map +1 -0
  296. package/packages/algod_client/src/models/pending-transactions-response.mjs +25 -0
  297. package/packages/algod_client/src/models/pending-transactions-response.mjs.map +1 -0
  298. package/packages/algod_client/src/models/post-transactions-response.d.ts +10 -0
  299. package/packages/algod_client/src/models/post-transactions-response.js +17 -0
  300. package/packages/algod_client/src/models/post-transactions-response.js.map +1 -0
  301. package/packages/algod_client/src/models/post-transactions-response.mjs +17 -0
  302. package/packages/algod_client/src/models/post-transactions-response.mjs.map +1 -0
  303. package/packages/algod_client/src/models/scratch-change.d.ts +17 -0
  304. package/packages/algod_client/src/models/scratch-change.js +24 -0
  305. package/packages/algod_client/src/models/scratch-change.js.map +1 -0
  306. package/packages/algod_client/src/models/scratch-change.mjs +24 -0
  307. package/packages/algod_client/src/models/scratch-change.mjs.map +1 -0
  308. package/packages/algod_client/src/models/simulate-initial-states.d.ts +16 -0
  309. package/packages/algod_client/src/models/simulate-initial-states.js +19 -0
  310. package/packages/algod_client/src/models/simulate-initial-states.js.map +1 -0
  311. package/packages/algod_client/src/models/simulate-initial-states.mjs +19 -0
  312. package/packages/algod_client/src/models/simulate-initial-states.mjs.map +1 -0
  313. package/packages/algod_client/src/models/simulate-request-transaction-group.d.ts +16 -0
  314. package/packages/algod_client/src/models/simulate-request-transaction-group.js +19 -0
  315. package/packages/algod_client/src/models/simulate-request-transaction-group.js.map +1 -0
  316. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs +19 -0
  317. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs.map +1 -0
  318. package/packages/algod_client/src/models/simulate-request.d.ts +42 -0
  319. package/packages/algod_client/src/models/simulate-request.js +67 -0
  320. package/packages/algod_client/src/models/simulate-request.js.map +1 -0
  321. package/packages/algod_client/src/models/simulate-request.mjs +67 -0
  322. package/packages/algod_client/src/models/simulate-request.mjs.map +1 -0
  323. package/packages/algod_client/src/models/simulate-response.d.ts +26 -0
  324. package/packages/algod_client/src/models/simulate-response.js +56 -0
  325. package/packages/algod_client/src/models/simulate-response.js.map +1 -0
  326. package/packages/algod_client/src/models/simulate-response.mjs +56 -0
  327. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -0
  328. package/packages/algod_client/src/models/simulate-trace-config.d.ts +25 -0
  329. package/packages/algod_client/src/models/simulate-trace-config.js +37 -0
  330. package/packages/algod_client/src/models/simulate-trace-config.js.map +1 -0
  331. package/packages/algod_client/src/models/simulate-trace-config.mjs +37 -0
  332. package/packages/algod_client/src/models/simulate-trace-config.mjs.map +1 -0
  333. package/packages/algod_client/src/models/simulate-transaction-group-result.d.ts +34 -0
  334. package/packages/algod_client/src/models/simulate-transaction-group-result.js +54 -0
  335. package/packages/algod_client/src/models/simulate-transaction-group-result.js.map +1 -0
  336. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs +54 -0
  337. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs.map +1 -0
  338. package/packages/algod_client/src/models/simulate-transaction-result.d.ts +30 -0
  339. package/packages/algod_client/src/models/simulate-transaction-result.js +54 -0
  340. package/packages/algod_client/src/models/simulate-transaction-result.js.map +1 -0
  341. package/packages/algod_client/src/models/simulate-transaction-result.mjs +54 -0
  342. package/packages/algod_client/src/models/simulate-transaction-result.mjs.map +1 -0
  343. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +41 -0
  344. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +58 -0
  345. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -0
  346. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +58 -0
  347. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -0
  348. package/packages/algod_client/src/models/simulation-eval-overrides.d.ts +33 -0
  349. package/packages/algod_client/src/models/simulation-eval-overrides.js +50 -0
  350. package/packages/algod_client/src/models/simulation-eval-overrides.js.map +1 -0
  351. package/packages/algod_client/src/models/simulation-eval-overrides.mjs +50 -0
  352. package/packages/algod_client/src/models/simulation-eval-overrides.mjs.map +1 -0
  353. package/packages/algod_client/src/models/simulation-opcode-trace-unit.d.ts +38 -0
  354. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js +54 -0
  355. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js.map +1 -0
  356. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs +54 -0
  357. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs.map +1 -0
  358. package/packages/algod_client/src/models/simulation-transaction-exec-trace.d.ts +48 -0
  359. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js +72 -0
  360. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js.map +1 -0
  361. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs +72 -0
  362. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs.map +1 -0
  363. package/packages/algod_client/src/models/source-map.d.ts +22 -0
  364. package/packages/algod_client/src/models/source-map.js +39 -0
  365. package/packages/algod_client/src/models/source-map.js.map +1 -0
  366. package/packages/algod_client/src/models/source-map.mjs +39 -0
  367. package/packages/algod_client/src/models/source-map.mjs.map +1 -0
  368. package/packages/algod_client/src/models/state-delta.d.ts +11 -0
  369. package/packages/algod_client/src/models/state-delta.js +14 -0
  370. package/packages/algod_client/src/models/state-delta.js.map +1 -0
  371. package/packages/algod_client/src/models/state-delta.mjs +14 -0
  372. package/packages/algod_client/src/models/state-delta.mjs.map +1 -0
  373. package/packages/algod_client/src/models/state-proof-message.d.ts +29 -0
  374. package/packages/algod_client/src/models/state-proof-message.js +44 -0
  375. package/packages/algod_client/src/models/state-proof-message.js.map +1 -0
  376. package/packages/algod_client/src/models/state-proof-message.mjs +44 -0
  377. package/packages/algod_client/src/models/state-proof-message.mjs.map +1 -0
  378. package/packages/algod_client/src/models/state-proof.d.ts +17 -0
  379. package/packages/algod_client/src/models/state-proof.js +24 -0
  380. package/packages/algod_client/src/models/state-proof.js.map +1 -0
  381. package/packages/algod_client/src/models/state-proof.mjs +24 -0
  382. package/packages/algod_client/src/models/state-proof.mjs.map +1 -0
  383. package/packages/algod_client/src/models/suggested-params.d.ts +14 -0
  384. package/packages/algod_client/src/models/supply-response.d.ts +21 -0
  385. package/packages/algod_client/src/models/supply-response.js +31 -0
  386. package/packages/algod_client/src/models/supply-response.js.map +1 -0
  387. package/packages/algod_client/src/models/supply-response.mjs +31 -0
  388. package/packages/algod_client/src/models/supply-response.mjs.map +1 -0
  389. package/packages/algod_client/src/models/teal-key-value-store.d.ts +11 -0
  390. package/packages/algod_client/src/models/teal-key-value-store.js +14 -0
  391. package/packages/algod_client/src/models/teal-key-value-store.js.map +1 -0
  392. package/packages/algod_client/src/models/teal-key-value-store.mjs +14 -0
  393. package/packages/algod_client/src/models/teal-key-value-store.mjs.map +1 -0
  394. package/packages/algod_client/src/models/teal-key-value.d.ts +14 -0
  395. package/packages/algod_client/src/models/teal-key-value.js +24 -0
  396. package/packages/algod_client/src/models/teal-key-value.js.map +1 -0
  397. package/packages/algod_client/src/models/teal-key-value.mjs +24 -0
  398. package/packages/algod_client/src/models/teal-key-value.mjs.map +1 -0
  399. package/packages/algod_client/src/models/teal-value.d.ts +21 -0
  400. package/packages/algod_client/src/models/teal-value.js +33 -0
  401. package/packages/algod_client/src/models/teal-value.js.map +1 -0
  402. package/packages/algod_client/src/models/teal-value.mjs +33 -0
  403. package/packages/algod_client/src/models/teal-value.mjs.map +1 -0
  404. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.d.ts +9 -0
  405. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js +19 -0
  406. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js.map +1 -0
  407. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs +19 -0
  408. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs.map +1 -0
  409. package/packages/algod_client/src/models/transaction-parameters-response.d.ts +39 -0
  410. package/packages/algod_client/src/models/transaction-parameters-response.js +51 -0
  411. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -0
  412. package/packages/algod_client/src/models/transaction-parameters-response.mjs +51 -0
  413. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -0
  414. package/packages/algod_client/src/models/transaction-proof.d.ts +31 -0
  415. package/packages/algod_client/src/models/transaction-proof.js +45 -0
  416. package/packages/algod_client/src/models/transaction-proof.js.map +1 -0
  417. package/packages/algod_client/src/models/transaction-proof.mjs +45 -0
  418. package/packages/algod_client/src/models/transaction-proof.mjs.map +1 -0
  419. package/packages/algod_client/src/models/version.d.ts +16 -0
  420. package/packages/algod_client/src/models/version.js +41 -0
  421. package/packages/algod_client/src/models/version.js.map +1 -0
  422. package/packages/algod_client/src/models/version.mjs +41 -0
  423. package/packages/algod_client/src/models/version.mjs.map +1 -0
  424. package/packages/common/src/address.d.ts +71 -0
  425. package/packages/common/src/address.js +142 -0
  426. package/packages/common/src/address.js.map +1 -0
  427. package/packages/common/src/address.mjs +131 -0
  428. package/packages/common/src/address.mjs.map +1 -0
  429. package/packages/common/src/array.js +21 -0
  430. package/packages/common/src/array.js.map +1 -0
  431. package/packages/common/src/array.mjs +19 -0
  432. package/packages/common/src/array.mjs.map +1 -0
  433. package/packages/common/src/codecs/codec.d.ts +71 -0
  434. package/packages/common/src/codecs/codec.js +87 -0
  435. package/packages/common/src/codecs/codec.js.map +1 -0
  436. package/packages/common/src/codecs/codec.mjs +86 -0
  437. package/packages/common/src/codecs/codec.mjs.map +1 -0
  438. package/packages/common/src/codecs/composite/array.js +45 -0
  439. package/packages/common/src/codecs/composite/array.js.map +1 -0
  440. package/packages/common/src/codecs/composite/array.mjs +40 -0
  441. package/packages/common/src/codecs/composite/array.mjs.map +1 -0
  442. package/packages/common/src/codecs/composite/map.js +68 -0
  443. package/packages/common/src/codecs/composite/map.js.map +1 -0
  444. package/packages/common/src/codecs/composite/map.mjs +68 -0
  445. package/packages/common/src/codecs/composite/map.mjs.map +1 -0
  446. package/packages/common/src/codecs/composite/record.js +40 -0
  447. package/packages/common/src/codecs/composite/record.js.map +1 -0
  448. package/packages/common/src/codecs/composite/record.mjs +39 -0
  449. package/packages/common/src/codecs/composite/record.mjs.map +1 -0
  450. package/packages/common/src/codecs/models/array-model.js +36 -0
  451. package/packages/common/src/codecs/models/array-model.js.map +1 -0
  452. package/packages/common/src/codecs/models/array-model.mjs +36 -0
  453. package/packages/common/src/codecs/models/array-model.mjs.map +1 -0
  454. package/packages/common/src/codecs/models/object-model.d.ts +22 -0
  455. package/packages/common/src/codecs/models/object-model.js +87 -0
  456. package/packages/common/src/codecs/models/object-model.js.map +1 -0
  457. package/packages/common/src/codecs/models/object-model.mjs +87 -0
  458. package/packages/common/src/codecs/models/object-model.mjs.map +1 -0
  459. package/packages/common/src/codecs/models/primitive-model.js +36 -0
  460. package/packages/common/src/codecs/models/primitive-model.js.map +1 -0
  461. package/packages/common/src/codecs/models/primitive-model.mjs +36 -0
  462. package/packages/common/src/codecs/models/primitive-model.mjs.map +1 -0
  463. package/packages/common/src/codecs/primitives/address.js +32 -0
  464. package/packages/common/src/codecs/primitives/address.js.map +1 -0
  465. package/packages/common/src/codecs/primitives/address.mjs +31 -0
  466. package/packages/common/src/codecs/primitives/address.mjs.map +1 -0
  467. package/packages/common/src/codecs/primitives/bigint.js +18 -0
  468. package/packages/common/src/codecs/primitives/bigint.js.map +1 -0
  469. package/packages/common/src/codecs/primitives/bigint.mjs +18 -0
  470. package/packages/common/src/codecs/primitives/bigint.mjs.map +1 -0
  471. package/packages/common/src/codecs/primitives/boolean.js +13 -0
  472. package/packages/common/src/codecs/primitives/boolean.js.map +1 -0
  473. package/packages/common/src/codecs/primitives/boolean.mjs +13 -0
  474. package/packages/common/src/codecs/primitives/boolean.mjs.map +1 -0
  475. package/packages/common/src/codecs/primitives/bytes.js +27 -0
  476. package/packages/common/src/codecs/primitives/bytes.js.map +1 -0
  477. package/packages/common/src/codecs/primitives/bytes.mjs +26 -0
  478. package/packages/common/src/codecs/primitives/bytes.mjs.map +1 -0
  479. package/packages/common/src/codecs/primitives/fixed-bytes.js +36 -0
  480. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -0
  481. package/packages/common/src/codecs/primitives/fixed-bytes.mjs +33 -0
  482. package/packages/common/src/codecs/primitives/fixed-bytes.mjs.map +1 -0
  483. package/packages/common/src/codecs/primitives/number.js +16 -0
  484. package/packages/common/src/codecs/primitives/number.js.map +1 -0
  485. package/packages/common/src/codecs/primitives/number.mjs +16 -0
  486. package/packages/common/src/codecs/primitives/number.mjs.map +1 -0
  487. package/packages/common/src/codecs/primitives/string.js +17 -0
  488. package/packages/common/src/codecs/primitives/string.js.map +1 -0
  489. package/packages/common/src/codecs/primitives/string.mjs +17 -0
  490. package/packages/common/src/codecs/primitives/string.mjs.map +1 -0
  491. package/packages/common/src/codecs/primitives/unknown.js +58 -0
  492. package/packages/common/src/codecs/primitives/unknown.js.map +1 -0
  493. package/packages/common/src/codecs/primitives/unknown.mjs +58 -0
  494. package/packages/common/src/codecs/primitives/unknown.mjs.map +1 -0
  495. package/packages/common/src/codecs/types.d.ts +27 -0
  496. package/packages/common/src/codecs/wire.d.ts +15 -0
  497. package/packages/common/src/codecs/wire.js +23 -0
  498. package/packages/common/src/codecs/wire.js.map +1 -0
  499. package/packages/common/src/codecs/wire.mjs +21 -0
  500. package/packages/common/src/codecs/wire.mjs.map +1 -0
  501. package/packages/common/src/constants.js +63 -0
  502. package/packages/common/src/constants.js.map +1 -0
  503. package/packages/common/src/constants.mjs +34 -0
  504. package/packages/common/src/constants.mjs.map +1 -0
  505. package/packages/common/src/crypto.js +13 -0
  506. package/packages/common/src/crypto.js.map +1 -0
  507. package/packages/common/src/crypto.mjs +11 -0
  508. package/packages/common/src/crypto.mjs.map +1 -0
  509. package/packages/common/src/expand.d.ts +9 -0
  510. package/packages/common/src/json.js +38 -0
  511. package/packages/common/src/json.js.map +1 -0
  512. package/packages/common/src/json.mjs +35 -0
  513. package/packages/common/src/json.mjs.map +1 -0
  514. package/packages/common/src/logger.d.ts +12 -0
  515. package/packages/common/src/msgpack.js +25 -0
  516. package/packages/common/src/msgpack.js.map +1 -0
  517. package/packages/common/src/msgpack.mjs +23 -0
  518. package/packages/common/src/msgpack.mjs.map +1 -0
  519. package/packages/indexer_client/src/apis/api-service.d.ts +251 -0
  520. package/packages/indexer_client/src/apis/api-service.js +482 -0
  521. package/packages/indexer_client/src/apis/api-service.js.map +1 -0
  522. package/packages/indexer_client/src/apis/api-service.mjs +482 -0
  523. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -0
  524. package/packages/indexer_client/src/client.d.ts +10 -0
  525. package/packages/indexer_client/src/client.js +13 -0
  526. package/packages/indexer_client/src/client.js.map +1 -0
  527. package/packages/indexer_client/src/client.mjs +13 -0
  528. package/packages/indexer_client/src/client.mjs.map +1 -0
  529. package/packages/indexer_client/src/core/api-error.d.ts +10 -0
  530. package/packages/indexer_client/src/core/api-error.js +19 -0
  531. package/packages/indexer_client/src/core/api-error.js.map +1 -0
  532. package/packages/indexer_client/src/core/api-error.mjs +18 -0
  533. package/packages/indexer_client/src/core/api-error.mjs.map +1 -0
  534. package/packages/indexer_client/src/core/base-http-request.d.ts +25 -0
  535. package/packages/indexer_client/src/core/base-http-request.js +16 -0
  536. package/packages/indexer_client/src/core/base-http-request.js.map +1 -0
  537. package/packages/indexer_client/src/core/base-http-request.mjs +14 -0
  538. package/packages/indexer_client/src/core/base-http-request.mjs.map +1 -0
  539. package/packages/indexer_client/src/core/client-config.d.ts +17 -0
  540. package/packages/indexer_client/src/core/fetch-http-request.d.ts +10 -0
  541. package/packages/indexer_client/src/core/fetch-http-request.js +85 -0
  542. package/packages/indexer_client/src/core/fetch-http-request.js.map +1 -0
  543. package/packages/indexer_client/src/core/fetch-http-request.mjs +85 -0
  544. package/packages/indexer_client/src/core/fetch-http-request.mjs.map +1 -0
  545. package/packages/indexer_client/src/core/model-runtime.d.ts +10 -0
  546. package/packages/indexer_client/src/core/model-runtime.js +25 -0
  547. package/packages/indexer_client/src/core/model-runtime.js.map +1 -0
  548. package/packages/indexer_client/src/core/model-runtime.mjs +22 -0
  549. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -0
  550. package/packages/indexer_client/src/core/request.js +62 -0
  551. package/packages/indexer_client/src/core/request.js.map +1 -0
  552. package/packages/indexer_client/src/core/request.mjs +62 -0
  553. package/packages/indexer_client/src/core/request.mjs.map +1 -0
  554. package/packages/indexer_client/src/models/account-participation.d.ts +33 -0
  555. package/packages/indexer_client/src/models/account-participation.js +50 -0
  556. package/packages/indexer_client/src/models/account-participation.js.map +1 -0
  557. package/packages/indexer_client/src/models/account-participation.mjs +50 -0
  558. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -0
  559. package/packages/indexer_client/src/models/account-response.d.ts +13 -0
  560. package/packages/indexer_client/src/models/account-response.js +24 -0
  561. package/packages/indexer_client/src/models/account-response.js.map +1 -0
  562. package/packages/indexer_client/src/models/account-response.mjs +24 -0
  563. package/packages/indexer_client/src/models/account-response.mjs.map +1 -0
  564. package/packages/indexer_client/src/models/account-state-delta.d.ts +14 -0
  565. package/packages/indexer_client/src/models/account-state-delta.js +24 -0
  566. package/packages/indexer_client/src/models/account-state-delta.js.map +1 -0
  567. package/packages/indexer_client/src/models/account-state-delta.mjs +24 -0
  568. package/packages/indexer_client/src/models/account-state-delta.mjs.map +1 -0
  569. package/packages/indexer_client/src/models/account.d.ts +152 -0
  570. package/packages/indexer_client/src/models/account.js +205 -0
  571. package/packages/indexer_client/src/models/account.js.map +1 -0
  572. package/packages/indexer_client/src/models/account.mjs +205 -0
  573. package/packages/indexer_client/src/models/account.mjs.map +1 -0
  574. package/packages/indexer_client/src/models/accounts-response.d.ts +17 -0
  575. package/packages/indexer_client/src/models/accounts-response.js +35 -0
  576. package/packages/indexer_client/src/models/accounts-response.js.map +1 -0
  577. package/packages/indexer_client/src/models/accounts-response.mjs +35 -0
  578. package/packages/indexer_client/src/models/accounts-response.mjs.map +1 -0
  579. package/packages/indexer_client/src/models/application-local-state.d.ts +31 -0
  580. package/packages/indexer_client/src/models/application-local-state.js +54 -0
  581. package/packages/indexer_client/src/models/application-local-state.js.map +1 -0
  582. package/packages/indexer_client/src/models/application-local-state.mjs +54 -0
  583. package/packages/indexer_client/src/models/application-local-state.mjs.map +1 -0
  584. package/packages/indexer_client/src/models/application-local-states-response.d.ts +17 -0
  585. package/packages/indexer_client/src/models/application-local-states-response.js +35 -0
  586. package/packages/indexer_client/src/models/application-local-states-response.js.map +1 -0
  587. package/packages/indexer_client/src/models/application-local-states-response.mjs +35 -0
  588. package/packages/indexer_client/src/models/application-local-states-response.mjs.map +1 -0
  589. package/packages/indexer_client/src/models/application-log-data.d.ts +17 -0
  590. package/packages/indexer_client/src/models/application-log-data.js +23 -0
  591. package/packages/indexer_client/src/models/application-log-data.js.map +1 -0
  592. package/packages/indexer_client/src/models/application-log-data.mjs +23 -0
  593. package/packages/indexer_client/src/models/application-log-data.mjs.map +1 -0
  594. package/packages/indexer_client/src/models/application-logs-response.d.ts +21 -0
  595. package/packages/indexer_client/src/models/application-logs-response.js +41 -0
  596. package/packages/indexer_client/src/models/application-logs-response.js.map +1 -0
  597. package/packages/indexer_client/src/models/application-logs-response.mjs +41 -0
  598. package/packages/indexer_client/src/models/application-logs-response.mjs.map +1 -0
  599. package/packages/indexer_client/src/models/application-params.d.ts +37 -0
  600. package/packages/indexer_client/src/models/application-params.js +67 -0
  601. package/packages/indexer_client/src/models/application-params.js.map +1 -0
  602. package/packages/indexer_client/src/models/application-params.mjs +67 -0
  603. package/packages/indexer_client/src/models/application-params.mjs.map +1 -0
  604. package/packages/indexer_client/src/models/application-response.d.ts +13 -0
  605. package/packages/indexer_client/src/models/application-response.js +24 -0
  606. package/packages/indexer_client/src/models/application-response.js.map +1 -0
  607. package/packages/indexer_client/src/models/application-response.mjs +24 -0
  608. package/packages/indexer_client/src/models/application-response.mjs.map +1 -0
  609. package/packages/indexer_client/src/models/application-state-schema.d.ts +17 -0
  610. package/packages/indexer_client/src/models/application-state-schema.js +22 -0
  611. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -0
  612. package/packages/indexer_client/src/models/application-state-schema.mjs +22 -0
  613. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -0
  614. package/packages/indexer_client/src/models/application.d.ts +29 -0
  615. package/packages/indexer_client/src/models/application.js +46 -0
  616. package/packages/indexer_client/src/models/application.js.map +1 -0
  617. package/packages/indexer_client/src/models/application.mjs +46 -0
  618. package/packages/indexer_client/src/models/application.mjs.map +1 -0
  619. package/packages/indexer_client/src/models/applications-response.d.ts +17 -0
  620. package/packages/indexer_client/src/models/applications-response.js +35 -0
  621. package/packages/indexer_client/src/models/applications-response.js.map +1 -0
  622. package/packages/indexer_client/src/models/applications-response.mjs +35 -0
  623. package/packages/indexer_client/src/models/applications-response.mjs.map +1 -0
  624. package/packages/indexer_client/src/models/asset-balances-response.d.ts +17 -0
  625. package/packages/indexer_client/src/models/asset-balances-response.js +35 -0
  626. package/packages/indexer_client/src/models/asset-balances-response.js.map +1 -0
  627. package/packages/indexer_client/src/models/asset-balances-response.mjs +35 -0
  628. package/packages/indexer_client/src/models/asset-balances-response.mjs.map +1 -0
  629. package/packages/indexer_client/src/models/asset-holding.d.ts +36 -0
  630. package/packages/indexer_client/src/models/asset-holding.js +50 -0
  631. package/packages/indexer_client/src/models/asset-holding.js.map +1 -0
  632. package/packages/indexer_client/src/models/asset-holding.mjs +50 -0
  633. package/packages/indexer_client/src/models/asset-holding.mjs.map +1 -0
  634. package/packages/indexer_client/src/models/asset-holdings-response.d.ts +17 -0
  635. package/packages/indexer_client/src/models/asset-holdings-response.js +35 -0
  636. package/packages/indexer_client/src/models/asset-holdings-response.js.map +1 -0
  637. package/packages/indexer_client/src/models/asset-holdings-response.mjs +35 -0
  638. package/packages/indexer_client/src/models/asset-holdings-response.mjs.map +1 -0
  639. package/packages/indexer_client/src/models/asset-params.d.ts +74 -0
  640. package/packages/indexer_client/src/models/asset-params.js +108 -0
  641. package/packages/indexer_client/src/models/asset-params.js.map +1 -0
  642. package/packages/indexer_client/src/models/asset-params.mjs +108 -0
  643. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -0
  644. package/packages/indexer_client/src/models/asset-response.d.ts +13 -0
  645. package/packages/indexer_client/src/models/asset-response.js +24 -0
  646. package/packages/indexer_client/src/models/asset-response.js.map +1 -0
  647. package/packages/indexer_client/src/models/asset-response.mjs +24 -0
  648. package/packages/indexer_client/src/models/asset-response.mjs.map +1 -0
  649. package/packages/indexer_client/src/models/asset.d.ts +29 -0
  650. package/packages/indexer_client/src/models/asset.js +46 -0
  651. package/packages/indexer_client/src/models/asset.js.map +1 -0
  652. package/packages/indexer_client/src/models/asset.mjs +46 -0
  653. package/packages/indexer_client/src/models/asset.mjs.map +1 -0
  654. package/packages/indexer_client/src/models/assets-response.d.ts +17 -0
  655. package/packages/indexer_client/src/models/assets-response.js +35 -0
  656. package/packages/indexer_client/src/models/assets-response.js.map +1 -0
  657. package/packages/indexer_client/src/models/assets-response.mjs +35 -0
  658. package/packages/indexer_client/src/models/assets-response.mjs.map +1 -0
  659. package/packages/indexer_client/src/models/block-headers-response.d.ts +17 -0
  660. package/packages/indexer_client/src/models/block-headers-response.js +35 -0
  661. package/packages/indexer_client/src/models/block-headers-response.js.map +1 -0
  662. package/packages/indexer_client/src/models/block-headers-response.mjs +35 -0
  663. package/packages/indexer_client/src/models/block-headers-response.mjs.map +1 -0
  664. package/packages/indexer_client/src/models/block-rewards.d.ts +33 -0
  665. package/packages/indexer_client/src/models/block-rewards.js +50 -0
  666. package/packages/indexer_client/src/models/block-rewards.js.map +1 -0
  667. package/packages/indexer_client/src/models/block-rewards.mjs +50 -0
  668. package/packages/indexer_client/src/models/block-rewards.mjs.map +1 -0
  669. package/packages/indexer_client/src/models/block-upgrade-state.d.ts +29 -0
  670. package/packages/indexer_client/src/models/block-upgrade-state.js +45 -0
  671. package/packages/indexer_client/src/models/block-upgrade-state.js.map +1 -0
  672. package/packages/indexer_client/src/models/block-upgrade-state.mjs +45 -0
  673. package/packages/indexer_client/src/models/block-upgrade-state.mjs.map +1 -0
  674. package/packages/indexer_client/src/models/block-upgrade-vote.d.ts +21 -0
  675. package/packages/indexer_client/src/models/block-upgrade-vote.js +33 -0
  676. package/packages/indexer_client/src/models/block-upgrade-vote.js.map +1 -0
  677. package/packages/indexer_client/src/models/block-upgrade-vote.mjs +33 -0
  678. package/packages/indexer_client/src/models/block-upgrade-vote.mjs.map +1 -0
  679. package/packages/indexer_client/src/models/block.d.ts +95 -0
  680. package/packages/indexer_client/src/models/block.js +151 -0
  681. package/packages/indexer_client/src/models/block.js.map +1 -0
  682. package/packages/indexer_client/src/models/block.mjs +151 -0
  683. package/packages/indexer_client/src/models/block.mjs.map +1 -0
  684. package/packages/indexer_client/src/models/box-descriptor.d.ts +13 -0
  685. package/packages/indexer_client/src/models/box-descriptor.js +17 -0
  686. package/packages/indexer_client/src/models/box-descriptor.js.map +1 -0
  687. package/packages/indexer_client/src/models/box-descriptor.mjs +17 -0
  688. package/packages/indexer_client/src/models/box-descriptor.mjs.map +1 -0
  689. package/packages/indexer_client/src/models/box-reference.d.ts +17 -0
  690. package/packages/indexer_client/src/models/box-reference.js +23 -0
  691. package/packages/indexer_client/src/models/box-reference.js.map +1 -0
  692. package/packages/indexer_client/src/models/box-reference.mjs +23 -0
  693. package/packages/indexer_client/src/models/box-reference.mjs.map +1 -0
  694. package/packages/indexer_client/src/models/box.d.ts +21 -0
  695. package/packages/indexer_client/src/models/box.js +32 -0
  696. package/packages/indexer_client/src/models/box.js.map +1 -0
  697. package/packages/indexer_client/src/models/box.mjs +32 -0
  698. package/packages/indexer_client/src/models/box.mjs.map +1 -0
  699. package/packages/indexer_client/src/models/boxes-response.d.ts +17 -0
  700. package/packages/indexer_client/src/models/boxes-response.js +35 -0
  701. package/packages/indexer_client/src/models/boxes-response.js.map +1 -0
  702. package/packages/indexer_client/src/models/boxes-response.mjs +35 -0
  703. package/packages/indexer_client/src/models/boxes-response.mjs.map +1 -0
  704. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +14 -0
  705. package/packages/indexer_client/src/models/eval-delta-key-value.js +24 -0
  706. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -0
  707. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +24 -0
  708. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -0
  709. package/packages/indexer_client/src/models/eval-delta.d.ts +21 -0
  710. package/packages/indexer_client/src/models/eval-delta.js +33 -0
  711. package/packages/indexer_client/src/models/eval-delta.js.map +1 -0
  712. package/packages/indexer_client/src/models/eval-delta.mjs +33 -0
  713. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -0
  714. package/packages/indexer_client/src/models/hash-factory.d.ts +10 -0
  715. package/packages/indexer_client/src/models/hash-factory.js +17 -0
  716. package/packages/indexer_client/src/models/hash-factory.js.map +1 -0
  717. package/packages/indexer_client/src/models/hash-factory.mjs +17 -0
  718. package/packages/indexer_client/src/models/hash-factory.mjs.map +1 -0
  719. package/packages/indexer_client/src/models/hb-proof-fields.d.ts +29 -0
  720. package/packages/indexer_client/src/models/hb-proof-fields.js +43 -0
  721. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -0
  722. package/packages/indexer_client/src/models/hb-proof-fields.mjs +43 -0
  723. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -0
  724. package/packages/indexer_client/src/models/health-check.d.ts +19 -0
  725. package/packages/indexer_client/src/models/health-check.js +60 -0
  726. package/packages/indexer_client/src/models/health-check.js.map +1 -0
  727. package/packages/indexer_client/src/models/health-check.mjs +60 -0
  728. package/packages/indexer_client/src/models/health-check.mjs.map +1 -0
  729. package/packages/indexer_client/src/models/holding-ref.d.ts +20 -0
  730. package/packages/indexer_client/src/models/holding-ref.js +23 -0
  731. package/packages/indexer_client/src/models/holding-ref.js.map +1 -0
  732. package/packages/indexer_client/src/models/holding-ref.mjs +23 -0
  733. package/packages/indexer_client/src/models/holding-ref.mjs.map +1 -0
  734. package/packages/indexer_client/src/models/indexer-state-proof-message.d.ts +26 -0
  735. package/packages/indexer_client/src/models/indexer-state-proof-message.js +44 -0
  736. package/packages/indexer_client/src/models/indexer-state-proof-message.js.map +1 -0
  737. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs +44 -0
  738. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs.map +1 -0
  739. package/packages/indexer_client/src/models/locals-ref.d.ts +20 -0
  740. package/packages/indexer_client/src/models/locals-ref.js +23 -0
  741. package/packages/indexer_client/src/models/locals-ref.js.map +1 -0
  742. package/packages/indexer_client/src/models/locals-ref.mjs +23 -0
  743. package/packages/indexer_client/src/models/locals-ref.mjs.map +1 -0
  744. package/packages/indexer_client/src/models/merkle-array-proof.d.ts +17 -0
  745. package/packages/indexer_client/src/models/merkle-array-proof.js +34 -0
  746. package/packages/indexer_client/src/models/merkle-array-proof.js.map +1 -0
  747. package/packages/indexer_client/src/models/merkle-array-proof.mjs +34 -0
  748. package/packages/indexer_client/src/models/merkle-array-proof.mjs.map +1 -0
  749. package/packages/indexer_client/src/models/mini-asset-holding.d.ts +24 -0
  750. package/packages/indexer_client/src/models/mini-asset-holding.js +51 -0
  751. package/packages/indexer_client/src/models/mini-asset-holding.js.map +1 -0
  752. package/packages/indexer_client/src/models/mini-asset-holding.mjs +51 -0
  753. package/packages/indexer_client/src/models/mini-asset-holding.mjs.map +1 -0
  754. package/packages/indexer_client/src/models/on-completion.d.ts +16 -0
  755. package/packages/indexer_client/src/models/on-completion.js +12 -0
  756. package/packages/indexer_client/src/models/on-completion.js.map +1 -0
  757. package/packages/indexer_client/src/models/on-completion.mjs +12 -0
  758. package/packages/indexer_client/src/models/on-completion.mjs.map +1 -0
  759. package/packages/indexer_client/src/models/participation-updates.d.ts +17 -0
  760. package/packages/indexer_client/src/models/participation-updates.js +22 -0
  761. package/packages/indexer_client/src/models/participation-updates.js.map +1 -0
  762. package/packages/indexer_client/src/models/participation-updates.mjs +22 -0
  763. package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -0
  764. package/packages/indexer_client/src/models/resource-ref.d.ts +32 -0
  765. package/packages/indexer_client/src/models/resource-ref.js +54 -0
  766. package/packages/indexer_client/src/models/resource-ref.js.map +1 -0
  767. package/packages/indexer_client/src/models/resource-ref.mjs +54 -0
  768. package/packages/indexer_client/src/models/resource-ref.mjs.map +1 -0
  769. package/packages/indexer_client/src/models/state-delta.d.ts +11 -0
  770. package/packages/indexer_client/src/models/state-delta.js +14 -0
  771. package/packages/indexer_client/src/models/state-delta.js.map +1 -0
  772. package/packages/indexer_client/src/models/state-delta.mjs +14 -0
  773. package/packages/indexer_client/src/models/state-delta.mjs.map +1 -0
  774. package/packages/indexer_client/src/models/state-proof-fields.d.ts +38 -0
  775. package/packages/indexer_client/src/models/state-proof-fields.js +61 -0
  776. package/packages/indexer_client/src/models/state-proof-fields.js.map +1 -0
  777. package/packages/indexer_client/src/models/state-proof-fields.mjs +61 -0
  778. package/packages/indexer_client/src/models/state-proof-fields.mjs.map +1 -0
  779. package/packages/indexer_client/src/models/state-proof-participant.d.ts +13 -0
  780. package/packages/indexer_client/src/models/state-proof-participant.js +24 -0
  781. package/packages/indexer_client/src/models/state-proof-participant.js.map +1 -0
  782. package/packages/indexer_client/src/models/state-proof-participant.mjs +24 -0
  783. package/packages/indexer_client/src/models/state-proof-participant.mjs.map +1 -0
  784. package/packages/indexer_client/src/models/state-proof-reveal.d.ts +15 -0
  785. package/packages/indexer_client/src/models/state-proof-reveal.js +34 -0
  786. package/packages/indexer_client/src/models/state-proof-reveal.js.map +1 -0
  787. package/packages/indexer_client/src/models/state-proof-reveal.mjs +34 -0
  788. package/packages/indexer_client/src/models/state-proof-reveal.mjs.map +1 -0
  789. package/packages/indexer_client/src/models/state-proof-sig-slot.d.ts +13 -0
  790. package/packages/indexer_client/src/models/state-proof-sig-slot.js +24 -0
  791. package/packages/indexer_client/src/models/state-proof-sig-slot.js.map +1 -0
  792. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs +24 -0
  793. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs.map +1 -0
  794. package/packages/indexer_client/src/models/state-proof-signature.d.ts +15 -0
  795. package/packages/indexer_client/src/models/state-proof-signature.js +40 -0
  796. package/packages/indexer_client/src/models/state-proof-signature.js.map +1 -0
  797. package/packages/indexer_client/src/models/state-proof-signature.mjs +40 -0
  798. package/packages/indexer_client/src/models/state-proof-signature.mjs.map +1 -0
  799. package/packages/indexer_client/src/models/state-proof-tracking.d.ts +22 -0
  800. package/packages/indexer_client/src/models/state-proof-tracking.js +39 -0
  801. package/packages/indexer_client/src/models/state-proof-tracking.js.map +1 -0
  802. package/packages/indexer_client/src/models/state-proof-tracking.mjs +39 -0
  803. package/packages/indexer_client/src/models/state-proof-tracking.mjs.map +1 -0
  804. package/packages/indexer_client/src/models/state-proof-verifier.d.ts +14 -0
  805. package/packages/indexer_client/src/models/state-proof-verifier.js +23 -0
  806. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -0
  807. package/packages/indexer_client/src/models/state-proof-verifier.mjs +23 -0
  808. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -0
  809. package/packages/indexer_client/src/models/state-schema.d.ts +17 -0
  810. package/packages/indexer_client/src/models/state-schema.js +22 -0
  811. package/packages/indexer_client/src/models/state-schema.js.map +1 -0
  812. package/packages/indexer_client/src/models/state-schema.mjs +22 -0
  813. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -0
  814. package/packages/indexer_client/src/models/teal-key-value-store.d.ts +11 -0
  815. package/packages/indexer_client/src/models/teal-key-value-store.js +14 -0
  816. package/packages/indexer_client/src/models/teal-key-value-store.js.map +1 -0
  817. package/packages/indexer_client/src/models/teal-key-value-store.mjs +14 -0
  818. package/packages/indexer_client/src/models/teal-key-value-store.mjs.map +1 -0
  819. package/packages/indexer_client/src/models/teal-key-value.d.ts +14 -0
  820. package/packages/indexer_client/src/models/teal-key-value.js +24 -0
  821. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -0
  822. package/packages/indexer_client/src/models/teal-key-value.mjs +24 -0
  823. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -0
  824. package/packages/indexer_client/src/models/teal-value.d.ts +21 -0
  825. package/packages/indexer_client/src/models/teal-value.js +33 -0
  826. package/packages/indexer_client/src/models/teal-value.js.map +1 -0
  827. package/packages/indexer_client/src/models/teal-value.mjs +33 -0
  828. package/packages/indexer_client/src/models/teal-value.mjs.map +1 -0
  829. package/packages/indexer_client/src/models/transaction-application.d.ts +66 -0
  830. package/packages/indexer_client/src/models/transaction-application.js +106 -0
  831. package/packages/indexer_client/src/models/transaction-application.js.map +1 -0
  832. package/packages/indexer_client/src/models/transaction-application.mjs +106 -0
  833. package/packages/indexer_client/src/models/transaction-application.mjs.map +1 -0
  834. package/packages/indexer_client/src/models/transaction-asset-config.d.ts +24 -0
  835. package/packages/indexer_client/src/models/transaction-asset-config.js +24 -0
  836. package/packages/indexer_client/src/models/transaction-asset-config.js.map +1 -0
  837. package/packages/indexer_client/src/models/transaction-asset-config.mjs +24 -0
  838. package/packages/indexer_client/src/models/transaction-asset-config.mjs.map +1 -0
  839. package/packages/indexer_client/src/models/transaction-asset-freeze.d.ts +24 -0
  840. package/packages/indexer_client/src/models/transaction-asset-freeze.js +33 -0
  841. package/packages/indexer_client/src/models/transaction-asset-freeze.js.map +1 -0
  842. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs +33 -0
  843. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs.map +1 -0
  844. package/packages/indexer_client/src/models/transaction-asset-transfer.d.ts +36 -0
  845. package/packages/indexer_client/src/models/transaction-asset-transfer.js +50 -0
  846. package/packages/indexer_client/src/models/transaction-asset-transfer.js.map +1 -0
  847. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs +50 -0
  848. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs.map +1 -0
  849. package/packages/indexer_client/src/models/transaction-heartbeat.d.ts +32 -0
  850. package/packages/indexer_client/src/models/transaction-heartbeat.js +48 -0
  851. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -0
  852. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +48 -0
  853. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -0
  854. package/packages/indexer_client/src/models/transaction-keyreg.d.ts +40 -0
  855. package/packages/indexer_client/src/models/transaction-keyreg.js +57 -0
  856. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -0
  857. package/packages/indexer_client/src/models/transaction-keyreg.mjs +57 -0
  858. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -0
  859. package/packages/indexer_client/src/models/transaction-payment.d.ts +28 -0
  860. package/packages/indexer_client/src/models/transaction-payment.js +38 -0
  861. package/packages/indexer_client/src/models/transaction-payment.js.map +1 -0
  862. package/packages/indexer_client/src/models/transaction-payment.mjs +38 -0
  863. package/packages/indexer_client/src/models/transaction-payment.mjs.map +1 -0
  864. package/packages/indexer_client/src/models/transaction-response.d.ts +13 -0
  865. package/packages/indexer_client/src/models/transaction-response.js +24 -0
  866. package/packages/indexer_client/src/models/transaction-response.js.map +1 -0
  867. package/packages/indexer_client/src/models/transaction-response.mjs +24 -0
  868. package/packages/indexer_client/src/models/transaction-response.mjs.map +1 -0
  869. package/packages/indexer_client/src/models/transaction-signature-logicsig.d.ts +29 -0
  870. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +47 -0
  871. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -0
  872. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +47 -0
  873. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -0
  874. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.d.ts +14 -0
  875. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +22 -0
  876. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -0
  877. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +22 -0
  878. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -0
  879. package/packages/indexer_client/src/models/transaction-signature-multisig.d.ts +27 -0
  880. package/packages/indexer_client/src/models/transaction-signature-multisig.js +34 -0
  881. package/packages/indexer_client/src/models/transaction-signature-multisig.js.map +1 -0
  882. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs +34 -0
  883. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs.map +1 -0
  884. package/packages/indexer_client/src/models/transaction-signature.d.ts +19 -0
  885. package/packages/indexer_client/src/models/transaction-signature.js +34 -0
  886. package/packages/indexer_client/src/models/transaction-signature.js.map +1 -0
  887. package/packages/indexer_client/src/models/transaction-signature.mjs +34 -0
  888. package/packages/indexer_client/src/models/transaction-signature.mjs.map +1 -0
  889. package/packages/indexer_client/src/models/transaction-state-proof.d.ts +22 -0
  890. package/packages/indexer_client/src/models/transaction-state-proof.js +34 -0
  891. package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -0
  892. package/packages/indexer_client/src/models/transaction-state-proof.mjs +34 -0
  893. package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -0
  894. package/packages/indexer_client/src/models/transaction.d.ts +147 -0
  895. package/packages/indexer_client/src/models/transaction.js +242 -0
  896. package/packages/indexer_client/src/models/transaction.js.map +1 -0
  897. package/packages/indexer_client/src/models/transaction.mjs +242 -0
  898. package/packages/indexer_client/src/models/transaction.mjs.map +1 -0
  899. package/packages/indexer_client/src/models/transactions-response.d.ts +17 -0
  900. package/packages/indexer_client/src/models/transactions-response.js +35 -0
  901. package/packages/indexer_client/src/models/transactions-response.js.map +1 -0
  902. package/packages/indexer_client/src/models/transactions-response.mjs +35 -0
  903. package/packages/indexer_client/src/models/transactions-response.mjs.map +1 -0
  904. package/packages/kmd_client/src/apis/api-service.d.ts +152 -0
  905. package/packages/kmd_client/src/apis/api-service.js +517 -0
  906. package/packages/kmd_client/src/apis/api-service.js.map +1 -0
  907. package/packages/kmd_client/src/apis/api-service.mjs +517 -0
  908. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -0
  909. package/packages/kmd_client/src/client.d.ts +10 -0
  910. package/packages/kmd_client/src/client.js +13 -0
  911. package/packages/kmd_client/src/client.js.map +1 -0
  912. package/packages/kmd_client/src/client.mjs +13 -0
  913. package/packages/kmd_client/src/client.mjs.map +1 -0
  914. package/packages/kmd_client/src/core/api-error.d.ts +10 -0
  915. package/packages/kmd_client/src/core/api-error.js +19 -0
  916. package/packages/kmd_client/src/core/api-error.js.map +1 -0
  917. package/packages/kmd_client/src/core/api-error.mjs +18 -0
  918. package/packages/kmd_client/src/core/api-error.mjs.map +1 -0
  919. package/packages/kmd_client/src/core/base-http-request.d.ts +25 -0
  920. package/packages/kmd_client/src/core/base-http-request.js +16 -0
  921. package/packages/kmd_client/src/core/base-http-request.js.map +1 -0
  922. package/packages/kmd_client/src/core/base-http-request.mjs +14 -0
  923. package/packages/kmd_client/src/core/base-http-request.mjs.map +1 -0
  924. package/packages/kmd_client/src/core/client-config.d.ts +17 -0
  925. package/packages/kmd_client/src/core/fetch-http-request.d.ts +10 -0
  926. package/packages/kmd_client/src/core/fetch-http-request.js +85 -0
  927. package/packages/kmd_client/src/core/fetch-http-request.js.map +1 -0
  928. package/packages/kmd_client/src/core/fetch-http-request.mjs +85 -0
  929. package/packages/kmd_client/src/core/fetch-http-request.mjs.map +1 -0
  930. package/packages/kmd_client/src/core/model-runtime.d.ts +10 -0
  931. package/packages/kmd_client/src/core/model-runtime.js +25 -0
  932. package/packages/kmd_client/src/core/model-runtime.js.map +1 -0
  933. package/packages/kmd_client/src/core/model-runtime.mjs +22 -0
  934. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -0
  935. package/packages/kmd_client/src/core/request.js +62 -0
  936. package/packages/kmd_client/src/core/request.js.map +1 -0
  937. package/packages/kmd_client/src/core/request.mjs +62 -0
  938. package/packages/kmd_client/src/core/request.mjs.map +1 -0
  939. package/packages/kmd_client/src/models/create-wallet-request.d.ts +13 -0
  940. package/packages/kmd_client/src/models/create-wallet-request.js +38 -0
  941. package/packages/kmd_client/src/models/create-wallet-request.js.map +1 -0
  942. package/packages/kmd_client/src/models/create-wallet-request.mjs +38 -0
  943. package/packages/kmd_client/src/models/create-wallet-request.mjs.map +1 -0
  944. package/packages/kmd_client/src/models/create-wallet-response.d.ts +13 -0
  945. package/packages/kmd_client/src/models/create-wallet-response.js +18 -0
  946. package/packages/kmd_client/src/models/create-wallet-response.js.map +1 -0
  947. package/packages/kmd_client/src/models/create-wallet-response.mjs +18 -0
  948. package/packages/kmd_client/src/models/create-wallet-response.mjs.map +1 -0
  949. package/packages/kmd_client/src/models/delete-key-request.d.ts +15 -0
  950. package/packages/kmd_client/src/models/delete-key-request.js +32 -0
  951. package/packages/kmd_client/src/models/delete-key-request.js.map +1 -0
  952. package/packages/kmd_client/src/models/delete-key-request.mjs +32 -0
  953. package/packages/kmd_client/src/models/delete-key-request.mjs.map +1 -0
  954. package/packages/kmd_client/src/models/delete-multisig-request.d.ts +15 -0
  955. package/packages/kmd_client/src/models/delete-multisig-request.js +32 -0
  956. package/packages/kmd_client/src/models/delete-multisig-request.js.map +1 -0
  957. package/packages/kmd_client/src/models/delete-multisig-request.mjs +32 -0
  958. package/packages/kmd_client/src/models/delete-multisig-request.mjs.map +1 -0
  959. package/packages/kmd_client/src/models/export-key-request.d.ts +15 -0
  960. package/packages/kmd_client/src/models/export-key-request.js +32 -0
  961. package/packages/kmd_client/src/models/export-key-request.js.map +1 -0
  962. package/packages/kmd_client/src/models/export-key-request.mjs +32 -0
  963. package/packages/kmd_client/src/models/export-key-request.mjs.map +1 -0
  964. package/packages/kmd_client/src/models/export-key-response.d.ts +10 -0
  965. package/packages/kmd_client/src/models/export-key-response.js +17 -0
  966. package/packages/kmd_client/src/models/export-key-response.js.map +1 -0
  967. package/packages/kmd_client/src/models/export-key-response.mjs +17 -0
  968. package/packages/kmd_client/src/models/export-key-response.mjs.map +1 -0
  969. package/packages/kmd_client/src/models/export-master-key-request.d.ts +11 -0
  970. package/packages/kmd_client/src/models/export-master-key-request.js +22 -0
  971. package/packages/kmd_client/src/models/export-master-key-request.js.map +1 -0
  972. package/packages/kmd_client/src/models/export-master-key-request.mjs +22 -0
  973. package/packages/kmd_client/src/models/export-master-key-request.mjs.map +1 -0
  974. package/packages/kmd_client/src/models/export-master-key-response.d.ts +10 -0
  975. package/packages/kmd_client/src/models/export-master-key-response.js +17 -0
  976. package/packages/kmd_client/src/models/export-master-key-response.js.map +1 -0
  977. package/packages/kmd_client/src/models/export-master-key-response.mjs +17 -0
  978. package/packages/kmd_client/src/models/export-master-key-response.mjs.map +1 -0
  979. package/packages/kmd_client/src/models/export-multisig-request.d.ts +14 -0
  980. package/packages/kmd_client/src/models/export-multisig-request.js +23 -0
  981. package/packages/kmd_client/src/models/export-multisig-request.js.map +1 -0
  982. package/packages/kmd_client/src/models/export-multisig-request.mjs +23 -0
  983. package/packages/kmd_client/src/models/export-multisig-request.mjs.map +1 -0
  984. package/packages/kmd_client/src/models/export-multisig-response.d.ts +12 -0
  985. package/packages/kmd_client/src/models/export-multisig-response.js +32 -0
  986. package/packages/kmd_client/src/models/export-multisig-response.js.map +1 -0
  987. package/packages/kmd_client/src/models/export-multisig-response.mjs +32 -0
  988. package/packages/kmd_client/src/models/export-multisig-response.mjs.map +1 -0
  989. package/packages/kmd_client/src/models/generate-key-request.d.ts +10 -0
  990. package/packages/kmd_client/src/models/generate-key-request.js +17 -0
  991. package/packages/kmd_client/src/models/generate-key-request.js.map +1 -0
  992. package/packages/kmd_client/src/models/generate-key-request.mjs +17 -0
  993. package/packages/kmd_client/src/models/generate-key-request.mjs.map +1 -0
  994. package/packages/kmd_client/src/models/generate-key-response.d.ts +13 -0
  995. package/packages/kmd_client/src/models/generate-key-response.js +17 -0
  996. package/packages/kmd_client/src/models/generate-key-response.js.map +1 -0
  997. package/packages/kmd_client/src/models/generate-key-response.mjs +17 -0
  998. package/packages/kmd_client/src/models/generate-key-response.mjs.map +1 -0
  999. package/packages/kmd_client/src/models/import-key-request.d.ts +11 -0
  1000. package/packages/kmd_client/src/models/import-key-request.js +23 -0
  1001. package/packages/kmd_client/src/models/import-key-request.js.map +1 -0
  1002. package/packages/kmd_client/src/models/import-key-request.mjs +23 -0
  1003. package/packages/kmd_client/src/models/import-key-request.mjs.map +1 -0
  1004. package/packages/kmd_client/src/models/import-key-response.d.ts +13 -0
  1005. package/packages/kmd_client/src/models/import-key-response.js +17 -0
  1006. package/packages/kmd_client/src/models/import-key-response.js.map +1 -0
  1007. package/packages/kmd_client/src/models/import-key-response.mjs +17 -0
  1008. package/packages/kmd_client/src/models/import-key-response.mjs.map +1 -0
  1009. package/packages/kmd_client/src/models/import-multisig-request.d.ts +13 -0
  1010. package/packages/kmd_client/src/models/import-multisig-request.js +39 -0
  1011. package/packages/kmd_client/src/models/import-multisig-request.js.map +1 -0
  1012. package/packages/kmd_client/src/models/import-multisig-request.mjs +39 -0
  1013. package/packages/kmd_client/src/models/import-multisig-request.mjs.map +1 -0
  1014. package/packages/kmd_client/src/models/import-multisig-response.d.ts +13 -0
  1015. package/packages/kmd_client/src/models/import-multisig-response.js +17 -0
  1016. package/packages/kmd_client/src/models/import-multisig-response.js.map +1 -0
  1017. package/packages/kmd_client/src/models/import-multisig-response.mjs +17 -0
  1018. package/packages/kmd_client/src/models/import-multisig-response.mjs.map +1 -0
  1019. package/packages/kmd_client/src/models/init-wallet-handle-token-request.d.ts +11 -0
  1020. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js +22 -0
  1021. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js.map +1 -0
  1022. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs +22 -0
  1023. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs.map +1 -0
  1024. package/packages/kmd_client/src/models/init-wallet-handle-token-response.d.ts +10 -0
  1025. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js +17 -0
  1026. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js.map +1 -0
  1027. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs +17 -0
  1028. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs.map +1 -0
  1029. package/packages/kmd_client/src/models/list-keys-request.d.ts +10 -0
  1030. package/packages/kmd_client/src/models/list-keys-request.js +17 -0
  1031. package/packages/kmd_client/src/models/list-keys-request.js.map +1 -0
  1032. package/packages/kmd_client/src/models/list-keys-request.mjs +17 -0
  1033. package/packages/kmd_client/src/models/list-keys-request.mjs.map +1 -0
  1034. package/packages/kmd_client/src/models/list-keys-response.d.ts +13 -0
  1035. package/packages/kmd_client/src/models/list-keys-response.js +17 -0
  1036. package/packages/kmd_client/src/models/list-keys-response.js.map +1 -0
  1037. package/packages/kmd_client/src/models/list-keys-response.mjs +17 -0
  1038. package/packages/kmd_client/src/models/list-keys-response.mjs.map +1 -0
  1039. package/packages/kmd_client/src/models/list-multisig-request.d.ts +10 -0
  1040. package/packages/kmd_client/src/models/list-multisig-request.js +17 -0
  1041. package/packages/kmd_client/src/models/list-multisig-request.js.map +1 -0
  1042. package/packages/kmd_client/src/models/list-multisig-request.mjs +17 -0
  1043. package/packages/kmd_client/src/models/list-multisig-request.mjs.map +1 -0
  1044. package/packages/kmd_client/src/models/list-multisig-response.d.ts +13 -0
  1045. package/packages/kmd_client/src/models/list-multisig-response.js +17 -0
  1046. package/packages/kmd_client/src/models/list-multisig-response.js.map +1 -0
  1047. package/packages/kmd_client/src/models/list-multisig-response.mjs +17 -0
  1048. package/packages/kmd_client/src/models/list-multisig-response.mjs.map +1 -0
  1049. package/packages/kmd_client/src/models/list-wallets-response.d.ts +13 -0
  1050. package/packages/kmd_client/src/models/list-wallets-response.js +19 -0
  1051. package/packages/kmd_client/src/models/list-wallets-response.js.map +1 -0
  1052. package/packages/kmd_client/src/models/list-wallets-response.mjs +19 -0
  1053. package/packages/kmd_client/src/models/list-wallets-response.mjs.map +1 -0
  1054. package/packages/kmd_client/src/models/multisig-sig.d.ts +15 -0
  1055. package/packages/kmd_client/src/models/multisig-sig.js +34 -0
  1056. package/packages/kmd_client/src/models/multisig-sig.js.map +1 -0
  1057. package/packages/kmd_client/src/models/multisig-sig.mjs +34 -0
  1058. package/packages/kmd_client/src/models/multisig-sig.mjs.map +1 -0
  1059. package/packages/kmd_client/src/models/multisig-subsig.d.ts +12 -0
  1060. package/packages/kmd_client/src/models/multisig-subsig.js +22 -0
  1061. package/packages/kmd_client/src/models/multisig-subsig.js.map +1 -0
  1062. package/packages/kmd_client/src/models/multisig-subsig.mjs +22 -0
  1063. package/packages/kmd_client/src/models/multisig-subsig.mjs.map +1 -0
  1064. package/packages/kmd_client/src/models/release-wallet-handle-token-request.d.ts +10 -0
  1065. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js +17 -0
  1066. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js.map +1 -0
  1067. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs +17 -0
  1068. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs.map +1 -0
  1069. package/packages/kmd_client/src/models/rename-wallet-request.d.ts +12 -0
  1070. package/packages/kmd_client/src/models/rename-wallet-request.js +31 -0
  1071. package/packages/kmd_client/src/models/rename-wallet-request.js.map +1 -0
  1072. package/packages/kmd_client/src/models/rename-wallet-request.mjs +31 -0
  1073. package/packages/kmd_client/src/models/rename-wallet-request.mjs.map +1 -0
  1074. package/packages/kmd_client/src/models/rename-wallet-response.d.ts +13 -0
  1075. package/packages/kmd_client/src/models/rename-wallet-response.js +18 -0
  1076. package/packages/kmd_client/src/models/rename-wallet-response.js.map +1 -0
  1077. package/packages/kmd_client/src/models/rename-wallet-response.mjs +18 -0
  1078. package/packages/kmd_client/src/models/rename-wallet-response.mjs.map +1 -0
  1079. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.d.ts +10 -0
  1080. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js +17 -0
  1081. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js.map +1 -0
  1082. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs +17 -0
  1083. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs.map +1 -0
  1084. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.d.ts +13 -0
  1085. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js +18 -0
  1086. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js.map +1 -0
  1087. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs +18 -0
  1088. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs.map +1 -0
  1089. package/packages/kmd_client/src/models/sign-multisig-request.d.ts +11 -0
  1090. package/packages/kmd_client/src/models/sign-multisig-response.d.ts +10 -0
  1091. package/packages/kmd_client/src/models/sign-multisig-response.js +17 -0
  1092. package/packages/kmd_client/src/models/sign-multisig-response.js.map +1 -0
  1093. package/packages/kmd_client/src/models/sign-multisig-response.mjs +17 -0
  1094. package/packages/kmd_client/src/models/sign-multisig-response.mjs.map +1 -0
  1095. package/packages/kmd_client/src/models/sign-multisig-txn-request.d.ts +18 -0
  1096. package/packages/kmd_client/src/models/sign-multisig-txn-request.js +52 -0
  1097. package/packages/kmd_client/src/models/sign-multisig-txn-request.js.map +1 -0
  1098. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs +52 -0
  1099. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs.map +1 -0
  1100. package/packages/kmd_client/src/models/sign-program-multisig-request.d.ts +20 -0
  1101. package/packages/kmd_client/src/models/sign-program-multisig-request.js +60 -0
  1102. package/packages/kmd_client/src/models/sign-program-multisig-request.js.map +1 -0
  1103. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs +60 -0
  1104. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs.map +1 -0
  1105. package/packages/kmd_client/src/models/sign-program-multisig-response.d.ts +10 -0
  1106. package/packages/kmd_client/src/models/sign-program-multisig-response.js +17 -0
  1107. package/packages/kmd_client/src/models/sign-program-multisig-response.js.map +1 -0
  1108. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs +17 -0
  1109. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs.map +1 -0
  1110. package/packages/kmd_client/src/models/sign-program-request.d.ts +16 -0
  1111. package/packages/kmd_client/src/models/sign-program-request.js +39 -0
  1112. package/packages/kmd_client/src/models/sign-program-request.js.map +1 -0
  1113. package/packages/kmd_client/src/models/sign-program-request.mjs +39 -0
  1114. package/packages/kmd_client/src/models/sign-program-request.mjs.map +1 -0
  1115. package/packages/kmd_client/src/models/sign-program-response.d.ts +10 -0
  1116. package/packages/kmd_client/src/models/sign-program-response.js +17 -0
  1117. package/packages/kmd_client/src/models/sign-program-response.js.map +1 -0
  1118. package/packages/kmd_client/src/models/sign-program-response.mjs +17 -0
  1119. package/packages/kmd_client/src/models/sign-program-response.mjs.map +1 -0
  1120. package/packages/kmd_client/src/models/sign-transaction-request.d.ts +11 -0
  1121. package/packages/kmd_client/src/models/sign-transaction-response.d.ts +10 -0
  1122. package/packages/kmd_client/src/models/sign-transaction-response.js +17 -0
  1123. package/packages/kmd_client/src/models/sign-transaction-response.js.map +1 -0
  1124. package/packages/kmd_client/src/models/sign-transaction-response.mjs +17 -0
  1125. package/packages/kmd_client/src/models/sign-transaction-response.mjs.map +1 -0
  1126. package/packages/kmd_client/src/models/sign-txn-request.d.ts +19 -0
  1127. package/packages/kmd_client/src/models/sign-txn-request.js +38 -0
  1128. package/packages/kmd_client/src/models/sign-txn-request.js.map +1 -0
  1129. package/packages/kmd_client/src/models/sign-txn-request.mjs +38 -0
  1130. package/packages/kmd_client/src/models/sign-txn-request.mjs.map +1 -0
  1131. package/packages/kmd_client/src/models/tx-type.d.ts +8 -0
  1132. package/packages/kmd_client/src/models/tx-type.js +12 -0
  1133. package/packages/kmd_client/src/models/tx-type.js.map +1 -0
  1134. package/packages/kmd_client/src/models/tx-type.mjs +12 -0
  1135. package/packages/kmd_client/src/models/tx-type.mjs.map +1 -0
  1136. package/packages/kmd_client/src/models/versions-response.d.ts +11 -0
  1137. package/packages/kmd_client/src/models/versions-response.js +17 -0
  1138. package/packages/kmd_client/src/models/versions-response.js.map +1 -0
  1139. package/packages/kmd_client/src/models/versions-response.mjs +17 -0
  1140. package/packages/kmd_client/src/models/versions-response.mjs.map +1 -0
  1141. package/packages/kmd_client/src/models/wallet-handle.d.ts +15 -0
  1142. package/packages/kmd_client/src/models/wallet-handle.js +24 -0
  1143. package/packages/kmd_client/src/models/wallet-handle.js.map +1 -0
  1144. package/packages/kmd_client/src/models/wallet-handle.mjs +24 -0
  1145. package/packages/kmd_client/src/models/wallet-handle.mjs.map +1 -0
  1146. package/packages/kmd_client/src/models/wallet-info-request.d.ts +10 -0
  1147. package/packages/kmd_client/src/models/wallet-info-request.js +17 -0
  1148. package/packages/kmd_client/src/models/wallet-info-request.js.map +1 -0
  1149. package/packages/kmd_client/src/models/wallet-info-request.mjs +17 -0
  1150. package/packages/kmd_client/src/models/wallet-info-request.mjs.map +1 -0
  1151. package/packages/kmd_client/src/models/wallet-info-response.d.ts +13 -0
  1152. package/packages/kmd_client/src/models/wallet-info-response.js +18 -0
  1153. package/packages/kmd_client/src/models/wallet-info-response.js.map +1 -0
  1154. package/packages/kmd_client/src/models/wallet-info-response.mjs +18 -0
  1155. package/packages/kmd_client/src/models/wallet-info-response.mjs.map +1 -0
  1156. package/packages/kmd_client/src/models/wallet.d.ts +18 -0
  1157. package/packages/kmd_client/src/models/wallet.js +54 -0
  1158. package/packages/kmd_client/src/models/wallet.js.map +1 -0
  1159. package/packages/kmd_client/src/models/wallet.mjs +54 -0
  1160. package/packages/kmd_client/src/models/wallet.mjs.map +1 -0
  1161. package/packages/sdk/src/convert.d.ts +17 -0
  1162. package/packages/sdk/src/convert.js +28 -0
  1163. package/packages/sdk/src/convert.js.map +1 -0
  1164. package/packages/sdk/src/convert.mjs +25 -0
  1165. package/packages/sdk/src/convert.mjs.map +1 -0
  1166. package/packages/sdk/src/encoding/binarydata.d.ts +34 -0
  1167. package/packages/sdk/src/encoding/binarydata.js +65 -0
  1168. package/packages/sdk/src/encoding/binarydata.js.map +1 -0
  1169. package/packages/sdk/src/encoding/binarydata.mjs +60 -0
  1170. package/packages/sdk/src/encoding/binarydata.mjs.map +1 -0
  1171. package/packages/sdk/src/encoding/encoding.d.ts +237 -0
  1172. package/packages/sdk/src/encoding/encoding.js +312 -0
  1173. package/packages/sdk/src/encoding/encoding.js.map +1 -0
  1174. package/packages/sdk/src/encoding/encoding.mjs +298 -0
  1175. package/packages/sdk/src/encoding/encoding.mjs.map +1 -0
  1176. package/packages/sdk/src/encoding/schema/array.js +35 -0
  1177. package/packages/sdk/src/encoding/schema/array.js.map +1 -0
  1178. package/packages/sdk/src/encoding/schema/array.mjs +35 -0
  1179. package/packages/sdk/src/encoding/schema/array.mjs.map +1 -0
  1180. package/packages/sdk/src/encoding/schema/bytearray.js +49 -0
  1181. package/packages/sdk/src/encoding/schema/bytearray.js.map +1 -0
  1182. package/packages/sdk/src/encoding/schema/bytearray.mjs +49 -0
  1183. package/packages/sdk/src/encoding/schema/bytearray.mjs.map +1 -0
  1184. package/packages/sdk/src/encoding/schema/map.d.ts +58 -0
  1185. package/packages/sdk/src/encoding/schema/map.js +108 -0
  1186. package/packages/sdk/src/encoding/schema/map.js.map +1 -0
  1187. package/packages/sdk/src/encoding/schema/map.mjs +107 -0
  1188. package/packages/sdk/src/encoding/schema/map.mjs.map +1 -0
  1189. package/packages/sdk/src/encoding/schema/optional.js +46 -0
  1190. package/packages/sdk/src/encoding/schema/optional.js.map +1 -0
  1191. package/packages/sdk/src/encoding/schema/optional.mjs +46 -0
  1192. package/packages/sdk/src/encoding/schema/optional.mjs.map +1 -0
  1193. package/packages/sdk/src/encoding/schema/uint64.js +30 -0
  1194. package/packages/sdk/src/encoding/schema/uint64.js.map +1 -0
  1195. package/packages/sdk/src/encoding/schema/uint64.mjs +30 -0
  1196. package/packages/sdk/src/encoding/schema/uint64.mjs.map +1 -0
  1197. package/packages/sdk/src/encoding/uint64.d.ts +34 -0
  1198. package/packages/sdk/src/encoding/uint64.js +34 -0
  1199. package/packages/sdk/src/encoding/uint64.js.map +1 -0
  1200. package/packages/sdk/src/encoding/uint64.mjs +33 -0
  1201. package/packages/sdk/src/encoding/uint64.mjs.map +1 -0
  1202. package/packages/sdk/src/index.d.ts +44 -0
  1203. package/packages/sdk/src/index.js +62 -0
  1204. package/packages/sdk/src/index.js.map +1 -0
  1205. package/packages/sdk/src/index.mjs +58 -0
  1206. package/packages/sdk/src/index.mjs.map +1 -0
  1207. package/packages/sdk/src/logic/sourcemap.d.ts +55 -0
  1208. package/packages/sdk/src/logic/sourcemap.js +88 -0
  1209. package/packages/sdk/src/logic/sourcemap.js.map +1 -0
  1210. package/packages/sdk/src/logic/sourcemap.mjs +86 -0
  1211. package/packages/sdk/src/logic/sourcemap.mjs.map +1 -0
  1212. package/packages/sdk/src/nacl/naclWrappers.js +14 -0
  1213. package/packages/sdk/src/nacl/naclWrappers.js.map +1 -0
  1214. package/packages/sdk/src/nacl/naclWrappers.mjs +11 -0
  1215. package/packages/sdk/src/nacl/naclWrappers.mjs.map +1 -0
  1216. package/packages/sdk/src/types/intDecoding.d.ts +28 -0
  1217. package/packages/sdk/src/types/intDecoding.js +32 -0
  1218. package/packages/sdk/src/types/intDecoding.js.map +1 -0
  1219. package/packages/sdk/src/types/intDecoding.mjs +31 -0
  1220. package/packages/sdk/src/types/intDecoding.mjs.map +1 -0
  1221. package/packages/sdk/src/types/transactions/encoded.d.ts +40 -0
  1222. package/packages/sdk/src/types/transactions/encoded.js +64 -0
  1223. package/packages/sdk/src/types/transactions/encoded.js.map +1 -0
  1224. package/packages/sdk/src/types/transactions/encoded.mjs +59 -0
  1225. package/packages/sdk/src/types/transactions/encoded.mjs.map +1 -0
  1226. package/packages/sdk/src/utils/utils.d.ts +64 -0
  1227. package/packages/sdk/src/utils/utils.js +140 -0
  1228. package/packages/sdk/src/utils/utils.js.map +1 -0
  1229. package/packages/sdk/src/utils/utils.mjs +128 -0
  1230. package/packages/sdk/src/utils/utils.mjs.map +1 -0
  1231. package/packages/transact/src/logicsig.d.ts +35 -0
  1232. package/packages/transact/src/logicsig.js +98 -0
  1233. package/packages/transact/src/logicsig.js.map +1 -0
  1234. package/packages/transact/src/logicsig.mjs +98 -0
  1235. package/packages/transact/src/logicsig.mjs.map +1 -0
  1236. package/packages/transact/src/multisig.d.ts +45 -0
  1237. package/packages/transact/src/multisig.js +338 -0
  1238. package/packages/transact/src/multisig.js.map +1 -0
  1239. package/packages/transact/src/multisig.mjs +338 -0
  1240. package/packages/transact/src/multisig.mjs.map +1 -0
  1241. package/packages/transact/src/signer.d.ts +47 -0
  1242. package/packages/transact/src/signer.js +71 -0
  1243. package/packages/transact/src/signer.js.map +1 -0
  1244. package/packages/transact/src/signer.mjs +70 -0
  1245. package/packages/transact/src/signer.mjs.map +1 -0
  1246. package/packages/transact/src/transactions/app-call.d.ts +209 -0
  1247. package/packages/transact/src/transactions/app-call.js +251 -0
  1248. package/packages/transact/src/transactions/app-call.js.map +1 -0
  1249. package/packages/transact/src/transactions/app-call.mjs +250 -0
  1250. package/packages/transact/src/transactions/app-call.mjs.map +1 -0
  1251. package/packages/transact/src/transactions/asset-config.d.ts +131 -0
  1252. package/packages/transact/src/transactions/asset-config.js +101 -0
  1253. package/packages/transact/src/transactions/asset-config.js.map +1 -0
  1254. package/packages/transact/src/transactions/asset-config.mjs +101 -0
  1255. package/packages/transact/src/transactions/asset-config.mjs.map +1 -0
  1256. package/packages/transact/src/transactions/asset-freeze.d.ts +35 -0
  1257. package/packages/transact/src/transactions/asset-freeze.js +18 -0
  1258. package/packages/transact/src/transactions/asset-freeze.js.map +1 -0
  1259. package/packages/transact/src/transactions/asset-freeze.mjs +18 -0
  1260. package/packages/transact/src/transactions/asset-freeze.mjs.map +1 -0
  1261. package/packages/transact/src/transactions/asset-transfer.d.ts +56 -0
  1262. package/packages/transact/src/transactions/asset-transfer.js +18 -0
  1263. package/packages/transact/src/transactions/asset-transfer.js.map +1 -0
  1264. package/packages/transact/src/transactions/asset-transfer.mjs +18 -0
  1265. package/packages/transact/src/transactions/asset-transfer.mjs.map +1 -0
  1266. package/packages/transact/src/transactions/common.d.ts +37 -0
  1267. package/packages/transact/src/transactions/common.js +24 -0
  1268. package/packages/transact/src/transactions/common.js.map +1 -0
  1269. package/packages/transact/src/transactions/common.mjs +22 -0
  1270. package/packages/transact/src/transactions/common.mjs.map +1 -0
  1271. package/packages/transact/src/transactions/heartbeat.d.ts +37 -0
  1272. package/packages/transact/src/transactions/key-registration.d.ts +45 -0
  1273. package/packages/transact/src/transactions/key-registration.js +54 -0
  1274. package/packages/transact/src/transactions/key-registration.js.map +1 -0
  1275. package/packages/transact/src/transactions/key-registration.mjs +54 -0
  1276. package/packages/transact/src/transactions/key-registration.mjs.map +1 -0
  1277. package/packages/transact/src/transactions/payment.d.ts +32 -0
  1278. package/packages/transact/src/transactions/reference-types-meta.d.ts +26 -0
  1279. package/packages/transact/src/transactions/reference-types-meta.js +71 -0
  1280. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -0
  1281. package/packages/transact/src/transactions/reference-types-meta.mjs +69 -0
  1282. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -0
  1283. package/packages/transact/src/transactions/signed-transaction-meta.d.ts +12 -0
  1284. package/packages/transact/src/transactions/signed-transaction-meta.js +131 -0
  1285. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -0
  1286. package/packages/transact/src/transactions/signed-transaction-meta.mjs +129 -0
  1287. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -0
  1288. package/packages/transact/src/transactions/signed-transaction.d.ts +126 -0
  1289. package/packages/transact/src/transactions/signed-transaction.js +67 -0
  1290. package/packages/transact/src/transactions/signed-transaction.js.map +1 -0
  1291. package/packages/transact/src/transactions/signed-transaction.mjs +64 -0
  1292. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -0
  1293. package/packages/transact/src/transactions/state-proof.d.ts +64 -0
  1294. package/packages/transact/src/transactions/transaction-meta.d.ts +14 -0
  1295. package/packages/transact/src/transactions/transaction-meta.js +1013 -0
  1296. package/packages/transact/src/transactions/transaction-meta.js.map +1 -0
  1297. package/packages/transact/src/transactions/transaction-meta.mjs +1012 -0
  1298. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -0
  1299. package/packages/transact/src/transactions/transaction-type.d.ts +47 -0
  1300. package/packages/transact/src/transactions/transaction-type.js +50 -0
  1301. package/packages/transact/src/transactions/transaction-type.js.map +1 -0
  1302. package/packages/transact/src/transactions/transaction-type.mjs +49 -0
  1303. package/packages/transact/src/transactions/transaction-type.mjs.map +1 -0
  1304. package/packages/transact/src/transactions/transaction.d.ts +312 -0
  1305. package/packages/transact/src/transactions/transaction.js +352 -0
  1306. package/packages/transact/src/transactions/transaction.js.map +1 -0
  1307. package/packages/transact/src/transactions/transaction.mjs +338 -0
  1308. package/packages/transact/src/transactions/transaction.mjs.map +1 -0
  1309. package/sdk/index.d.ts +10 -0
  1310. package/sdk/index.js +59 -0
  1311. package/sdk/index.mjs +11 -0
  1312. package/testing/account.d.ts +14 -9
  1313. package/testing/account.js +27 -31
  1314. package/testing/account.js.map +1 -1
  1315. package/testing/account.mjs +27 -29
  1316. package/testing/account.mjs.map +1 -1
  1317. package/testing/fixtures/algokit-log-capture-fixture.d.ts +8 -2
  1318. package/testing/fixtures/algokit-log-capture-fixture.js +35 -39
  1319. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  1320. package/testing/fixtures/algokit-log-capture-fixture.mjs +35 -37
  1321. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  1322. package/testing/fixtures/algorand-fixture.d.ts +11 -5
  1323. package/testing/fixtures/algorand-fixture.js +66 -60
  1324. package/testing/fixtures/algorand-fixture.js.map +1 -1
  1325. package/testing/fixtures/algorand-fixture.mjs +65 -57
  1326. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  1327. package/testing/index.d.ts +7 -5
  1328. package/testing/index.js +13 -18
  1329. package/testing/index.mjs +8 -7
  1330. package/testing/indexer.d.ts +5 -1
  1331. package/testing/indexer.js +27 -35
  1332. package/testing/indexer.js.map +1 -1
  1333. package/testing/indexer.mjs +27 -34
  1334. package/testing/indexer.mjs.map +1 -1
  1335. package/testing/test-logger.d.ts +42 -36
  1336. package/testing/test-logger.js +70 -74
  1337. package/testing/test-logger.js.map +1 -1
  1338. package/testing/test-logger.mjs +70 -72
  1339. package/testing/test-logger.mjs.map +1 -1
  1340. package/testing/transaction-logger.d.ts +33 -28
  1341. package/testing/transaction-logger.js +73 -91
  1342. package/testing/transaction-logger.js.map +1 -1
  1343. package/testing/transaction-logger.mjs +73 -89
  1344. package/testing/transaction-logger.mjs.map +1 -1
  1345. package/transact/index.d.ts +18 -0
  1346. package/transact/index.js +48 -0
  1347. package/transact/index.mjs +16 -0
  1348. package/transaction/perform-transaction-composer-simulate.d.ts +20 -0
  1349. package/transaction/perform-transaction-composer-simulate.js +33 -0
  1350. package/transaction/perform-transaction-composer-simulate.js.map +1 -0
  1351. package/transaction/perform-transaction-composer-simulate.mjs +32 -0
  1352. package/transaction/perform-transaction-composer-simulate.mjs.map +1 -0
  1353. package/transaction/transaction.d.ts +37 -163
  1354. package/transaction/transaction.js +115 -970
  1355. package/transaction/transaction.js.map +1 -1
  1356. package/transaction/transaction.mjs +115 -953
  1357. package/transaction/transaction.mjs.map +1 -1
  1358. package/transactions/app-call.d.ts +79 -0
  1359. package/transactions/app-call.js +333 -0
  1360. package/transactions/app-call.js.map +1 -0
  1361. package/transactions/app-call.mjs +329 -0
  1362. package/transactions/app-call.mjs.map +1 -0
  1363. package/transactions/asset-config.d.ts +177 -0
  1364. package/transactions/asset-config.js +64 -0
  1365. package/transactions/asset-config.js.map +1 -0
  1366. package/transactions/asset-config.mjs +61 -0
  1367. package/transactions/asset-config.mjs.map +1 -0
  1368. package/transactions/asset-transfer.d.ts +44 -0
  1369. package/transactions/asset-transfer.js +50 -0
  1370. package/transactions/asset-transfer.js.map +1 -0
  1371. package/transactions/asset-transfer.mjs +48 -0
  1372. package/transactions/asset-transfer.mjs.map +1 -0
  1373. package/transactions/common.d.ts +48 -0
  1374. package/transactions/common.js +31 -0
  1375. package/transactions/common.js.map +1 -0
  1376. package/transactions/common.mjs +30 -0
  1377. package/transactions/common.mjs.map +1 -0
  1378. package/transactions/fee-coverage.js +115 -0
  1379. package/transactions/fee-coverage.js.map +1 -0
  1380. package/transactions/fee-coverage.mjs +112 -0
  1381. package/transactions/fee-coverage.mjs.map +1 -0
  1382. package/transactions/key-registration.d.ts +27 -0
  1383. package/transactions/key-registration.js +30 -0
  1384. package/transactions/key-registration.js.map +1 -0
  1385. package/transactions/key-registration.mjs +30 -0
  1386. package/transactions/key-registration.mjs.map +1 -0
  1387. package/transactions/method-call.d.ts +45 -0
  1388. package/transactions/method-call.js +326 -0
  1389. package/transactions/method-call.js.map +1 -0
  1390. package/transactions/method-call.mjs +322 -0
  1391. package/transactions/method-call.mjs.map +1 -0
  1392. package/transactions/payment.d.ts +21 -0
  1393. package/transactions/payment.js +21 -0
  1394. package/transactions/payment.js.map +1 -0
  1395. package/transactions/payment.mjs +21 -0
  1396. package/transactions/payment.mjs.map +1 -0
  1397. package/types/account-manager.d.ts +434 -428
  1398. package/types/account-manager.js +606 -600
  1399. package/types/account-manager.js.map +1 -1
  1400. package/types/account-manager.mjs +604 -598
  1401. package/types/account-manager.mjs.map +1 -1
  1402. package/types/account.d.ts +149 -212
  1403. package/types/account.js +6 -90
  1404. package/types/account.js.map +1 -1
  1405. package/types/account.mjs +7 -88
  1406. package/types/account.mjs.map +1 -1
  1407. package/types/algorand-client-transaction-creator.d.ts +1101 -771
  1408. package/types/algorand-client-transaction-creator.js +731 -730
  1409. package/types/algorand-client-transaction-creator.js.map +1 -1
  1410. package/types/algorand-client-transaction-creator.mjs +731 -729
  1411. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  1412. package/types/algorand-client-transaction-sender.d.ts +1312 -1360
  1413. package/types/algorand-client-transaction-sender.js +927 -959
  1414. package/types/algorand-client-transaction-sender.js.map +1 -1
  1415. package/types/algorand-client-transaction-sender.mjs +926 -957
  1416. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  1417. package/types/algorand-client.d.ts +242 -236
  1418. package/types/algorand-client.js +321 -318
  1419. package/types/algorand-client.js.map +1 -1
  1420. package/types/algorand-client.mjs +321 -316
  1421. package/types/algorand-client.mjs.map +1 -1
  1422. package/types/amount.d.ts +47 -43
  1423. package/types/amount.js +62 -68
  1424. package/types/amount.js.map +1 -1
  1425. package/types/amount.mjs +62 -66
  1426. package/types/amount.mjs.map +1 -1
  1427. package/types/app-client.d.ts +2023 -2009
  1428. package/types/app-client.js +899 -1794
  1429. package/types/app-client.js.map +1 -1
  1430. package/types/app-client.mjs +899 -1792
  1431. package/types/app-client.mjs.map +1 -1
  1432. package/types/app-deployer.d.ts +149 -141
  1433. package/types/app-deployer.js +349 -382
  1434. package/types/app-deployer.js.map +1 -1
  1435. package/types/app-deployer.mjs +349 -380
  1436. package/types/app-deployer.mjs.map +1 -1
  1437. package/types/app-factory.d.ts +934 -932
  1438. package/types/app-factory.js +444 -486
  1439. package/types/app-factory.js.map +1 -1
  1440. package/types/app-factory.mjs +444 -484
  1441. package/types/app-factory.mjs.map +1 -1
  1442. package/types/app-manager.d.ts +301 -323
  1443. package/types/app-manager.js +453 -473
  1444. package/types/app-manager.js.map +1 -1
  1445. package/types/app-manager.mjs +453 -471
  1446. package/types/app-manager.mjs.map +1 -1
  1447. package/types/app-spec.d.ts +154 -117
  1448. package/types/app-spec.js +131 -133
  1449. package/types/app-spec.js.map +1 -1
  1450. package/types/app-spec.mjs +131 -131
  1451. package/types/app-spec.mjs.map +1 -1
  1452. package/types/app.d.ts +186 -291
  1453. package/types/app.js +34 -26
  1454. package/types/app.js.map +1 -1
  1455. package/types/app.mjs +32 -25
  1456. package/types/app.mjs.map +1 -1
  1457. package/types/asset-manager.d.ts +206 -199
  1458. package/types/asset-manager.js +162 -172
  1459. package/types/asset-manager.js.map +1 -1
  1460. package/types/asset-manager.mjs +162 -170
  1461. package/types/asset-manager.mjs.map +1 -1
  1462. package/types/async-event-emitter.d.ts +18 -13
  1463. package/types/async-event-emitter.js +35 -47
  1464. package/types/async-event-emitter.js.map +1 -1
  1465. package/types/async-event-emitter.mjs +35 -46
  1466. package/types/async-event-emitter.mjs.map +1 -1
  1467. package/types/client-manager.d.ts +455 -451
  1468. package/types/client-manager.js +612 -596
  1469. package/types/client-manager.js.map +1 -1
  1470. package/types/client-manager.mjs +612 -594
  1471. package/types/client-manager.mjs.map +1 -1
  1472. package/types/composer.d.ts +929 -1322
  1473. package/types/composer.js +1573 -1505
  1474. package/types/composer.js.map +1 -1
  1475. package/types/composer.mjs +1573 -1503
  1476. package/types/composer.mjs.map +1 -1
  1477. package/types/config.d.ts +53 -48
  1478. package/types/config.js +76 -75
  1479. package/types/config.js.map +1 -1
  1480. package/types/config.mjs +76 -73
  1481. package/types/config.mjs.map +1 -1
  1482. package/types/debugging.d.ts +26 -23
  1483. package/types/debugging.js +7 -9
  1484. package/types/debugging.js.map +1 -1
  1485. package/types/debugging.mjs +7 -8
  1486. package/types/debugging.mjs.map +1 -1
  1487. package/types/dispenser-client.d.ts +57 -52
  1488. package/types/dispenser-client.js +122 -139
  1489. package/types/dispenser-client.js.map +1 -1
  1490. package/types/dispenser-client.mjs +122 -137
  1491. package/types/dispenser-client.mjs.map +1 -1
  1492. package/types/expand.d.ts +5 -3
  1493. package/types/expand.js +0 -3
  1494. package/types/expand.mjs +0 -2
  1495. package/types/indexer.d.ts +32 -160
  1496. package/types/indexer.js +34 -29
  1497. package/types/indexer.js.map +1 -1
  1498. package/types/indexer.mjs +30 -28
  1499. package/types/indexer.mjs.map +1 -1
  1500. package/types/instance-of.d.ts +5 -3
  1501. package/types/instance-of.js +0 -3
  1502. package/types/instance-of.mjs +0 -2
  1503. package/types/kmd-account-manager.d.ts +71 -70
  1504. package/types/kmd-account-manager.js +163 -182
  1505. package/types/kmd-account-manager.js.map +1 -1
  1506. package/types/kmd-account-manager.mjs +161 -180
  1507. package/types/kmd-account-manager.mjs.map +1 -1
  1508. package/types/lifecycle-events.d.ts +13 -8
  1509. package/types/lifecycle-events.js +10 -7
  1510. package/types/lifecycle-events.js.map +1 -1
  1511. package/types/lifecycle-events.mjs +8 -6
  1512. package/types/lifecycle-events.mjs.map +1 -1
  1513. package/types/logging.d.ts +11 -13
  1514. package/types/logging.js +28 -29
  1515. package/types/logging.js.map +1 -1
  1516. package/types/logging.mjs +28 -28
  1517. package/types/logging.mjs.map +1 -1
  1518. package/types/logic-error.d.ts +33 -29
  1519. package/types/logic-error.js +48 -47
  1520. package/types/logic-error.js.map +1 -1
  1521. package/types/logic-error.mjs +48 -46
  1522. package/types/logic-error.mjs.map +1 -1
  1523. package/types/network-client.d.ts +32 -27
  1524. package/types/network-client.js +8 -7
  1525. package/types/network-client.js.map +1 -1
  1526. package/types/network-client.mjs +8 -6
  1527. package/types/network-client.mjs.map +1 -1
  1528. package/types/testing.d.ts +138 -132
  1529. package/types/testing.js +0 -3
  1530. package/types/testing.mjs +0 -2
  1531. package/types/transaction.d.ts +108 -123
  1532. package/types/transaction.js +0 -3
  1533. package/types/transaction.mjs +0 -2
  1534. package/util.js +51 -125
  1535. package/util.js.map +1 -1
  1536. package/util.mjs +52 -121
  1537. package/util.mjs.map +1 -1
  1538. package/account/account.d.ts +0 -144
  1539. package/account/account.js +0 -182
  1540. package/account/account.js.map +0 -1
  1541. package/account/account.mjs +0 -172
  1542. package/account/account.mjs.map +0 -1
  1543. package/account/get-account-config-from-environment.d.ts +0 -12
  1544. package/account/get-account-config-from-environment.js +0 -25
  1545. package/account/get-account-config-from-environment.js.map +0 -1
  1546. package/account/get-account-config-from-environment.mjs +0 -23
  1547. package/account/get-account-config-from-environment.mjs.map +0 -1
  1548. package/account/get-account.d.ts +0 -65
  1549. package/account/get-account.js +0 -63
  1550. package/account/get-account.js.map +0 -1
  1551. package/account/get-account.mjs +0 -61
  1552. package/account/get-account.mjs.map +0 -1
  1553. package/account/get-dispenser-account.d.ts +0 -17
  1554. package/account/get-dispenser-account.js +0 -22
  1555. package/account/get-dispenser-account.js.map +0 -1
  1556. package/account/get-dispenser-account.mjs +0 -20
  1557. package/account/get-dispenser-account.mjs.map +0 -1
  1558. package/account/index.d.ts +0 -5
  1559. package/account/mnemonic-account.d.ts +0 -13
  1560. package/account/mnemonic-account.js +0 -21
  1561. package/account/mnemonic-account.js.map +0 -1
  1562. package/account/mnemonic-account.mjs +0 -19
  1563. package/account/mnemonic-account.mjs.map +0 -1
  1564. package/app-client.d.ts +0 -86
  1565. package/app-client.js +0 -98
  1566. package/app-client.js.map +0 -1
  1567. package/app-client.mjs +0 -94
  1568. package/app-client.mjs.map +0 -1
  1569. package/app-deploy.d.ts +0 -120
  1570. package/app-deploy.js +0 -285
  1571. package/app-deploy.js.map +0 -1
  1572. package/app-deploy.mjs +0 -276
  1573. package/app-deploy.mjs.map +0 -1
  1574. package/app.d.ts +0 -205
  1575. package/app.js +0 -349
  1576. package/app.js.map +0 -1
  1577. package/app.mjs +0 -329
  1578. package/app.mjs.map +0 -1
  1579. package/asset.d.ts +0 -74
  1580. package/asset.js +0 -142
  1581. package/asset.js.map +0 -1
  1582. package/asset.mjs +0 -136
  1583. package/asset.mjs.map +0 -1
  1584. package/debugging/debugging.d.ts +0 -8
  1585. package/debugging/debugging.js +0 -15
  1586. package/debugging/debugging.js.map +0 -1
  1587. package/debugging/debugging.mjs +0 -13
  1588. package/debugging/debugging.mjs.map +0 -1
  1589. package/debugging/index.d.ts +0 -1
  1590. package/dispenser-client.d.ts +0 -20
  1591. package/dispenser-client.js +0 -28
  1592. package/dispenser-client.js.map +0 -1
  1593. package/dispenser-client.mjs +0 -26
  1594. package/dispenser-client.mjs.map +0 -1
  1595. package/index.js.map +0 -1
  1596. package/index.mjs.map +0 -1
  1597. package/localnet/get-kmd-wallet-account.d.ts +0 -27
  1598. package/localnet/get-kmd-wallet-account.js +0 -30
  1599. package/localnet/get-kmd-wallet-account.js.map +0 -1
  1600. package/localnet/get-kmd-wallet-account.mjs +0 -28
  1601. package/localnet/get-kmd-wallet-account.mjs.map +0 -1
  1602. package/localnet/get-localnet-dispenser-account.d.ts +0 -13
  1603. package/localnet/get-localnet-dispenser-account.js +0 -19
  1604. package/localnet/get-localnet-dispenser-account.js.map +0 -1
  1605. package/localnet/get-localnet-dispenser-account.mjs +0 -17
  1606. package/localnet/get-localnet-dispenser-account.mjs.map +0 -1
  1607. package/localnet/get-or-create-kmd-wallet-account.d.ts +0 -28
  1608. package/localnet/get-or-create-kmd-wallet-account.js +0 -30
  1609. package/localnet/get-or-create-kmd-wallet-account.js.map +0 -1
  1610. package/localnet/get-or-create-kmd-wallet-account.mjs +0 -28
  1611. package/localnet/get-or-create-kmd-wallet-account.mjs.map +0 -1
  1612. package/localnet/index.d.ts +0 -4
  1613. package/localnet/is-localnet.d.ts +0 -7
  1614. package/localnet/is-localnet.js +0 -14
  1615. package/localnet/is-localnet.js.map +0 -1
  1616. package/localnet/is-localnet.mjs +0 -12
  1617. package/localnet/is-localnet.mjs.map +0 -1
  1618. package/network-client.d.ts +0 -125
  1619. package/network-client.js +0 -156
  1620. package/network-client.js.map +0 -1
  1621. package/network-client.mjs +0 -145
  1622. package/network-client.mjs.map +0 -1
  1623. package/testing/_asset.d.ts +0 -3
  1624. package/testing/fixtures/index.d.ts +0 -2
  1625. package/testing/index.js.map +0 -1
  1626. package/testing/index.mjs.map +0 -1
  1627. package/transaction/index.d.ts +0 -2
  1628. package/transaction/legacy-bridge.d.ts +0 -35
  1629. package/transaction/legacy-bridge.js +0 -129
  1630. package/transaction/legacy-bridge.js.map +0 -1
  1631. package/transaction/legacy-bridge.mjs +0 -124
  1632. package/transaction/legacy-bridge.mjs.map +0 -1
  1633. package/transaction/perform-atomic-transaction-composer-simulate.d.ts +0 -13
  1634. package/transaction/perform-atomic-transaction-composer-simulate.js +0 -40
  1635. package/transaction/perform-atomic-transaction-composer-simulate.js.map +0 -1
  1636. package/transaction/perform-atomic-transaction-composer-simulate.mjs +0 -38
  1637. package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +0 -1
  1638. package/transfer/index.d.ts +0 -2
  1639. package/transfer/transfer-algos.d.ts +0 -18
  1640. package/transfer/transfer-algos.js +0 -31
  1641. package/transfer/transfer-algos.js.map +0 -1
  1642. package/transfer/transfer-algos.mjs +0 -29
  1643. package/transfer/transfer-algos.mjs.map +0 -1
  1644. package/transfer/transfer.d.ts +0 -52
  1645. package/transfer/transfer.js +0 -112
  1646. package/transfer/transfer.js.map +0 -1
  1647. package/transfer/transfer.mjs +0 -108
  1648. package/transfer/transfer.mjs.map +0 -1
  1649. package/types/algo-http-client-with-retry.d.ts +0 -12
  1650. package/types/algo-http-client-with-retry.js +0 -94
  1651. package/types/algo-http-client-with-retry.js.map +0 -1
  1652. package/types/algo-http-client-with-retry.mjs +0 -92
  1653. package/types/algo-http-client-with-retry.mjs.map +0 -1
  1654. package/types/app-arc56.d.ts +0 -359
  1655. package/types/app-arc56.js +0 -200
  1656. package/types/app-arc56.js.map +0 -1
  1657. package/types/app-arc56.mjs +0 -191
  1658. package/types/app-arc56.mjs.map +0 -1
  1659. package/types/asset.d.ts +0 -99
  1660. package/types/asset.js +0 -3
  1661. package/types/asset.js.map +0 -1
  1662. package/types/asset.mjs +0 -2
  1663. package/types/asset.mjs.map +0 -1
  1664. package/types/expand.js.map +0 -1
  1665. package/types/expand.mjs.map +0 -1
  1666. package/types/instance-of.js.map +0 -1
  1667. package/types/instance-of.mjs.map +0 -1
  1668. package/types/testing.js.map +0 -1
  1669. package/types/testing.mjs.map +0 -1
  1670. package/types/transaction.js.map +0 -1
  1671. package/types/transaction.mjs.map +0 -1
  1672. package/types/transfer.d.ts +0 -76
  1673. package/types/transfer.js +0 -3
  1674. package/types/transfer.js.map +0 -1
  1675. package/types/transfer.mjs +0 -2
  1676. package/types/transfer.mjs.map +0 -1
  1677. package/util.d.ts +0 -48
@@ -1,1508 +1,1578 @@
1
- import algosdk, { Address } from 'algosdk';
2
- import { Config } from '../config.mjs';
3
- import { encodeLease, sendAtomicTransactionComposer, getABIReturnValue } from '../transaction/transaction.mjs';
4
- import { calculateExtraProgramPages, asJson } from '../util.mjs';
5
- import { AppManager } from './app-manager.mjs';
6
- import { EventType } from './lifecycle-events.mjs';
7
- import { genesisIdIsLocalNet } from './network-client.mjs';
1
+ import { EMPTY_SIGNATURE, MAX_TRANSACTION_GROUP_SIZE } from "../packages/common/src/constants.mjs";
2
+ import { OnApplicationComplete } from "../packages/transact/src/transactions/app-call.mjs";
3
+ import { TransactionType } from "../packages/transact/src/transactions/transaction-type.mjs";
4
+ import { Transaction, assignFee, calculateFee, decodeTransaction, encodeTransactionRaw, groupTransactions } from "../packages/transact/src/transactions/transaction.mjs";
5
+ import { decodeSignedTransaction, encodeSignedTransactions } from "../packages/transact/src/transactions/signed-transaction.mjs";
6
+ import { makeEmptyTransactionSigner } from "../packages/transact/src/signer.mjs";
7
+ import { AlgoAmount } from "./amount.mjs";
8
+ import { Config } from "../config.mjs";
9
+ import { asJson } from "../util.mjs";
10
+ import { waitForConfirmation } from "../transaction/transaction.mjs";
11
+ import { AppManager } from "./app-manager.mjs";
12
+ import { buildAppCall, buildAppCreate, buildAppUpdate, populateGroupResources, populateTransactionResources } from "../transactions/app-call.mjs";
13
+ import { buildAssetOptIn, buildAssetOptOut, buildAssetTransfer } from "../transactions/asset-transfer.mjs";
14
+ import { buildAssetConfig, buildAssetCreate, buildAssetDestroy, buildAssetFreeze } from "../transactions/asset-config.mjs";
15
+ import { FeeDelta, FeePriority, calculateInnerFeeDelta } from "../transactions/fee-coverage.mjs";
16
+ import { buildKeyReg } from "../transactions/key-registration.mjs";
17
+ import { buildAppCallMethodCall, buildAppCreateMethodCall, buildAppUpdateMethodCall, extractComposerTransactionsFromAppMethodCallParams, processAppMethodCallArgs } from "../transactions/method-call.mjs";
18
+ import { buildPayment } from "../transactions/payment.mjs";
19
+ import { EventType } from "./lifecycle-events.mjs";
20
+ import { genesisIdIsLocalNet } from "./network-client.mjs";
21
+ import { Buffer } from "buffer";
8
22
 
9
- var AtomicTransactionComposer = algosdk.AtomicTransactionComposer;
10
- var isTransactionWithSigner = algosdk.isTransactionWithSigner;
11
- var modelsv2 = algosdk.modelsv2;
12
- const address = (address) => {
13
- return typeof address === 'string' ? Address.fromString(address) : address;
23
+ //#region src/types/composer.ts
24
+ var InvalidErrorTransformerValue = class extends Error {
25
+ constructor(originalError, value) {
26
+ super(`An error transformer returned a non-error value: ${value}. The original error before any transformation: ${originalError}`);
27
+ }
28
+ };
29
+ var ErrorTransformerError = class extends Error {
30
+ constructor(originalError, cause) {
31
+ super(`An error transformer threw an error: ${cause}. The original error before any transformation: ${originalError} `, { cause });
32
+ }
14
33
  };
15
- const MAX_TRANSACTION_GROUP_SIZE = 16;
16
- class InvalidErrorTransformerValue extends Error {
17
- constructor(originalError, value) {
18
- super(`An error transformer returned a non-error value: ${value}. The original error before any transformation: ${originalError}`);
19
- }
20
- }
21
- class ErrorTransformerError extends Error {
22
- constructor(originalError, cause) {
23
- super(`An error transformer threw an error: ${cause}. The original error before any transformation: ${originalError} `, { cause });
24
- }
25
- }
26
34
  /** TransactionComposer helps you compose and execute transactions as a transaction group. */
27
- class TransactionComposer {
28
- async transformError(originalError) {
29
- // Transformers only work with Error instances, so immediately return anything else
30
- if (!(originalError instanceof Error)) {
31
- return originalError;
32
- }
33
- let transformedError = originalError;
34
- for (const transformer of this.errorTransformers) {
35
- try {
36
- transformedError = await transformer(transformedError);
37
- if (!(transformedError instanceof Error)) {
38
- return new InvalidErrorTransformerValue(originalError, transformedError);
39
- }
40
- }
41
- catch (errorFromTransformer) {
42
- return new ErrorTransformerError(originalError, errorFromTransformer);
43
- }
44
- }
45
- return transformedError;
46
- }
47
- /**
48
- * Create a `TransactionComposer`.
49
- * @param params The configuration for this composer
50
- * @returns The `TransactionComposer` instance
51
- */
52
- constructor(params) {
53
- /** The ATC used to compose the group */
54
- this.atc = new algosdk.AtomicTransactionComposer();
55
- /** Map of transaction index in the atc to a max logical fee.
56
- * This is set using the value of either maxFee or staticFee.
57
- */
58
- this.txnMaxFees = new Map();
59
- /** Transactions that have not yet been composed */
60
- this.txns = [];
61
- /** The default transaction validity window */
62
- this.defaultValidityWindow = 10n;
63
- /** Whether the validity window was explicitly set on construction */
64
- this.defaultValidityWindowIsExplicit = false;
65
- this.algod = params.algod;
66
- const defaultGetSuggestedParams = () => params.algod.getTransactionParams().do();
67
- this.getSuggestedParams = params.getSuggestedParams ?? defaultGetSuggestedParams;
68
- this.getSigner = params.getSigner;
69
- this.defaultValidityWindow = params.defaultValidityWindow ?? this.defaultValidityWindow;
70
- this.defaultValidityWindowIsExplicit = params.defaultValidityWindow !== undefined;
71
- this.appManager = params.appManager ?? new AppManager(params.algod);
72
- this.errorTransformers = params.errorTransformers ?? [];
73
- }
74
- /**
75
- * Register a function that will be used to transform an error caught when simulating or executing
76
- *
77
- * @returns The composer so you can chain method calls
78
- */
79
- registerErrorTransformer(transformer) {
80
- this.errorTransformers.push(transformer);
81
- return this;
82
- }
83
- /**
84
- * Add a pre-built transaction to the transaction group.
85
- * @param transaction The pre-built transaction
86
- * @param signer Optional signer override for the transaction
87
- * @returns The composer so you can chain method calls
88
- * @example
89
- * ```typescript
90
- * composer.addTransaction(txn)
91
- * ```
92
- */
93
- addTransaction(transaction, signer) {
94
- this.txns.push({
95
- txn: transaction,
96
- signer: signer ?? this.getSigner(transaction.sender),
97
- type: 'txnWithSigner',
98
- });
99
- return this;
100
- }
101
- /**
102
- * Add a payment transaction to the transaction group.
103
- * @param params The payment transaction parameters
104
- * @returns The composer so you can chain method calls
105
- * @example Basic example
106
- * ```typescript
107
- * composer.addPayment({
108
- * sender: 'SENDERADDRESS',
109
- * receiver: 'RECEIVERADDRESS',
110
- * amount: (4).algo(),
111
- * })
112
- * ```
113
- * @example Advanced example
114
- * ```typescript
115
- * composer.addPayment({
116
- * amount: (4).algo(),
117
- * receiver: 'RECEIVERADDRESS',
118
- * sender: 'SENDERADDRESS',
119
- * closeRemainderTo: 'CLOSEREMAINDERTOADDRESS',
120
- * lease: 'lease',
121
- * note: 'note',
122
- * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
123
- * rekeyTo: 'REKEYTOADDRESS',
124
- * // You wouldn't normally set this field
125
- * firstValidRound: 1000n,
126
- * validityWindow: 10,
127
- * extraFee: (1000).microAlgo(),
128
- * staticFee: (1000).microAlgo(),
129
- * // Max fee doesn't make sense with extraFee AND staticFee
130
- * // already specified, but here for completeness
131
- * maxFee: (3000).microAlgo(),
132
- * })
133
- */
134
- addPayment(params) {
135
- this.txns.push({ ...params, type: 'pay' });
136
- return this;
137
- }
138
- /**
139
- * Add an asset create transaction to the transaction group.
140
- * @param params The asset create transaction parameters
141
- * @returns The composer so you can chain method calls
142
- * @example Basic example
143
- * ```typescript
144
- * composer.addAssetCreate({ sender: "CREATORADDRESS", total: 100n})
145
- * ```
146
- * @example Advanced example
147
- * ```typescript
148
- * composer.addAssetCreate({
149
- * sender: 'CREATORADDRESS',
150
- * total: 100n,
151
- * decimals: 2,
152
- * assetName: 'asset',
153
- * unitName: 'unit',
154
- * url: 'url',
155
- * metadataHash: 'metadataHash',
156
- * defaultFrozen: false,
157
- * manager: 'MANAGERADDRESS',
158
- * reserve: 'RESERVEADDRESS',
159
- * freeze: 'FREEZEADDRESS',
160
- * clawback: 'CLAWBACKADDRESS',
161
- * lease: 'lease',
162
- * note: 'note',
163
- * // You wouldn't normally set this field
164
- * firstValidRound: 1000n,
165
- * validityWindow: 10,
166
- * extraFee: (1000).microAlgo(),
167
- * staticFee: (1000).microAlgo(),
168
- * // Max fee doesn't make sense with extraFee AND staticFee
169
- * // already specified, but here for completeness
170
- * maxFee: (3000).microAlgo(),
171
- * })
172
- */
173
- addAssetCreate(params) {
174
- this.txns.push({ ...params, type: 'assetCreate' });
175
- return this;
176
- }
177
- /**
178
- * Add an asset config transaction to the transaction group.
179
- * @param params The asset config transaction parameters
180
- * @returns The composer so you can chain method calls
181
- * @example Basic example
182
- * ```typescript
183
- * composer.addAssetConfig({ sender: "MANAGERADDRESS", assetId: 123456n, manager: "MANAGERADDRESS" })
184
- * ```
185
- * @example Advanced example
186
- * ```typescript
187
- * composer.addAssetConfig({
188
- * sender: 'MANAGERADDRESS',
189
- * assetId: 123456n,
190
- * manager: 'MANAGERADDRESS',
191
- * reserve: 'RESERVEADDRESS',
192
- * freeze: 'FREEZEADDRESS',
193
- * clawback: 'CLAWBACKADDRESS',
194
- * lease: 'lease',
195
- * note: 'note',
196
- * // You wouldn't normally set this field
197
- * firstValidRound: 1000n,
198
- * validityWindow: 10,
199
- * extraFee: (1000).microAlgo(),
200
- * staticFee: (1000).microAlgo(),
201
- * // Max fee doesn't make sense with extraFee AND staticFee
202
- * // already specified, but here for completeness
203
- * maxFee: (3000).microAlgo(),
204
- * })
205
- */
206
- addAssetConfig(params) {
207
- this.txns.push({ ...params, type: 'assetConfig' });
208
- return this;
209
- }
210
- /**
211
- * Add an asset freeze transaction to the transaction group.
212
- * @param params The asset freeze transaction parameters
213
- * @returns The composer so you can chain method calls
214
- * @example Basic example
215
- * ```typescript
216
- * composer.addAssetFreeze({ sender: "MANAGERADDRESS", assetId: 123456n, account: "ACCOUNTADDRESS", frozen: true })
217
- * ```
218
- * @example Advanced example
219
- * ```typescript
220
- * composer.addAssetFreeze({
221
- * sender: 'MANAGERADDRESS',
222
- * assetId: 123456n,
223
- * account: 'ACCOUNTADDRESS',
224
- * frozen: true,
225
- * lease: 'lease',
226
- * note: 'note',
227
- * // You wouldn't normally set this field
228
- * firstValidRound: 1000n,
229
- * validityWindow: 10,
230
- * extraFee: (1000).microAlgo(),
231
- * staticFee: (1000).microAlgo(),
232
- * // Max fee doesn't make sense with extraFee AND staticFee
233
- * // already specified, but here for completeness
234
- * maxFee: (3000).microAlgo(),
235
- * })
236
- * ```
237
- */
238
- addAssetFreeze(params) {
239
- this.txns.push({ ...params, type: 'assetFreeze' });
240
- return this;
241
- }
242
- /**
243
- * Add an asset destroy transaction to the transaction group.
244
- * @param params The asset destroy transaction parameters
245
- * @returns The composer so you can chain method calls
246
- * @example Basic example
247
- * ```typescript
248
- * composer.addAssetDestroy({ sender: "MANAGERADDRESS", assetId: 123456n })
249
- * ```
250
- * @example Advanced example
251
- * ```typescript
252
- * composer.addAssetDestroy({
253
- * sender: 'MANAGERADDRESS',
254
- * assetId: 123456n,
255
- * lease: 'lease',
256
- * note: 'note',
257
- * // You wouldn't normally set this field
258
- * firstValidRound: 1000n,
259
- * validityWindow: 10,
260
- * extraFee: (1000).microAlgo(),
261
- * staticFee: (1000).microAlgo(),
262
- * // Max fee doesn't make sense with extraFee AND staticFee
263
- * // already specified, but here for completeness
264
- * maxFee: (3000).microAlgo(),
265
- * })
266
- * ```
267
- */
268
- addAssetDestroy(params) {
269
- this.txns.push({ ...params, type: 'assetDestroy' });
270
- return this;
271
- }
272
- /**
273
- * Add an asset transfer transaction to the transaction group.
274
- * @param params The asset transfer transaction parameters
275
- * @returns The composer so you can chain method calls
276
- * @example Basic example
277
- * ```typescript
278
- * composer.addAssetTransfer({ sender: "HOLDERADDRESS", assetId: 123456n, amount: 1n, receiver: "RECEIVERADDRESS" })
279
- * ```
280
- * @example Advanced example (with clawback)
281
- * ```typescript
282
- * composer.addAssetTransfer({
283
- * sender: 'CLAWBACKADDRESS',
284
- * assetId: 123456n,
285
- * amount: 1n,
286
- * receiver: 'RECEIVERADDRESS',
287
- * clawbackTarget: 'HOLDERADDRESS',
288
- * // This field needs to be used with caution
289
- * closeAssetTo: 'ADDRESSTOCLOSETO'
290
- * lease: 'lease',
291
- * note: 'note',
292
- * // You wouldn't normally set this field
293
- * firstValidRound: 1000n,
294
- * validityWindow: 10,
295
- * extraFee: (1000).microAlgo(),
296
- * staticFee: (1000).microAlgo(),
297
- * // Max fee doesn't make sense with extraFee AND staticFee
298
- * // already specified, but here for completeness
299
- * maxFee: (3000).microAlgo(),
300
- * })
301
- * ```
302
- */
303
- addAssetTransfer(params) {
304
- this.txns.push({ ...params, type: 'assetTransfer' });
305
- return this;
306
- }
307
- /**
308
- * Add an asset opt-in transaction to the transaction group.
309
- * @param params The asset opt-in transaction parameters
310
- * @returns The composer so you can chain method calls
311
- * @example Basic example
312
- * ```typescript
313
- * composer.addAssetOptIn({ sender: "SENDERADDRESS", assetId: 123456n })
314
- * ```
315
- * @example Advanced example
316
- * ```typescript
317
- * composer.addAssetOptIn({
318
- * sender: 'SENDERADDRESS',
319
- * assetId: 123456n,
320
- * lease: 'lease',
321
- * note: 'note',
322
- * // You wouldn't normally set this field
323
- * firstValidRound: 1000n,
324
- * validityWindow: 10,
325
- * extraFee: (1000).microAlgo(),
326
- * staticFee: (1000).microAlgo(),
327
- * // Max fee doesn't make sense with extraFee AND staticFee
328
- * // already specified, but here for completeness
329
- * maxFee: (3000).microAlgo(),
330
- * })
331
- * ```
332
- */
333
- addAssetOptIn(params) {
334
- this.txns.push({ ...params, type: 'assetOptIn' });
335
- return this;
336
- }
337
- /**
338
- * Add an asset opt-out transaction to the transaction group.
339
- * @param params The asset opt-out transaction parameters
340
- * @returns The composer so you can chain method calls
341
- * @example Basic example (without creator, will be retrieved from algod)
342
- * ```typescript
343
- * composer.addAssetOptOut({ sender: "SENDERADDRESS", assetId: 123456n, ensureZeroBalance: true })
344
- * ```
345
- * @example Basic example (with creator)
346
- * ```typescript
347
- * composer.addAssetOptOut({ sender: "SENDERADDRESS", creator: "CREATORADDRESS", assetId: 123456n, ensureZeroBalance: true })
348
- * ```
349
- * @example Advanced example
350
- * ```typescript
351
- * composer.addAssetOptOut({
352
- * sender: 'SENDERADDRESS',
353
- * assetId: 123456n,
354
- * creator: 'CREATORADDRESS',
355
- * ensureZeroBalance: true,
356
- * lease: 'lease',
357
- * note: 'note',
358
- * // You wouldn't normally set this field
359
- * firstValidRound: 1000n,
360
- * validityWindow: 10,
361
- * extraFee: (1000).microAlgo(),
362
- * staticFee: (1000).microAlgo(),
363
- * // Max fee doesn't make sense with extraFee AND staticFee
364
- * // already specified, but here for completeness
365
- * maxFee: (3000).microAlgo(),
366
- * })
367
- * ```
368
- */
369
- addAssetOptOut(params) {
370
- this.txns.push({ ...params, type: 'assetOptOut' });
371
- return this;
372
- }
373
- /**
374
- * Add an application create transaction to the transaction group.
375
- *
376
- * Note: we recommend using app clients to make it easier to make app calls.
377
- * @param params The application create transaction parameters
378
- * @returns The composer so you can chain method calls
379
- * @example Basic example
380
- * ```typescript
381
- * composer.addAppCreate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })
382
- * ```
383
- * @example Advanced example
384
- * ```typescript
385
- * composer.addAppCreate({
386
- * sender: 'CREATORADDRESS',
387
- * approvalProgram: "TEALCODE",
388
- * clearStateProgram: "TEALCODE",
389
- * schema: {
390
- * globalInts: 1,
391
- * globalByteSlices: 2,
392
- * localInts: 3,
393
- * localByteSlices: 4
394
- * },
395
- * extraProgramPages: 1,
396
- * onComplete: algosdk.OnApplicationComplete.OptInOC,
397
- * args: [new Uint8Array(1, 2, 3, 4)]
398
- * accountReferences: ["ACCOUNT_1"]
399
- * appReferences: [123n, 1234n]
400
- * assetReferences: [12345n]
401
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
402
- * accessReferences: [{ appId: 1234n }]
403
- * lease: 'lease',
404
- * note: 'note',
405
- * // You wouldn't normally set this field
406
- * firstValidRound: 1000n,
407
- * validityWindow: 10,
408
- * extraFee: (1000).microAlgo(),
409
- * staticFee: (1000).microAlgo(),
410
- * // Max fee doesn't make sense with extraFee AND staticFee
411
- * // already specified, but here for completeness
412
- * maxFee: (3000).microAlgo(),
413
- * rejectVersion: 1,
414
- * // Signer only needed if you want to provide one,
415
- * // generally you'd register it with AlgorandClient
416
- * // against the sender and not need to pass it in
417
- * signer: transactionSigner,
418
- * maxRoundsToWaitForConfirmation: 5,
419
- * suppressLog: true,
420
- *})
421
- * ```
422
- */
423
- addAppCreate(params) {
424
- this.txns.push({ ...params, type: 'appCall' });
425
- return this;
426
- }
427
- /**
428
- * Add an application update transaction to the transaction group.
429
- *
430
- * Note: we recommend using app clients to make it easier to make app calls.
431
- * @param params The application update transaction parameters
432
- * @returns The composer so you can chain method calls
433
- * @example Basic example
434
- * ```typescript
435
- * composer.addAppUpdate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })
436
- * ```
437
- * @example Advanced example
438
- * ```typescript
439
- * composer.addAppUpdate({
440
- * sender: 'CREATORADDRESS',
441
- * approvalProgram: "TEALCODE",
442
- * clearStateProgram: "TEALCODE",
443
- * onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC,
444
- * args: [new Uint8Array(1, 2, 3, 4)]
445
- * accountReferences: ["ACCOUNT_1"]
446
- * appReferences: [123n, 1234n]
447
- * assetReferences: [12345n]
448
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
449
- * accessReferences: [{ appId: 1234n }]
450
- * lease: 'lease',
451
- * note: 'note',
452
- * // You wouldn't normally set this field
453
- * firstValidRound: 1000n,
454
- * validityWindow: 10,
455
- * extraFee: (1000).microAlgo(),
456
- * staticFee: (1000).microAlgo(),
457
- * // Max fee doesn't make sense with extraFee AND staticFee
458
- * // already specified, but here for completeness
459
- * maxFee: (3000).microAlgo(),
460
- * rejectVersion: 1,
461
- *})
462
- * ```
463
- */
464
- addAppUpdate(params) {
465
- this.txns.push({ ...params, type: 'appCall', onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC });
466
- return this;
467
- }
468
- /**
469
- * Add an application delete transaction to the transaction group.
470
- *
471
- * Note: we recommend using app clients to make it easier to make app calls.
472
- * @param params The application delete transaction parameters
473
- * @returns The composer so you can chain method calls
474
- * @example Basic example
475
- * ```typescript
476
- * composer.addAppDelete({ sender: 'CREATORADDRESS' })
477
- * ```
478
- * @example Advanced example
479
- * ```typescript
480
- * composer.addAppDelete({
481
- * sender: 'CREATORADDRESS',
482
- * onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC,
483
- * args: [new Uint8Array(1, 2, 3, 4)]
484
- * accountReferences: ["ACCOUNT_1"]
485
- * appReferences: [123n, 1234n]
486
- * assetReferences: [12345n]
487
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
488
- * accessReferences: [{ appId: 1234n }]
489
- * lease: 'lease',
490
- * note: 'note',
491
- * // You wouldn't normally set this field
492
- * firstValidRound: 1000n,
493
- * validityWindow: 10,
494
- * extraFee: (1000).microAlgo(),
495
- * staticFee: (1000).microAlgo(),
496
- * // Max fee doesn't make sense with extraFee AND staticFee
497
- * // already specified, but here for completeness
498
- * maxFee: (3000).microAlgo(),
499
- * rejectVersion: 1,
500
- *})
501
- * ```
502
- */
503
- addAppDelete(params) {
504
- this.txns.push({ ...params, type: 'appCall', onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC });
505
- return this;
506
- }
507
- /**
508
- * Add an application call transaction to the transaction group.
509
- *
510
- * If you want to create or update an app use `addAppCreate` or `addAppUpdate`.
511
- *
512
- * Note: we recommend using app clients to make it easier to make app calls.
513
- * @param params The application call transaction parameters
514
- * @returns The composer so you can chain method calls
515
- * @example Basic example
516
- * ```typescript
517
- * composer.addAppCall({ sender: 'CREATORADDRESS' })
518
- * ```
519
- * @example Advanced example
520
- * ```typescript
521
- * composer.addAppCall({
522
- * sender: 'CREATORADDRESS',
523
- * onComplete: algosdk.OnApplicationComplete.OptInOC,
524
- * args: [new Uint8Array(1, 2, 3, 4)]
525
- * accountReferences: ["ACCOUNT_1"]
526
- * appReferences: [123n, 1234n]
527
- * assetReferences: [12345n]
528
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
529
- * accessReferences: [{ appId: 1234n }]
530
- * lease: 'lease',
531
- * note: 'note',
532
- * // You wouldn't normally set this field
533
- * firstValidRound: 1000n,
534
- * validityWindow: 10,
535
- * extraFee: (1000).microAlgo(),
536
- * staticFee: (1000).microAlgo(),
537
- * // Max fee doesn't make sense with extraFee AND staticFee
538
- * // already specified, but here for completeness
539
- * maxFee: (3000).microAlgo(),
540
- * rejectVersion: 1,
541
- *})
542
- * ```
543
- */
544
- addAppCall(params) {
545
- this.txns.push({ ...params, type: 'appCall' });
546
- return this;
547
- }
548
- /**
549
- * Add an ABI method create application call transaction to the transaction group.
550
- *
551
- * Note: we recommend using app clients to make it easier to make app calls.
552
- * @param params The ABI create method application call transaction parameters
553
- * @returns The composer so you can chain method calls
554
- * @example Basic example
555
- * ```typescript
556
- * const method = new ABIMethod({
557
- * name: 'method',
558
- * args: [{ name: 'arg1', type: 'string' }],
559
- * returns: { type: 'string' },
560
- * })
561
- * composer.addAppCreateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: ["arg1_value"] })
562
- * ```
563
- * @example Advanced example
564
- * ```typescript
565
- * const method = new ABIMethod({
566
- * name: 'method',
567
- * args: [{ name: 'arg1', type: 'string' }],
568
- * returns: { type: 'string' },
569
- * })
570
- * composer.addAppCreateMethodCall({
571
- * sender: 'CREATORADDRESS',
572
- * method: method,
573
- * args: ["arg1_value"],
574
- * approvalProgram: "TEALCODE",
575
- * clearStateProgram: "TEALCODE",
576
- * schema: {
577
- * globalInts: 1,
578
- * globalByteSlices: 2,
579
- * localInts: 3,
580
- * localByteSlices: 4
581
- * },
582
- * extraProgramPages: 1,
583
- * onComplete: algosdk.OnApplicationComplete.OptInOC,
584
- * args: [new Uint8Array(1, 2, 3, 4)]
585
- * accountReferences: ["ACCOUNT_1"]
586
- * appReferences: [123n, 1234n]
587
- * assetReferences: [12345n]
588
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
589
- * accessReferences: [{ appId: 1234n }]
590
- * lease: 'lease',
591
- * note: 'note',
592
- * // You wouldn't normally set this field
593
- * firstValidRound: 1000n,
594
- * validityWindow: 10,
595
- * extraFee: (1000).microAlgo(),
596
- * staticFee: (1000).microAlgo(),
597
- * // Max fee doesn't make sense with extraFee AND staticFee
598
- * // already specified, but here for completeness
599
- * maxFee: (3000).microAlgo(),
600
- * rejectVersion: 1,
601
- *})
602
- * ```
603
- */
604
- addAppCreateMethodCall(params) {
605
- this.txns.push({ ...params, type: 'methodCall' });
606
- return this;
607
- }
608
- /**
609
- * Add an ABI method update application call transaction to the transaction group.
610
- *
611
- * Note: we recommend using app clients to make it easier to make app calls.
612
- * @param params The ABI update method application call transaction parameters
613
- * @returns The composer so you can chain method calls
614
- * @example Basic example
615
- * ```typescript
616
- * const method = new ABIMethod({
617
- * name: 'method',
618
- * args: [{ name: 'arg1', type: 'string' }],
619
- * returns: { type: 'string' },
620
- * })
621
- * composer.addAppUpdateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: ["arg1_value"] })
622
- * ```
623
- * @example Advanced example
624
- * ```typescript
625
- * const method = new ABIMethod({
626
- * name: 'method',
627
- * args: [{ name: 'arg1', type: 'string' }],
628
- * returns: { type: 'string' },
629
- * })
630
- * composer.addAppUpdateMethodCall({
631
- * sender: 'CREATORADDRESS',
632
- * method: method,
633
- * args: ["arg1_value"],
634
- * approvalProgram: "TEALCODE",
635
- * clearStateProgram: "TEALCODE",
636
- * onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC,
637
- * args: [new Uint8Array(1, 2, 3, 4)]
638
- * accountReferences: ["ACCOUNT_1"]
639
- * appReferences: [123n, 1234n]
640
- * assetReferences: [12345n]
641
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
642
- * accessReferences: [{ appId: 1234n }]
643
- * lease: 'lease',
644
- * note: 'note',
645
- * // You wouldn't normally set this field
646
- * firstValidRound: 1000n,
647
- * validityWindow: 10,
648
- * extraFee: (1000).microAlgo(),
649
- * staticFee: (1000).microAlgo(),
650
- * // Max fee doesn't make sense with extraFee AND staticFee
651
- * // already specified, but here for completeness
652
- * maxFee: (3000).microAlgo(),
653
- * rejectVersion: 1,
654
- *})
655
- * ```
656
- */
657
- addAppUpdateMethodCall(params) {
658
- this.txns.push({ ...params, type: 'methodCall', onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC });
659
- return this;
660
- }
661
- /**
662
- * Add an ABI method delete application call transaction to the transaction group.
663
- *
664
- * Note: we recommend using app clients to make it easier to make app calls.
665
- * @param params The ABI delete method application call transaction parameters
666
- * @returns The composer so you can chain method calls
667
- * @example Basic example
668
- * ```typescript
669
- * const method = new ABIMethod({
670
- * name: 'method',
671
- * args: [{ name: 'arg1', type: 'string' }],
672
- * returns: { type: 'string' },
673
- * })
674
- * composer.addAppDeleteMethodCall({ sender: 'CREATORADDRESS', method: method, args: ["arg1_value"] })
675
- * ```
676
- * @example Advanced example
677
- * ```typescript
678
- * const method = new ABIMethod({
679
- * name: 'method',
680
- * args: [{ name: 'arg1', type: 'string' }],
681
- * returns: { type: 'string' },
682
- * })
683
- * composer.addAppDeleteMethodCall({
684
- * sender: 'CREATORADDRESS',
685
- * method: method,
686
- * args: ["arg1_value"],
687
- * onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC,
688
- * args: [new Uint8Array(1, 2, 3, 4)]
689
- * accountReferences: ["ACCOUNT_1"]
690
- * appReferences: [123n, 1234n]
691
- * assetReferences: [12345n]
692
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
693
- * accessReferences: [{ appId: 1234n }]
694
- * lease: 'lease',
695
- * note: 'note',
696
- * // You wouldn't normally set this field
697
- * firstValidRound: 1000n,
698
- * validityWindow: 10,
699
- * extraFee: (1000).microAlgo(),
700
- * staticFee: (1000).microAlgo(),
701
- * // Max fee doesn't make sense with extraFee AND staticFee
702
- * // already specified, but here for completeness
703
- * maxFee: (3000).microAlgo(),
704
- * rejectVersion: 1,
705
- *})
706
- * ```
707
- */
708
- addAppDeleteMethodCall(params) {
709
- this.txns.push({ ...params, type: 'methodCall', onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC });
710
- return this;
711
- }
712
- /**
713
- * Add a non-create/non-update ABI method application call transaction to the transaction group.
714
- *
715
- * Note: we recommend using app clients to make it easier to make app calls.
716
- * @param params The ABI method application call transaction parameters
717
- * @returns The composer so you can chain method calls
718
- * @example Basic example
719
- * ```typescript
720
- * const method = new ABIMethod({
721
- * name: 'method',
722
- * args: [{ name: 'arg1', type: 'string' }],
723
- * returns: { type: 'string' },
724
- * })
725
- * composer.addAppCallMethodCall({ sender: 'CREATORADDRESS', method: method, args: ["arg1_value"] })
726
- * ```
727
- * @example Advanced example
728
- * ```typescript
729
- * const method = new ABIMethod({
730
- * name: 'method',
731
- * args: [{ name: 'arg1', type: 'string' }],
732
- * returns: { type: 'string' },
733
- * })
734
- * composer.addAppCallMethodCall({
735
- * sender: 'CREATORADDRESS',
736
- * method: method,
737
- * args: ["arg1_value"],
738
- * onComplete: algosdk.OnApplicationComplete.OptInOC,
739
- * args: [new Uint8Array(1, 2, 3, 4)]
740
- * accountReferences: ["ACCOUNT_1"]
741
- * appReferences: [123n, 1234n]
742
- * assetReferences: [12345n]
743
- * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
744
- * accessReferences: [{ appId: 1234n }]
745
- * lease: 'lease',
746
- * note: 'note',
747
- * // You wouldn't normally set this field
748
- * firstValidRound: 1000n,
749
- * validityWindow: 10,
750
- * extraFee: (1000).microAlgo(),
751
- * staticFee: (1000).microAlgo(),
752
- * // Max fee doesn't make sense with extraFee AND staticFee
753
- * // already specified, but here for completeness
754
- * maxFee: (3000).microAlgo(),
755
- * rejectVersion: 1,
756
- *})
757
- * ```
758
- */
759
- addAppCallMethodCall(params) {
760
- this.txns.push({ ...params, type: 'methodCall' });
761
- return this;
762
- }
763
- /**
764
- * Add an online key registration transaction to the transaction group.
765
- * @param params The online key registration transaction parameters
766
- * @returns The composer so you can chain method calls
767
- * @example Basic example
768
- * ```typescript
769
- * composer.addOnlineKeyRegistration({
770
- * sender: 'SENDERADDRESS',
771
- * voteKey: Uint8Array.from(Buffer.from("voteKeyBase64", 'base64')),
772
- * selectionKey: Uint8Array.from(Buffer.from("selectionKeyBase64", 'base64')),
773
- * stateProofKey: Uint8Array.from(Buffer.from("stateProofKeyBase64", 'base64')),
774
- * voteFirst: 1n,
775
- * voteLast: 1000n,
776
- * voteKeyDilution: 1n,
777
- * })
778
- * ```
779
- * @example Advanced example
780
- * ```typescript
781
- * composer.addOnlineKeyRegistration({
782
- * sender: 'SENDERADDRESS',
783
- * voteKey: Uint8Array.from(Buffer.from("voteKeyBase64", 'base64')),
784
- * selectionKey: Uint8Array.from(Buffer.from("selectionKeyBase64", 'base64')),
785
- * stateProofKey: Uint8Array.from(Buffer.from("stateProofKeyBase64", 'base64')),
786
- * voteFirst: 1n,
787
- * voteLast: 1000n,
788
- * voteKeyDilution: 1n,
789
- * lease: 'lease',
790
- * note: 'note',
791
- * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
792
- * rekeyTo: 'REKEYTOADDRESS',
793
- * // You wouldn't normally set this field
794
- * firstValidRound: 1000n,
795
- * validityWindow: 10,
796
- * extraFee: (1000).microAlgo(),
797
- * staticFee: (1000).microAlgo(),
798
- * // Max fee doesn't make sense with extraFee AND staticFee
799
- * // already specified, but here for completeness
800
- * maxFee: (3000).microAlgo(),
801
- * })
802
- * ```
803
- */
804
- addOnlineKeyRegistration(params) {
805
- this.txns.push({ ...params, type: 'keyReg' });
806
- return this;
807
- }
808
- /**
809
- * Add an offline key registration transaction to the transaction group.
810
- * @param params The offline key registration transaction parameters
811
- * @returns The composer so you can chain method calls
812
- * @example Basic example
813
- * ```typescript
814
- * composer.addOfflineKeyRegistration({
815
- * sender: 'SENDERADDRESS',
816
- * })
817
- * ```
818
- * @example Advanced example
819
- * ```typescript
820
- * composer.addOfflineKeyRegistration({
821
- * sender: 'SENDERADDRESS',
822
- * lease: 'lease',
823
- * note: 'note',
824
- * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
825
- * rekeyTo: 'REKEYTOADDRESS',
826
- * // You wouldn't normally set this field
827
- * firstValidRound: 1000n,
828
- * validityWindow: 10,
829
- * extraFee: (1000).microAlgo(),
830
- * staticFee: (1000).microAlgo(),
831
- * // Max fee doesn't make sense with extraFee AND staticFee
832
- * // already specified, but here for completeness
833
- * maxFee: (3000).microAlgo(),
834
- * })
835
- * ```
836
- */
837
- addOfflineKeyRegistration(params) {
838
- this.txns.push({ ...params, type: 'keyReg' });
839
- return this;
840
- }
841
- /**
842
- * Add the transactions within an `AtomicTransactionComposer` to the transaction group.
843
- * @param atc The `AtomicTransactionComposer` to build transactions from and add to the group
844
- * @returns The composer so you can chain method calls
845
- * @example
846
- * ```typescript
847
- * const atc = new AtomicTransactionComposer()
848
- * .addPayment({ sender: 'SENDERADDRESS', receiver: 'RECEIVERADDRESS', amount: 1000n })
849
- * composer.addAtc(atc)
850
- * ```
851
- */
852
- addAtc(atc) {
853
- this.txns.push({ atc, type: 'atc' });
854
- return this;
855
- }
856
- /** Build an ATC and return transactions ready to be incorporated into a broader set of transactions this composer is composing */
857
- buildAtc(atc) {
858
- const group = atc.buildGroup();
859
- const txnWithSigners = group.map((ts, idx) => {
860
- // Remove underlying group ID from the transaction since it will be re-grouped when this TransactionComposer is built
861
- ts.txn.group = undefined;
862
- // If this was a method call return the ABIMethod for later
863
- if (atc['methodCalls'].get(idx)) {
864
- return {
865
- ...ts,
866
- context: { abiMethod: atc['methodCalls'].get(idx) },
867
- };
868
- }
869
- return {
870
- ...ts,
871
- context: {},
872
- };
873
- });
874
- return txnWithSigners;
875
- }
876
- commonTxnBuildStep(buildTxn, params, txnParams) {
877
- // We are going to mutate suggested params, let's create a clone first
878
- txnParams.suggestedParams = { ...txnParams.suggestedParams };
879
- if (params.lease)
880
- txnParams.lease = encodeLease(params.lease);
881
- if (params.rekeyTo)
882
- txnParams.rekeyTo = address(params.rekeyTo);
883
- const encoder = new TextEncoder();
884
- if (params.note)
885
- txnParams.note = (typeof params.note === 'string' ? encoder.encode(params.note) : params.note);
886
- if (params.firstValidRound) {
887
- txnParams.suggestedParams.firstValid = params.firstValidRound;
888
- }
889
- if (params.lastValidRound) {
890
- txnParams.suggestedParams.lastValid = params.lastValidRound;
891
- }
892
- else {
893
- // If the validity window isn't set in this transaction or by default and we are pointing at
894
- // LocalNet set a bigger window to avoid dead transactions
895
- const window = params.validityWindow
896
- ? BigInt(params.validityWindow)
897
- : !this.defaultValidityWindowIsExplicit && genesisIdIsLocalNet(txnParams.suggestedParams.genesisID ?? 'unknown')
898
- ? 1000n
899
- : this.defaultValidityWindow;
900
- txnParams.suggestedParams.lastValid = BigInt(txnParams.suggestedParams.firstValid) + window;
901
- }
902
- if (params.staticFee !== undefined && params.extraFee !== undefined) {
903
- throw Error('Cannot set both staticFee and extraFee');
904
- }
905
- if (params.staticFee !== undefined) {
906
- txnParams.suggestedParams.fee = params.staticFee.microAlgo;
907
- txnParams.suggestedParams.flatFee = true;
908
- }
909
- const txn = buildTxn(txnParams);
910
- if (params.extraFee)
911
- txn.fee += params.extraFee.microAlgo;
912
- if (params.maxFee !== undefined && txn.fee > params.maxFee.microAlgo) {
913
- throw Error(`Transaction fee ${txn.fee} µALGO is greater than maxFee ${params.maxFee}`);
914
- }
915
- const logicalMaxFee = params.maxFee !== undefined && params.maxFee.microAlgo > (params.staticFee?.microAlgo ?? 0n) ? params.maxFee : params.staticFee;
916
- return { txn, context: { maxFee: logicalMaxFee } };
917
- }
918
- /**
919
- * Builds an ABI method call transaction and any other associated transactions represented in the ABI args.
920
- * @param includeSigner Whether to include the actual signer for the transactions.
921
- * If you are just building transactions without signers yet then set this to `false`.
922
- */
923
- async buildMethodCall(params, suggestedParams, includeSigner) {
924
- const methodArgs = [];
925
- const transactionsForGroup = [];
926
- const isAbiValue = (x) => {
927
- if (Array.isArray(x))
928
- return x.length == 0 || x.every(isAbiValue);
929
- return (typeof x === 'bigint' ||
930
- typeof x === 'boolean' ||
931
- typeof x === 'number' ||
932
- typeof x === 'string' ||
933
- x instanceof Uint8Array ||
934
- x instanceof algosdk.Address);
935
- };
936
- for (let i = (params.args ?? []).length - 1; i >= 0; i--) {
937
- const arg = params.args[i];
938
- if (arg === undefined) {
939
- // An undefined transaction argument signals that the value will be supplied by a method call argument
940
- if (algosdk.abiTypeIsTransaction(params.method.args[i].type) && transactionsForGroup.length > 0) {
941
- // Move the last transaction from the group to the method call arguments to appease algosdk
942
- const placeholderTransaction = transactionsForGroup.splice(-1, 1)[0];
943
- methodArgs.push(placeholderTransaction);
944
- continue;
945
- }
946
- throw Error(`No value provided for argument ${i + 1} within call to ${params.method.name}`);
947
- }
948
- if (isAbiValue(arg)) {
949
- methodArgs.push(arg);
950
- continue;
951
- }
952
- if (isTransactionWithSigner(arg)) {
953
- methodArgs.push(arg);
954
- continue;
955
- }
956
- if ('method' in arg) {
957
- const tempTxnWithSigners = await this.buildMethodCall(arg, suggestedParams, includeSigner);
958
- // If there is any transaction args, add to the atc
959
- // Everything else should be added as method args
960
- methodArgs.push(...tempTxnWithSigners.slice(-1)); // Add the method call itself as a method arg
961
- transactionsForGroup.push(...tempTxnWithSigners.slice(0, -1).reverse()); // Add any transaction arguments to the atc
962
- continue;
963
- }
964
- const txn = await arg;
965
- methodArgs.push({
966
- txn,
967
- signer: includeSigner
968
- ? params.signer
969
- ? 'signer' in params.signer
970
- ? params.signer.signer
971
- : params.signer
972
- : this.getSigner(txn.sender)
973
- : TransactionComposer.NULL_SIGNER,
974
- });
975
- }
976
- const methodAtc = new algosdk.AtomicTransactionComposer();
977
- const maxFees = new Map();
978
- transactionsForGroup.reverse().forEach(({ context, ...txnWithSigner }) => {
979
- methodAtc.addTransaction(txnWithSigner);
980
- const atcIndex = methodAtc.count() - 1;
981
- if (context.abiMethod) {
982
- methodAtc['methodCalls'].set(atcIndex, context.abiMethod);
983
- }
984
- if (context.maxFee !== undefined) {
985
- maxFees.set(atcIndex, context.maxFee);
986
- }
987
- });
988
- // If any of the args are method call transactions, add that info to the methodAtc
989
- methodArgs
990
- .filter((arg) => {
991
- if (typeof arg === 'object' && 'context' in arg) {
992
- const { context, ...txnWithSigner } = arg;
993
- return isTransactionWithSigner(txnWithSigner);
994
- }
995
- return isTransactionWithSigner(arg);
996
- })
997
- .reverse()
998
- .forEach((arg, idx) => {
999
- if (typeof arg === 'object' && 'context' in arg && arg.context) {
1000
- const atcIndex = methodAtc.count() + idx;
1001
- if (arg.context.abiMethod) {
1002
- methodAtc['methodCalls'].set(atcIndex, arg.context.abiMethod);
1003
- }
1004
- if (arg.context.maxFee !== undefined) {
1005
- maxFees.set(atcIndex, arg.context.maxFee);
1006
- }
1007
- }
1008
- });
1009
- const appId = Number('appId' in params ? params.appId : 0n);
1010
- const approvalProgram = 'approvalProgram' in params
1011
- ? typeof params.approvalProgram === 'string'
1012
- ? (await this.appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes
1013
- : params.approvalProgram
1014
- : undefined;
1015
- const clearStateProgram = 'clearStateProgram' in params
1016
- ? typeof params.clearStateProgram === 'string'
1017
- ? (await this.appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes
1018
- : params.clearStateProgram
1019
- : undefined;
1020
- const txnParams = {
1021
- appID: appId,
1022
- sender: params.sender,
1023
- suggestedParams,
1024
- onComplete: params.onComplete ?? algosdk.OnApplicationComplete.NoOpOC,
1025
- appAccounts: params.accountReferences,
1026
- appForeignApps: params.appReferences?.map((x) => Number(x)),
1027
- appForeignAssets: params.assetReferences?.map((x) => Number(x)),
1028
- boxes: params.boxReferences?.map(AppManager.getBoxReference),
1029
- access: params.accessReferences?.map(getResourceReference),
1030
- approvalProgram,
1031
- clearProgram: clearStateProgram,
1032
- extraPages: appId === 0
1033
- ? 'extraProgramPages' in params && params.extraProgramPages !== undefined
1034
- ? params.extraProgramPages
1035
- : approvalProgram
1036
- ? calculateExtraProgramPages(approvalProgram, clearStateProgram)
1037
- : 0
1038
- : undefined,
1039
- numLocalInts: appId === 0 ? ('schema' in params ? (params.schema?.localInts ?? 0) : 0) : undefined,
1040
- numLocalByteSlices: appId === 0 ? ('schema' in params ? (params.schema?.localByteSlices ?? 0) : 0) : undefined,
1041
- numGlobalInts: appId === 0 ? ('schema' in params ? (params.schema?.globalInts ?? 0) : 0) : undefined,
1042
- numGlobalByteSlices: appId === 0 ? ('schema' in params ? (params.schema?.globalByteSlices ?? 0) : 0) : undefined,
1043
- method: params.method,
1044
- signer: includeSigner
1045
- ? params.signer
1046
- ? 'signer' in params.signer
1047
- ? params.signer.signer
1048
- : params.signer
1049
- : this.getSigner(params.sender)
1050
- : TransactionComposer.NULL_SIGNER,
1051
- methodArgs: methodArgs
1052
- .map((arg) => {
1053
- if (typeof arg === 'object' && 'context' in arg) {
1054
- const { context, ...txnWithSigner } = arg;
1055
- return txnWithSigner;
1056
- }
1057
- return arg;
1058
- })
1059
- .reverse(),
1060
- rejectVersion: params.rejectVersion,
1061
- // note, lease, and rekeyTo are set in the common build step
1062
- note: undefined,
1063
- lease: undefined,
1064
- rekeyTo: undefined,
1065
- };
1066
- // Build the transaction
1067
- const result = this.commonTxnBuildStep((txnParams) => {
1068
- methodAtc.addMethodCall(txnParams);
1069
- return methodAtc.buildGroup()[methodAtc.count() - 1].txn;
1070
- }, params, txnParams);
1071
- // Process the ATC to get a set of transactions ready for broader grouping
1072
- return this.buildAtc(methodAtc).map(({ context: _context, ...txnWithSigner }, idx) => {
1073
- const maxFee = idx === methodAtc.count() - 1 ? result.context.maxFee : maxFees.get(idx);
1074
- const context = {
1075
- ..._context, // Adds method context info
1076
- maxFee,
1077
- };
1078
- return {
1079
- ...txnWithSigner,
1080
- context,
1081
- };
1082
- });
1083
- }
1084
- buildPayment(params, suggestedParams) {
1085
- return this.commonTxnBuildStep(algosdk.makePaymentTxnWithSuggestedParamsFromObject, params, {
1086
- sender: params.sender,
1087
- receiver: params.receiver,
1088
- amount: params.amount.microAlgo,
1089
- closeRemainderTo: params.closeRemainderTo,
1090
- suggestedParams,
1091
- });
1092
- }
1093
- buildAssetCreate(params, suggestedParams) {
1094
- return this.commonTxnBuildStep(algosdk.makeAssetCreateTxnWithSuggestedParamsFromObject, params, {
1095
- sender: params.sender,
1096
- total: params.total,
1097
- decimals: params.decimals ?? 0,
1098
- assetName: params.assetName,
1099
- unitName: params.unitName,
1100
- assetURL: params.url,
1101
- defaultFrozen: params.defaultFrozen ?? false,
1102
- assetMetadataHash: typeof params.metadataHash === 'string' ? Buffer.from(params.metadataHash, 'utf-8') : params.metadataHash,
1103
- manager: params.manager,
1104
- reserve: params.reserve,
1105
- freeze: params.freeze,
1106
- clawback: params.clawback,
1107
- suggestedParams,
1108
- });
1109
- }
1110
- buildAssetConfig(params, suggestedParams) {
1111
- return this.commonTxnBuildStep(algosdk.makeAssetConfigTxnWithSuggestedParamsFromObject, params, {
1112
- sender: params.sender,
1113
- assetIndex: params.assetId,
1114
- suggestedParams,
1115
- manager: params.manager,
1116
- reserve: params.reserve,
1117
- freeze: params.freeze,
1118
- clawback: params.clawback,
1119
- strictEmptyAddressChecking: false,
1120
- });
1121
- }
1122
- buildAssetDestroy(params, suggestedParams) {
1123
- return this.commonTxnBuildStep(algosdk.makeAssetDestroyTxnWithSuggestedParamsFromObject, params, {
1124
- sender: params.sender,
1125
- assetIndex: params.assetId,
1126
- suggestedParams,
1127
- });
1128
- }
1129
- buildAssetFreeze(params, suggestedParams) {
1130
- return this.commonTxnBuildStep(algosdk.makeAssetFreezeTxnWithSuggestedParamsFromObject, params, {
1131
- sender: params.sender,
1132
- assetIndex: params.assetId,
1133
- freezeTarget: params.account,
1134
- frozen: params.frozen,
1135
- suggestedParams,
1136
- });
1137
- }
1138
- buildAssetTransfer(params, suggestedParams) {
1139
- return this.commonTxnBuildStep(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject, params, {
1140
- sender: params.sender,
1141
- receiver: params.receiver,
1142
- assetIndex: params.assetId,
1143
- amount: params.amount,
1144
- suggestedParams,
1145
- closeRemainderTo: params.closeAssetTo,
1146
- assetSender: params.clawbackTarget,
1147
- });
1148
- }
1149
- async buildAppCall(params, suggestedParams) {
1150
- const appId = 'appId' in params ? params.appId : 0n;
1151
- const approvalProgram = 'approvalProgram' in params
1152
- ? typeof params.approvalProgram === 'string'
1153
- ? (await this.appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes
1154
- : params.approvalProgram
1155
- : undefined;
1156
- const clearStateProgram = 'clearStateProgram' in params
1157
- ? typeof params.clearStateProgram === 'string'
1158
- ? (await this.appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes
1159
- : params.clearStateProgram
1160
- : undefined;
1161
- const sdkParams = {
1162
- sender: params.sender,
1163
- suggestedParams,
1164
- appArgs: params.args,
1165
- onComplete: params.onComplete ?? algosdk.OnApplicationComplete.NoOpOC,
1166
- accounts: params.accountReferences,
1167
- foreignApps: params.appReferences?.map((x) => Number(x)),
1168
- foreignAssets: params.assetReferences?.map((x) => Number(x)),
1169
- boxes: params.boxReferences?.map(AppManager.getBoxReference),
1170
- access: params.accessReferences?.map(getResourceReference),
1171
- approvalProgram,
1172
- clearProgram: clearStateProgram,
1173
- rejectVersion: params.rejectVersion,
1174
- };
1175
- if (appId === 0n) {
1176
- if (sdkParams.approvalProgram === undefined || sdkParams.clearProgram === undefined) {
1177
- throw new Error('approvalProgram and clearStateProgram are required for application creation');
1178
- }
1179
- return this.commonTxnBuildStep(algosdk.makeApplicationCreateTxnFromObject, params, {
1180
- ...sdkParams,
1181
- extraPages: 'extraProgramPages' in params && params.extraProgramPages !== undefined
1182
- ? params.extraProgramPages
1183
- : calculateExtraProgramPages(approvalProgram, clearStateProgram),
1184
- numLocalInts: 'schema' in params ? (params.schema?.localInts ?? 0) : 0,
1185
- numLocalByteSlices: 'schema' in params ? (params.schema?.localByteSlices ?? 0) : 0,
1186
- numGlobalInts: 'schema' in params ? (params.schema?.globalInts ?? 0) : 0,
1187
- numGlobalByteSlices: 'schema' in params ? (params.schema?.globalByteSlices ?? 0) : 0,
1188
- approvalProgram: approvalProgram,
1189
- clearProgram: clearStateProgram,
1190
- });
1191
- }
1192
- else {
1193
- return this.commonTxnBuildStep(algosdk.makeApplicationCallTxnFromObject, params, { ...sdkParams, appIndex: appId });
1194
- }
1195
- }
1196
- buildKeyReg(params, suggestedParams) {
1197
- if ('voteKey' in params) {
1198
- return this.commonTxnBuildStep(algosdk.makeKeyRegistrationTxnWithSuggestedParamsFromObject, params, {
1199
- sender: params.sender,
1200
- voteKey: params.voteKey,
1201
- selectionKey: params.selectionKey,
1202
- voteFirst: params.voteFirst,
1203
- voteLast: params.voteLast,
1204
- voteKeyDilution: params.voteKeyDilution,
1205
- suggestedParams,
1206
- nonParticipation: false,
1207
- stateProofKey: params.stateProofKey,
1208
- });
1209
- }
1210
- return this.commonTxnBuildStep(algosdk.makeKeyRegistrationTxnWithSuggestedParamsFromObject, params, {
1211
- sender: params.sender,
1212
- suggestedParams,
1213
- nonParticipation: params.preventAccountFromEverParticipatingAgain,
1214
- });
1215
- }
1216
- /** Builds all transaction types apart from `txnWithSigner`, `atc` and `methodCall` since those ones can have custom signers that need to be retrieved. */
1217
- async buildTxn(txn, suggestedParams) {
1218
- switch (txn.type) {
1219
- case 'pay':
1220
- return [this.buildPayment(txn, suggestedParams)];
1221
- case 'assetCreate':
1222
- return [this.buildAssetCreate(txn, suggestedParams)];
1223
- case 'appCall':
1224
- return [await this.buildAppCall(txn, suggestedParams)];
1225
- case 'assetConfig':
1226
- return [this.buildAssetConfig(txn, suggestedParams)];
1227
- case 'assetDestroy':
1228
- return [this.buildAssetDestroy(txn, suggestedParams)];
1229
- case 'assetFreeze':
1230
- return [this.buildAssetFreeze(txn, suggestedParams)];
1231
- case 'assetTransfer':
1232
- return [this.buildAssetTransfer(txn, suggestedParams)];
1233
- case 'assetOptIn':
1234
- return [this.buildAssetTransfer({ ...txn, receiver: txn.sender, amount: 0n }, suggestedParams)];
1235
- case 'assetOptOut':
1236
- return [this.buildAssetTransfer({ ...txn, receiver: txn.sender, amount: 0n, closeAssetTo: txn.creator }, suggestedParams)];
1237
- case 'keyReg':
1238
- return [this.buildKeyReg(txn, suggestedParams)];
1239
- default:
1240
- throw Error(`Unsupported txn type`);
1241
- }
1242
- }
1243
- async buildTxnWithSigner(txn, suggestedParams) {
1244
- if (txn.type === 'txnWithSigner') {
1245
- return [
1246
- {
1247
- ...txn,
1248
- context: {},
1249
- },
1250
- ];
1251
- }
1252
- if (txn.type === 'atc') {
1253
- return this.buildAtc(txn.atc);
1254
- }
1255
- if (txn.type === 'methodCall') {
1256
- return await this.buildMethodCall(txn, suggestedParams, true);
1257
- }
1258
- const signer = txn.signer ? ('signer' in txn.signer ? txn.signer.signer : txn.signer) : this.getSigner(txn.sender);
1259
- return (await this.buildTxn(txn, suggestedParams)).map(({ txn, context }) => ({ txn, signer, context }));
1260
- }
1261
- /**
1262
- * Compose all of the transactions without signers and return the transaction objects directly along with any ABI method calls.
1263
- *
1264
- * @returns The array of built transactions and any corresponding method calls
1265
- * @example
1266
- * ```typescript
1267
- * const { transactions, methodCalls, signers } = await composer.buildTransactions()
1268
- * ```
1269
- */
1270
- async buildTransactions() {
1271
- const suggestedParams = await this.getSuggestedParams();
1272
- const transactions = [];
1273
- const methodCalls = new Map();
1274
- const signers = new Map();
1275
- for (const txn of this.txns) {
1276
- if (!['txnWithSigner', 'atc', 'methodCall'].includes(txn.type)) {
1277
- transactions.push(...(await this.buildTxn(txn, suggestedParams)).map((txn) => txn.txn));
1278
- }
1279
- else {
1280
- const transactionsWithSigner = txn.type === 'txnWithSigner'
1281
- ? [txn]
1282
- : txn.type === 'atc'
1283
- ? this.buildAtc(txn.atc)
1284
- : txn.type === 'methodCall'
1285
- ? await this.buildMethodCall(txn, suggestedParams, false)
1286
- : [];
1287
- transactionsWithSigner.forEach((ts) => {
1288
- transactions.push(ts.txn);
1289
- const groupIdx = transactions.length - 1;
1290
- if (ts.signer && ts.signer !== TransactionComposer.NULL_SIGNER) {
1291
- signers.set(groupIdx, ts.signer);
1292
- }
1293
- if ('context' in ts && ts.context.abiMethod) {
1294
- methodCalls.set(groupIdx, ts.context.abiMethod);
1295
- }
1296
- });
1297
- }
1298
- }
1299
- return { transactions, methodCalls, signers };
1300
- }
1301
- /**
1302
- * Get the number of transactions currently added to this composer.
1303
- * @returns The number of transactions currently added to this composer
1304
- */
1305
- async count() {
1306
- return (await this.buildTransactions()).transactions.length;
1307
- }
1308
- /**
1309
- * Compose all of the transactions in a single atomic transaction group and an atomic transaction composer.
1310
- *
1311
- * You can then use the transactions standalone, or use the composer to execute or simulate the transactions.
1312
- *
1313
- * Once this method is called, no further transactions will be able to be added.
1314
- * You can safely call this method multiple times to get the same result.
1315
- * @returns The built atomic transaction composer, the transactions and any corresponding method calls
1316
- * @example
1317
- * ```typescript
1318
- * const { atc, transactions, methodCalls } = await composer.build()
1319
- * ```
1320
- */
1321
- async build() {
1322
- if (this.atc.getStatus() === algosdk.AtomicTransactionComposerStatus.BUILDING) {
1323
- const suggestedParams = await this.getSuggestedParams();
1324
- // Build all of the transactions
1325
- const txnWithSigners = [];
1326
- for (const txn of this.txns) {
1327
- txnWithSigners.push(...(await this.buildTxnWithSigner(txn, suggestedParams)));
1328
- }
1329
- // Add all of the transactions to the underlying ATC
1330
- const methodCalls = new Map();
1331
- txnWithSigners.forEach(({ context, ...ts }, idx) => {
1332
- this.atc.addTransaction(ts);
1333
- // Populate consolidated set of all ABI method calls
1334
- if (context.abiMethod) {
1335
- methodCalls.set(idx, context.abiMethod);
1336
- }
1337
- if (context.maxFee !== undefined) {
1338
- this.txnMaxFees.set(idx, context.maxFee);
1339
- }
1340
- });
1341
- this.atc['methodCalls'] = methodCalls;
1342
- }
1343
- const transactions = this.atc.buildGroup();
1344
- return { atc: this.atc, transactions, methodCalls: this.atc['methodCalls'] };
1345
- }
1346
- /**
1347
- * Rebuild the group, discarding any previously built transactions.
1348
- * This will potentially cause new signers and suggested params to be used if the callbacks return a new value compared to the first build.
1349
- * @returns The newly built atomic transaction composer and the transactions
1350
- * @example
1351
- * ```typescript
1352
- * const { atc, transactions, methodCalls } = await composer.rebuild()
1353
- * ```
1354
- */
1355
- async rebuild() {
1356
- this.atc = new algosdk.AtomicTransactionComposer();
1357
- return await this.build();
1358
- }
1359
- /**
1360
- * Compose the atomic transaction group and send it to the network.
1361
- * @param params The parameters to control execution with
1362
- * @returns The execution result
1363
- * @example
1364
- * ```typescript
1365
- * const result = await composer.send()
1366
- * ```
1367
- */
1368
- async send(params) {
1369
- const group = (await this.build()).transactions;
1370
- let waitRounds = params?.maxRoundsToWaitForConfirmation;
1371
- const suggestedParams = waitRounds === undefined || params?.coverAppCallInnerTransactionFees ? await this.getSuggestedParams() : undefined;
1372
- if (waitRounds === undefined) {
1373
- const lastRound = group.reduce((max, txn) => (txn.txn.lastValid > max ? txn.txn.lastValid : BigInt(max)), 0n);
1374
- const { firstValid: firstRound } = suggestedParams;
1375
- waitRounds = Number(BigInt(lastRound) - BigInt(firstRound)) + 1;
1376
- }
1377
- try {
1378
- return await sendAtomicTransactionComposer({
1379
- atc: this.atc,
1380
- suppressLog: params?.suppressLog,
1381
- maxRoundsToWaitForConfirmation: waitRounds,
1382
- populateAppCallResources: params?.populateAppCallResources,
1383
- coverAppCallInnerTransactionFees: params?.coverAppCallInnerTransactionFees,
1384
- additionalAtcContext: params?.coverAppCallInnerTransactionFees
1385
- ? {
1386
- maxFees: this.txnMaxFees,
1387
- suggestedParams: suggestedParams,
1388
- }
1389
- : undefined,
1390
- }, this.algod);
1391
- }
1392
- catch (originalError) {
1393
- throw await this.transformError(originalError);
1394
- }
1395
- }
1396
- /**
1397
- * @deprecated Use `send` instead.
1398
- *
1399
- * Compose the atomic transaction group and send it to the network
1400
- *
1401
- * An alias for `composer.send(params)`.
1402
- * @param params The parameters to control execution with
1403
- * @returns The execution result
1404
- */
1405
- async execute(params) {
1406
- return this.send(params);
1407
- }
1408
- async simulate(options) {
1409
- const { skipSignatures = false, ...rawOptions } = options ?? {};
1410
- const atc = skipSignatures ? new AtomicTransactionComposer() : this.atc;
1411
- // Build the transactions
1412
- if (skipSignatures) {
1413
- rawOptions.allowEmptySignatures = true;
1414
- rawOptions.fixSigners = true;
1415
- // Build transactions uses empty signers
1416
- const transactions = await this.buildTransactions();
1417
- for (const txn of transactions.transactions) {
1418
- atc.addTransaction({ txn, signer: TransactionComposer.NULL_SIGNER });
1419
- }
1420
- atc['methodCalls'] = transactions.methodCalls;
1421
- }
1422
- else {
1423
- // Build creates real signatures
1424
- await this.build();
1425
- }
1426
- const { methodResults, simulateResponse } = await atc.simulate(this.algod, new modelsv2.SimulateRequest({
1427
- txnGroups: [],
1428
- ...rawOptions,
1429
- ...(Config.debug
1430
- ? {
1431
- allowEmptySignatures: true,
1432
- fixSigners: true,
1433
- allowMoreLogging: true,
1434
- execTraceConfig: new modelsv2.SimulateTraceConfig({
1435
- enable: true,
1436
- scratchChange: true,
1437
- stackChange: true,
1438
- stateChange: true,
1439
- }),
1440
- }
1441
- : undefined),
1442
- }));
1443
- const failedGroup = simulateResponse?.txnGroups[0];
1444
- if (failedGroup?.failureMessage) {
1445
- const errorMessage = `Transaction failed at transaction(s) ${failedGroup.failedAt?.join(', ') || 'unknown'} in the group. ${failedGroup.failureMessage}`;
1446
- const error = new Error(errorMessage);
1447
- if (Config.debug) {
1448
- await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateResponse });
1449
- }
1450
- throw await this.transformError(error);
1451
- }
1452
- if (Config.debug && Config.traceAll) {
1453
- await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateResponse });
1454
- }
1455
- const transactions = atc.buildGroup().map((t) => t.txn);
1456
- const methodCalls = [...atc['methodCalls'].values()];
1457
- return {
1458
- confirmations: simulateResponse.txnGroups[0].txnResults.map((t) => t.txnResult),
1459
- transactions: transactions,
1460
- txIds: transactions.map((t) => t.txID()),
1461
- groupId: Buffer.from(transactions[0].group ?? new Uint8Array()).toString('base64'),
1462
- simulateResponse,
1463
- returns: methodResults.map((r, i) => getABIReturnValue(r, methodCalls[i].returns.type)),
1464
- };
1465
- }
1466
- /**
1467
- * Create an encoded transaction note that follows the ARC-2 spec.
1468
- *
1469
- * https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0002.md
1470
- * @param note The ARC-2 transaction note data
1471
- * @returns The binary encoded transaction note
1472
- */
1473
- static arc2Note(note) {
1474
- const arc2Payload = `${note.dAppName}:${note.format}${typeof note.data === 'string' ? note.data : asJson(note.data)}`;
1475
- const encoder = new TextEncoder();
1476
- return encoder.encode(arc2Payload);
1477
- }
1478
- }
1479
- /** Signer used to represent a lack of signer */
1480
- TransactionComposer.NULL_SIGNER = algosdk.makeEmptyTransactionSigner();
1481
- /**
1482
- * Returns an `algosdk.TransactionResourceReference` given a `ResourceReference`.
1483
- */
1484
- function getResourceReference(accessReference) {
1485
- return {
1486
- address: typeof accessReference.address === 'string' ? Address.fromString(accessReference.address) : accessReference.address,
1487
- appIndex: accessReference.appId,
1488
- assetIndex: accessReference.assetId,
1489
- holding: accessReference.holding ? getHoldingReference(accessReference.holding) : undefined,
1490
- locals: accessReference.locals ? getLocalsReference(accessReference.locals) : undefined,
1491
- box: accessReference.box ? AppManager.getBoxReference(accessReference.box) : undefined,
1492
- };
1493
- }
1494
- function getHoldingReference(holdingReference) {
1495
- return {
1496
- assetIndex: holdingReference.assetId,
1497
- address: typeof holdingReference.address === 'string' ? Address.fromString(holdingReference.address) : holdingReference.address,
1498
- };
1499
- }
1500
- function getLocalsReference(localsReference) {
1501
- return {
1502
- appIndex: localsReference.appId,
1503
- address: typeof localsReference.address === 'string' ? Address.fromString(localsReference.address) : localsReference.address,
1504
- };
35
+ var TransactionComposer = class TransactionComposer {
36
+ /** Transactions that have not yet been composed */
37
+ txns = [];
38
+ /** The algod client used by the composer. */
39
+ algod;
40
+ /** An async function that will return suggested params for the transaction. */
41
+ getSuggestedParams;
42
+ /** A function that takes in an address and return a signer function for that address. */
43
+ getSigner;
44
+ /** The default transaction validity window */
45
+ defaultValidityWindow = 10n;
46
+ /** Whether the validity window was explicitly set on construction */
47
+ defaultValidityWindowIsExplicit = false;
48
+ appManager;
49
+ errorTransformers;
50
+ composerConfig;
51
+ transactionsWithSigners;
52
+ signedTransactions;
53
+ rawBuildTransactions;
54
+ async transformError(originalError) {
55
+ if (!(originalError instanceof Error)) return originalError;
56
+ let transformedError = originalError;
57
+ for (const transformer of this.errorTransformers) try {
58
+ transformedError = await transformer(transformedError);
59
+ if (!(transformedError instanceof Error)) return new InvalidErrorTransformerValue(originalError, transformedError);
60
+ } catch (errorFromTransformer) {
61
+ return new ErrorTransformerError(originalError, errorFromTransformer);
62
+ }
63
+ return transformedError;
64
+ }
65
+ validateReferenceParams(params) {
66
+ if (params.accessReferences && params.accessReferences.length > 0 && (params.appReferences && params.appReferences.length > 0 || params.assetReferences && params.assetReferences.length > 0 || params.boxReferences && params.boxReferences.length > 0)) throw new Error("Cannot specify both `accessReferences` and reference arrays (`appReferences`, `assetReferences`, `boxReferences`).");
67
+ }
68
+ /**
69
+ * Create a `TransactionComposer`.
70
+ * @param params The configuration for this composer
71
+ * @returns The `TransactionComposer` instance
72
+ */
73
+ constructor(params) {
74
+ this.algod = params.algod;
75
+ const defaultGetSuggestedParams = () => params.algod.suggestedParams();
76
+ this.getSuggestedParams = params.getSuggestedParams ?? defaultGetSuggestedParams;
77
+ this.getSigner = params.getSigner;
78
+ this.defaultValidityWindow = params.defaultValidityWindow ?? this.defaultValidityWindow;
79
+ this.defaultValidityWindowIsExplicit = params.defaultValidityWindow !== void 0;
80
+ this.appManager = params.appManager ?? new AppManager(params.algod);
81
+ this.errorTransformers = params.errorTransformers ?? [];
82
+ this.composerConfig = params.composerConfig ?? {
83
+ coverAppCallInnerTransactionFees: false,
84
+ populateAppCallResources: true
85
+ };
86
+ }
87
+ cloneTransaction(txn) {
88
+ switch (txn.type) {
89
+ case "pay": return {
90
+ type: "pay",
91
+ data: { ...txn.data }
92
+ };
93
+ case "assetCreate": return {
94
+ type: "assetCreate",
95
+ data: { ...txn.data }
96
+ };
97
+ case "assetConfig": return {
98
+ type: "assetConfig",
99
+ data: { ...txn.data }
100
+ };
101
+ case "assetFreeze": return {
102
+ type: "assetFreeze",
103
+ data: { ...txn.data }
104
+ };
105
+ case "assetDestroy": return {
106
+ type: "assetDestroy",
107
+ data: { ...txn.data }
108
+ };
109
+ case "assetTransfer": return {
110
+ type: "assetTransfer",
111
+ data: { ...txn.data }
112
+ };
113
+ case "assetOptIn": return {
114
+ type: "assetOptIn",
115
+ data: { ...txn.data }
116
+ };
117
+ case "assetOptOut": return {
118
+ type: "assetOptOut",
119
+ data: { ...txn.data }
120
+ };
121
+ case "appCall": return {
122
+ type: "appCall",
123
+ data: { ...txn.data }
124
+ };
125
+ case "keyReg": return {
126
+ type: "keyReg",
127
+ data: { ...txn.data }
128
+ };
129
+ case "txn": {
130
+ const { txn: transaction, signer, maxFee } = txn.data;
131
+ const clonedTxn = decodeTransaction(encodeTransactionRaw(transaction));
132
+ delete clonedTxn.group;
133
+ return {
134
+ type: "txn",
135
+ data: {
136
+ txn: clonedTxn,
137
+ signer,
138
+ maxFee
139
+ }
140
+ };
141
+ }
142
+ case "asyncTxn": {
143
+ const { txn: txnPromise, signer, maxFee } = txn.data;
144
+ return {
145
+ type: "asyncTxn",
146
+ data: {
147
+ txn: txnPromise.then((resolvedTxn) => {
148
+ const clonedTxn = decodeTransaction(encodeTransactionRaw(resolvedTxn));
149
+ delete clonedTxn.group;
150
+ return clonedTxn;
151
+ }),
152
+ signer,
153
+ maxFee
154
+ }
155
+ };
156
+ }
157
+ case "methodCall": return {
158
+ type: "methodCall",
159
+ data: { ...txn.data }
160
+ };
161
+ }
162
+ }
163
+ push(...txns) {
164
+ if (this.transactionsWithSigners) throw new Error("Cannot add new transactions after building");
165
+ if (this.txns.length + txns.length > MAX_TRANSACTION_GROUP_SIZE) throw new Error(`Adding ${txns.length} transaction(s) would exceed the maximum group size. Current: ${this.txns.length}, Maximum: ${MAX_TRANSACTION_GROUP_SIZE}`);
166
+ this.txns.push(...txns);
167
+ }
168
+ clone(composerConfig) {
169
+ const newComposer = new TransactionComposer({
170
+ algod: this.algod,
171
+ getSuggestedParams: this.getSuggestedParams,
172
+ getSigner: this.getSigner,
173
+ defaultValidityWindow: this.defaultValidityWindow,
174
+ appManager: this.appManager,
175
+ errorTransformers: this.errorTransformers,
176
+ composerConfig: {
177
+ ...this.composerConfig,
178
+ ...composerConfig
179
+ }
180
+ });
181
+ this.txns.forEach((txn) => {
182
+ newComposer.txns.push(this.cloneTransaction(txn));
183
+ });
184
+ newComposer.defaultValidityWindowIsExplicit = this.defaultValidityWindowIsExplicit;
185
+ return newComposer;
186
+ }
187
+ /**
188
+ * Register a function that will be used to transform an error caught when simulating or executing
189
+ *
190
+ * @returns The composer so you can chain method calls
191
+ */
192
+ registerErrorTransformer(transformer) {
193
+ this.errorTransformers.push(transformer);
194
+ return this;
195
+ }
196
+ /**
197
+ * Add a pre-built transaction to the transaction group.
198
+ * @param transaction The pre-built transaction
199
+ * @param signer Optional signer override for the transaction
200
+ * @returns The composer so you can chain method calls
201
+ * @example
202
+ * ```typescript
203
+ * composer.addTransaction(txn)
204
+ * ```
205
+ */
206
+ addTransaction(transaction, signer) {
207
+ if (transaction.group) throw new Error("Cannot add a transaction to the composer because it is already in a group");
208
+ this.push({
209
+ data: {
210
+ txn: transaction,
211
+ signer: signer ?? this.getSigner(transaction.sender)
212
+ },
213
+ type: "txn"
214
+ });
215
+ return this;
216
+ }
217
+ /**
218
+ * Add another transaction composer to the current transaction composer.
219
+ * The transaction params of the input transaction composer will be added.
220
+ * If the input transaction composer is updated, it won't affect the current transaction composer.
221
+ * @param composer The transaction composer to add
222
+ * @returns The composer so you can chain method calls
223
+ * @example
224
+ * ```typescript
225
+ * const innerComposer = algorand.newGroup()
226
+ * .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (1).algo() })
227
+ * .addPayment({ sender: 'SENDER', receiver: 'RECEIVER', amount: (2).algo() })
228
+ *
229
+ * composer.addTransactionComposer(innerComposer)
230
+ * ```
231
+ */
232
+ addTransactionComposer(composer) {
233
+ const clonedTxns = composer.txns.map((txn) => this.cloneTransaction(txn));
234
+ this.push(...clonedTxns);
235
+ return this;
236
+ }
237
+ /**
238
+ * Add a payment transaction to the transaction group.
239
+ * @param params The payment transaction parameters
240
+ * @returns The composer so you can chain method calls
241
+ * @example Basic example
242
+ * ```typescript
243
+ * composer.addPayment({
244
+ * sender: 'SENDERADDRESS',
245
+ * receiver: 'RECEIVERADDRESS',
246
+ * amount: (4).algo(),
247
+ * })
248
+ * ```
249
+ * @example Advanced example
250
+ * ```typescript
251
+ * composer.addPayment({
252
+ * amount: (4).algo(),
253
+ * receiver: 'RECEIVERADDRESS',
254
+ * sender: 'SENDERADDRESS',
255
+ * closeRemainderTo: 'CLOSEREMAINDERTOADDRESS',
256
+ * lease: 'lease',
257
+ * note: 'note',
258
+ * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
259
+ * rekeyTo: 'REKEYTOADDRESS',
260
+ * // You wouldn't normally set this field
261
+ * firstValidRound: 1000n,
262
+ * validityWindow: 10,
263
+ * extraFee: (1000).microAlgo(),
264
+ * staticFee: (1000).microAlgo(),
265
+ * // Max fee doesn't make sense with extraFee AND staticFee
266
+ * // already specified, but here for completeness
267
+ * maxFee: (3000).microAlgo(),
268
+ * })
269
+ */
270
+ addPayment(params) {
271
+ this.push({
272
+ data: params,
273
+ type: "pay"
274
+ });
275
+ return this;
276
+ }
277
+ /**
278
+ * Add an asset create transaction to the transaction group.
279
+ * @param params The asset create transaction parameters
280
+ * @returns The composer so you can chain method calls
281
+ * @example Basic example
282
+ * ```typescript
283
+ * composer.addAssetCreate({ sender: "CREATORADDRESS", total: 100n})
284
+ * ```
285
+ * @example Advanced example
286
+ * ```typescript
287
+ * composer.addAssetCreate({
288
+ * sender: 'CREATORADDRESS',
289
+ * total: 100n,
290
+ * decimals: 2,
291
+ * assetName: 'asset',
292
+ * unitName: 'unit',
293
+ * url: 'url',
294
+ * metadataHash: 'metadataHash',
295
+ * defaultFrozen: false,
296
+ * manager: 'MANAGERADDRESS',
297
+ * reserve: 'RESERVEADDRESS',
298
+ * freeze: 'FREEZEADDRESS',
299
+ * clawback: 'CLAWBACKADDRESS',
300
+ * lease: 'lease',
301
+ * note: 'note',
302
+ * // You wouldn't normally set this field
303
+ * firstValidRound: 1000n,
304
+ * validityWindow: 10,
305
+ * extraFee: (1000).microAlgo(),
306
+ * staticFee: (1000).microAlgo(),
307
+ * // Max fee doesn't make sense with extraFee AND staticFee
308
+ * // already specified, but here for completeness
309
+ * maxFee: (3000).microAlgo(),
310
+ * })
311
+ */
312
+ addAssetCreate(params) {
313
+ this.push({
314
+ data: params,
315
+ type: "assetCreate"
316
+ });
317
+ return this;
318
+ }
319
+ /**
320
+ * Add an asset config transaction to the transaction group.
321
+ * @param params The asset config transaction parameters
322
+ * @returns The composer so you can chain method calls
323
+ * @example Basic example
324
+ * ```typescript
325
+ * composer.addAssetConfig({ sender: "MANAGERADDRESS", assetId: 123456n, manager: "MANAGERADDRESS" })
326
+ * ```
327
+ * @example Advanced example
328
+ * ```typescript
329
+ * composer.addAssetConfig({
330
+ * sender: 'MANAGERADDRESS',
331
+ * assetId: 123456n,
332
+ * manager: 'MANAGERADDRESS',
333
+ * reserve: 'RESERVEADDRESS',
334
+ * freeze: 'FREEZEADDRESS',
335
+ * clawback: 'CLAWBACKADDRESS',
336
+ * lease: 'lease',
337
+ * note: 'note',
338
+ * // You wouldn't normally set this field
339
+ * firstValidRound: 1000n,
340
+ * validityWindow: 10,
341
+ * extraFee: (1000).microAlgo(),
342
+ * staticFee: (1000).microAlgo(),
343
+ * // Max fee doesn't make sense with extraFee AND staticFee
344
+ * // already specified, but here for completeness
345
+ * maxFee: (3000).microAlgo(),
346
+ * })
347
+ */
348
+ addAssetConfig(params) {
349
+ this.push({
350
+ data: params,
351
+ type: "assetConfig"
352
+ });
353
+ return this;
354
+ }
355
+ /**
356
+ * Add an asset freeze transaction to the transaction group.
357
+ * @param params The asset freeze transaction parameters
358
+ * @returns The composer so you can chain method calls
359
+ * @example Basic example
360
+ * ```typescript
361
+ * composer.addAssetFreeze({ sender: "MANAGERADDRESS", assetId: 123456n, account: "ACCOUNTADDRESS", frozen: true })
362
+ * ```
363
+ * @example Advanced example
364
+ * ```typescript
365
+ * composer.addAssetFreeze({
366
+ * sender: 'MANAGERADDRESS',
367
+ * assetId: 123456n,
368
+ * account: 'ACCOUNTADDRESS',
369
+ * frozen: true,
370
+ * lease: 'lease',
371
+ * note: 'note',
372
+ * // You wouldn't normally set this field
373
+ * firstValidRound: 1000n,
374
+ * validityWindow: 10,
375
+ * extraFee: (1000).microAlgo(),
376
+ * staticFee: (1000).microAlgo(),
377
+ * // Max fee doesn't make sense with extraFee AND staticFee
378
+ * // already specified, but here for completeness
379
+ * maxFee: (3000).microAlgo(),
380
+ * })
381
+ * ```
382
+ */
383
+ addAssetFreeze(params) {
384
+ this.push({
385
+ data: params,
386
+ type: "assetFreeze"
387
+ });
388
+ return this;
389
+ }
390
+ /**
391
+ * Add an asset destroy transaction to the transaction group.
392
+ * @param params The asset destroy transaction parameters
393
+ * @returns The composer so you can chain method calls
394
+ * @example Basic example
395
+ * ```typescript
396
+ * composer.addAssetDestroy({ sender: "MANAGERADDRESS", assetId: 123456n })
397
+ * ```
398
+ * @example Advanced example
399
+ * ```typescript
400
+ * composer.addAssetDestroy({
401
+ * sender: 'MANAGERADDRESS',
402
+ * assetId: 123456n,
403
+ * lease: 'lease',
404
+ * note: 'note',
405
+ * // You wouldn't normally set this field
406
+ * firstValidRound: 1000n,
407
+ * validityWindow: 10,
408
+ * extraFee: (1000).microAlgo(),
409
+ * staticFee: (1000).microAlgo(),
410
+ * // Max fee doesn't make sense with extraFee AND staticFee
411
+ * // already specified, but here for completeness
412
+ * maxFee: (3000).microAlgo(),
413
+ * })
414
+ * ```
415
+ */
416
+ addAssetDestroy(params) {
417
+ this.push({
418
+ data: params,
419
+ type: "assetDestroy"
420
+ });
421
+ return this;
422
+ }
423
+ /**
424
+ * Add an asset transfer transaction to the transaction group.
425
+ * @param params The asset transfer transaction parameters
426
+ * @returns The composer so you can chain method calls
427
+ * @example Basic example
428
+ * ```typescript
429
+ * composer.addAssetTransfer({ sender: "HOLDERADDRESS", assetId: 123456n, amount: 1n, receiver: "RECEIVERADDRESS" })
430
+ * ```
431
+ * @example Advanced example (with clawback)
432
+ * ```typescript
433
+ * composer.addAssetTransfer({
434
+ * sender: 'CLAWBACKADDRESS',
435
+ * assetId: 123456n,
436
+ * amount: 1n,
437
+ * receiver: 'RECEIVERADDRESS',
438
+ * clawbackTarget: 'HOLDERADDRESS',
439
+ * // This field needs to be used with caution
440
+ * closeAssetTo: 'ADDRESSTOCLOSETO'
441
+ * lease: 'lease',
442
+ * note: 'note',
443
+ * // You wouldn't normally set this field
444
+ * firstValidRound: 1000n,
445
+ * validityWindow: 10,
446
+ * extraFee: (1000).microAlgo(),
447
+ * staticFee: (1000).microAlgo(),
448
+ * // Max fee doesn't make sense with extraFee AND staticFee
449
+ * // already specified, but here for completeness
450
+ * maxFee: (3000).microAlgo(),
451
+ * })
452
+ * ```
453
+ */
454
+ addAssetTransfer(params) {
455
+ this.push({
456
+ data: params,
457
+ type: "assetTransfer"
458
+ });
459
+ return this;
460
+ }
461
+ /**
462
+ * Add an asset opt-in transaction to the transaction group.
463
+ * @param params The asset opt-in transaction parameters
464
+ * @returns The composer so you can chain method calls
465
+ * @example Basic example
466
+ * ```typescript
467
+ * composer.addAssetOptIn({ sender: "SENDERADDRESS", assetId: 123456n })
468
+ * ```
469
+ * @example Advanced example
470
+ * ```typescript
471
+ * composer.addAssetOptIn({
472
+ * sender: 'SENDERADDRESS',
473
+ * assetId: 123456n,
474
+ * lease: 'lease',
475
+ * note: 'note',
476
+ * // You wouldn't normally set this field
477
+ * firstValidRound: 1000n,
478
+ * validityWindow: 10,
479
+ * extraFee: (1000).microAlgo(),
480
+ * staticFee: (1000).microAlgo(),
481
+ * // Max fee doesn't make sense with extraFee AND staticFee
482
+ * // already specified, but here for completeness
483
+ * maxFee: (3000).microAlgo(),
484
+ * })
485
+ * ```
486
+ */
487
+ addAssetOptIn(params) {
488
+ this.push({
489
+ data: params,
490
+ type: "assetOptIn"
491
+ });
492
+ return this;
493
+ }
494
+ /**
495
+ * Add an asset opt-out transaction to the transaction group.
496
+ * @param params The asset opt-out transaction parameters
497
+ * @returns The composer so you can chain method calls
498
+ * @example Basic example (without creator, will be retrieved from algod)
499
+ * ```typescript
500
+ * composer.addAssetOptOut({ sender: "SENDERADDRESS", assetId: 123456n, ensureZeroBalance: true })
501
+ * ```
502
+ * @example Basic example (with creator)
503
+ * ```typescript
504
+ * composer.addAssetOptOut({ sender: "SENDERADDRESS", creator: "CREATORADDRESS", assetId: 123456n, ensureZeroBalance: true })
505
+ * ```
506
+ * @example Advanced example
507
+ * ```typescript
508
+ * composer.addAssetOptOut({
509
+ * sender: 'SENDERADDRESS',
510
+ * assetId: 123456n,
511
+ * creator: 'CREATORADDRESS',
512
+ * ensureZeroBalance: true,
513
+ * lease: 'lease',
514
+ * note: 'note',
515
+ * // You wouldn't normally set this field
516
+ * firstValidRound: 1000n,
517
+ * validityWindow: 10,
518
+ * extraFee: (1000).microAlgo(),
519
+ * staticFee: (1000).microAlgo(),
520
+ * // Max fee doesn't make sense with extraFee AND staticFee
521
+ * // already specified, but here for completeness
522
+ * maxFee: (3000).microAlgo(),
523
+ * })
524
+ * ```
525
+ */
526
+ addAssetOptOut(params) {
527
+ this.push({
528
+ data: params,
529
+ type: "assetOptOut"
530
+ });
531
+ return this;
532
+ }
533
+ /**
534
+ * Add an application create transaction to the transaction group.
535
+ *
536
+ * Note: we recommend using app clients to make it easier to make app calls.
537
+ * @param params The application create transaction parameters
538
+ * @returns The composer so you can chain method calls
539
+ * @example Basic example
540
+ * ```typescript
541
+ * composer.addAppCreate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })
542
+ * ```
543
+ * @example Advanced example
544
+ * ```typescript
545
+ * composer.addAppCreate({
546
+ * sender: 'CREATORADDRESS',
547
+ * approvalProgram: "TEALCODE",
548
+ * clearStateProgram: "TEALCODE",
549
+ * schema: {
550
+ * globalInts: 1,
551
+ * globalByteSlices: 2,
552
+ * localInts: 3,
553
+ * localByteSlices: 4
554
+ * },
555
+ * extraProgramPages: 1,
556
+ * onComplete: OnApplicationComplete.OptIn,
557
+ * args: [new Uint8Array(1, 2, 3, 4)]
558
+ * accountReferences: ["ACCOUNT_1"]
559
+ * appReferences: [123n, 1234n]
560
+ * assetReferences: [12345n]
561
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
562
+ * accessReferences: [{ appId: 1234n }]
563
+ * lease: 'lease',
564
+ * note: 'note',
565
+ * // You wouldn't normally set this field
566
+ * firstValidRound: 1000n,
567
+ * validityWindow: 10,
568
+ * extraFee: (1000).microAlgo(),
569
+ * staticFee: (1000).microAlgo(),
570
+ * // Max fee doesn't make sense with extraFee AND staticFee
571
+ * // already specified, but here for completeness
572
+ * maxFee: (3000).microAlgo(),
573
+ * rejectVersion: 1,
574
+ * // Signer only needed if you want to provide one,
575
+ * // generally you'd register it with AlgorandClient
576
+ * // against the sender and not need to pass it in
577
+ * signer: transactionSigner,
578
+ * maxRoundsToWaitForConfirmation: 5,
579
+ * suppressLog: true,
580
+ *})
581
+ * ```
582
+ */
583
+ addAppCreate(params) {
584
+ this.validateReferenceParams(params);
585
+ this.push({
586
+ data: params,
587
+ type: "appCall"
588
+ });
589
+ return this;
590
+ }
591
+ /**
592
+ * Add an application update transaction to the transaction group.
593
+ *
594
+ * Note: we recommend using app clients to make it easier to make app calls.
595
+ * @param params The application update transaction parameters
596
+ * @returns The composer so you can chain method calls
597
+ * @example Basic example
598
+ * ```typescript
599
+ * composer.addAppUpdate({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE' })
600
+ * ```
601
+ * @example Advanced example
602
+ * ```typescript
603
+ * composer.addAppUpdate({
604
+ * sender: 'CREATORADDRESS',
605
+ * approvalProgram: "TEALCODE",
606
+ * clearStateProgram: "TEALCODE",
607
+ * onComplete: OnApplicationComplete.UpdateApplication,
608
+ * args: [new Uint8Array(1, 2, 3, 4)]
609
+ * accountReferences: ["ACCOUNT_1"]
610
+ * appReferences: [123n, 1234n]
611
+ * assetReferences: [12345n]
612
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
613
+ * accessReferences: [{ appId: 1234n }]
614
+ * lease: 'lease',
615
+ * note: 'note',
616
+ * // You wouldn't normally set this field
617
+ * firstValidRound: 1000n,
618
+ * validityWindow: 10,
619
+ * extraFee: (1000).microAlgo(),
620
+ * staticFee: (1000).microAlgo(),
621
+ * // Max fee doesn't make sense with extraFee AND staticFee
622
+ * // already specified, but here for completeness
623
+ * maxFee: (3000).microAlgo(),
624
+ * rejectVersion: 1,
625
+ *})
626
+ * ```
627
+ */
628
+ addAppUpdate(params) {
629
+ this.validateReferenceParams(params);
630
+ this.push({
631
+ data: {
632
+ ...params,
633
+ onComplete: OnApplicationComplete.UpdateApplication
634
+ },
635
+ type: "appCall"
636
+ });
637
+ return this;
638
+ }
639
+ /**
640
+ * Add an application delete transaction to the transaction group.
641
+ *
642
+ * Note: we recommend using app clients to make it easier to make app calls.
643
+ * @param params The application delete transaction parameters
644
+ * @returns The composer so you can chain method calls
645
+ * @example Basic example
646
+ * ```typescript
647
+ * composer.addAppDelete({ sender: 'CREATORADDRESS' })
648
+ * ```
649
+ * @example Advanced example
650
+ * ```typescript
651
+ * composer.addAppDelete({
652
+ * sender: 'CREATORADDRESS',
653
+ * onComplete: OnApplicationComplete.DeleteApplication,
654
+ * args: [new Uint8Array(1, 2, 3, 4)]
655
+ * accountReferences: ["ACCOUNT_1"]
656
+ * appReferences: [123n, 1234n]
657
+ * assetReferences: [12345n]
658
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
659
+ * accessReferences: [{ appId: 1234n }]
660
+ * lease: 'lease',
661
+ * note: 'note',
662
+ * // You wouldn't normally set this field
663
+ * firstValidRound: 1000n,
664
+ * validityWindow: 10,
665
+ * extraFee: (1000).microAlgo(),
666
+ * staticFee: (1000).microAlgo(),
667
+ * // Max fee doesn't make sense with extraFee AND staticFee
668
+ * // already specified, but here for completeness
669
+ * maxFee: (3000).microAlgo(),
670
+ * rejectVersion: 1,
671
+ *})
672
+ * ```
673
+ */
674
+ addAppDelete(params) {
675
+ this.validateReferenceParams(params);
676
+ this.push({
677
+ data: {
678
+ ...params,
679
+ onComplete: OnApplicationComplete.DeleteApplication
680
+ },
681
+ type: "appCall"
682
+ });
683
+ return this;
684
+ }
685
+ /**
686
+ * Add an application call transaction to the transaction group.
687
+ *
688
+ * If you want to create or update an app use `addAppCreate` or `addAppUpdate`.
689
+ *
690
+ * Note: we recommend using app clients to make it easier to make app calls.
691
+ * @param params The application call transaction parameters
692
+ * @returns The composer so you can chain method calls
693
+ * @example Basic example
694
+ * ```typescript
695
+ * composer.addAppCall({ sender: 'CREATORADDRESS' })
696
+ * ```
697
+ * @example Advanced example
698
+ * ```typescript
699
+ * composer.addAppCall({
700
+ * sender: 'CREATORADDRESS',
701
+ * onComplete: OnApplicationComplete.OptIn,
702
+ * args: [new Uint8Array(1, 2, 3, 4)]
703
+ * accountReferences: ["ACCOUNT_1"]
704
+ * appReferences: [123n, 1234n]
705
+ * assetReferences: [12345n]
706
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
707
+ * accessReferences: [{ appId: 1234n }]
708
+ * lease: 'lease',
709
+ * note: 'note',
710
+ * // You wouldn't normally set this field
711
+ * firstValidRound: 1000n,
712
+ * validityWindow: 10,
713
+ * extraFee: (1000).microAlgo(),
714
+ * staticFee: (1000).microAlgo(),
715
+ * // Max fee doesn't make sense with extraFee AND staticFee
716
+ * // already specified, but here for completeness
717
+ * maxFee: (3000).microAlgo(),
718
+ * rejectVersion: 1,
719
+ *})
720
+ * ```
721
+ */
722
+ addAppCall(params) {
723
+ this.validateReferenceParams(params);
724
+ this.push({
725
+ data: params,
726
+ type: "appCall"
727
+ });
728
+ return this;
729
+ }
730
+ /**
731
+ * Add an ABI method create application call transaction to the transaction group.
732
+ *
733
+ * Note: we recommend using app clients to make it easier to make app calls.
734
+ * @param params The ABI create method application call transaction parameters
735
+ * @returns The composer so you can chain method calls
736
+ * @example Basic example
737
+ * ```typescript
738
+ * const method = new ABIMethod({
739
+ * name: 'method',
740
+ * args: [{ name: 'arg1', type: 'string' }],
741
+ * returns: { type: 'string' },
742
+ * })
743
+ * composer.addAppCreateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: ["arg1_value"] })
744
+ * ```
745
+ * @example Advanced example
746
+ * ```typescript
747
+ * const method = new ABIMethod({
748
+ * name: 'method',
749
+ * args: [{ name: 'arg1', type: 'string' }],
750
+ * returns: { type: 'string' },
751
+ * })
752
+ * composer.addAppCreateMethodCall({
753
+ * sender: 'CREATORADDRESS',
754
+ * method: method,
755
+ * args: ["arg1_value"],
756
+ * approvalProgram: "TEALCODE",
757
+ * clearStateProgram: "TEALCODE",
758
+ * schema: {
759
+ * globalInts: 1,
760
+ * globalByteSlices: 2,
761
+ * localInts: 3,
762
+ * localByteSlices: 4
763
+ * },
764
+ * extraProgramPages: 1,
765
+ * onComplete: OnApplicationComplete.OptIn,
766
+ * args: [new Uint8Array(1, 2, 3, 4)]
767
+ * accountReferences: ["ACCOUNT_1"]
768
+ * appReferences: [123n, 1234n]
769
+ * assetReferences: [12345n]
770
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
771
+ * accessReferences: [{ appId: 1234n }]
772
+ * lease: 'lease',
773
+ * note: 'note',
774
+ * // You wouldn't normally set this field
775
+ * firstValidRound: 1000n,
776
+ * validityWindow: 10,
777
+ * extraFee: (1000).microAlgo(),
778
+ * staticFee: (1000).microAlgo(),
779
+ * // Max fee doesn't make sense with extraFee AND staticFee
780
+ * // already specified, but here for completeness
781
+ * maxFee: (3000).microAlgo(),
782
+ * rejectVersion: 1,
783
+ *})
784
+ * ```
785
+ */
786
+ addAppCreateMethodCall(params) {
787
+ this.validateReferenceParams(params);
788
+ const txnArgs = extractComposerTransactionsFromAppMethodCallParams(params);
789
+ this.push(...txnArgs, {
790
+ data: {
791
+ ...params,
792
+ args: processAppMethodCallArgs(params.args)
793
+ },
794
+ type: "methodCall"
795
+ });
796
+ return this;
797
+ }
798
+ /**
799
+ * Add an ABI method update application call transaction to the transaction group.
800
+ *
801
+ * Note: we recommend using app clients to make it easier to make app calls.
802
+ * @param params The ABI update method application call transaction parameters
803
+ * @returns The composer so you can chain method calls
804
+ * @example Basic example
805
+ * ```typescript
806
+ * const method = new ABIMethod({
807
+ * name: 'method',
808
+ * args: [{ name: 'arg1', type: 'string' }],
809
+ * returns: { type: 'string' },
810
+ * })
811
+ * composer.addAppUpdateMethodCall({ sender: 'CREATORADDRESS', approvalProgram: 'TEALCODE', clearStateProgram: 'TEALCODE', method: method, args: ["arg1_value"] })
812
+ * ```
813
+ * @example Advanced example
814
+ * ```typescript
815
+ * const method = new ABIMethod({
816
+ * name: 'method',
817
+ * args: [{ name: 'arg1', type: 'string' }],
818
+ * returns: { type: 'string' },
819
+ * })
820
+ * composer.addAppUpdateMethodCall({
821
+ * sender: 'CREATORADDRESS',
822
+ * method: method,
823
+ * args: ["arg1_value"],
824
+ * approvalProgram: "TEALCODE",
825
+ * clearStateProgram: "TEALCODE",
826
+ * onComplete: OnApplicationComplete.UpdateApplication,
827
+ * args: [new Uint8Array(1, 2, 3, 4)]
828
+ * accountReferences: ["ACCOUNT_1"]
829
+ * appReferences: [123n, 1234n]
830
+ * assetReferences: [12345n]
831
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
832
+ * accessReferences: [{ appId: 1234n }]
833
+ * lease: 'lease',
834
+ * note: 'note',
835
+ * // You wouldn't normally set this field
836
+ * firstValidRound: 1000n,
837
+ * validityWindow: 10,
838
+ * extraFee: (1000).microAlgo(),
839
+ * staticFee: (1000).microAlgo(),
840
+ * // Max fee doesn't make sense with extraFee AND staticFee
841
+ * // already specified, but here for completeness
842
+ * maxFee: (3000).microAlgo(),
843
+ * rejectVersion: 1,
844
+ *})
845
+ * ```
846
+ */
847
+ addAppUpdateMethodCall(params) {
848
+ this.validateReferenceParams(params);
849
+ const txnArgs = extractComposerTransactionsFromAppMethodCallParams(params);
850
+ this.push(...txnArgs, {
851
+ data: {
852
+ ...params,
853
+ args: processAppMethodCallArgs(params.args),
854
+ onComplete: OnApplicationComplete.UpdateApplication
855
+ },
856
+ type: "methodCall"
857
+ });
858
+ return this;
859
+ }
860
+ /**
861
+ * Add an ABI method delete application call transaction to the transaction group.
862
+ *
863
+ * Note: we recommend using app clients to make it easier to make app calls.
864
+ * @param params The ABI delete method application call transaction parameters
865
+ * @returns The composer so you can chain method calls
866
+ * @example Basic example
867
+ * ```typescript
868
+ * const method = new ABIMethod({
869
+ * name: 'method',
870
+ * args: [{ name: 'arg1', type: 'string' }],
871
+ * returns: { type: 'string' },
872
+ * })
873
+ * composer.addAppDeleteMethodCall({ sender: 'CREATORADDRESS', method: method, args: ["arg1_value"] })
874
+ * ```
875
+ * @example Advanced example
876
+ * ```typescript
877
+ * const method = new ABIMethod({
878
+ * name: 'method',
879
+ * args: [{ name: 'arg1', type: 'string' }],
880
+ * returns: { type: 'string' },
881
+ * })
882
+ * composer.addAppDeleteMethodCall({
883
+ * sender: 'CREATORADDRESS',
884
+ * method: method,
885
+ * args: ["arg1_value"],
886
+ * onComplete: OnApplicationComplete.DeleteApplication,
887
+ * args: [new Uint8Array(1, 2, 3, 4)]
888
+ * accountReferences: ["ACCOUNT_1"]
889
+ * appReferences: [123n, 1234n]
890
+ * assetReferences: [12345n]
891
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
892
+ * accessReferences: [{ appId: 1234n }]
893
+ * lease: 'lease',
894
+ * note: 'note',
895
+ * // You wouldn't normally set this field
896
+ * firstValidRound: 1000n,
897
+ * validityWindow: 10,
898
+ * extraFee: (1000).microAlgo(),
899
+ * staticFee: (1000).microAlgo(),
900
+ * // Max fee doesn't make sense with extraFee AND staticFee
901
+ * // already specified, but here for completeness
902
+ * maxFee: (3000).microAlgo(),
903
+ * rejectVersion: 1,
904
+ *})
905
+ * ```
906
+ */
907
+ addAppDeleteMethodCall(params) {
908
+ this.validateReferenceParams(params);
909
+ const txnArgs = extractComposerTransactionsFromAppMethodCallParams(params);
910
+ this.push(...txnArgs, {
911
+ data: {
912
+ ...params,
913
+ args: processAppMethodCallArgs(params.args),
914
+ onComplete: OnApplicationComplete.DeleteApplication
915
+ },
916
+ type: "methodCall"
917
+ });
918
+ return this;
919
+ }
920
+ /**
921
+ * Add a non-create/non-update ABI method application call transaction to the transaction group.
922
+ *
923
+ * Note: we recommend using app clients to make it easier to make app calls.
924
+ * @param params The ABI method application call transaction parameters
925
+ * @returns The composer so you can chain method calls
926
+ * @example Basic example
927
+ * ```typescript
928
+ * const method = new ABIMethod({
929
+ * name: 'method',
930
+ * args: [{ name: 'arg1', type: 'string' }],
931
+ * returns: { type: 'string' },
932
+ * })
933
+ * composer.addAppCallMethodCall({ sender: 'CREATORADDRESS', method: method, args: ["arg1_value"] })
934
+ * ```
935
+ * @example Advanced example
936
+ * ```typescript
937
+ * const method = new ABIMethod({
938
+ * name: 'method',
939
+ * args: [{ name: 'arg1', type: 'string' }],
940
+ * returns: { type: 'string' },
941
+ * })
942
+ * composer.addAppCallMethodCall({
943
+ * sender: 'CREATORADDRESS',
944
+ * method: method,
945
+ * args: ["arg1_value"],
946
+ * onComplete: OnApplicationComplete.OptIn,
947
+ * args: [new Uint8Array(1, 2, 3, 4)]
948
+ * accountReferences: ["ACCOUNT_1"]
949
+ * appReferences: [123n, 1234n]
950
+ * assetReferences: [12345n]
951
+ * boxReferences: ["box1", {appId: 1234n, name: "box2"}]
952
+ * accessReferences: [{ appId: 1234n }]
953
+ * lease: 'lease',
954
+ * note: 'note',
955
+ * // You wouldn't normally set this field
956
+ * firstValidRound: 1000n,
957
+ * validityWindow: 10,
958
+ * extraFee: (1000).microAlgo(),
959
+ * staticFee: (1000).microAlgo(),
960
+ * // Max fee doesn't make sense with extraFee AND staticFee
961
+ * // already specified, but here for completeness
962
+ * maxFee: (3000).microAlgo(),
963
+ * rejectVersion: 1,
964
+ *})
965
+ * ```
966
+ */
967
+ addAppCallMethodCall(params) {
968
+ this.validateReferenceParams(params);
969
+ const txnArgs = extractComposerTransactionsFromAppMethodCallParams(params);
970
+ this.push(...txnArgs, {
971
+ data: {
972
+ ...params,
973
+ args: processAppMethodCallArgs(params.args)
974
+ },
975
+ type: "methodCall"
976
+ });
977
+ return this;
978
+ }
979
+ /**
980
+ * Add an online key registration transaction to the transaction group.
981
+ * @param params The online key registration transaction parameters
982
+ * @returns The composer so you can chain method calls
983
+ * @example Basic example
984
+ * ```typescript
985
+ * composer.addOnlineKeyRegistration({
986
+ * sender: 'SENDERADDRESS',
987
+ * voteKey: Uint8Array.from(Buffer.from("voteKeyBase64", 'base64')),
988
+ * selectionKey: Uint8Array.from(Buffer.from("selectionKeyBase64", 'base64')),
989
+ * stateProofKey: Uint8Array.from(Buffer.from("stateProofKeyBase64", 'base64')),
990
+ * voteFirst: 1n,
991
+ * voteLast: 1000n,
992
+ * voteKeyDilution: 1n,
993
+ * })
994
+ * ```
995
+ * @example Advanced example
996
+ * ```typescript
997
+ * composer.addOnlineKeyRegistration({
998
+ * sender: 'SENDERADDRESS',
999
+ * voteKey: Uint8Array.from(Buffer.from("voteKeyBase64", 'base64')),
1000
+ * selectionKey: Uint8Array.from(Buffer.from("selectionKeyBase64", 'base64')),
1001
+ * stateProofKey: Uint8Array.from(Buffer.from("stateProofKeyBase64", 'base64')),
1002
+ * voteFirst: 1n,
1003
+ * voteLast: 1000n,
1004
+ * voteKeyDilution: 1n,
1005
+ * lease: 'lease',
1006
+ * note: 'note',
1007
+ * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
1008
+ * rekeyTo: 'REKEYTOADDRESS',
1009
+ * // You wouldn't normally set this field
1010
+ * firstValidRound: 1000n,
1011
+ * validityWindow: 10,
1012
+ * extraFee: (1000).microAlgo(),
1013
+ * staticFee: (1000).microAlgo(),
1014
+ * // Max fee doesn't make sense with extraFee AND staticFee
1015
+ * // already specified, but here for completeness
1016
+ * maxFee: (3000).microAlgo(),
1017
+ * })
1018
+ * ```
1019
+ */
1020
+ addOnlineKeyRegistration(params) {
1021
+ this.push({
1022
+ data: params,
1023
+ type: "keyReg"
1024
+ });
1025
+ return this;
1026
+ }
1027
+ /**
1028
+ * Add an offline key registration transaction to the transaction group.
1029
+ * @param params The offline key registration transaction parameters
1030
+ * @returns The composer so you can chain method calls
1031
+ * @example Basic example
1032
+ * ```typescript
1033
+ * composer.addOfflineKeyRegistration({
1034
+ * sender: 'SENDERADDRESS',
1035
+ * })
1036
+ * ```
1037
+ * @example Advanced example
1038
+ * ```typescript
1039
+ * composer.addOfflineKeyRegistration({
1040
+ * sender: 'SENDERADDRESS',
1041
+ * lease: 'lease',
1042
+ * note: 'note',
1043
+ * // Use this with caution, it's generally better to use algorand.account.rekeyAccount
1044
+ * rekeyTo: 'REKEYTOADDRESS',
1045
+ * // You wouldn't normally set this field
1046
+ * firstValidRound: 1000n,
1047
+ * validityWindow: 10,
1048
+ * extraFee: (1000).microAlgo(),
1049
+ * staticFee: (1000).microAlgo(),
1050
+ * // Max fee doesn't make sense with extraFee AND staticFee
1051
+ * // already specified, but here for completeness
1052
+ * maxFee: (3000).microAlgo(),
1053
+ * })
1054
+ * ```
1055
+ */
1056
+ addOfflineKeyRegistration(params) {
1057
+ this.push({
1058
+ data: params,
1059
+ type: "keyReg"
1060
+ });
1061
+ return this;
1062
+ }
1063
+ /**
1064
+ * Get the number of transactions currently added to this composer.
1065
+ * @returns The number of transactions currently added to this composer
1066
+ */
1067
+ count() {
1068
+ return this.txns.length;
1069
+ }
1070
+ /**
1071
+ * Build the transaction composer.
1072
+ *
1073
+ * This method performs resource population and inner transaction fee coverage if these options are set in the composer.
1074
+ *
1075
+ * Once this method is called, no further transactions will be able to be added.
1076
+ * You can safely call this method multiple times to get the same result.
1077
+ * @returns The built transaction composer, the transactions and any corresponding method calls
1078
+ * @example
1079
+ * ```typescript
1080
+ * const { transactions, methodCalls } = await composer.build()
1081
+ * ```
1082
+ */
1083
+ async build() {
1084
+ if (!this.transactionsWithSigners) {
1085
+ const suggestedParams = await this.getSuggestedParams();
1086
+ const builtTransactions = await this._buildTransactions(suggestedParams);
1087
+ this.rawBuildTransactions = builtTransactions.transactions.map((txn) => new Transaction({ ...txn }));
1088
+ const groupAnalysis = (this.composerConfig.coverAppCallInnerTransactionFees || this.composerConfig.populateAppCallResources) && builtTransactions.transactions.some((txn) => txn.type === TransactionType.AppCall) ? await this.analyzeGroupRequirements(builtTransactions.transactions, suggestedParams, this.composerConfig) : void 0;
1089
+ this.populateTransactionAndGroupResources(builtTransactions.transactions, groupAnalysis);
1090
+ this.transactionsWithSigners = builtTransactions.transactions.map((txn, index) => {
1091
+ return {
1092
+ txn,
1093
+ signer: builtTransactions.signers.get(index) ?? this.getSigner(txn.sender)
1094
+ };
1095
+ });
1096
+ }
1097
+ const methodCalls = /* @__PURE__ */ new Map();
1098
+ this.txns.forEach((txn, index) => {
1099
+ if (txn.type === "methodCall") methodCalls.set(index, txn.data.method);
1100
+ });
1101
+ return {
1102
+ transactions: this.transactionsWithSigners,
1103
+ methodCalls
1104
+ };
1105
+ }
1106
+ async _buildTransactions(suggestedParams) {
1107
+ const defaultValidityWindow = !this.defaultValidityWindowIsExplicit && genesisIdIsLocalNet(suggestedParams.genesisId ?? "unknown") ? 1000n : this.defaultValidityWindow;
1108
+ const signers = /* @__PURE__ */ new Map();
1109
+ const transactions = new Array();
1110
+ let transactionIndex = 0;
1111
+ for (const ctxn of this.txns) if (ctxn.type === "txn") {
1112
+ transactions.push(ctxn.data.txn);
1113
+ if (ctxn.data.signer) signers.set(transactionIndex, ctxn.data.signer);
1114
+ transactionIndex++;
1115
+ } else if (ctxn.type === "asyncTxn") {
1116
+ transactions.push(await ctxn.data.txn);
1117
+ if (ctxn.data.signer) signers.set(transactionIndex, ctxn.data.signer);
1118
+ transactionIndex++;
1119
+ } else {
1120
+ let transaction;
1121
+ switch (ctxn.type) {
1122
+ case "pay":
1123
+ transaction = buildPayment(ctxn.data, suggestedParams, defaultValidityWindow);
1124
+ break;
1125
+ case "assetCreate":
1126
+ transaction = buildAssetCreate(ctxn.data, suggestedParams, defaultValidityWindow);
1127
+ break;
1128
+ case "assetConfig":
1129
+ transaction = buildAssetConfig(ctxn.data, suggestedParams, defaultValidityWindow);
1130
+ break;
1131
+ case "assetFreeze":
1132
+ transaction = buildAssetFreeze(ctxn.data, suggestedParams, defaultValidityWindow);
1133
+ break;
1134
+ case "assetDestroy":
1135
+ transaction = buildAssetDestroy(ctxn.data, suggestedParams, defaultValidityWindow);
1136
+ break;
1137
+ case "assetTransfer":
1138
+ transaction = buildAssetTransfer(ctxn.data, suggestedParams, defaultValidityWindow);
1139
+ break;
1140
+ case "assetOptIn":
1141
+ transaction = buildAssetOptIn(ctxn.data, suggestedParams, defaultValidityWindow);
1142
+ break;
1143
+ case "assetOptOut":
1144
+ transaction = buildAssetOptOut(ctxn.data, suggestedParams, defaultValidityWindow);
1145
+ break;
1146
+ case "appCall":
1147
+ if (ctxn.data.appId === void 0 || ctxn.data.appId === 0) transaction = await buildAppCreate(ctxn.data, this.appManager, suggestedParams, defaultValidityWindow);
1148
+ else if ("approvalProgram" in ctxn.data && "clearStateProgram" in ctxn.data) transaction = await buildAppUpdate(ctxn.data, this.appManager, suggestedParams, defaultValidityWindow);
1149
+ else transaction = buildAppCall(ctxn.data, suggestedParams, defaultValidityWindow);
1150
+ break;
1151
+ case "keyReg":
1152
+ transaction = buildKeyReg(ctxn.data, suggestedParams, defaultValidityWindow);
1153
+ break;
1154
+ case "methodCall":
1155
+ if (ctxn.data.appId === void 0 || ctxn.data.appId === 0) transaction = await buildAppCreateMethodCall(ctxn.data, this.appManager, suggestedParams, defaultValidityWindow);
1156
+ else if ("approvalProgram" in ctxn.data && "clearStateProgram" in ctxn.data) transaction = await buildAppUpdateMethodCall(ctxn.data, this.appManager, suggestedParams, defaultValidityWindow);
1157
+ else transaction = await buildAppCallMethodCall(ctxn.data, suggestedParams, defaultValidityWindow);
1158
+ break;
1159
+ default: throw new Error(`Unsupported transaction type: ${ctxn.type}`);
1160
+ }
1161
+ if (transaction.fee === void 0) transaction = assignFee(transaction, {
1162
+ feePerByte: suggestedParams.fee,
1163
+ minFee: suggestedParams.minFee,
1164
+ extraFee: ctxn.data.extraFee?.microAlgos,
1165
+ maxFee: ctxn.data.maxFee?.microAlgos
1166
+ });
1167
+ transactions.push(transaction);
1168
+ if (ctxn.data.signer) {
1169
+ const signer = "signer" in ctxn.data.signer ? ctxn.data.signer.signer : ctxn.data.signer;
1170
+ signers.set(transactionIndex, signer);
1171
+ }
1172
+ transactionIndex++;
1173
+ }
1174
+ if (transactions.length > MAX_TRANSACTION_GROUP_SIZE) throw new Error(`Transaction group size ${transactions.length} exceeds the maximum limit of ${MAX_TRANSACTION_GROUP_SIZE}`);
1175
+ const methodCalls = /* @__PURE__ */ new Map();
1176
+ this.txns.forEach((txn, index) => {
1177
+ if (txn.type === "methodCall") methodCalls.set(index, txn.data.method);
1178
+ });
1179
+ return {
1180
+ transactions,
1181
+ methodCalls,
1182
+ signers
1183
+ };
1184
+ }
1185
+ /**
1186
+ * Builds all transactions in the composer and returns them along with method calls and signers.
1187
+ *
1188
+ * Note: This method only builds the transactions as-is without resource population or automatic grouping.
1189
+ * Use this when you need the raw transactions.
1190
+ * @returns An object containing the array of built transactions, method calls, and signers
1191
+ * @example
1192
+ * ```typescript
1193
+ * const { transactions, methodCalls, signers } = await composer.buildTransactions()
1194
+ * ```
1195
+ */
1196
+ async buildTransactions() {
1197
+ const suggestedParams = await this.getSuggestedParams();
1198
+ const buildResult = await this._buildTransactions(suggestedParams);
1199
+ return {
1200
+ ...buildResult,
1201
+ transactions: buildResult.transactions
1202
+ };
1203
+ }
1204
+ populateTransactionAndGroupResources(transactions, groupAnalysis) {
1205
+ if (groupAnalysis) {
1206
+ let surplusGroupFees = 0n;
1207
+ const transactionAnalysis = [];
1208
+ groupAnalysis.transactions.forEach((txnAnalysis, groupIndex) => {
1209
+ if (txnAnalysis.requiredFeeDelta && FeeDelta.isSurplus(txnAnalysis.requiredFeeDelta)) surplusGroupFees += FeeDelta.amount(txnAnalysis.requiredFeeDelta);
1210
+ const ctxn = this.txns[groupIndex];
1211
+ const txn = transactions[groupIndex];
1212
+ const logicalMaxFee = getLogicalMaxFee(ctxn);
1213
+ const isImmutableFee = logicalMaxFee !== void 0 && logicalMaxFee === (txn.fee || 0n);
1214
+ let priority = FeePriority.Covered;
1215
+ if (txnAnalysis.requiredFeeDelta && FeeDelta.isDeficit(txnAnalysis.requiredFeeDelta)) {
1216
+ const deficitAmount = FeeDelta.amount(txnAnalysis.requiredFeeDelta);
1217
+ if (isImmutableFee || txn.type !== TransactionType.AppCall) priority = FeePriority.ImmutableDeficit(deficitAmount);
1218
+ else priority = FeePriority.ModifiableDeficit(deficitAmount);
1219
+ }
1220
+ transactionAnalysis.push({
1221
+ groupIndex,
1222
+ requiredFeeDelta: txnAnalysis.requiredFeeDelta,
1223
+ priority,
1224
+ unnamedResourcesAccessed: txnAnalysis.unnamedResourcesAccessed
1225
+ });
1226
+ });
1227
+ transactionAnalysis.sort((a, b) => b.priority.compare(a.priority));
1228
+ const indexesWithAccessReferences = [];
1229
+ for (const { groupIndex, requiredFeeDelta, unnamedResourcesAccessed } of transactionAnalysis) {
1230
+ if (requiredFeeDelta && FeeDelta.isDeficit(requiredFeeDelta)) {
1231
+ const deficitAmount = FeeDelta.amount(requiredFeeDelta);
1232
+ let additionalFeeDelta;
1233
+ if (surplusGroupFees === 0n) additionalFeeDelta = requiredFeeDelta;
1234
+ else if (surplusGroupFees >= deficitAmount) surplusGroupFees -= deficitAmount;
1235
+ else {
1236
+ additionalFeeDelta = FeeDelta.fromBigInt(deficitAmount - surplusGroupFees);
1237
+ surplusGroupFees = 0n;
1238
+ }
1239
+ if (additionalFeeDelta && FeeDelta.isDeficit(additionalFeeDelta)) {
1240
+ const additionalDeficitAmount = FeeDelta.amount(additionalFeeDelta);
1241
+ if (transactions[groupIndex].type === TransactionType.AppCall) {
1242
+ const transactionFee = (transactions[groupIndex].fee || 0n) + additionalDeficitAmount;
1243
+ const logicalMaxFee = getLogicalMaxFee(this.txns[groupIndex]);
1244
+ if (!logicalMaxFee || transactionFee > logicalMaxFee) throw new Error(`Calculated transaction fee ${transactionFee} µALGO is greater than max of ${logicalMaxFee ?? 0n} for transaction ${groupIndex}`);
1245
+ transactions[groupIndex].fee = transactionFee;
1246
+ } else throw new Error(`An additional fee of ${additionalDeficitAmount} µALGO is required for non app call transaction ${groupIndex}`);
1247
+ }
1248
+ }
1249
+ if (unnamedResourcesAccessed && transactions[groupIndex].type === TransactionType.AppCall) if (!(transactions[groupIndex].appCall?.accessReferences && transactions[groupIndex].appCall?.accessReferences?.length)) populateTransactionResources(transactions[groupIndex], unnamedResourcesAccessed, groupIndex);
1250
+ else indexesWithAccessReferences.push(groupIndex);
1251
+ }
1252
+ if (indexesWithAccessReferences.length > 0) Config.logger.warn(`Resource population will be skipped for transaction indexes ${indexesWithAccessReferences.join(", ")} as they use access references.`);
1253
+ if (groupAnalysis.unnamedResourcesAccessed) populateGroupResources(transactions, groupAnalysis.unnamedResourcesAccessed);
1254
+ }
1255
+ if (transactions.length > 1) {
1256
+ const groupedTransactions = groupTransactions(transactions);
1257
+ transactions.forEach((t) => t.group = groupedTransactions[0].group);
1258
+ return transactions;
1259
+ } else return transactions;
1260
+ }
1261
+ async analyzeGroupRequirements(transactions, suggestedParams, analysisParams) {
1262
+ const appCallIndexesWithoutMaxFees = [];
1263
+ let transactionsToSimulate = transactions.map((txn, groupIndex) => {
1264
+ const ctxn = this.txns[groupIndex];
1265
+ const params = { ...txn };
1266
+ delete params.group;
1267
+ if (analysisParams.coverAppCallInnerTransactionFees && txn.type === TransactionType.AppCall) {
1268
+ const logicalMaxFee = getLogicalMaxFee(ctxn);
1269
+ if (logicalMaxFee !== void 0) params.fee = logicalMaxFee;
1270
+ else appCallIndexesWithoutMaxFees.push(groupIndex);
1271
+ }
1272
+ return new Transaction(params);
1273
+ });
1274
+ if (transactionsToSimulate.length > 1) transactionsToSimulate = groupTransactions(transactionsToSimulate);
1275
+ if (analysisParams.coverAppCallInnerTransactionFees && appCallIndexesWithoutMaxFees.length > 0) throw new Error(`Please provide a maxFee for each app call transaction when coverAppCallInnerTransactionFees is enabled. Required for transaction ${appCallIndexesWithoutMaxFees.join(", ")}`);
1276
+ const simulateRequest = {
1277
+ txnGroups: [{ txns: transactionsToSimulate.map((txn) => ({
1278
+ txn,
1279
+ sig: EMPTY_SIGNATURE
1280
+ })) }],
1281
+ allowUnnamedResources: true,
1282
+ allowEmptySignatures: true,
1283
+ fixSigners: true,
1284
+ allowMoreLogging: true,
1285
+ execTraceConfig: {
1286
+ enable: true,
1287
+ scratchChange: true,
1288
+ stackChange: true,
1289
+ stateChange: true
1290
+ }
1291
+ };
1292
+ const groupResponse = (await this.algod.simulateTransactions(simulateRequest)).txnGroups[0];
1293
+ if (groupResponse.failureMessage) {
1294
+ if (analysisParams.coverAppCallInnerTransactionFees && groupResponse.failureMessage.includes("fee too small")) throw new Error("Fees were too small to resolve execution info via simulate. You may need to increase an app call transaction maxFee.");
1295
+ throw new Error(`Error resolving execution info via simulate in transaction ${groupResponse.failedAt?.join(", ")}: ${groupResponse.failureMessage}`);
1296
+ }
1297
+ const txnAnalysisResults = groupResponse.txnResults.map((simulateTxnResult, groupIndex) => {
1298
+ const btxn = transactions[groupIndex];
1299
+ let requiredFeeDelta;
1300
+ if (analysisParams.coverAppCallInnerTransactionFees) {
1301
+ const minTxnFee = calculateFee(btxn, {
1302
+ feePerByte: suggestedParams.fee,
1303
+ minFee: suggestedParams.minFee
1304
+ });
1305
+ const txnFeeDelta = FeeDelta.fromBigInt(minTxnFee - (btxn.fee ?? 0n));
1306
+ if (btxn.type === TransactionType.AppCall) {
1307
+ const innerTxnsFeeDelta = calculateInnerFeeDelta(simulateTxnResult.txnResult.innerTxns, suggestedParams.minFee);
1308
+ requiredFeeDelta = FeeDelta.fromBigInt((innerTxnsFeeDelta ? FeeDelta.toBigInt(innerTxnsFeeDelta) : 0n) + (txnFeeDelta ? FeeDelta.toBigInt(txnFeeDelta) : 0n));
1309
+ } else requiredFeeDelta = txnFeeDelta;
1310
+ }
1311
+ return {
1312
+ requiredFeeDelta,
1313
+ unnamedResourcesAccessed: analysisParams.populateAppCallResources ? simulateTxnResult.unnamedResourcesAccessed : void 0
1314
+ };
1315
+ });
1316
+ const sortedResources = groupResponse.unnamedResourcesAccessed;
1317
+ const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
1318
+ if (sortedResources) {
1319
+ sortedResources.accounts?.sort((a, b) => compare(a.toString(), b.toString()));
1320
+ sortedResources.assets?.sort(compare);
1321
+ sortedResources.apps?.sort(compare);
1322
+ sortedResources.boxes?.sort((a, b) => {
1323
+ return compare(`${a.appId}-${a.name}`, `${b.appId}-${b.name}`);
1324
+ });
1325
+ sortedResources.appLocals?.sort((a, b) => {
1326
+ return compare(`${a.appId}-${a.address}`, `${b.appId}-${b.address}`);
1327
+ });
1328
+ sortedResources.assetHoldings?.sort((a, b) => {
1329
+ return compare(`${a.assetId}-${a.address}`, `${b.assetId}-${b.address}`);
1330
+ });
1331
+ }
1332
+ return {
1333
+ transactions: txnAnalysisResults,
1334
+ unnamedResourcesAccessed: analysisParams.populateAppCallResources ? sortedResources : void 0
1335
+ };
1336
+ }
1337
+ /**
1338
+ * Rebuild the group, discarding any previously built transactions.
1339
+ * This will potentially cause new signers and suggested params to be used if the callbacks return a new value compared to the first build.
1340
+ * @returns The newly built transaction composer and the transactions
1341
+ * @example
1342
+ * ```typescript
1343
+ * const { atc, transactions, methodCalls } = await composer.rebuild()
1344
+ * ```
1345
+ */
1346
+ async rebuild() {
1347
+ this.reset();
1348
+ return await this.build();
1349
+ }
1350
+ reset() {
1351
+ this.signedTransactions = void 0;
1352
+ this.transactionsWithSigners = void 0;
1353
+ }
1354
+ /**
1355
+ * Compose the transaction group and send it to the network.
1356
+ * @param params The parameters to control execution with
1357
+ * @returns The execution result
1358
+ * @example
1359
+ * ```typescript
1360
+ * const result = await composer.send()
1361
+ * ```
1362
+ */
1363
+ async send(params) {
1364
+ if (this.composerConfig.coverAppCallInnerTransactionFees !== (params?.coverAppCallInnerTransactionFees ?? false) || this.composerConfig.populateAppCallResources !== (params?.populateAppCallResources ?? true)) {
1365
+ this.composerConfig = {
1366
+ coverAppCallInnerTransactionFees: params?.coverAppCallInnerTransactionFees ?? false,
1367
+ populateAppCallResources: params?.populateAppCallResources ?? true
1368
+ };
1369
+ this.reset();
1370
+ }
1371
+ try {
1372
+ await this.gatherSignatures();
1373
+ if (!this.transactionsWithSigners || this.transactionsWithSigners.length === 0 || !this.signedTransactions || this.signedTransactions.length === 0) throw new Error("No transactions available");
1374
+ const transactionsToSend = this.transactionsWithSigners.map((stxn) => stxn.txn);
1375
+ const transactionIds = transactionsToSend.map((txn) => txn.txId());
1376
+ if (transactionsToSend.length > 1) {
1377
+ const groupId = transactionsToSend[0].group ? Buffer.from(transactionsToSend[0].group).toString("base64") : "";
1378
+ Config.getLogger(params?.suppressLog).verbose(`Sending group of ${transactionsToSend.length} transactions (${groupId})`, { transactionsToSend });
1379
+ Config.getLogger(params?.suppressLog).debug(`Transaction IDs (${groupId})`, transactionIds);
1380
+ }
1381
+ if (Config.debug && Config.traceAll) await this.simulate({
1382
+ allowEmptySignatures: true,
1383
+ fixSigners: true,
1384
+ allowMoreLogging: true,
1385
+ execTraceConfig: {
1386
+ enable: true,
1387
+ scratchChange: true,
1388
+ stackChange: true,
1389
+ stateChange: true
1390
+ },
1391
+ resultOnFailure: true
1392
+ });
1393
+ const group = this.signedTransactions[0].txn.group;
1394
+ let waitRounds = params?.maxRoundsToWaitForConfirmation;
1395
+ if (waitRounds === void 0) {
1396
+ const firstRound = (await this.getSuggestedParams()).firstValid;
1397
+ const lastRound = this.signedTransactions.reduce((max, txn) => txn.txn.lastValid > max ? txn.txn.lastValid : max, 0n);
1398
+ waitRounds = Number(lastRound - firstRound) + 1;
1399
+ }
1400
+ const encodedTxns = encodeSignedTransactions(this.signedTransactions);
1401
+ await this.algod.sendRawTransaction(encodedTxns);
1402
+ if (transactionsToSend.length > 1 && group) Config.getLogger(params?.suppressLog).verbose(`Group transaction (${Buffer.from(group).toString("base64")}) sent with ${transactionsToSend.length} transactions`);
1403
+ else Config.getLogger(params?.suppressLog).verbose(`Sent transaction ID ${transactionsToSend[0].txId()} ${transactionsToSend[0].type} from ${transactionsToSend[0].sender}`);
1404
+ let confirmations = new Array();
1405
+ if (params?.maxRoundsToWaitForConfirmation !== 0) confirmations = await Promise.all(transactionIds.map(async (id) => await waitForConfirmation(id, waitRounds, this.algod)));
1406
+ const abiReturns = this.parseAbiReturnValues(confirmations);
1407
+ return {
1408
+ groupId: group ? Buffer.from(group).toString("base64") : void 0,
1409
+ transactions: transactionsToSend,
1410
+ txIds: transactionIds,
1411
+ returns: abiReturns,
1412
+ confirmations
1413
+ };
1414
+ } catch (originalError) {
1415
+ const errorMessage = originalError.body?.message ?? originalError.message ?? "Received error executing Transaction Composer";
1416
+ const err = new Error(errorMessage);
1417
+ err.cause = originalError;
1418
+ if (typeof originalError === "object") err.name = originalError.name;
1419
+ let sentTransactions;
1420
+ if (this.transactionsWithSigners) sentTransactions = this.transactionsWithSigners.map((t) => t.txn);
1421
+ else if (this.rawBuildTransactions) sentTransactions = this.rawBuildTransactions.length > 1 ? groupTransactions(this.rawBuildTransactions) : this.rawBuildTransactions;
1422
+ if (Config.debug && typeof originalError === "object" && sentTransactions) {
1423
+ err.traces = [];
1424
+ Config.getLogger(params?.suppressLog).error("Received error executing Transaction Composer and debug flag enabled; attempting simulation to get more information", err);
1425
+ const transactionsWithEmptySigners = sentTransactions.map((txn) => ({
1426
+ txn,
1427
+ signer: makeEmptyTransactionSigner()
1428
+ }));
1429
+ const signedTransactions = await this.signTransactions(transactionsWithEmptySigners);
1430
+ const simulateResponse = await this.algod.simulateTransactions({
1431
+ txnGroups: [{ txns: signedTransactions }],
1432
+ allowEmptySignatures: true,
1433
+ fixSigners: true,
1434
+ allowMoreLogging: true,
1435
+ execTraceConfig: {
1436
+ enable: true,
1437
+ scratchChange: true,
1438
+ stackChange: true,
1439
+ stateChange: true
1440
+ }
1441
+ });
1442
+ if (Config.debug && !Config.traceAll) await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateResponse });
1443
+ if (simulateResponse && simulateResponse.txnGroups[0].failedAt) for (const txn of simulateResponse.txnGroups[0].txnResults) err.traces.push({
1444
+ trace: txn.execTrace,
1445
+ appBudget: txn.appBudgetConsumed,
1446
+ logicSigBudget: txn.logicSigBudgetConsumed,
1447
+ logs: txn.txnResult.logs,
1448
+ message: simulateResponse.txnGroups[0].failureMessage
1449
+ });
1450
+ } else Config.getLogger(params?.suppressLog).error("Received error executing Transaction Composer, for more information enable the debug flag", err);
1451
+ err.sentTransactions = sentTransactions ?? [];
1452
+ throw await this.transformError(err);
1453
+ }
1454
+ }
1455
+ async simulate(options) {
1456
+ const { skipSignatures = false, resultOnFailure = false, ...rawOptions } = options ?? {};
1457
+ if (skipSignatures) {
1458
+ rawOptions.allowEmptySignatures = true;
1459
+ rawOptions.fixSigners = true;
1460
+ }
1461
+ let transactionsWithSigner;
1462
+ if (!this.transactionsWithSigners) {
1463
+ const builtTransactions = await this.buildTransactions();
1464
+ transactionsWithSigner = (builtTransactions.transactions.length > 0 ? groupTransactions(builtTransactions.transactions) : builtTransactions.transactions).map((txn, index) => ({
1465
+ txn,
1466
+ signer: skipSignatures ? makeEmptyTransactionSigner() : builtTransactions.signers.get(index) ?? makeEmptyTransactionSigner()
1467
+ }));
1468
+ } else transactionsWithSigner = this.transactionsWithSigners.map((e) => ({
1469
+ txn: e.txn,
1470
+ signer: skipSignatures ? makeEmptyTransactionSigner() : e.signer
1471
+ }));
1472
+ const transactions = transactionsWithSigner.map((e) => e.txn);
1473
+ const simulateRequest = {
1474
+ txnGroups: [{ txns: await this.signTransactions(transactionsWithSigner) }],
1475
+ ...rawOptions,
1476
+ ...Config.debug ? {
1477
+ allowEmptySignatures: true,
1478
+ fixSigners: true,
1479
+ allowMoreLogging: true,
1480
+ execTraceConfig: {
1481
+ enable: true,
1482
+ scratchChange: true,
1483
+ stackChange: true,
1484
+ stateChange: true
1485
+ }
1486
+ } : void 0
1487
+ };
1488
+ const simulateResponse = await this.algod.simulateTransactions(simulateRequest);
1489
+ const simulateResult = simulateResponse.txnGroups[0];
1490
+ if (simulateResult?.failureMessage && !resultOnFailure) {
1491
+ const errorMessage = `Transaction failed at transaction(s) ${simulateResult.failedAt?.join(", ") || "unknown"} in the group. ${simulateResult.failureMessage}`;
1492
+ const error = new Error(errorMessage);
1493
+ if (Config.debug) await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateTransaction: simulateResponse });
1494
+ throw await this.transformError(error);
1495
+ }
1496
+ if (Config.debug && Config.traceAll) await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateTransaction: simulateResponse });
1497
+ const abiReturns = this.parseAbiReturnValues(simulateResult.txnResults.map((t) => t.txnResult));
1498
+ return {
1499
+ confirmations: simulateResult.txnResults.map((t) => t.txnResult),
1500
+ transactions,
1501
+ txIds: transactions.map((t) => t.txId()),
1502
+ groupId: Buffer.from(transactions[0].group ?? new Uint8Array()).toString("base64"),
1503
+ simulateResponse,
1504
+ returns: abiReturns
1505
+ };
1506
+ }
1507
+ /**
1508
+ * Create an encoded transaction note that follows the ARC-2 spec.
1509
+ *
1510
+ * https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0002.md
1511
+ * @param note The ARC-2 transaction note data
1512
+ * @returns The binary encoded transaction note
1513
+ */
1514
+ static arc2Note(note) {
1515
+ const arc2Payload = `${note.dAppName}:${note.format}${typeof note.data === "string" ? note.data : asJson(note.data)}`;
1516
+ return new TextEncoder().encode(arc2Payload);
1517
+ }
1518
+ async gatherSignatures() {
1519
+ if (this.signedTransactions) return this.signedTransactions;
1520
+ await this.build();
1521
+ if (!this.transactionsWithSigners || this.transactionsWithSigners.length === 0) throw new Error("No transactions available to sign");
1522
+ this.signedTransactions = await this.signTransactions(this.transactionsWithSigners);
1523
+ return this.signedTransactions;
1524
+ }
1525
+ async signTransactions(transactionsWithSigners) {
1526
+ if (transactionsWithSigners.length === 0) throw new Error("No transactions available to sign");
1527
+ const transactions = transactionsWithSigners.map((txnWithSigner) => txnWithSigner.txn);
1528
+ const signerGroups = /* @__PURE__ */ new Map();
1529
+ transactionsWithSigners.forEach(({ signer }, index) => {
1530
+ const indexes = signerGroups.get(signer) ?? [];
1531
+ indexes.push(index);
1532
+ signerGroups.set(signer, indexes);
1533
+ });
1534
+ const signerEntries = Array.from(signerGroups);
1535
+ const signedGroups = await Promise.all(signerEntries.map(([signer, indexes]) => signer(transactions, indexes)));
1536
+ const signedTransactions = new Array(transactionsWithSigners.length);
1537
+ signerEntries.forEach(([, indexes], signerIndex) => {
1538
+ const stxs = signedGroups[signerIndex];
1539
+ indexes.forEach((txIndex, stxIndex) => {
1540
+ signedTransactions[txIndex] = decodeSignedTransaction(stxs[stxIndex]);
1541
+ });
1542
+ });
1543
+ const unsignedIndexes = signedTransactions.map((stxn, index) => stxn === void 0 ? index : null).filter((index) => index !== null);
1544
+ if (unsignedIndexes.length > 0) throw new Error(`Transactions at indexes [${unsignedIndexes.join(", ")}] were not signed`);
1545
+ return signedTransactions;
1546
+ }
1547
+ parseAbiReturnValues(confirmations) {
1548
+ const abiReturns = new Array();
1549
+ for (let i = 0; i < confirmations.length; i++) {
1550
+ const confirmation = confirmations[i];
1551
+ const txn = this.txns[i];
1552
+ if (txn?.type !== "methodCall") continue;
1553
+ const abiReturn = AppManager.getABIReturn(confirmation, txn.data.method);
1554
+ if (abiReturn !== void 0) abiReturns.push(abiReturn);
1555
+ }
1556
+ return abiReturns;
1557
+ }
1558
+ setMaxFees(maxFees) {
1559
+ maxFees.forEach((_, index) => {
1560
+ if (index > this.txns.length - 1) throw new Error(`Index ${index} is out of range. The composer only contains ${this.txns.length} transactions`);
1561
+ });
1562
+ maxFees.forEach((maxFee, index) => {
1563
+ this.txns[index].data.maxFee = new AlgoAmount({ microAlgos: maxFee.microAlgos });
1564
+ });
1565
+ }
1566
+ };
1567
+ /** Get the logical maximum fee based on staticFee and maxFee */
1568
+ function getLogicalMaxFee(ctxn) {
1569
+ if (ctxn.type === "txn" || ctxn.type === "asyncTxn") return;
1570
+ const maxFee = ctxn.data.maxFee;
1571
+ const staticFee = ctxn.data.staticFee;
1572
+ if (maxFee !== void 0 && (staticFee === void 0 || maxFee.microAlgos > staticFee.microAlgos)) return maxFee.microAlgos;
1573
+ return staticFee?.microAlgos;
1505
1574
  }
1506
1575
 
1507
- export { MAX_TRANSACTION_GROUP_SIZE, TransactionComposer };
1508
- //# sourceMappingURL=composer.mjs.map
1576
+ //#endregion
1577
+ export { TransactionComposer };
1578
+ //# sourceMappingURL=composer.mjs.map