@algorandfoundation/algokit-utils 10.0.0-alpha.1 → 10.0.0-alpha.11

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 (317) hide show
  1. package/README.md +27 -5
  2. package/_virtual/rolldown_runtime.js +20 -11
  3. package/_virtual/rolldown_runtime.mjs +10 -5
  4. package/algo25/index.d.ts +2 -0
  5. package/algo25/index.js +9 -0
  6. package/algo25/index.mjs +3 -0
  7. package/algod-client/index.d.ts +2 -5
  8. package/package.json +1 -1
  9. package/packages/abi/src/abi-method.d.ts +1 -1
  10. package/packages/abi/src/abi-method.js.map +1 -1
  11. package/packages/abi/src/abi-method.mjs.map +1 -1
  12. package/packages/abi/src/abi-type.d.ts +1 -1
  13. package/packages/abi/src/abi-type.js +4 -2
  14. package/packages/abi/src/abi-type.js.map +1 -1
  15. package/packages/abi/src/abi-type.mjs +4 -2
  16. package/packages/abi/src/abi-type.mjs.map +1 -1
  17. package/packages/abi/src/arc56-contract.js +1 -0
  18. package/packages/abi/src/arc56-contract.js.map +1 -1
  19. package/packages/abi/src/arc56-contract.mjs +1 -0
  20. package/packages/abi/src/arc56-contract.mjs.map +1 -1
  21. package/packages/algo25/src/english.js.map +1 -1
  22. package/packages/algo25/src/english.mjs.map +1 -1
  23. package/packages/algo25/src/index.d.ts +40 -0
  24. package/packages/algo25/src/index.js +44 -0
  25. package/packages/algo25/src/index.js.map +1 -1
  26. package/packages/algo25/src/index.mjs +39 -1
  27. package/packages/algo25/src/index.mjs.map +1 -1
  28. package/packages/algod_client/src/apis/api-service.d.ts +44 -44
  29. package/packages/algod_client/src/apis/api-service.js +153 -153
  30. package/packages/algod_client/src/apis/api-service.js.map +1 -1
  31. package/packages/algod_client/src/apis/api-service.mjs +153 -153
  32. package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
  33. package/packages/algod_client/src/core/api-error.js +3 -1
  34. package/packages/algod_client/src/core/api-error.js.map +1 -1
  35. package/packages/algod_client/src/core/api-error.mjs +3 -1
  36. package/packages/algod_client/src/core/api-error.mjs.map +1 -1
  37. package/packages/algod_client/src/core/model-runtime.js +4 -4
  38. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  39. package/packages/algod_client/src/core/model-runtime.mjs +6 -6
  40. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  41. package/packages/algod_client/src/models/account-participation.js +4 -4
  42. package/packages/algod_client/src/models/account-participation.js.map +1 -1
  43. package/packages/algod_client/src/models/account-participation.mjs +4 -4
  44. package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
  45. package/packages/algod_client/src/models/application-state-schema.d.ts +2 -2
  46. package/packages/algod_client/src/models/application-state-schema.js +2 -2
  47. package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
  48. package/packages/algod_client/src/models/application-state-schema.mjs +2 -2
  49. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
  50. package/packages/algod_client/src/models/asset-params.js +2 -1
  51. package/packages/algod_client/src/models/asset-params.js.map +1 -1
  52. package/packages/algod_client/src/models/asset-params.mjs +2 -1
  53. package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
  54. package/packages/algod_client/src/models/block-response.js +1 -2
  55. package/packages/algod_client/src/models/block-response.js.map +1 -1
  56. package/packages/algod_client/src/models/block-response.mjs +2 -3
  57. package/packages/algod_client/src/models/block-response.mjs.map +1 -1
  58. package/packages/algod_client/src/models/block.d.ts +49 -29
  59. package/packages/algod_client/src/models/block.js +174 -98
  60. package/packages/algod_client/src/models/block.js.map +1 -1
  61. package/packages/algod_client/src/models/block.mjs +174 -98
  62. package/packages/algod_client/src/models/block.mjs.map +1 -1
  63. package/packages/algod_client/src/models/ledger-state-delta.js +1 -1
  64. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
  65. package/packages/algod_client/src/models/ledger-state-delta.mjs +2 -2
  66. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
  67. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +3 -5
  68. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +4 -6
  69. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
  70. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +3 -5
  71. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
  72. package/packages/algod_client/src/models/transaction-parameters-response.js +2 -2
  73. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
  74. package/packages/algod_client/src/models/transaction-parameters-response.mjs +2 -2
  75. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
  76. package/packages/common/src/address.js +0 -14
  77. package/packages/common/src/address.js.map +1 -1
  78. package/packages/common/src/address.mjs +1 -14
  79. package/packages/common/src/address.mjs.map +1 -1
  80. package/packages/common/src/codecs/composite/map.js +7 -4
  81. package/packages/common/src/codecs/composite/map.js.map +1 -1
  82. package/packages/common/src/codecs/composite/map.mjs +7 -4
  83. package/packages/common/src/codecs/composite/map.mjs.map +1 -1
  84. package/packages/common/src/codecs/composite/record.js +0 -1
  85. package/packages/common/src/codecs/composite/record.js.map +1 -1
  86. package/packages/common/src/codecs/primitives/address.js +0 -1
  87. package/packages/common/src/codecs/primitives/address.js.map +1 -1
  88. package/packages/common/src/codecs/primitives/bytes.js +0 -1
  89. package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
  90. package/packages/common/src/codecs/primitives/fixed-bytes.js +0 -1
  91. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
  92. package/packages/common/src/codecs/wire.js +0 -1
  93. package/packages/common/src/codecs/wire.js.map +1 -1
  94. package/packages/common/src/msgpack.js +0 -1
  95. package/packages/common/src/msgpack.js.map +1 -1
  96. package/packages/indexer_client/src/apis/api-service.d.ts +1 -1
  97. package/packages/indexer_client/src/apis/api-service.js +12 -12
  98. package/packages/indexer_client/src/apis/api-service.js.map +1 -1
  99. package/packages/indexer_client/src/apis/api-service.mjs +12 -12
  100. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
  101. package/packages/indexer_client/src/core/api-error.js +3 -1
  102. package/packages/indexer_client/src/core/api-error.js.map +1 -1
  103. package/packages/indexer_client/src/core/api-error.mjs +3 -1
  104. package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
  105. package/packages/indexer_client/src/core/model-runtime.js +4 -4
  106. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  107. package/packages/indexer_client/src/core/model-runtime.mjs +6 -6
  108. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  109. package/packages/indexer_client/src/models/account-participation.js +4 -4
  110. package/packages/indexer_client/src/models/account-participation.js.map +1 -1
  111. package/packages/indexer_client/src/models/account-participation.mjs +4 -4
  112. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
  113. package/packages/indexer_client/src/models/application-state-schema.d.ts +2 -2
  114. package/packages/indexer_client/src/models/application-state-schema.js +2 -2
  115. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
  116. package/packages/indexer_client/src/models/application-state-schema.mjs +2 -2
  117. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
  118. package/packages/indexer_client/src/models/asset-params.js +2 -1
  119. package/packages/indexer_client/src/models/asset-params.js.map +1 -1
  120. package/packages/indexer_client/src/models/asset-params.mjs +2 -1
  121. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
  122. package/packages/indexer_client/src/models/block.js +8 -8
  123. package/packages/indexer_client/src/models/block.js.map +1 -1
  124. package/packages/indexer_client/src/models/block.mjs +8 -8
  125. package/packages/indexer_client/src/models/block.mjs.map +1 -1
  126. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +1 -1
  127. package/packages/indexer_client/src/models/eval-delta-key-value.js +2 -2
  128. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
  129. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +2 -2
  130. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
  131. package/packages/indexer_client/src/models/eval-delta.d.ts +1 -1
  132. package/packages/indexer_client/src/models/eval-delta.js +2 -2
  133. package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
  134. package/packages/indexer_client/src/models/eval-delta.mjs +2 -2
  135. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
  136. package/packages/indexer_client/src/models/hb-proof-fields.js +6 -6
  137. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
  138. package/packages/indexer_client/src/models/hb-proof-fields.mjs +6 -6
  139. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
  140. package/packages/indexer_client/src/models/state-proof-verifier.js +2 -2
  141. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
  142. package/packages/indexer_client/src/models/state-proof-verifier.mjs +2 -2
  143. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
  144. package/packages/indexer_client/src/models/state-schema.d.ts +2 -2
  145. package/packages/indexer_client/src/models/state-schema.js +2 -2
  146. package/packages/indexer_client/src/models/state-schema.js.map +1 -1
  147. package/packages/indexer_client/src/models/state-schema.mjs +2 -2
  148. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
  149. package/packages/indexer_client/src/models/teal-key-value.d.ts +1 -1
  150. package/packages/indexer_client/src/models/teal-key-value.js +2 -2
  151. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
  152. package/packages/indexer_client/src/models/teal-key-value.mjs +2 -2
  153. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
  154. package/packages/indexer_client/src/models/transaction-heartbeat.js +2 -1
  155. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
  156. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +2 -1
  157. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
  158. package/packages/indexer_client/src/models/transaction-keyreg.js +4 -4
  159. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
  160. package/packages/indexer_client/src/models/transaction-keyreg.mjs +4 -4
  161. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
  162. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +2 -1
  163. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
  164. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +2 -1
  165. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
  166. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +3 -3
  167. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
  168. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +3 -3
  169. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
  170. package/packages/indexer_client/src/models/transaction.d.ts +2 -2
  171. package/packages/indexer_client/src/models/transaction.js +6 -5
  172. package/packages/indexer_client/src/models/transaction.js.map +1 -1
  173. package/packages/indexer_client/src/models/transaction.mjs +6 -5
  174. package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
  175. package/packages/kmd_client/src/apis/api-service.d.ts +5 -5
  176. package/packages/kmd_client/src/apis/api-service.js +32 -32
  177. package/packages/kmd_client/src/apis/api-service.js.map +1 -1
  178. package/packages/kmd_client/src/apis/api-service.mjs +32 -32
  179. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
  180. package/packages/kmd_client/src/core/api-error.js +3 -1
  181. package/packages/kmd_client/src/core/api-error.js.map +1 -1
  182. package/packages/kmd_client/src/core/api-error.mjs +3 -1
  183. package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
  184. package/packages/kmd_client/src/core/model-runtime.js +4 -4
  185. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  186. package/packages/kmd_client/src/core/model-runtime.mjs +6 -6
  187. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  188. package/packages/sdk/src/encoding/encoding.js +12 -2
  189. package/packages/sdk/src/encoding/encoding.js.map +1 -1
  190. package/packages/sdk/src/encoding/encoding.mjs +12 -1
  191. package/packages/sdk/src/encoding/encoding.mjs.map +1 -1
  192. package/packages/sdk/src/encoding/schema/map.js +0 -2
  193. package/packages/sdk/src/encoding/schema/map.js.map +1 -1
  194. package/packages/transact/src/logicsig.d.ts +3 -15
  195. package/packages/transact/src/logicsig.js +16 -36
  196. package/packages/transact/src/logicsig.js.map +1 -1
  197. package/packages/transact/src/logicsig.mjs +18 -36
  198. package/packages/transact/src/logicsig.mjs.map +1 -1
  199. package/packages/transact/src/multisig.d.ts +7 -115
  200. package/packages/transact/src/multisig.js +86 -136
  201. package/packages/transact/src/multisig.js.map +1 -1
  202. package/packages/transact/src/multisig.mjs +87 -117
  203. package/packages/transact/src/multisig.mjs.map +1 -1
  204. package/packages/transact/src/transactions/app-call.d.ts +10 -10
  205. package/packages/transact/src/transactions/app-call.js.map +1 -1
  206. package/packages/transact/src/transactions/app-call.mjs.map +1 -1
  207. package/packages/transact/src/transactions/reference-types-meta.d.ts +26 -0
  208. package/packages/transact/src/transactions/reference-types-meta.js +71 -0
  209. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -0
  210. package/packages/transact/src/transactions/reference-types-meta.mjs +69 -0
  211. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -0
  212. package/packages/transact/src/transactions/signed-transaction-meta.js +2 -3
  213. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
  214. package/packages/transact/src/transactions/signed-transaction-meta.mjs +3 -3
  215. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
  216. package/packages/transact/src/transactions/signed-transaction.d.ts +2 -2
  217. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  218. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  219. package/packages/transact/src/transactions/transaction-meta.js +29 -23
  220. package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
  221. package/packages/transact/src/transactions/transaction-meta.mjs +29 -23
  222. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
  223. package/packages/transact/src/transactions/transaction.js +1 -0
  224. package/packages/transact/src/transactions/transaction.js.map +1 -1
  225. package/packages/transact/src/transactions/transaction.mjs +1 -0
  226. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  227. package/sdk/index.js +1 -1
  228. package/testing/account.js +2 -5
  229. package/testing/account.js.map +1 -1
  230. package/testing/account.mjs +2 -5
  231. package/testing/account.mjs.map +1 -1
  232. package/testing/fixtures/algorand-fixture.d.ts +3 -3
  233. package/testing/fixtures/algorand-fixture.js.map +1 -1
  234. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  235. package/transact/index.d.ts +5 -4
  236. package/transact/index.js +4 -22
  237. package/transact/index.mjs +4 -3
  238. package/transaction/transaction.js +2 -2
  239. package/transaction/transaction.js.map +1 -1
  240. package/transaction/transaction.mjs +2 -2
  241. package/transaction/transaction.mjs.map +1 -1
  242. package/transactions/app-call.d.ts +4 -3
  243. package/transactions/app-call.js +15 -15
  244. package/transactions/app-call.js.map +1 -1
  245. package/transactions/app-call.mjs +15 -15
  246. package/transactions/app-call.mjs.map +1 -1
  247. package/transactions/asset-config.d.ts +1 -1
  248. package/transactions/asset-config.js +1 -1
  249. package/transactions/asset-config.js.map +1 -1
  250. package/transactions/asset-config.mjs +1 -1
  251. package/transactions/asset-config.mjs.map +1 -1
  252. package/transactions/method-call.js +69 -77
  253. package/transactions/method-call.js.map +1 -1
  254. package/transactions/method-call.mjs +69 -77
  255. package/transactions/method-call.mjs.map +1 -1
  256. package/types/account-manager.d.ts +1 -1
  257. package/types/account-manager.js +3 -3
  258. package/types/account-manager.js.map +1 -1
  259. package/types/account-manager.mjs +3 -3
  260. package/types/account-manager.mjs.map +1 -1
  261. package/types/algorand-client-transaction-creator.d.ts +97 -83
  262. package/types/algorand-client-transaction-creator.js +8 -0
  263. package/types/algorand-client-transaction-creator.js.map +1 -1
  264. package/types/algorand-client-transaction-creator.mjs +8 -0
  265. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  266. package/types/algorand-client-transaction-sender.d.ts +100 -86
  267. package/types/algorand-client-transaction-sender.js +8 -1
  268. package/types/algorand-client-transaction-sender.js.map +1 -1
  269. package/types/algorand-client-transaction-sender.mjs +8 -0
  270. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  271. package/types/app-client.d.ts +265 -260
  272. package/types/app-client.js +0 -1
  273. package/types/app-client.js.map +1 -1
  274. package/types/app-deployer.js +1 -1
  275. package/types/app-deployer.js.map +1 -1
  276. package/types/app-deployer.mjs +1 -1
  277. package/types/app-deployer.mjs.map +1 -1
  278. package/types/app-factory.d.ts +91 -88
  279. package/types/app-manager.d.ts +3 -1
  280. package/types/app-manager.js +16 -10
  281. package/types/app-manager.js.map +1 -1
  282. package/types/app-manager.mjs +16 -10
  283. package/types/app-manager.mjs.map +1 -1
  284. package/types/app-spec.js +12 -5
  285. package/types/app-spec.js.map +1 -1
  286. package/types/app-spec.mjs +12 -5
  287. package/types/app-spec.mjs.map +1 -1
  288. package/types/asset-manager.js +1 -1
  289. package/types/asset-manager.js.map +1 -1
  290. package/types/asset-manager.mjs +1 -1
  291. package/types/asset-manager.mjs.map +1 -1
  292. package/types/composer.d.ts +9 -0
  293. package/types/composer.js +28 -13
  294. package/types/composer.js.map +1 -1
  295. package/types/composer.mjs +28 -12
  296. package/types/composer.mjs.map +1 -1
  297. package/types/kmd-account-manager.d.ts +1 -0
  298. package/types/kmd-account-manager.js +21 -10
  299. package/types/kmd-account-manager.js.map +1 -1
  300. package/types/kmd-account-manager.mjs +22 -11
  301. package/types/kmd-account-manager.mjs.map +1 -1
  302. package/types/testing.d.ts +2 -2
  303. package/packages/algod_client/src/models/application-local-reference.d.ts +0 -20
  304. package/packages/algod_client/src/models/application-local-reference.js +0 -23
  305. package/packages/algod_client/src/models/application-local-reference.js.map +0 -1
  306. package/packages/algod_client/src/models/application-local-reference.mjs +0 -23
  307. package/packages/algod_client/src/models/application-local-reference.mjs.map +0 -1
  308. package/packages/algod_client/src/models/asset-holding-reference.d.ts +0 -20
  309. package/packages/algod_client/src/models/asset-holding-reference.js +0 -23
  310. package/packages/algod_client/src/models/asset-holding-reference.js.map +0 -1
  311. package/packages/algod_client/src/models/asset-holding-reference.mjs +0 -23
  312. package/packages/algod_client/src/models/asset-holding-reference.mjs.map +0 -1
  313. package/packages/algod_client/src/models/box-reference.d.ts +0 -17
  314. package/packages/algod_client/src/models/box-reference.js +0 -23
  315. package/packages/algod_client/src/models/box-reference.js.map +0 -1
  316. package/packages/algod_client/src/models/box-reference.mjs +0 -23
  317. package/packages/algod_client/src/models/box-reference.mjs.map +0 -1
@@ -15,7 +15,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
15
15
  * ```typescript
16
16
  * const fixture = algorandFixture()
17
17
  *
18
- * beforeEach(fixture.newScope, 10_000)
18
+ * beforeEach(fixture.newScope)
19
19
  *
20
20
  * test('My test', async () => {
21
21
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -27,7 +27,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
27
27
  * ```typescript
28
28
  * const fixture = algorandFixture()
29
29
  *
30
- * beforeAll(fixture.newScope, 10_000)
30
+ * beforeAll(fixture.newScope)
31
31
  *
32
32
  * test('My test', async () => {
33
33
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -42,7 +42,7 @@ import { AlgorandFixture, AlgorandFixtureConfig } from "../../types/testing.js";
42
42
  * // ...
43
43
  * })
44
44
  *
45
- * beforeEach(fixture.newScope, 10_000)
45
+ * beforeEach(fixture.newScope)
46
46
  *
47
47
  * test('My test', async () => {
48
48
  * const {algod, indexer, testAccount, ...} = fixture.context
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.js","names":["ClientManager","context: AlgorandTestAutomationContext","algorand: AlgorandClient","TransactionLogger","AlgorandClient","getTestAccount","algos","runWhenIndexerCaughtUp"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../types/algorand-client'\nimport { ClientManager } from '../../types/client-manager'\nimport { AlgoConfig } from '../../types/network-client'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../../types/testing'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAGA,qCAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAASA,qCAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAWA,qCAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAOA,qCAAc,aAAa,cAAc,UAAW;CACrF,IAAIC;CACJ,IAAIC;CAEJ,MAAM,WAAW,YAAY;AAC3B,wBAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAIC,8CAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAWC,uCAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAMC,+BAAe;GAAE,cAAc,eAAe,sBAAsBC,qBAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAMD,+BAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0BE,6CAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}
1
+ {"version":3,"file":"algorand-fixture.js","names":["ClientManager","context: AlgorandTestAutomationContext","algorand: AlgorandClient","TransactionLogger","AlgorandClient","getTestAccount","algos","runWhenIndexerCaughtUp"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../types/algorand-client'\nimport { ClientManager } from '../../types/client-manager'\nimport { AlgoConfig } from '../../types/network-client'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../../types/testing'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAGA,qCAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAASA,qCAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAWA,qCAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAOA,qCAAc,aAAa,cAAc,UAAW;CACrF,IAAIC;CACJ,IAAIC;CAEJ,MAAM,WAAW,YAAY;AAC3B,wBAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAIC,8CAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAWC,uCAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAMC,+BAAe;GAAE,cAAc,eAAe,sBAAsBC,qBAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAMD,+BAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0BE,6CAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.mjs","names":["context: AlgorandTestAutomationContext","algorand: AlgorandClient"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../types/algorand-client'\nimport { ClientManager } from '../../types/client-manager'\nimport { AlgoConfig } from '../../types/network-client'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../../types/testing'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope, 10_000)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAG,cAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAAS,cAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAW,cAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAO,cAAc,aAAa,cAAc,UAAW;CACrF,IAAIA;CACJ,IAAIC;CAEJ,MAAM,WAAW,YAAY;AAC3B,SAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAI,mBAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAW,eAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAM,eAAe;GAAE,cAAc,eAAe,sBAAsB,MAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAM,eAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0B,6BAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}
1
+ {"version":3,"file":"algorand-fixture.mjs","names":["context: AlgorandTestAutomationContext","algorand: AlgorandClient"],"sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":["import { algos, Config } from '../../'\nimport { AlgorandClient } from '../../types/algorand-client'\nimport { ClientManager } from '../../types/client-manager'\nimport { AlgoConfig } from '../../types/network-client'\nimport { AlgorandFixture, AlgorandFixtureConfig, AlgorandTestAutomationContext, GetTestAccountParams } from '../../types/testing'\nimport { getTestAccount } from '../account'\nimport { runWhenIndexerCaughtUp } from '../indexer'\nimport { TransactionLogger } from '../transaction-logger'\n\n/**\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd (or their respective config) if you want to test against\n * an explicitly defined network.\n *\n * @example No config (per-test isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example No config (test suite isolation)\n * ```typescript\n * const fixture = algorandFixture()\n *\n * beforeAll(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @example With config\n * ```typescript\n * const fixture = algorandFixture({\n * algod: new AlgodClient({ baseUrl: 'http://localhost:12345', headers: { 'X-Algo-API-Token': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' } }),\n * // ...\n * })\n *\n * beforeEach(fixture.newScope)\n *\n * test('My test', async () => {\n * const {algod, indexer, testAccount, ...} = fixture.context\n * // test things...\n * })\n * ```\n *\n * @param fixtureConfig The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture\n\n/**\n * @deprecated Config can be passed in directly to fixture config now.\n *\n * Creates a test fixture for automated testing against Algorand.\n * By default it tests against an environment variable specified client\n * if the standard environment variables are specified, otherwise against\n * a default LocalNet instance, but you can pass in an algod, indexer\n * and/or kmd if you want to test against an explicitly defined network.\n *\n * @param fixtureConfig The fixture configuration\n * @param config The fixture configuration\n * @returns The fixture\n */\nexport function algorandFixture(fixtureConfig: AlgorandFixtureConfig | undefined, config: AlgoConfig): AlgorandFixture\n\nexport function algorandFixture(fixtureConfig?: AlgorandFixtureConfig, config?: AlgoConfig): AlgorandFixture {\n fixtureConfig = { ...fixtureConfig, ...config }\n if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {\n fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig }\n }\n\n const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig!)\n const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig!)\n const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig!)\n let context: AlgorandTestAutomationContext\n let algorand: AlgorandClient\n\n const newScope = async () => {\n Config.configure({ debug: true })\n const transactionLogger = new TransactionLogger()\n const transactionLoggerAlgod = transactionLogger.capture(algod)\n\n algorand = AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd }).setSuggestedParamsCacheTimeout(0)\n\n const testAccount = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorand)\n algorand.setSignerFromAccount(testAccount)\n\n // If running against LocalNet we are likely in dev mode and we need to set a much higher validity window\n // otherwise we are more likely to get invalid transactions.\n if (await algorand.client.isLocalNet()) {\n algorand.setDefaultValidityWindow(1000)\n }\n context = {\n algorand,\n algod: transactionLoggerAlgod,\n indexer: indexer,\n kmd: kmd,\n testAccount,\n generateAccount: async (params: GetTestAccountParams) => {\n const account = await getTestAccount(params, algorand)\n algorand.setSignerFromAccount(account)\n return account\n },\n transactionLogger: transactionLogger,\n waitForIndexer: () => transactionLogger.waitForIndexer(indexer),\n waitForIndexerTransaction: (transactionId: string) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionById(transactionId)),\n }\n }\n\n return {\n get context() {\n if (!context) throw new Error('Context not initialised; make sure to call fixture.newScope() before accessing context.')\n return context\n },\n get algorand() {\n return algorand\n },\n beforeEach: newScope,\n newScope,\n }\n}\n"],"mappings":";;;;;;;;;AA4EA,SAAgB,gBAAgB,eAAuC,QAAsC;AAC3G,iBAAgB;EAAE,GAAG;EAAe,GAAG;EAAQ;AAC/C,KAAI,CAAC,cAAc,SAAS,CAAC,cAAc,WAAW,CAAC,cAAc,IACnE,iBAAgB;EAAE,GAAG,cAAc,oCAAoC;EAAE,GAAG;EAAe;CAG7F,MAAM,QAAQ,cAAc,SAAS,cAAc,eAAe,cAAc,YAAa;CAC7F,MAAM,UAAU,cAAc,WAAW,cAAc,iBAAiB,cAAc,cAAe;CACrG,MAAM,MAAM,cAAc,OAAO,cAAc,aAAa,cAAc,UAAW;CACrF,IAAIA;CACJ,IAAIC;CAEJ,MAAM,WAAW,YAAY;AAC3B,SAAO,UAAU,EAAE,OAAO,MAAM,CAAC;EACjC,MAAM,oBAAoB,IAAI,mBAAmB;EACjD,MAAM,yBAAyB,kBAAkB,QAAQ,MAAM;AAE/D,aAAW,eAAe,YAAY;GAAE,OAAO;GAAwB;GAAS;GAAK,CAAC,CAAC,+BAA+B,EAAE;EAExH,MAAM,cAAc,MAAM,eAAe;GAAE,cAAc,eAAe,sBAAsB,MAAM,GAAG;GAAE,aAAa;GAAM,EAAE,SAAS;AACvI,WAAS,qBAAqB,YAAY;AAI1C,MAAI,MAAM,SAAS,OAAO,YAAY,CACpC,UAAS,yBAAyB,IAAK;AAEzC,YAAU;GACR;GACA,OAAO;GACE;GACJ;GACL;GACA,iBAAiB,OAAO,WAAiC;IACvD,MAAM,UAAU,MAAM,eAAe,QAAQ,SAAS;AACtD,aAAS,qBAAqB,QAAQ;AACtC,WAAO;;GAEU;GACnB,sBAAsB,kBAAkB,eAAe,QAAQ;GAC/D,4BAA4B,kBAA0B,6BAA6B,QAAQ,sBAAsB,cAAc,CAAC;GACjI;;AAGH,QAAO;EACL,IAAI,UAAU;AACZ,OAAI,CAAC,QAAS,OAAM,IAAI,MAAM,0FAA0F;AACxH,UAAO;;EAET,IAAI,WAAW;AACb,UAAO;;EAET,YAAY;EACZ;EACD"}
@@ -1,4 +1,4 @@
1
- import { AccessReference, AppCallTransactionFields, BoxReference, HoldingReference, LocalsReference, OnApplicationComplete, StateSchema, validateAppCallTransaction } from "../packages/transact/src/transactions/app-call.js";
1
+ import { AppCallTransactionFields, BoxReference, HoldingReference, LocalsReference, OnApplicationComplete, ResourceReference, StateSchema, validateAppCallTransaction } from "../packages/transact/src/transactions/app-call.js";
2
2
  import { AssetConfigTransactionFields, validateAssetConfigTransaction } from "../packages/transact/src/transactions/asset-config.js";
3
3
  import { AssetFreezeTransactionFields, validateAssetFreezeTransaction } from "../packages/transact/src/transactions/asset-freeze.js";
4
4
  import { AssetTransferTransactionFields, validateAssetTransferTransaction } from "../packages/transact/src/transactions/asset-transfer.js";
@@ -10,8 +10,9 @@ import { TransactionType } from "../packages/transact/src/transactions/transacti
10
10
  import { Transaction, TransactionParams, assignFee, calculateFee, decodeTransaction, decodeTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, getEncodedTransactionType, groupTransactions, transactionCodec } from "../packages/transact/src/transactions/transaction.js";
11
11
  import { LogicSignature, MultisigSignature, MultisigSubsignature, SignedTransaction, decodeSignedTransaction, decodeSignedTransactions, encodeSignedTransaction, encodeSignedTransactions } from "../packages/transact/src/transactions/signed-transaction.js";
12
12
  import { SignedTransactionMeta } from "../packages/transact/src/transactions/signed-transaction-meta.js";
13
+ import { BoxReferenceMeta, HoldingReferenceMeta, LocalsReferenceMeta } from "../packages/transact/src/transactions/reference-types-meta.js";
13
14
  import { TransactionParamsMeta, transactionParamsCodec } from "../packages/transact/src/transactions/transaction-meta.js";
14
- import { MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG, MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG, MULTISIG_MERGE_MISMATCH_ERROR_MSG, MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG, MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG, MULTISIG_NO_MUTATE_ERROR_MSG, MULTISIG_SIGNATURE_LENGTH_ERROR_MSG, MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG, MultisigAccount, MultisigMetadata, addressFromMultisigPreImg, addressFromMultisigPreImgAddrs, addressFromMultisigSignature, appendSignRawMultisigSignature, applyMultisigSubsignature, createMultisigTransaction, decodeMultiSignature, mergeMultisigTransactions, mergeMultisignatures, multisigAddress, newMultisigSignature, participantsFromMultisigSignature } from "../packages/transact/src/multisig.js";
15
- import { DelegatedLsigSigner, LogicSigAccount, ProgramDataSigner, decodeLogicSignature, sanityCheckProgram } from "../packages/transact/src/logicsig.js";
15
+ import { MultisigAccount, MultisigMetadata } from "../packages/transact/src/multisig.js";
16
+ import { DelegatedLsigSigner, LogicSigAccount, ProgramDataSigner } from "../packages/transact/src/logicsig.js";
16
17
  import { AddressWithDelegatedLsigSigner, AddressWithMxBytesSigner, AddressWithProgramDataSigner, AddressWithSigners, AddressWithTransactionSigner, MxBytesSigner, SendingAddress, TransactionSigner, generateAddressWithSigners, makeEmptyTransactionSigner } from "../packages/transact/src/signer.js";
17
- export { AccessReference, AddressWithDelegatedLsigSigner, AddressWithMxBytesSigner, AddressWithProgramDataSigner, AddressWithSigners, AddressWithTransactionSigner, AppCallTransactionFields, AssetConfigTransactionFields, AssetFreezeTransactionFields, AssetTransferTransactionFields, BoxReference, DelegatedLsigSigner, FalconSignatureStruct, FalconVerifier, HashFactory, HeartbeatProof, HeartbeatTransactionFields, HoldingReference, KeyRegistrationTransactionFields, LocalsReference, LogicSigAccount, LogicSignature, MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG, MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG, MULTISIG_MERGE_MISMATCH_ERROR_MSG, MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG, MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG, MULTISIG_NO_MUTATE_ERROR_MSG, MULTISIG_SIGNATURE_LENGTH_ERROR_MSG, MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG, MerkleArrayProof, MerkleSignatureVerifier, MultisigAccount, MultisigMetadata, MultisigSignature, MultisigSubsignature, MxBytesSigner, OnApplicationComplete, Participant, PaymentTransactionFields, ProgramDataSigner, Reveal, SendingAddress, SignedTransaction, SignedTransactionMeta, SigslotCommit, StateProof, StateProofMessage, StateProofTransactionFields, StateSchema, Transaction, TransactionParams, TransactionParamsMeta, TransactionSigner, TransactionType, addressFromMultisigPreImg, addressFromMultisigPreImgAddrs, addressFromMultisigSignature, appendSignRawMultisigSignature, applyMultisigSubsignature, assignFee, calculateFee, createMultisigTransaction, decodeLogicSignature, decodeMultiSignature, decodeSignedTransaction, decodeSignedTransactions, decodeTransaction, decodeTransactions, encodeSignedTransaction, encodeSignedTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, generateAddressWithSigners, getEncodedTransactionType, groupTransactions, makeEmptyTransactionSigner, mergeMultisigTransactions, mergeMultisignatures, multisigAddress, newMultisigSignature, participantsFromMultisigSignature, sanityCheckProgram, transactionCodec, transactionParamsCodec, validateAppCallTransaction, validateAssetConfigTransaction, validateAssetFreezeTransaction, validateAssetTransferTransaction, validateKeyRegistrationTransaction };
18
+ export { AddressWithDelegatedLsigSigner, AddressWithMxBytesSigner, AddressWithProgramDataSigner, AddressWithSigners, AddressWithTransactionSigner, AppCallTransactionFields, AssetConfigTransactionFields, AssetFreezeTransactionFields, AssetTransferTransactionFields, BoxReference, BoxReferenceMeta, DelegatedLsigSigner, FalconSignatureStruct, FalconVerifier, HashFactory, HeartbeatProof, HeartbeatTransactionFields, HoldingReference, HoldingReferenceMeta, KeyRegistrationTransactionFields, LocalsReference, LocalsReferenceMeta, LogicSigAccount, LogicSignature, MerkleArrayProof, MerkleSignatureVerifier, MultisigAccount, MultisigMetadata, MultisigSignature, MultisigSubsignature, MxBytesSigner, OnApplicationComplete, Participant, PaymentTransactionFields, ProgramDataSigner, ResourceReference, Reveal, SendingAddress, SignedTransaction, SignedTransactionMeta, SigslotCommit, StateProof, StateProofMessage, StateProofTransactionFields, StateSchema, Transaction, TransactionParams, TransactionParamsMeta, TransactionSigner, TransactionType, assignFee, calculateFee, decodeSignedTransaction, decodeSignedTransactions, decodeTransaction, decodeTransactions, encodeSignedTransaction, encodeSignedTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, generateAddressWithSigners, getEncodedTransactionType, groupTransactions, makeEmptyTransactionSigner, transactionCodec, transactionParamsCodec, validateAppCallTransaction, validateAssetConfigTransaction, validateAssetFreezeTransaction, validateAssetTransferTransaction, validateKeyRegistrationTransaction };
package/transact/index.js CHANGED
@@ -8,35 +8,23 @@ const require_transaction_meta = require('../packages/transact/src/transactions/
8
8
  const require_transaction = require('../packages/transact/src/transactions/transaction.js');
9
9
  const require_signed_transaction_meta = require('../packages/transact/src/transactions/signed-transaction-meta.js');
10
10
  const require_signed_transaction = require('../packages/transact/src/transactions/signed-transaction.js');
11
+ const require_reference_types_meta = require('../packages/transact/src/transactions/reference-types-meta.js');
11
12
  const require_signer = require('../packages/transact/src/signer.js');
12
13
  const require_multisig = require('../packages/transact/src/multisig.js');
13
14
  const require_logicsig = require('../packages/transact/src/logicsig.js');
14
15
 
16
+ exports.BoxReferenceMeta = require_reference_types_meta.BoxReferenceMeta;
17
+ exports.HoldingReferenceMeta = require_reference_types_meta.HoldingReferenceMeta;
18
+ exports.LocalsReferenceMeta = require_reference_types_meta.LocalsReferenceMeta;
15
19
  exports.LogicSigAccount = require_logicsig.LogicSigAccount;
16
- exports.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = require_multisig.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG;
17
- exports.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = require_multisig.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG;
18
- exports.MULTISIG_MERGE_MISMATCH_ERROR_MSG = require_multisig.MULTISIG_MERGE_MISMATCH_ERROR_MSG;
19
- exports.MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = require_multisig.MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG;
20
- exports.MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = require_multisig.MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG;
21
- exports.MULTISIG_NO_MUTATE_ERROR_MSG = require_multisig.MULTISIG_NO_MUTATE_ERROR_MSG;
22
- exports.MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = require_multisig.MULTISIG_SIGNATURE_LENGTH_ERROR_MSG;
23
- exports.MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = require_multisig.MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG;
24
20
  exports.MultisigAccount = require_multisig.MultisigAccount;
25
21
  exports.OnApplicationComplete = require_app_call.OnApplicationComplete;
26
22
  exports.SignedTransactionMeta = require_signed_transaction_meta.SignedTransactionMeta;
27
23
  exports.Transaction = require_transaction.Transaction;
28
24
  exports.TransactionParamsMeta = require_transaction_meta.TransactionParamsMeta;
29
25
  exports.TransactionType = require_transaction_type.TransactionType;
30
- exports.addressFromMultisigPreImg = require_multisig.addressFromMultisigPreImg;
31
- exports.addressFromMultisigPreImgAddrs = require_multisig.addressFromMultisigPreImgAddrs;
32
- exports.addressFromMultisigSignature = require_multisig.addressFromMultisigSignature;
33
- exports.appendSignRawMultisigSignature = require_multisig.appendSignRawMultisigSignature;
34
- exports.applyMultisigSubsignature = require_multisig.applyMultisigSubsignature;
35
26
  exports.assignFee = require_transaction.assignFee;
36
27
  exports.calculateFee = require_transaction.calculateFee;
37
- exports.createMultisigTransaction = require_multisig.createMultisigTransaction;
38
- exports.decodeLogicSignature = require_logicsig.decodeLogicSignature;
39
- exports.decodeMultiSignature = require_multisig.decodeMultiSignature;
40
28
  exports.decodeSignedTransaction = require_signed_transaction.decodeSignedTransaction;
41
29
  exports.decodeSignedTransactions = require_signed_transaction.decodeSignedTransactions;
42
30
  exports.decodeTransaction = require_transaction.decodeTransaction;
@@ -51,12 +39,6 @@ exports.generateAddressWithSigners = require_signer.generateAddressWithSigners;
51
39
  exports.getEncodedTransactionType = require_transaction.getEncodedTransactionType;
52
40
  exports.groupTransactions = require_transaction.groupTransactions;
53
41
  exports.makeEmptyTransactionSigner = require_signer.makeEmptyTransactionSigner;
54
- exports.mergeMultisigTransactions = require_multisig.mergeMultisigTransactions;
55
- exports.mergeMultisignatures = require_multisig.mergeMultisignatures;
56
- exports.multisigAddress = require_multisig.multisigAddress;
57
- exports.newMultisigSignature = require_multisig.newMultisigSignature;
58
- exports.participantsFromMultisigSignature = require_multisig.participantsFromMultisigSignature;
59
- exports.sanityCheckProgram = require_logicsig.sanityCheckProgram;
60
42
  exports.transactionCodec = require_transaction.transactionCodec;
61
43
  exports.transactionParamsCodec = require_transaction_meta.transactionParamsCodec;
62
44
  exports.validateAppCallTransaction = require_app_call.validateAppCallTransaction;
@@ -8,8 +8,9 @@ import { TransactionParamsMeta, transactionParamsCodec } from "../packages/trans
8
8
  import { Transaction, assignFee, calculateFee, decodeTransaction, decodeTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, getEncodedTransactionType, groupTransactions, transactionCodec } from "../packages/transact/src/transactions/transaction.mjs";
9
9
  import { SignedTransactionMeta } from "../packages/transact/src/transactions/signed-transaction-meta.mjs";
10
10
  import { decodeSignedTransaction, decodeSignedTransactions, encodeSignedTransaction, encodeSignedTransactions } from "../packages/transact/src/transactions/signed-transaction.mjs";
11
+ import { BoxReferenceMeta, HoldingReferenceMeta, LocalsReferenceMeta } from "../packages/transact/src/transactions/reference-types-meta.mjs";
11
12
  import { generateAddressWithSigners, makeEmptyTransactionSigner } from "../packages/transact/src/signer.mjs";
12
- import { MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG, MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG, MULTISIG_MERGE_MISMATCH_ERROR_MSG, MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG, MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG, MULTISIG_NO_MUTATE_ERROR_MSG, MULTISIG_SIGNATURE_LENGTH_ERROR_MSG, MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG, MultisigAccount, addressFromMultisigPreImg, addressFromMultisigPreImgAddrs, addressFromMultisigSignature, appendSignRawMultisigSignature, applyMultisigSubsignature, createMultisigTransaction, decodeMultiSignature, mergeMultisigTransactions, mergeMultisignatures, multisigAddress, newMultisigSignature, participantsFromMultisigSignature } from "../packages/transact/src/multisig.mjs";
13
- import { LogicSigAccount, decodeLogicSignature, sanityCheckProgram } from "../packages/transact/src/logicsig.mjs";
13
+ import { MultisigAccount } from "../packages/transact/src/multisig.mjs";
14
+ import { LogicSigAccount } from "../packages/transact/src/logicsig.mjs";
14
15
 
15
- export { LogicSigAccount, MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG, MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG, MULTISIG_MERGE_MISMATCH_ERROR_MSG, MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG, MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG, MULTISIG_NO_MUTATE_ERROR_MSG, MULTISIG_SIGNATURE_LENGTH_ERROR_MSG, MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG, MultisigAccount, OnApplicationComplete, SignedTransactionMeta, Transaction, TransactionParamsMeta, TransactionType, addressFromMultisigPreImg, addressFromMultisigPreImgAddrs, addressFromMultisigSignature, appendSignRawMultisigSignature, applyMultisigSubsignature, assignFee, calculateFee, createMultisigTransaction, decodeLogicSignature, decodeMultiSignature, decodeSignedTransaction, decodeSignedTransactions, decodeTransaction, decodeTransactions, encodeSignedTransaction, encodeSignedTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, generateAddressWithSigners, getEncodedTransactionType, groupTransactions, makeEmptyTransactionSigner, mergeMultisigTransactions, mergeMultisignatures, multisigAddress, newMultisigSignature, participantsFromMultisigSignature, sanityCheckProgram, transactionCodec, transactionParamsCodec, validateAppCallTransaction, validateAssetConfigTransaction, validateAssetFreezeTransaction, validateAssetTransferTransaction, validateKeyRegistrationTransaction };
16
+ export { BoxReferenceMeta, HoldingReferenceMeta, LocalsReferenceMeta, LogicSigAccount, MultisigAccount, OnApplicationComplete, SignedTransactionMeta, Transaction, TransactionParamsMeta, TransactionType, assignFee, calculateFee, decodeSignedTransaction, decodeSignedTransactions, decodeTransaction, decodeTransactions, encodeSignedTransaction, encodeSignedTransactions, encodeTransaction, encodeTransactionRaw, encodeTransactions, estimateTransactionSize, generateAddressWithSigners, getEncodedTransactionType, groupTransactions, makeEmptyTransactionSigner, transactionCodec, transactionParamsCodec, validateAppCallTransaction, validateAssetConfigTransaction, validateAssetFreezeTransaction, validateAssetTransferTransaction, validateKeyRegistrationTransaction };
@@ -80,7 +80,7 @@ async function prepareGroupForSending(composer, sendParams, additionalContext) {
80
80
  * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)
81
81
  */
82
82
  const sendTransactionComposer = async function(atcSend) {
83
- const { transactionComposer: givenComposer,...executeParams } = atcSend;
83
+ const { transactionComposer: givenComposer, ...executeParams } = atcSend;
84
84
  return atcSend.transactionComposer.send({ ...executeParams });
85
85
  };
86
86
  /**
@@ -96,7 +96,7 @@ const sendTransactionComposer = async function(atcSend) {
96
96
  */
97
97
  const waitForConfirmation = async function(transactionId, maxRoundsToWait, algod) {
98
98
  if (maxRoundsToWait < 0) throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`);
99
- const status = await algod.getStatus();
99
+ const status = await algod.status();
100
100
  if (status === void 0) throw new Error("Unable to get node status");
101
101
  const startRound = BigInt(status.lastRound) + 1n;
102
102
  let currentRound = startRound;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","names":["e: any","toNumber"],"sources":["../../src/transaction/transaction.ts"],"sourcesContent":["import { AlgodClient, PendingTransactionResponse } from '@algorandfoundation/algokit-algod-client'\nimport { Transaction, TransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { TransactionComposer } from '../types/composer'\nimport {\n AdditionalTransactionComposerContext,\n SendParams,\n SendTransactionComposerResults,\n TransactionComposerToSend,\n} from '../types/transaction'\nimport { toNumber } from '../util'\n\n/** Represents an unsigned transactions and a signer that can authorize that transaction. */\nexport interface TransactionWithSigner {\n /** An unsigned transaction */\n txn: Transaction\n /** A transaction signer that can authorize txn */\n signer: TransactionSigner\n}\n\n/** Encodes a transaction lease into a 32-byte array ready to be included in an Algorand transaction.\n *\n * @param lease The transaction lease as a string or binary array or null/undefined if there is no lease\n * @returns the transaction lease ready for inclusion in a transaction or `undefined` if there is no lease\n * @throws if the length of the data is > 32 bytes or empty\n * @example algokit.encodeLease('UNIQUE_ID')\n * @example algokit.encodeLease(new Uint8Array([1, 2, 3]))\n */\nexport function encodeLease(lease?: string | Uint8Array): Uint8Array | undefined {\n if (lease === null || typeof lease === 'undefined') {\n return undefined\n } else if (typeof lease === 'object' && lease.constructor === Uint8Array) {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received bytes with length ${lease.length}`,\n )\n }\n if (lease.length === 32) return lease\n const lease32 = new Uint8Array(32)\n lease32.set(lease, 0)\n return lease32\n } else if (typeof lease === 'string') {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received '${lease}' with length ${lease.length}`,\n )\n }\n const encoder = new TextEncoder()\n const lease32 = new Uint8Array(32)\n lease32.set(encoder.encode(lease), 0)\n return lease32\n } else {\n throw new Error(`Unknown lease type received of ${typeof lease}`)\n }\n}\n\n/**\n * @deprecated Use `composer.build()` directly\n * Take an existing Transaction Composer and return a new one with the required\n * app call resources populated into it\n *\n * @param algod The algod client to use for the simulation\n * @param composer The composer containing the txn group\n * @returns A new composer with the resources populated into the transactions\n *\n * @privateRemarks\n *\n * This entire function will eventually be implemented in simulate upstream in algod. The simulate endpoint will return\n * an array of refference arrays for each transaction, so this eventually will eventually just call simulate and set the\n * reference arrays in the transactions to the reference arrays returned by simulate.\n *\n * See https://github.com/algorand/go-algorand/pull/5684\n *\n */\nexport async function populateAppCallResources(composer: TransactionComposer) {\n await composer.build()\n return composer\n}\n\n/**\n * @deprecated Use `composer.setMaxFees()` instead if you need to set max fees for transactions.\n * Use `composer.build()` instead if you need to build transactions with resource population.\n *\n * Take an existing Transaction Composer and return a new one with changes applied to the transactions\n * based on the supplied sendParams to prepare it for sending.\n *\n * @param composer The Transaction Composer containing the txn group\n * @param sendParams The send params for the transaction group\n * @param additionalContext Additional context used to determine how best to change the transactions in the group\n * @returns A new Transaction Composer with the changes applied\n *\n * @privateRemarks\n * Parts of this function will eventually be implemented in algod. Namely:\n * - Simulate will return information on how to populate reference arrays, see https://github.com/algorand/go-algorand/pull/6015\n */\nexport async function prepareGroupForSending(\n composer: TransactionComposer,\n sendParams: SendParams,\n additionalContext?: AdditionalTransactionComposerContext,\n) {\n const newComposer = composer.clone({\n coverAppCallInnerTransactionFees: sendParams.coverAppCallInnerTransactionFees ?? false,\n populateAppCallResources: sendParams.populateAppCallResources ?? true,\n })\n\n if (additionalContext?.maxFees) {\n newComposer.setMaxFees(additionalContext?.maxFees)\n }\n\n await newComposer.build()\n\n return newComposer\n}\n\n/**\n * @deprecated Use `composer.send()` directly\n * Signs and sends transactions that have been collected by an `TransactionComposer`.\n * @param atcSend The parameters controlling the send, including `atc` The `TransactionComposer` and params to control send behaviour\n * @param algod An algod client\n * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)\n */\nexport const sendTransactionComposer = async function (atcSend: TransactionComposerToSend): Promise<SendTransactionComposerResults> {\n const { transactionComposer: givenComposer, ...executeParams } = atcSend\n\n return atcSend.transactionComposer.send({\n ...executeParams,\n })\n}\n\n/**\n * Wait until the transaction is confirmed or rejected, or until `timeout`\n * number of rounds have passed.\n *\n * @param algod An algod client\n * @param transactionId The transaction ID to wait for\n * @param maxRoundsToWait Maximum number of rounds to wait\n *\n * @return Pending transaction information\n * @throws Throws an error if the transaction is not confirmed or rejected in the next `timeout` rounds\n */\nexport const waitForConfirmation = async function (\n transactionId: string,\n maxRoundsToWait: number | bigint,\n algod: AlgodClient,\n): Promise<PendingTransactionResponse> {\n if (maxRoundsToWait < 0) {\n throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`)\n }\n\n // Get current round\n const status = await algod.getStatus()\n if (status === undefined) {\n throw new Error('Unable to get node status')\n }\n\n // Loop for up to `timeout` rounds looking for a confirmed transaction\n const startRound = BigInt(status.lastRound) + 1n\n let currentRound = startRound\n while (currentRound < startRound + BigInt(maxRoundsToWait)) {\n try {\n const pendingInfo = await algod.pendingTransactionInformation(transactionId)\n\n if (pendingInfo !== undefined) {\n const confirmedRound = pendingInfo.confirmedRound\n if (confirmedRound && confirmedRound > 0) {\n return pendingInfo\n } else {\n const poolError = pendingInfo.poolError\n if (poolError != null && poolError.length > 0) {\n // If there was a pool error, then the transaction has been rejected!\n throw new Error(`Transaction ${transactionId} was rejected; pool error: ${poolError}`)\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if ('status' in e && e.status === 404) {\n currentRound++\n continue\n }\n }\n\n await algod.statusAfterBlock(toNumber(currentRound))\n currentRound++\n }\n\n throw new Error(`Transaction ${transactionId} not confirmed after ${maxRoundsToWait} rounds`)\n}\n"],"mappings":";;;;;;;;;;;AA2BA,SAAgB,YAAY,OAAqD;AAC/E,KAAI,UAAU,QAAQ,OAAO,UAAU,YACrC;UACS,OAAO,UAAU,YAAY,MAAM,gBAAgB,YAAY;AACxE,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,2GAA2G,MAAM,SAClH;AAEH,MAAI,MAAM,WAAW,GAAI,QAAO;EAChC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,OAAO,EAAE;AACrB,SAAO;YACE,OAAO,UAAU,UAAU;AACpC,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,0FAA0F,MAAM,gBAAgB,MAAM,SACvH;EAEH,MAAM,UAAU,IAAI,aAAa;EACjC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,QAAQ,OAAO,MAAM,EAAE,EAAE;AACrC,SAAO;OAEP,OAAM,IAAI,MAAM,kCAAkC,OAAO,QAAQ;;;;;;;;;;;;;;;;;;;;AAsBrE,eAAsB,yBAAyB,UAA+B;AAC5E,OAAM,SAAS,OAAO;AACtB,QAAO;;;;;;;;;;;;;;;;;;AAmBT,eAAsB,uBACpB,UACA,YACA,mBACA;CACA,MAAM,cAAc,SAAS,MAAM;EACjC,kCAAkC,WAAW,oCAAoC;EACjF,0BAA0B,WAAW,4BAA4B;EAClE,CAAC;AAEF,KAAI,mBAAmB,QACrB,aAAY,WAAW,mBAAmB,QAAQ;AAGpD,OAAM,YAAY,OAAO;AAEzB,QAAO;;;;;;;;;AAUT,MAAa,0BAA0B,eAAgB,SAA6E;CAClI,MAAM,EAAE,qBAAqB,cAAe,GAAG,kBAAkB;AAEjE,QAAO,QAAQ,oBAAoB,KAAK,EACtC,GAAG,eACJ,CAAC;;;;;;;;;;;;;AAcJ,MAAa,sBAAsB,eACjC,eACA,iBACA,OACqC;AACrC,KAAI,kBAAkB,EACpB,OAAM,IAAI,MAAM,6BAA6B,gBAAgB,gBAAgB;CAI/E,MAAM,SAAS,MAAM,MAAM,WAAW;AACtC,KAAI,WAAW,OACb,OAAM,IAAI,MAAM,4BAA4B;CAI9C,MAAM,aAAa,OAAO,OAAO,UAAU,GAAG;CAC9C,IAAI,eAAe;AACnB,QAAO,eAAe,aAAa,OAAO,gBAAgB,EAAE;AAC1D,MAAI;GACF,MAAM,cAAc,MAAM,MAAM,8BAA8B,cAAc;AAE5E,OAAI,gBAAgB,QAAW;IAC7B,MAAM,iBAAiB,YAAY;AACnC,QAAI,kBAAkB,iBAAiB,EACrC,QAAO;SACF;KACL,MAAM,YAAY,YAAY;AAC9B,SAAI,aAAa,QAAQ,UAAU,SAAS,EAE1C,OAAM,IAAI,MAAM,eAAe,cAAc,6BAA6B,YAAY;;;WAKrFA,GAAQ;AACf,OAAI,YAAY,KAAK,EAAE,WAAW,KAAK;AACrC;AACA;;;AAIJ,QAAM,MAAM,iBAAiBC,sBAAS,aAAa,CAAC;AACpD;;AAGF,OAAM,IAAI,MAAM,eAAe,cAAc,uBAAuB,gBAAgB,SAAS"}
1
+ {"version":3,"file":"transaction.js","names":["e: any","toNumber"],"sources":["../../src/transaction/transaction.ts"],"sourcesContent":["import { AlgodClient, PendingTransactionResponse } from '@algorandfoundation/algokit-algod-client'\nimport { Transaction, TransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { TransactionComposer } from '../types/composer'\nimport {\n AdditionalTransactionComposerContext,\n SendParams,\n SendTransactionComposerResults,\n TransactionComposerToSend,\n} from '../types/transaction'\nimport { toNumber } from '../util'\n\n/** Represents an unsigned transactions and a signer that can authorize that transaction. */\nexport interface TransactionWithSigner {\n /** An unsigned transaction */\n txn: Transaction\n /** A transaction signer that can authorize txn */\n signer: TransactionSigner\n}\n\n/** Encodes a transaction lease into a 32-byte array ready to be included in an Algorand transaction.\n *\n * @param lease The transaction lease as a string or binary array or null/undefined if there is no lease\n * @returns the transaction lease ready for inclusion in a transaction or `undefined` if there is no lease\n * @throws if the length of the data is > 32 bytes or empty\n * @example algokit.encodeLease('UNIQUE_ID')\n * @example algokit.encodeLease(new Uint8Array([1, 2, 3]))\n */\nexport function encodeLease(lease?: string | Uint8Array): Uint8Array | undefined {\n if (lease === null || typeof lease === 'undefined') {\n return undefined\n } else if (typeof lease === 'object' && lease.constructor === Uint8Array) {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received bytes with length ${lease.length}`,\n )\n }\n if (lease.length === 32) return lease\n const lease32 = new Uint8Array(32)\n lease32.set(lease, 0)\n return lease32\n } else if (typeof lease === 'string') {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received '${lease}' with length ${lease.length}`,\n )\n }\n const encoder = new TextEncoder()\n const lease32 = new Uint8Array(32)\n lease32.set(encoder.encode(lease), 0)\n return lease32\n } else {\n throw new Error(`Unknown lease type received of ${typeof lease}`)\n }\n}\n\n/**\n * @deprecated Use `composer.build()` directly\n * Take an existing Transaction Composer and return a new one with the required\n * app call resources populated into it\n *\n * @param algod The algod client to use for the simulation\n * @param composer The composer containing the txn group\n * @returns A new composer with the resources populated into the transactions\n *\n * @privateRemarks\n *\n * This entire function will eventually be implemented in simulate upstream in algod. The simulate endpoint will return\n * an array of refference arrays for each transaction, so this eventually will eventually just call simulate and set the\n * reference arrays in the transactions to the reference arrays returned by simulate.\n *\n * See https://github.com/algorand/go-algorand/pull/5684\n *\n */\nexport async function populateAppCallResources(composer: TransactionComposer) {\n await composer.build()\n return composer\n}\n\n/**\n * @deprecated Use `composer.setMaxFees()` instead if you need to set max fees for transactions.\n * Use `composer.build()` instead if you need to build transactions with resource population.\n *\n * Take an existing Transaction Composer and return a new one with changes applied to the transactions\n * based on the supplied sendParams to prepare it for sending.\n *\n * @param composer The Transaction Composer containing the txn group\n * @param sendParams The send params for the transaction group\n * @param additionalContext Additional context used to determine how best to change the transactions in the group\n * @returns A new Transaction Composer with the changes applied\n *\n * @privateRemarks\n * Parts of this function will eventually be implemented in algod. Namely:\n * - Simulate will return information on how to populate reference arrays, see https://github.com/algorand/go-algorand/pull/6015\n */\nexport async function prepareGroupForSending(\n composer: TransactionComposer,\n sendParams: SendParams,\n additionalContext?: AdditionalTransactionComposerContext,\n) {\n const newComposer = composer.clone({\n coverAppCallInnerTransactionFees: sendParams.coverAppCallInnerTransactionFees ?? false,\n populateAppCallResources: sendParams.populateAppCallResources ?? true,\n })\n\n if (additionalContext?.maxFees) {\n newComposer.setMaxFees(additionalContext?.maxFees)\n }\n\n await newComposer.build()\n\n return newComposer\n}\n\n/**\n * @deprecated Use `composer.send()` directly\n * Signs and sends transactions that have been collected by an `TransactionComposer`.\n * @param atcSend The parameters controlling the send, including `atc` The `TransactionComposer` and params to control send behaviour\n * @param algod An algod client\n * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)\n */\nexport const sendTransactionComposer = async function (atcSend: TransactionComposerToSend): Promise<SendTransactionComposerResults> {\n const { transactionComposer: givenComposer, ...executeParams } = atcSend\n\n return atcSend.transactionComposer.send({\n ...executeParams,\n })\n}\n\n/**\n * Wait until the transaction is confirmed or rejected, or until `timeout`\n * number of rounds have passed.\n *\n * @param algod An algod client\n * @param transactionId The transaction ID to wait for\n * @param maxRoundsToWait Maximum number of rounds to wait\n *\n * @return Pending transaction information\n * @throws Throws an error if the transaction is not confirmed or rejected in the next `timeout` rounds\n */\nexport const waitForConfirmation = async function (\n transactionId: string,\n maxRoundsToWait: number | bigint,\n algod: AlgodClient,\n): Promise<PendingTransactionResponse> {\n if (maxRoundsToWait < 0) {\n throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`)\n }\n\n // Get current round\n const status = await algod.status()\n if (status === undefined) {\n throw new Error('Unable to get node status')\n }\n\n // Loop for up to `timeout` rounds looking for a confirmed transaction\n const startRound = BigInt(status.lastRound) + 1n\n let currentRound = startRound\n while (currentRound < startRound + BigInt(maxRoundsToWait)) {\n try {\n const pendingInfo = await algod.pendingTransactionInformation(transactionId)\n\n if (pendingInfo !== undefined) {\n const confirmedRound = pendingInfo.confirmedRound\n if (confirmedRound && confirmedRound > 0) {\n return pendingInfo\n } else {\n const poolError = pendingInfo.poolError\n if (poolError != null && poolError.length > 0) {\n // If there was a pool error, then the transaction has been rejected!\n throw new Error(`Transaction ${transactionId} was rejected; pool error: ${poolError}`)\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if ('status' in e && e.status === 404) {\n currentRound++\n continue\n }\n }\n\n await algod.statusAfterBlock(toNumber(currentRound))\n currentRound++\n }\n\n throw new Error(`Transaction ${transactionId} not confirmed after ${maxRoundsToWait} rounds`)\n}\n"],"mappings":";;;;;;;;;;;AA2BA,SAAgB,YAAY,OAAqD;AAC/E,KAAI,UAAU,QAAQ,OAAO,UAAU,YACrC;UACS,OAAO,UAAU,YAAY,MAAM,gBAAgB,YAAY;AACxE,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,2GAA2G,MAAM,SAClH;AAEH,MAAI,MAAM,WAAW,GAAI,QAAO;EAChC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,OAAO,EAAE;AACrB,SAAO;YACE,OAAO,UAAU,UAAU;AACpC,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,0FAA0F,MAAM,gBAAgB,MAAM,SACvH;EAEH,MAAM,UAAU,IAAI,aAAa;EACjC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,QAAQ,OAAO,MAAM,EAAE,EAAE;AACrC,SAAO;OAEP,OAAM,IAAI,MAAM,kCAAkC,OAAO,QAAQ;;;;;;;;;;;;;;;;;;;;AAsBrE,eAAsB,yBAAyB,UAA+B;AAC5E,OAAM,SAAS,OAAO;AACtB,QAAO;;;;;;;;;;;;;;;;;;AAmBT,eAAsB,uBACpB,UACA,YACA,mBACA;CACA,MAAM,cAAc,SAAS,MAAM;EACjC,kCAAkC,WAAW,oCAAoC;EACjF,0BAA0B,WAAW,4BAA4B;EAClE,CAAC;AAEF,KAAI,mBAAmB,QACrB,aAAY,WAAW,mBAAmB,QAAQ;AAGpD,OAAM,YAAY,OAAO;AAEzB,QAAO;;;;;;;;;AAUT,MAAa,0BAA0B,eAAgB,SAA6E;CAClI,MAAM,EAAE,qBAAqB,eAAe,GAAG,kBAAkB;AAEjE,QAAO,QAAQ,oBAAoB,KAAK,EACtC,GAAG,eACJ,CAAC;;;;;;;;;;;;;AAcJ,MAAa,sBAAsB,eACjC,eACA,iBACA,OACqC;AACrC,KAAI,kBAAkB,EACpB,OAAM,IAAI,MAAM,6BAA6B,gBAAgB,gBAAgB;CAI/E,MAAM,SAAS,MAAM,MAAM,QAAQ;AACnC,KAAI,WAAW,OACb,OAAM,IAAI,MAAM,4BAA4B;CAI9C,MAAM,aAAa,OAAO,OAAO,UAAU,GAAG;CAC9C,IAAI,eAAe;AACnB,QAAO,eAAe,aAAa,OAAO,gBAAgB,EAAE;AAC1D,MAAI;GACF,MAAM,cAAc,MAAM,MAAM,8BAA8B,cAAc;AAE5E,OAAI,gBAAgB,QAAW;IAC7B,MAAM,iBAAiB,YAAY;AACnC,QAAI,kBAAkB,iBAAiB,EACrC,QAAO;SACF;KACL,MAAM,YAAY,YAAY;AAC9B,SAAI,aAAa,QAAQ,UAAU,SAAS,EAE1C,OAAM,IAAI,MAAM,eAAe,cAAc,6BAA6B,YAAY;;;WAKrFA,GAAQ;AACf,OAAI,YAAY,KAAK,EAAE,WAAW,KAAK;AACrC;AACA;;;AAIJ,QAAM,MAAM,iBAAiBC,sBAAS,aAAa,CAAC;AACpD;;AAGF,OAAM,IAAI,MAAM,eAAe,cAAc,uBAAuB,gBAAgB,SAAS"}
@@ -80,7 +80,7 @@ async function prepareGroupForSending(composer, sendParams, additionalContext) {
80
80
  * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)
81
81
  */
82
82
  const sendTransactionComposer = async function(atcSend) {
83
- const { transactionComposer: givenComposer,...executeParams } = atcSend;
83
+ const { transactionComposer: givenComposer, ...executeParams } = atcSend;
84
84
  return atcSend.transactionComposer.send({ ...executeParams });
85
85
  };
86
86
  /**
@@ -96,7 +96,7 @@ const sendTransactionComposer = async function(atcSend) {
96
96
  */
97
97
  const waitForConfirmation = async function(transactionId, maxRoundsToWait, algod) {
98
98
  if (maxRoundsToWait < 0) throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`);
99
- const status = await algod.getStatus();
99
+ const status = await algod.status();
100
100
  if (status === void 0) throw new Error("Unable to get node status");
101
101
  const startRound = BigInt(status.lastRound) + 1n;
102
102
  let currentRound = startRound;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.mjs","names":["e: any"],"sources":["../../src/transaction/transaction.ts"],"sourcesContent":["import { AlgodClient, PendingTransactionResponse } from '@algorandfoundation/algokit-algod-client'\nimport { Transaction, TransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { TransactionComposer } from '../types/composer'\nimport {\n AdditionalTransactionComposerContext,\n SendParams,\n SendTransactionComposerResults,\n TransactionComposerToSend,\n} from '../types/transaction'\nimport { toNumber } from '../util'\n\n/** Represents an unsigned transactions and a signer that can authorize that transaction. */\nexport interface TransactionWithSigner {\n /** An unsigned transaction */\n txn: Transaction\n /** A transaction signer that can authorize txn */\n signer: TransactionSigner\n}\n\n/** Encodes a transaction lease into a 32-byte array ready to be included in an Algorand transaction.\n *\n * @param lease The transaction lease as a string or binary array or null/undefined if there is no lease\n * @returns the transaction lease ready for inclusion in a transaction or `undefined` if there is no lease\n * @throws if the length of the data is > 32 bytes or empty\n * @example algokit.encodeLease('UNIQUE_ID')\n * @example algokit.encodeLease(new Uint8Array([1, 2, 3]))\n */\nexport function encodeLease(lease?: string | Uint8Array): Uint8Array | undefined {\n if (lease === null || typeof lease === 'undefined') {\n return undefined\n } else if (typeof lease === 'object' && lease.constructor === Uint8Array) {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received bytes with length ${lease.length}`,\n )\n }\n if (lease.length === 32) return lease\n const lease32 = new Uint8Array(32)\n lease32.set(lease, 0)\n return lease32\n } else if (typeof lease === 'string') {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received '${lease}' with length ${lease.length}`,\n )\n }\n const encoder = new TextEncoder()\n const lease32 = new Uint8Array(32)\n lease32.set(encoder.encode(lease), 0)\n return lease32\n } else {\n throw new Error(`Unknown lease type received of ${typeof lease}`)\n }\n}\n\n/**\n * @deprecated Use `composer.build()` directly\n * Take an existing Transaction Composer and return a new one with the required\n * app call resources populated into it\n *\n * @param algod The algod client to use for the simulation\n * @param composer The composer containing the txn group\n * @returns A new composer with the resources populated into the transactions\n *\n * @privateRemarks\n *\n * This entire function will eventually be implemented in simulate upstream in algod. The simulate endpoint will return\n * an array of refference arrays for each transaction, so this eventually will eventually just call simulate and set the\n * reference arrays in the transactions to the reference arrays returned by simulate.\n *\n * See https://github.com/algorand/go-algorand/pull/5684\n *\n */\nexport async function populateAppCallResources(composer: TransactionComposer) {\n await composer.build()\n return composer\n}\n\n/**\n * @deprecated Use `composer.setMaxFees()` instead if you need to set max fees for transactions.\n * Use `composer.build()` instead if you need to build transactions with resource population.\n *\n * Take an existing Transaction Composer and return a new one with changes applied to the transactions\n * based on the supplied sendParams to prepare it for sending.\n *\n * @param composer The Transaction Composer containing the txn group\n * @param sendParams The send params for the transaction group\n * @param additionalContext Additional context used to determine how best to change the transactions in the group\n * @returns A new Transaction Composer with the changes applied\n *\n * @privateRemarks\n * Parts of this function will eventually be implemented in algod. Namely:\n * - Simulate will return information on how to populate reference arrays, see https://github.com/algorand/go-algorand/pull/6015\n */\nexport async function prepareGroupForSending(\n composer: TransactionComposer,\n sendParams: SendParams,\n additionalContext?: AdditionalTransactionComposerContext,\n) {\n const newComposer = composer.clone({\n coverAppCallInnerTransactionFees: sendParams.coverAppCallInnerTransactionFees ?? false,\n populateAppCallResources: sendParams.populateAppCallResources ?? true,\n })\n\n if (additionalContext?.maxFees) {\n newComposer.setMaxFees(additionalContext?.maxFees)\n }\n\n await newComposer.build()\n\n return newComposer\n}\n\n/**\n * @deprecated Use `composer.send()` directly\n * Signs and sends transactions that have been collected by an `TransactionComposer`.\n * @param atcSend The parameters controlling the send, including `atc` The `TransactionComposer` and params to control send behaviour\n * @param algod An algod client\n * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)\n */\nexport const sendTransactionComposer = async function (atcSend: TransactionComposerToSend): Promise<SendTransactionComposerResults> {\n const { transactionComposer: givenComposer, ...executeParams } = atcSend\n\n return atcSend.transactionComposer.send({\n ...executeParams,\n })\n}\n\n/**\n * Wait until the transaction is confirmed or rejected, or until `timeout`\n * number of rounds have passed.\n *\n * @param algod An algod client\n * @param transactionId The transaction ID to wait for\n * @param maxRoundsToWait Maximum number of rounds to wait\n *\n * @return Pending transaction information\n * @throws Throws an error if the transaction is not confirmed or rejected in the next `timeout` rounds\n */\nexport const waitForConfirmation = async function (\n transactionId: string,\n maxRoundsToWait: number | bigint,\n algod: AlgodClient,\n): Promise<PendingTransactionResponse> {\n if (maxRoundsToWait < 0) {\n throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`)\n }\n\n // Get current round\n const status = await algod.getStatus()\n if (status === undefined) {\n throw new Error('Unable to get node status')\n }\n\n // Loop for up to `timeout` rounds looking for a confirmed transaction\n const startRound = BigInt(status.lastRound) + 1n\n let currentRound = startRound\n while (currentRound < startRound + BigInt(maxRoundsToWait)) {\n try {\n const pendingInfo = await algod.pendingTransactionInformation(transactionId)\n\n if (pendingInfo !== undefined) {\n const confirmedRound = pendingInfo.confirmedRound\n if (confirmedRound && confirmedRound > 0) {\n return pendingInfo\n } else {\n const poolError = pendingInfo.poolError\n if (poolError != null && poolError.length > 0) {\n // If there was a pool error, then the transaction has been rejected!\n throw new Error(`Transaction ${transactionId} was rejected; pool error: ${poolError}`)\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if ('status' in e && e.status === 404) {\n currentRound++\n continue\n }\n }\n\n await algod.statusAfterBlock(toNumber(currentRound))\n currentRound++\n }\n\n throw new Error(`Transaction ${transactionId} not confirmed after ${maxRoundsToWait} rounds`)\n}\n"],"mappings":";;;;;;;;;;;AA2BA,SAAgB,YAAY,OAAqD;AAC/E,KAAI,UAAU,QAAQ,OAAO,UAAU,YACrC;UACS,OAAO,UAAU,YAAY,MAAM,gBAAgB,YAAY;AACxE,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,2GAA2G,MAAM,SAClH;AAEH,MAAI,MAAM,WAAW,GAAI,QAAO;EAChC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,OAAO,EAAE;AACrB,SAAO;YACE,OAAO,UAAU,UAAU;AACpC,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,0FAA0F,MAAM,gBAAgB,MAAM,SACvH;EAEH,MAAM,UAAU,IAAI,aAAa;EACjC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,QAAQ,OAAO,MAAM,EAAE,EAAE;AACrC,SAAO;OAEP,OAAM,IAAI,MAAM,kCAAkC,OAAO,QAAQ;;;;;;;;;;;;;;;;;;;;AAsBrE,eAAsB,yBAAyB,UAA+B;AAC5E,OAAM,SAAS,OAAO;AACtB,QAAO;;;;;;;;;;;;;;;;;;AAmBT,eAAsB,uBACpB,UACA,YACA,mBACA;CACA,MAAM,cAAc,SAAS,MAAM;EACjC,kCAAkC,WAAW,oCAAoC;EACjF,0BAA0B,WAAW,4BAA4B;EAClE,CAAC;AAEF,KAAI,mBAAmB,QACrB,aAAY,WAAW,mBAAmB,QAAQ;AAGpD,OAAM,YAAY,OAAO;AAEzB,QAAO;;;;;;;;;AAUT,MAAa,0BAA0B,eAAgB,SAA6E;CAClI,MAAM,EAAE,qBAAqB,cAAe,GAAG,kBAAkB;AAEjE,QAAO,QAAQ,oBAAoB,KAAK,EACtC,GAAG,eACJ,CAAC;;;;;;;;;;;;;AAcJ,MAAa,sBAAsB,eACjC,eACA,iBACA,OACqC;AACrC,KAAI,kBAAkB,EACpB,OAAM,IAAI,MAAM,6BAA6B,gBAAgB,gBAAgB;CAI/E,MAAM,SAAS,MAAM,MAAM,WAAW;AACtC,KAAI,WAAW,OACb,OAAM,IAAI,MAAM,4BAA4B;CAI9C,MAAM,aAAa,OAAO,OAAO,UAAU,GAAG;CAC9C,IAAI,eAAe;AACnB,QAAO,eAAe,aAAa,OAAO,gBAAgB,EAAE;AAC1D,MAAI;GACF,MAAM,cAAc,MAAM,MAAM,8BAA8B,cAAc;AAE5E,OAAI,gBAAgB,QAAW;IAC7B,MAAM,iBAAiB,YAAY;AACnC,QAAI,kBAAkB,iBAAiB,EACrC,QAAO;SACF;KACL,MAAM,YAAY,YAAY;AAC9B,SAAI,aAAa,QAAQ,UAAU,SAAS,EAE1C,OAAM,IAAI,MAAM,eAAe,cAAc,6BAA6B,YAAY;;;WAKrFA,GAAQ;AACf,OAAI,YAAY,KAAK,EAAE,WAAW,KAAK;AACrC;AACA;;;AAIJ,QAAM,MAAM,iBAAiB,SAAS,aAAa,CAAC;AACpD;;AAGF,OAAM,IAAI,MAAM,eAAe,cAAc,uBAAuB,gBAAgB,SAAS"}
1
+ {"version":3,"file":"transaction.mjs","names":["e: any"],"sources":["../../src/transaction/transaction.ts"],"sourcesContent":["import { AlgodClient, PendingTransactionResponse } from '@algorandfoundation/algokit-algod-client'\nimport { Transaction, TransactionSigner } from '@algorandfoundation/algokit-transact'\nimport { TransactionComposer } from '../types/composer'\nimport {\n AdditionalTransactionComposerContext,\n SendParams,\n SendTransactionComposerResults,\n TransactionComposerToSend,\n} from '../types/transaction'\nimport { toNumber } from '../util'\n\n/** Represents an unsigned transactions and a signer that can authorize that transaction. */\nexport interface TransactionWithSigner {\n /** An unsigned transaction */\n txn: Transaction\n /** A transaction signer that can authorize txn */\n signer: TransactionSigner\n}\n\n/** Encodes a transaction lease into a 32-byte array ready to be included in an Algorand transaction.\n *\n * @param lease The transaction lease as a string or binary array or null/undefined if there is no lease\n * @returns the transaction lease ready for inclusion in a transaction or `undefined` if there is no lease\n * @throws if the length of the data is > 32 bytes or empty\n * @example algokit.encodeLease('UNIQUE_ID')\n * @example algokit.encodeLease(new Uint8Array([1, 2, 3]))\n */\nexport function encodeLease(lease?: string | Uint8Array): Uint8Array | undefined {\n if (lease === null || typeof lease === 'undefined') {\n return undefined\n } else if (typeof lease === 'object' && lease.constructor === Uint8Array) {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received bytes with length ${lease.length}`,\n )\n }\n if (lease.length === 32) return lease\n const lease32 = new Uint8Array(32)\n lease32.set(lease, 0)\n return lease32\n } else if (typeof lease === 'string') {\n if (lease.length === 0 || lease.length > 32) {\n throw new Error(\n `Received invalid lease; expected something with length between 1 and 32, but received '${lease}' with length ${lease.length}`,\n )\n }\n const encoder = new TextEncoder()\n const lease32 = new Uint8Array(32)\n lease32.set(encoder.encode(lease), 0)\n return lease32\n } else {\n throw new Error(`Unknown lease type received of ${typeof lease}`)\n }\n}\n\n/**\n * @deprecated Use `composer.build()` directly\n * Take an existing Transaction Composer and return a new one with the required\n * app call resources populated into it\n *\n * @param algod The algod client to use for the simulation\n * @param composer The composer containing the txn group\n * @returns A new composer with the resources populated into the transactions\n *\n * @privateRemarks\n *\n * This entire function will eventually be implemented in simulate upstream in algod. The simulate endpoint will return\n * an array of refference arrays for each transaction, so this eventually will eventually just call simulate and set the\n * reference arrays in the transactions to the reference arrays returned by simulate.\n *\n * See https://github.com/algorand/go-algorand/pull/5684\n *\n */\nexport async function populateAppCallResources(composer: TransactionComposer) {\n await composer.build()\n return composer\n}\n\n/**\n * @deprecated Use `composer.setMaxFees()` instead if you need to set max fees for transactions.\n * Use `composer.build()` instead if you need to build transactions with resource population.\n *\n * Take an existing Transaction Composer and return a new one with changes applied to the transactions\n * based on the supplied sendParams to prepare it for sending.\n *\n * @param composer The Transaction Composer containing the txn group\n * @param sendParams The send params for the transaction group\n * @param additionalContext Additional context used to determine how best to change the transactions in the group\n * @returns A new Transaction Composer with the changes applied\n *\n * @privateRemarks\n * Parts of this function will eventually be implemented in algod. Namely:\n * - Simulate will return information on how to populate reference arrays, see https://github.com/algorand/go-algorand/pull/6015\n */\nexport async function prepareGroupForSending(\n composer: TransactionComposer,\n sendParams: SendParams,\n additionalContext?: AdditionalTransactionComposerContext,\n) {\n const newComposer = composer.clone({\n coverAppCallInnerTransactionFees: sendParams.coverAppCallInnerTransactionFees ?? false,\n populateAppCallResources: sendParams.populateAppCallResources ?? true,\n })\n\n if (additionalContext?.maxFees) {\n newComposer.setMaxFees(additionalContext?.maxFees)\n }\n\n await newComposer.build()\n\n return newComposer\n}\n\n/**\n * @deprecated Use `composer.send()` directly\n * Signs and sends transactions that have been collected by an `TransactionComposer`.\n * @param atcSend The parameters controlling the send, including `atc` The `TransactionComposer` and params to control send behaviour\n * @param algod An algod client\n * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)\n */\nexport const sendTransactionComposer = async function (atcSend: TransactionComposerToSend): Promise<SendTransactionComposerResults> {\n const { transactionComposer: givenComposer, ...executeParams } = atcSend\n\n return atcSend.transactionComposer.send({\n ...executeParams,\n })\n}\n\n/**\n * Wait until the transaction is confirmed or rejected, or until `timeout`\n * number of rounds have passed.\n *\n * @param algod An algod client\n * @param transactionId The transaction ID to wait for\n * @param maxRoundsToWait Maximum number of rounds to wait\n *\n * @return Pending transaction information\n * @throws Throws an error if the transaction is not confirmed or rejected in the next `timeout` rounds\n */\nexport const waitForConfirmation = async function (\n transactionId: string,\n maxRoundsToWait: number | bigint,\n algod: AlgodClient,\n): Promise<PendingTransactionResponse> {\n if (maxRoundsToWait < 0) {\n throw new Error(`Invalid timeout, received ${maxRoundsToWait}, expected > 0`)\n }\n\n // Get current round\n const status = await algod.status()\n if (status === undefined) {\n throw new Error('Unable to get node status')\n }\n\n // Loop for up to `timeout` rounds looking for a confirmed transaction\n const startRound = BigInt(status.lastRound) + 1n\n let currentRound = startRound\n while (currentRound < startRound + BigInt(maxRoundsToWait)) {\n try {\n const pendingInfo = await algod.pendingTransactionInformation(transactionId)\n\n if (pendingInfo !== undefined) {\n const confirmedRound = pendingInfo.confirmedRound\n if (confirmedRound && confirmedRound > 0) {\n return pendingInfo\n } else {\n const poolError = pendingInfo.poolError\n if (poolError != null && poolError.length > 0) {\n // If there was a pool error, then the transaction has been rejected!\n throw new Error(`Transaction ${transactionId} was rejected; pool error: ${poolError}`)\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if ('status' in e && e.status === 404) {\n currentRound++\n continue\n }\n }\n\n await algod.statusAfterBlock(toNumber(currentRound))\n currentRound++\n }\n\n throw new Error(`Transaction ${transactionId} not confirmed after ${maxRoundsToWait} rounds`)\n}\n"],"mappings":";;;;;;;;;;;AA2BA,SAAgB,YAAY,OAAqD;AAC/E,KAAI,UAAU,QAAQ,OAAO,UAAU,YACrC;UACS,OAAO,UAAU,YAAY,MAAM,gBAAgB,YAAY;AACxE,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,2GAA2G,MAAM,SAClH;AAEH,MAAI,MAAM,WAAW,GAAI,QAAO;EAChC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,OAAO,EAAE;AACrB,SAAO;YACE,OAAO,UAAU,UAAU;AACpC,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,GACvC,OAAM,IAAI,MACR,0FAA0F,MAAM,gBAAgB,MAAM,SACvH;EAEH,MAAM,UAAU,IAAI,aAAa;EACjC,MAAM,UAAU,IAAI,WAAW,GAAG;AAClC,UAAQ,IAAI,QAAQ,OAAO,MAAM,EAAE,EAAE;AACrC,SAAO;OAEP,OAAM,IAAI,MAAM,kCAAkC,OAAO,QAAQ;;;;;;;;;;;;;;;;;;;;AAsBrE,eAAsB,yBAAyB,UAA+B;AAC5E,OAAM,SAAS,OAAO;AACtB,QAAO;;;;;;;;;;;;;;;;;;AAmBT,eAAsB,uBACpB,UACA,YACA,mBACA;CACA,MAAM,cAAc,SAAS,MAAM;EACjC,kCAAkC,WAAW,oCAAoC;EACjF,0BAA0B,WAAW,4BAA4B;EAClE,CAAC;AAEF,KAAI,mBAAmB,QACrB,aAAY,WAAW,mBAAmB,QAAQ;AAGpD,OAAM,YAAY,OAAO;AAEzB,QAAO;;;;;;;;;AAUT,MAAa,0BAA0B,eAAgB,SAA6E;CAClI,MAAM,EAAE,qBAAqB,eAAe,GAAG,kBAAkB;AAEjE,QAAO,QAAQ,oBAAoB,KAAK,EACtC,GAAG,eACJ,CAAC;;;;;;;;;;;;;AAcJ,MAAa,sBAAsB,eACjC,eACA,iBACA,OACqC;AACrC,KAAI,kBAAkB,EACpB,OAAM,IAAI,MAAM,6BAA6B,gBAAgB,gBAAgB;CAI/E,MAAM,SAAS,MAAM,MAAM,QAAQ;AACnC,KAAI,WAAW,OACb,OAAM,IAAI,MAAM,4BAA4B;CAI9C,MAAM,aAAa,OAAO,OAAO,UAAU,GAAG;CAC9C,IAAI,eAAe;AACnB,QAAO,eAAe,aAAa,OAAO,gBAAgB,EAAE;AAC1D,MAAI;GACF,MAAM,cAAc,MAAM,MAAM,8BAA8B,cAAc;AAE5E,OAAI,gBAAgB,QAAW;IAC7B,MAAM,iBAAiB,YAAY;AACnC,QAAI,kBAAkB,iBAAiB,EACrC,QAAO;SACF;KACL,MAAM,YAAY,YAAY;AAC9B,SAAI,aAAa,QAAQ,UAAU,SAAS,EAE1C,OAAM,IAAI,MAAM,eAAe,cAAc,6BAA6B,YAAY;;;WAKrFA,GAAQ;AACf,OAAI,YAAY,KAAK,EAAE,WAAW,KAAK;AACrC;AACA;;;AAIJ,QAAM,MAAM,iBAAiB,SAAS,aAAa,CAAC;AACpD;;AAGF,OAAM,IAAI,MAAM,eAAe,cAAc,uBAAuB,gBAAgB,SAAS"}
@@ -1,5 +1,5 @@
1
1
  import { ReadableAddress } from "../packages/common/src/address.js";
2
- import { AccessReference, OnApplicationComplete } from "../packages/transact/src/transactions/app-call.js";
2
+ import { OnApplicationComplete, ResourceReference } from "../packages/transact/src/transactions/app-call.js";
3
3
  import { BoxIdentifier, BoxReference } from "../types/app-manager.js";
4
4
  import { Expand } from "../types/expand.js";
5
5
  import { CommonTransactionParams } from "./common.js";
@@ -26,12 +26,13 @@ type CommonAppCallParams = CommonTransactionParams & {
26
26
  */
27
27
  boxReferences?: (BoxReference | BoxIdentifier)[];
28
28
  /** Access references unifies `accountReferences`, `appReferences`, `assetReferences`, and `boxReferences` under a single list. If non-empty, these other reference lists must be empty. If access is empty, those other reference lists may be non-empty. */
29
- accessReferences?: AccessReference[];
30
- /** The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed. */
29
+ accessReferences?: ResourceReference[];
30
+ /** If set, the transaction will be rejected when the app's version is greater than or equal to this value. This can be used to prevent calling an app after it has been updated. Set to 0 or leave undefined to skip the version check. */
31
31
  rejectVersion?: number;
32
32
  };
33
33
  /** Parameters to define an app create transaction */
34
34
  type AppCreateParams = Expand<Omit<CommonAppCallParams, 'appId'> & {
35
+ appId?: 0;
35
36
  onComplete?: Exclude<OnApplicationComplete, OnApplicationComplete.ClearState>;
36
37
  /** The program to execute for all OnCompletes other than ClearState as raw teal that will be compiled (string) or compiled teal (encoded as a byte array (Uint8Array)). */
37
38
  approvalProgram: string | Uint8Array;
@@ -143,16 +143,16 @@ function populateGroupResources(transactions, groupResources) {
143
143
  type: GroupResourceType.AppLocal,
144
144
  data: appLocal
145
145
  });
146
- remainingAccounts = remainingAccounts.filter((acc) => acc !== appLocal.account);
147
- remainingApps = remainingApps.filter((app) => app !== appLocal.app);
146
+ remainingAccounts = remainingAccounts.filter((acc) => acc !== appLocal.address);
147
+ remainingApps = remainingApps.filter((app) => app !== appLocal.appId);
148
148
  });
149
149
  if (groupResources.assetHoldings) groupResources.assetHoldings.forEach((assetHolding) => {
150
150
  populateGroupResource(transactions, {
151
151
  type: GroupResourceType.AssetHolding,
152
152
  data: assetHolding
153
153
  });
154
- remainingAccounts = remainingAccounts.filter((acc) => acc !== assetHolding.account);
155
- remainingAssets = remainingAssets.filter((asset) => asset !== assetHolding.asset);
154
+ remainingAccounts = remainingAccounts.filter((acc) => acc !== assetHolding.address);
155
+ remainingAssets = remainingAssets.filter((asset) => asset !== assetHolding.assetId);
156
156
  });
157
157
  remainingAccounts.forEach((account) => {
158
158
  populateGroupResource(transactions, {
@@ -164,11 +164,11 @@ function populateGroupResources(transactions, groupResources) {
164
164
  populateGroupResource(transactions, {
165
165
  type: GroupResourceType.Box,
166
166
  data: {
167
- appId: boxRef.app,
167
+ appId: boxRef.appId,
168
168
  name: boxRef.name
169
169
  }
170
170
  });
171
- remainingApps = remainingApps.filter((app) => app !== boxRef.app);
171
+ remainingApps = remainingApps.filter((app) => app !== boxRef.appId);
172
172
  });
173
173
  remainingAssets.forEach((asset) => {
174
174
  populateGroupResource(transactions, {
@@ -201,7 +201,7 @@ function isAppCallBelowResourceLimit(txn) {
201
201
  */
202
202
  function populateGroupResource(transactions, resource) {
203
203
  if (resource.type === GroupResourceType.AssetHolding || resource.type === GroupResourceType.AppLocal) {
204
- const address = resource.data.account;
204
+ const address = resource.data.address;
205
205
  const groupIndex1 = transactions.findIndex((txn) => {
206
206
  if (!isAppCallBelowResourceLimit(txn)) return false;
207
207
  const appCall$1 = txn.appCall;
@@ -216,10 +216,10 @@ function populateGroupResource(transactions, resource) {
216
216
  const appCall$1 = transactions[groupIndex1].appCall;
217
217
  if (resource.type === GroupResourceType.AssetHolding) {
218
218
  appCall$1.assetReferences = appCall$1.assetReferences ?? [];
219
- if (!appCall$1.assetReferences.includes(resource.data.asset)) appCall$1.assetReferences.push(resource.data.asset);
219
+ if (!appCall$1.assetReferences.includes(resource.data.assetId)) appCall$1.assetReferences.push(resource.data.assetId);
220
220
  } else {
221
221
  appCall$1.appReferences = appCall$1.appReferences ?? [];
222
- if (!appCall$1.appReferences.includes(resource.data.app)) appCall$1.appReferences.push(resource.data.app);
222
+ if (!appCall$1.appReferences.includes(resource.data.appId)) appCall$1.appReferences.push(resource.data.appId);
223
223
  }
224
224
  return;
225
225
  }
@@ -227,8 +227,8 @@ function populateGroupResource(transactions, resource) {
227
227
  if (!isAppCallBelowResourceLimit(txn)) return false;
228
228
  const appCall$1 = txn.appCall;
229
229
  if ((appCall$1.accountReferences?.length ?? 0) >= require_constants.MAX_ACCOUNT_REFERENCES) return false;
230
- if (resource.type === GroupResourceType.AssetHolding) return appCall$1.assetReferences?.includes(resource.data.asset) || false;
231
- else return appCall$1.appReferences?.includes(resource.data.app) || appCall$1.appId === resource.data.app;
230
+ if (resource.type === GroupResourceType.AssetHolding) return appCall$1.assetReferences?.includes(resource.data.assetId) || false;
231
+ else return appCall$1.appReferences?.includes(resource.data.appId) || appCall$1.appId === resource.data.appId;
232
232
  });
233
233
  if (groupIndex2 !== -1) {
234
234
  const appCall$1 = transactions[groupIndex2].appCall;
@@ -303,16 +303,16 @@ function populateGroupResource(transactions, resource) {
303
303
  break;
304
304
  case GroupResourceType.AssetHolding: {
305
305
  appCall.assetReferences = appCall.assetReferences ?? [];
306
- if (!appCall.assetReferences.includes(resource.data.asset)) appCall.assetReferences.push(resource.data.asset);
307
- const address = resource.data.account;
306
+ if (!appCall.assetReferences.includes(resource.data.assetId)) appCall.assetReferences.push(resource.data.assetId);
307
+ const address = resource.data.address;
308
308
  appCall.accountReferences = appCall.accountReferences ?? [];
309
309
  if (!appCall.accountReferences.some((a) => a.equals(address))) appCall.accountReferences.push(address);
310
310
  break;
311
311
  }
312
312
  case GroupResourceType.AppLocal: {
313
313
  appCall.appReferences = appCall.appReferences ?? [];
314
- if (!appCall.appReferences.includes(resource.data.app)) appCall.appReferences.push(resource.data.app);
315
- const address = resource.data.account;
314
+ if (!appCall.appReferences.includes(resource.data.appId)) appCall.appReferences.push(resource.data.appId);
315
+ const address = resource.data.address;
316
316
  appCall.accountReferences = appCall.accountReferences ?? [];
317
317
  if (!appCall.accountReferences.some((a) => a.equals(address))) appCall.accountReferences.push(address);
318
318
  break;