@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
@@ -1 +1 @@
1
- {"version":3,"file":"app-call.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n Address,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: AccessReference[]\n\n /**\n * The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed.\n */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport interface AccessReference {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport interface HoldingReference {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport interface LocalsReference {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_EXTRA_PROGRAM_PAGES,\n actual: extraPages,\n max: MAX_EXTRA_PROGRAM_PAGES,\n unit: 'pages',\n },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_APPROVAL_PROGRAM,\n actual: appCall.approvalProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_CLEAR_STATE_PROGRAM,\n actual: appCall.clearStateProgram.length,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Combined approval and clear state programs',\n actual: totalProgramSize,\n max: maxProgramSize,\n unit: 'bytes',\n },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_APPROVAL_PROGRAM,\n })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({\n type: TransactionValidationErrorType.RequiredField,\n data: FIELD_CLEAR_STATE_PROGRAM,\n })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_GLOBAL_STATE_SCHEMA,\n })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_LOCAL_STATE_SCHEMA,\n })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({\n type: TransactionValidationErrorType.ImmutableField,\n data: FIELD_EXTRA_PROGRAM_PAGES,\n })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_ARGS,\n actual: appCall.args.length,\n max: MAX_APP_ARGS,\n unit: 'arguments',\n },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Args total size',\n actual: totalArgsSize,\n max: MAX_ARGS_SIZE,\n unit: 'bytes',\n },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Account references',\n actual: appCall.accountReferences.length,\n max: MAX_ACCOUNT_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'App references',\n actual: appCall.appReferences.length,\n max: MAX_APP_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Asset references',\n actual: appCall.assetReferences.length,\n max: MAX_ASSET_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Box references',\n actual: appCall.boxReferences.length,\n max: MAX_BOX_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: 'Total references',\n actual: totalReferences,\n max: MAX_OVERALL_REFERENCES,\n unit: 'refs',\n },\n })\n }\n\n return errors\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"app-call.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/app-call.ts"],"sourcesContent":["import {\n Address,\n MAX_ACCOUNT_REFERENCES,\n MAX_APP_ARGS,\n MAX_APP_REFERENCES,\n MAX_ARGS_SIZE,\n MAX_ASSET_REFERENCES,\n MAX_BOX_REFERENCES,\n MAX_EXTRA_PROGRAM_PAGES,\n MAX_GLOBAL_STATE_KEYS,\n MAX_LOCAL_STATE_KEYS,\n MAX_OVERALL_REFERENCES,\n PROGRAM_PAGE_SIZE,\n} from '@algorandfoundation/algokit-common'\nimport { TransactionValidationError, TransactionValidationErrorType } from './common'\n\n/**\n * Represents an app call transaction that interacts with Algorand Smart Contracts.\n *\n * App call transactions are used to create, update, delete, opt-in to,\n * close out of, or clear state from Algorand apps (smart contracts).\n */\nexport type AppCallTransactionFields = {\n /**\n * ID of the app being called.\n *\n * Set this to 0 to indicate an app creation call.\n */\n appId: bigint\n\n /**\n * Defines what additional actions occur with the transaction.\n */\n onComplete: OnApplicationComplete\n\n /**\n * Logic executed for every app call transaction, except when\n * on-completion is set to \"clear\".\n *\n * Approval programs may reject the transaction.\n * Only required for app creation and update transactions.\n */\n approvalProgram?: Uint8Array\n\n /**\n * Logic executed for app call transactions with on-completion set to \"clear\".\n *\n * Clear state programs cannot reject the transaction.\n * Only required for app creation and update transactions.\n */\n clearStateProgram?: Uint8Array\n\n /**\n * Holds the maximum number of global state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n globalStateSchema?: StateSchema\n\n /**\n * Holds the maximum number of local state values.\n *\n * Only required for app creation transactions.\n * This cannot be changed after creation.\n */\n localStateSchema?: StateSchema\n\n /**\n * Number of additional pages allocated to the app's approval\n * and clear state programs.\n *\n * Each extra program page is 2048 bytes. The sum of approval program\n * and clear state program may not exceed 2048*(1+extra_program_pages) bytes.\n * Currently, the maximum value is 3.\n * This cannot be changed after creation.\n */\n extraProgramPages?: number\n\n /**\n * Transaction specific arguments available in the app's\n * approval program and clear state program.\n */\n args?: Uint8Array[]\n\n /**\n * List of accounts in addition to the sender that may be accessed\n * from the app's approval program and clear state program.\n */\n accountReferences?: Address[]\n\n /**\n * List of apps in addition to the current app that may be called\n * from the app's approval program and clear state program.\n */\n appReferences?: bigint[]\n\n /**\n * Lists the assets whose parameters may be accessed by this app's\n * approval program and clear state program.\n *\n * The access is read-only.\n */\n assetReferences?: bigint[]\n\n /**\n * The boxes that should be made available for the runtime of the program.\n */\n boxReferences?: BoxReference[]\n\n /**\n * Resources accessed by the application\n */\n accessReferences?: ResourceReference[]\n\n /**\n * If set, the transaction will be rejected when the app's version is greater than or equal to this value. This can be used to prevent calling an app after it has been updated. Set to 0 or leave undefined to skip the version check.\n * */\n rejectVersion?: number\n}\n\n/**\n * On-completion actions for application transactions.\n *\n * These values define what additional actions occur with the transaction.\n */\nexport enum OnApplicationComplete {\n /**\n * NoOp indicates that an app transaction will simply call its\n * approval program without any additional action.\n */\n NoOp,\n /**\n * OptIn indicates that an app transaction will allocate some\n * local state for the app in the sender's account.\n */\n OptIn,\n /**\n * CloseOut indicates that an app transaction will deallocate\n * some local state for the app from the user's account.\n */\n CloseOut,\n /**\n * ClearState is similar to CloseOut, but may never fail. This\n * allows users to reclaim their minimum balance from an app\n * they no longer wish to opt in to.\n */\n ClearState,\n /**\n * UpdateApplication indicates that an app transaction will\n * update the approval program and clear state program for the app.\n */\n UpdateApplication,\n /**\n * DeleteApplication indicates that an app transaction will\n * delete the app parameters for the app from the creator's\n * balance record.\n */\n DeleteApplication,\n}\n\n/**\n * Schema for app state storage.\n *\n * Defines the maximum number of values that may be stored in app\n * key/value storage for both global and local state.\n */\nexport type StateSchema = {\n /**\n * Maximum number of integer values that may be stored.\n */\n numUints: number\n\n /**\n * Maximum number of byte slice values that may be stored.\n */\n numByteSlices: number\n}\n\n/**\n * Box reference for app call transactions.\n *\n * References a specific box that should be made available for the runtime\n * of the program.\n */\nexport type BoxReference = {\n /**\n * App ID that owns the box.\n * A value of 0 indicates the current app.\n */\n appId: bigint\n\n /**\n * Name of the box.\n */\n name: Uint8Array\n}\n\n/**\n * Names a single resource reference. Only one of the fields should be set.\n */\nexport type ResourceReference = {\n /** Any account addresses whose balance record is accessible by the executing ApprovalProgram or ClearStateProgram. */\n address?: Address\n /** Application ID whose GlobalState may be read by the executing ApprovalProgram or ClearStateProgram. */\n appId?: bigint\n /** Asset ID whose AssetParams may be read by the executing ApprovalProgram or ClearStateProgram. */\n assetId?: bigint\n /** Defines a holding by referring to an Address and Asset it belongs to. */\n holding?: HoldingReference\n /** Defines a local state by referring to an Address and App it belongs to. */\n locals?: LocalsReference\n /** Defines a box by its name and the application ID it belongs to. */\n box?: BoxReference\n}\n\n/**\n * A grouping of the asset index and address of the account\n */\nexport type HoldingReference = {\n /** The asset index of the holding */\n assetId: bigint\n\n /** The address of the account holding the asset */\n address: Address\n}\n\n/** A grouping of the application index and address of the account\n */\nexport type LocalsReference = {\n /** The application index of the local state */\n appId: bigint\n\n /** The address of the account holding the local state */\n address: Address\n}\n\nconst FIELD_ARGS = 'Args'\nconst FIELD_APPROVAL_PROGRAM = 'Approval program'\nconst FIELD_CLEAR_STATE_PROGRAM = 'Clear state program'\nconst FIELD_GLOBAL_STATE_SCHEMA = 'Global state schema'\nconst FIELD_LOCAL_STATE_SCHEMA = 'Local state schema'\nconst FIELD_EXTRA_PROGRAM_PAGES = 'Extra program pages'\n\n/**\n * Validate app call transaction fields\n */\nexport function validateAppCallTransaction(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.appId === 0n) {\n // App creation\n errors.push(...validateAppCreation(appCall))\n } else {\n // App call, update, or delete\n errors.push(...validateAppOperation(appCall))\n }\n\n // Common validations for all app operations\n errors.push(...validateAppCommonFields(appCall))\n\n return errors\n}\n\n/**\n * Validate app creation fields\n */\nfunction validateAppCreation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n\n const extraPages = appCall.extraProgramPages ?? 0\n if (extraPages > MAX_EXTRA_PROGRAM_PAGES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_EXTRA_PROGRAM_PAGES, actual: extraPages, max: MAX_EXTRA_PROGRAM_PAGES, unit: 'pages' },\n })\n }\n\n const maxProgramSize = PROGRAM_PAGE_SIZE + extraPages * PROGRAM_PAGE_SIZE\n\n if (appCall.approvalProgram && appCall.approvalProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_APPROVAL_PROGRAM, actual: appCall.approvalProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.clearStateProgram && appCall.clearStateProgram.length > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_CLEAR_STATE_PROGRAM, actual: appCall.clearStateProgram.length, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n const totalProgramSize = (appCall.approvalProgram?.length ?? 0) + (appCall.clearStateProgram?.length ?? 0)\n if (totalProgramSize > maxProgramSize) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Combined approval and clear state programs', actual: totalProgramSize, max: maxProgramSize, unit: 'bytes' },\n })\n }\n\n if (appCall.globalStateSchema) {\n const totalKeys = appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices\n if (totalKeys > MAX_GLOBAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_GLOBAL_STATE_SCHEMA,\n actual: appCall.globalStateSchema.numUints + appCall.globalStateSchema.numByteSlices,\n max: MAX_GLOBAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n if (appCall.localStateSchema) {\n const totalKeys = appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices\n if (totalKeys > MAX_LOCAL_STATE_KEYS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: {\n field: FIELD_LOCAL_STATE_SCHEMA,\n actual: appCall.localStateSchema.numUints + appCall.localStateSchema.numByteSlices,\n max: MAX_LOCAL_STATE_KEYS,\n unit: 'keys',\n },\n })\n }\n }\n\n return errors\n}\n\n/**\n * Validate app operation (update, delete, call) fields\n */\nfunction validateAppOperation(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.onComplete === OnApplicationComplete.UpdateApplication) {\n if (!appCall.approvalProgram || appCall.approvalProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_APPROVAL_PROGRAM })\n }\n if (!appCall.clearStateProgram || appCall.clearStateProgram.length === 0) {\n errors.push({ type: TransactionValidationErrorType.RequiredField, data: FIELD_CLEAR_STATE_PROGRAM })\n }\n }\n\n // These fields are immutable and cannot be set for existing apps\n if (appCall.globalStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_GLOBAL_STATE_SCHEMA })\n }\n if (appCall.localStateSchema !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_LOCAL_STATE_SCHEMA })\n }\n if (appCall.extraProgramPages !== undefined) {\n errors.push({ type: TransactionValidationErrorType.ImmutableField, data: FIELD_EXTRA_PROGRAM_PAGES })\n }\n\n return errors\n}\n\n/**\n * Validate common app call fields\n */\nfunction validateAppCommonFields(appCall: AppCallTransactionFields): TransactionValidationError[] {\n const errors = new Array<TransactionValidationError>()\n\n if (appCall.args) {\n if (appCall.args.length > MAX_APP_ARGS) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: FIELD_ARGS, actual: appCall.args.length, max: MAX_APP_ARGS, unit: 'arguments' },\n })\n }\n\n const totalArgsSize = appCall.args.reduce((sum, arg) => sum + arg.length, 0)\n if (totalArgsSize > MAX_ARGS_SIZE) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Args total size', actual: totalArgsSize, max: MAX_ARGS_SIZE, unit: 'bytes' },\n })\n }\n }\n\n if (appCall.accountReferences && appCall.accountReferences.length > MAX_ACCOUNT_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Account references', actual: appCall.accountReferences.length, max: MAX_ACCOUNT_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.appReferences && appCall.appReferences.length > MAX_APP_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'App references', actual: appCall.appReferences.length, max: MAX_APP_REFERENCES, unit: 'refs' },\n })\n }\n\n if (appCall.assetReferences && appCall.assetReferences.length > MAX_ASSET_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Asset references', actual: appCall.assetReferences.length, max: MAX_ASSET_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate box references\n if (appCall.boxReferences) {\n if (appCall.boxReferences.length > MAX_BOX_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Box references', actual: appCall.boxReferences.length, max: MAX_BOX_REFERENCES, unit: 'refs' },\n })\n }\n\n // Validate that box reference app IDs are in app references\n const appRefs = appCall.appReferences || []\n for (const boxRef of appCall.boxReferences) {\n if (boxRef.appId !== 0n && boxRef.appId !== appCall.appId && !appRefs.includes(boxRef.appId)) {\n errors.push({\n type: TransactionValidationErrorType.ArbitraryConstraint,\n data: `Box reference for app ID ${boxRef.appId} must be in app references`,\n })\n }\n }\n }\n\n // Validate overall reference count\n const totalReferences =\n (appCall.accountReferences?.length || 0) +\n (appCall.appReferences?.length || 0) +\n (appCall.assetReferences?.length || 0) +\n (appCall.boxReferences?.length || 0)\n\n if (totalReferences > MAX_OVERALL_REFERENCES) {\n errors.push({\n type: TransactionValidationErrorType.FieldTooLong,\n data: { field: 'Total references', actual: totalReferences, max: MAX_OVERALL_REFERENCES, unit: 'refs' },\n })\n }\n\n return errors\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ObjectModelMetadata } from "../../../common/src/codecs/types.js";
2
+ import { BoxReference, HoldingReference, LocalsReference } from "./app-call.js";
3
+
4
+ //#region packages/transact/src/transactions/reference-types-meta.d.ts
5
+
6
+ /**
7
+ * Metadata for BoxReference
8
+ *
9
+ * Maps wire format (app, name) to BoxReference (appId, name)
10
+ */
11
+ declare const BoxReferenceMeta: ObjectModelMetadata<BoxReference>;
12
+ /**
13
+ * Metadata for HoldingReference
14
+ *
15
+ * Maps wire format (account, asset) to HoldingReference (address, assetId)
16
+ */
17
+ declare const HoldingReferenceMeta: ObjectModelMetadata<HoldingReference>;
18
+ /**
19
+ * Metadata for LocalsReference
20
+ *
21
+ * Maps wire format (account, app) to LocalsReference (address, appId)
22
+ */
23
+ declare const LocalsReferenceMeta: ObjectModelMetadata<LocalsReference>;
24
+ //#endregion
25
+ export { BoxReferenceMeta, HoldingReferenceMeta, LocalsReferenceMeta };
26
+ //# sourceMappingURL=reference-types-meta.d.ts.map
@@ -0,0 +1,71 @@
1
+ const require_address = require('../../../common/src/codecs/primitives/address.js');
2
+ const require_bigint = require('../../../common/src/codecs/primitives/bigint.js');
3
+ const require_bytes = require('../../../common/src/codecs/primitives/bytes.js');
4
+
5
+ //#region packages/transact/src/transactions/reference-types-meta.ts
6
+ /**
7
+ * Metadata for BoxReference
8
+ *
9
+ * Maps wire format (app, name) to BoxReference (appId, name)
10
+ */
11
+ const BoxReferenceMeta = {
12
+ name: "BoxReference",
13
+ kind: "object",
14
+ fields: [{
15
+ name: "appId",
16
+ wireKey: "app",
17
+ optional: false,
18
+ codec: require_bigint.bigIntCodec
19
+ }, {
20
+ name: "name",
21
+ wireKey: "name",
22
+ optional: false,
23
+ codec: require_bytes.bytesCodec
24
+ }]
25
+ };
26
+ /**
27
+ * Metadata for HoldingReference
28
+ *
29
+ * Maps wire format (account, asset) to HoldingReference (address, assetId)
30
+ */
31
+ const HoldingReferenceMeta = {
32
+ name: "HoldingReference",
33
+ kind: "object",
34
+ fields: [{
35
+ name: "address",
36
+ wireKey: "account",
37
+ optional: false,
38
+ codec: require_address.addressCodec
39
+ }, {
40
+ name: "assetId",
41
+ wireKey: "asset",
42
+ optional: false,
43
+ codec: require_bigint.bigIntCodec
44
+ }]
45
+ };
46
+ /**
47
+ * Metadata for LocalsReference
48
+ *
49
+ * Maps wire format (account, app) to LocalsReference (address, appId)
50
+ */
51
+ const LocalsReferenceMeta = {
52
+ name: "LocalsReference",
53
+ kind: "object",
54
+ fields: [{
55
+ name: "address",
56
+ wireKey: "account",
57
+ optional: false,
58
+ codec: require_address.addressCodec
59
+ }, {
60
+ name: "appId",
61
+ wireKey: "app",
62
+ optional: false,
63
+ codec: require_bigint.bigIntCodec
64
+ }]
65
+ };
66
+
67
+ //#endregion
68
+ exports.BoxReferenceMeta = BoxReferenceMeta;
69
+ exports.HoldingReferenceMeta = HoldingReferenceMeta;
70
+ exports.LocalsReferenceMeta = LocalsReferenceMeta;
71
+ //# sourceMappingURL=reference-types-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-types-meta.js","names":["BoxReferenceMeta: ObjectModelMetadata<BoxReference>","bigIntCodec","bytesCodec","HoldingReferenceMeta: ObjectModelMetadata<HoldingReference>","addressCodec","LocalsReferenceMeta: ObjectModelMetadata<LocalsReference>"],"sources":["../../../../../packages/transact/src/transactions/reference-types-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { addressCodec, bigIntCodec, bytesCodec } from '@algorandfoundation/algokit-common'\nimport type { BoxReference, HoldingReference, LocalsReference } from './app-call'\n\n/**\n * Metadata for BoxReference\n *\n * Maps wire format (app, name) to BoxReference (appId, name)\n */\nexport const BoxReferenceMeta: ObjectModelMetadata<BoxReference> = {\n name: 'BoxReference',\n kind: 'object',\n fields: [\n { name: 'appId', wireKey: 'app', optional: false, codec: bigIntCodec },\n { name: 'name', wireKey: 'name', optional: false, codec: bytesCodec },\n ],\n}\n\n/**\n * Metadata for HoldingReference\n *\n * Maps wire format (account, asset) to HoldingReference (address, assetId)\n */\nexport const HoldingReferenceMeta: ObjectModelMetadata<HoldingReference> = {\n name: 'HoldingReference',\n kind: 'object',\n fields: [\n { name: 'address', wireKey: 'account', optional: false, codec: addressCodec },\n { name: 'assetId', wireKey: 'asset', optional: false, codec: bigIntCodec },\n ],\n}\n\n/**\n * Metadata for LocalsReference\n *\n * Maps wire format (account, app) to LocalsReference (address, appId)\n */\nexport const LocalsReferenceMeta: ObjectModelMetadata<LocalsReference> = {\n name: 'LocalsReference',\n kind: 'object',\n fields: [\n { name: 'address', wireKey: 'account', optional: false, codec: addressCodec },\n { name: 'appId', wireKey: 'app', optional: false, codec: bigIntCodec },\n ],\n}\n"],"mappings":";;;;;;;;;;AASA,MAAaA,mBAAsD;CACjE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAS,SAAS;EAAO,UAAU;EAAO,OAAOC;EAAa,EACtE;EAAE,MAAM;EAAQ,SAAS;EAAQ,UAAU;EAAO,OAAOC;EAAY,CACtE;CACF;;;;;;AAOD,MAAaC,uBAA8D;CACzE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAW,SAAS;EAAW,UAAU;EAAO,OAAOC;EAAc,EAC7E;EAAE,MAAM;EAAW,SAAS;EAAS,UAAU;EAAO,OAAOH;EAAa,CAC3E;CACF;;;;;;AAOD,MAAaI,sBAA4D;CACvE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAW,SAAS;EAAW,UAAU;EAAO,OAAOD;EAAc,EAC7E;EAAE,MAAM;EAAS,SAAS;EAAO,UAAU;EAAO,OAAOH;EAAa,CACvE;CACF"}
@@ -0,0 +1,69 @@
1
+ import { addressCodec } from "../../../common/src/codecs/primitives/address.mjs";
2
+ import { bigIntCodec } from "../../../common/src/codecs/primitives/bigint.mjs";
3
+ import { bytesCodec } from "../../../common/src/codecs/primitives/bytes.mjs";
4
+
5
+ //#region packages/transact/src/transactions/reference-types-meta.ts
6
+ /**
7
+ * Metadata for BoxReference
8
+ *
9
+ * Maps wire format (app, name) to BoxReference (appId, name)
10
+ */
11
+ const BoxReferenceMeta = {
12
+ name: "BoxReference",
13
+ kind: "object",
14
+ fields: [{
15
+ name: "appId",
16
+ wireKey: "app",
17
+ optional: false,
18
+ codec: bigIntCodec
19
+ }, {
20
+ name: "name",
21
+ wireKey: "name",
22
+ optional: false,
23
+ codec: bytesCodec
24
+ }]
25
+ };
26
+ /**
27
+ * Metadata for HoldingReference
28
+ *
29
+ * Maps wire format (account, asset) to HoldingReference (address, assetId)
30
+ */
31
+ const HoldingReferenceMeta = {
32
+ name: "HoldingReference",
33
+ kind: "object",
34
+ fields: [{
35
+ name: "address",
36
+ wireKey: "account",
37
+ optional: false,
38
+ codec: addressCodec
39
+ }, {
40
+ name: "assetId",
41
+ wireKey: "asset",
42
+ optional: false,
43
+ codec: bigIntCodec
44
+ }]
45
+ };
46
+ /**
47
+ * Metadata for LocalsReference
48
+ *
49
+ * Maps wire format (account, app) to LocalsReference (address, appId)
50
+ */
51
+ const LocalsReferenceMeta = {
52
+ name: "LocalsReference",
53
+ kind: "object",
54
+ fields: [{
55
+ name: "address",
56
+ wireKey: "account",
57
+ optional: false,
58
+ codec: addressCodec
59
+ }, {
60
+ name: "appId",
61
+ wireKey: "app",
62
+ optional: false,
63
+ codec: bigIntCodec
64
+ }]
65
+ };
66
+
67
+ //#endregion
68
+ export { BoxReferenceMeta, HoldingReferenceMeta, LocalsReferenceMeta };
69
+ //# sourceMappingURL=reference-types-meta.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-types-meta.mjs","names":["BoxReferenceMeta: ObjectModelMetadata<BoxReference>","HoldingReferenceMeta: ObjectModelMetadata<HoldingReference>","LocalsReferenceMeta: ObjectModelMetadata<LocalsReference>"],"sources":["../../../../../packages/transact/src/transactions/reference-types-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport { addressCodec, bigIntCodec, bytesCodec } from '@algorandfoundation/algokit-common'\nimport type { BoxReference, HoldingReference, LocalsReference } from './app-call'\n\n/**\n * Metadata for BoxReference\n *\n * Maps wire format (app, name) to BoxReference (appId, name)\n */\nexport const BoxReferenceMeta: ObjectModelMetadata<BoxReference> = {\n name: 'BoxReference',\n kind: 'object',\n fields: [\n { name: 'appId', wireKey: 'app', optional: false, codec: bigIntCodec },\n { name: 'name', wireKey: 'name', optional: false, codec: bytesCodec },\n ],\n}\n\n/**\n * Metadata for HoldingReference\n *\n * Maps wire format (account, asset) to HoldingReference (address, assetId)\n */\nexport const HoldingReferenceMeta: ObjectModelMetadata<HoldingReference> = {\n name: 'HoldingReference',\n kind: 'object',\n fields: [\n { name: 'address', wireKey: 'account', optional: false, codec: addressCodec },\n { name: 'assetId', wireKey: 'asset', optional: false, codec: bigIntCodec },\n ],\n}\n\n/**\n * Metadata for LocalsReference\n *\n * Maps wire format (account, app) to LocalsReference (address, appId)\n */\nexport const LocalsReferenceMeta: ObjectModelMetadata<LocalsReference> = {\n name: 'LocalsReference',\n kind: 'object',\n fields: [\n { name: 'address', wireKey: 'account', optional: false, codec: addressCodec },\n { name: 'appId', wireKey: 'app', optional: false, codec: bigIntCodec },\n ],\n}\n"],"mappings":";;;;;;;;;;AASA,MAAaA,mBAAsD;CACjE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAS,SAAS;EAAO,UAAU;EAAO,OAAO;EAAa,EACtE;EAAE,MAAM;EAAQ,SAAS;EAAQ,UAAU;EAAO,OAAO;EAAY,CACtE;CACF;;;;;;AAOD,MAAaC,uBAA8D;CACzE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAW,SAAS;EAAW,UAAU;EAAO,OAAO;EAAc,EAC7E;EAAE,MAAM;EAAW,SAAS;EAAS,UAAU;EAAO,OAAO;EAAa,CAC3E;CACF;;;;;;AAOD,MAAaC,sBAA4D;CACvE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAW,SAAS;EAAW,UAAU;EAAO,OAAO;EAAc,EAC7E;EAAE,MAAM;EAAS,SAAS;EAAO,UAAU;EAAO,OAAO;EAAa,CACvE;CACF"}
@@ -24,7 +24,7 @@ const MultisigSignatureMeta = {
24
24
  codec: require_number.numberCodec
25
25
  },
26
26
  {
27
- name: "subsignatures",
27
+ name: "subsigs",
28
28
  wireKey: "subsig",
29
29
  optional: false,
30
30
  codec: new require_array.ArrayCodec(new require_object_model.ObjectModelCodec({
@@ -36,7 +36,7 @@ const MultisigSignatureMeta = {
36
36
  optional: false,
37
37
  codec: require_fixed_bytes.fixedBytes32Codec
38
38
  }, {
39
- name: "signature",
39
+ name: "sig",
40
40
  wireKey: "s",
41
41
  optional: true,
42
42
  codec: require_fixed_bytes.fixedBytes64Codec
@@ -127,6 +127,5 @@ const signedTransactionCodec = new require_object_model.ObjectModelCodec(SignedT
127
127
  //#endregion
128
128
  exports.SignedTransactionMeta = SignedTransactionMeta;
129
129
  exports.logicSignatureCodec = logicSignatureCodec;
130
- exports.multiSignatureCodec = multiSignatureCodec;
131
130
  exports.signedTransactionCodec = signedTransactionCodec;
132
131
  //# sourceMappingURL=signed-transaction-meta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signed-transaction-meta.js","names":["MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature>","numberCodec","ArrayCodec","ObjectModelCodec","fixedBytes32Codec","fixedBytes64Codec","LogicSignatureMeta: ObjectModelMetadata<LogicSignature>","bytesCodec","bytesArrayCodec","SignedTransactionMeta: ObjectModelMetadata<SignedTransaction>","transactionCodec","addressCodec"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport {\n ArrayCodec,\n ObjectModelCodec,\n addressCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n} from '@algorandfoundation/algokit-common'\nimport { LogicSignature, MultisigSignature, MultisigSubsignature, SignedTransaction } from './signed-transaction'\nimport { transactionCodec } from './transaction'\n\nconst MultisigSubsignatureMeta: ObjectModelMetadata<MultisigSubsignature> = {\n name: 'MultisigSubsignature',\n kind: 'object',\n fields: [\n { name: 'publicKey', wireKey: 'pk', optional: false, codec: fixedBytes32Codec },\n { name: 'signature', wireKey: 's', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\nconst MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature> = {\n name: 'MultisigSignature',\n kind: 'object',\n fields: [\n { name: 'version', wireKey: 'v', optional: false, codec: numberCodec },\n { name: 'threshold', wireKey: 'thr', optional: false, codec: numberCodec },\n {\n name: 'subsignatures',\n wireKey: 'subsig',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(MultisigSubsignatureMeta)),\n },\n ],\n}\n\nconst LogicSignatureMeta: ObjectModelMetadata<LogicSignature> = {\n name: 'LogicSignature',\n kind: 'object',\n fields: [\n { name: 'logic', wireKey: 'l', optional: false, codec: bytesCodec },\n { name: 'args', wireKey: 'arg', optional: true, codec: bytesArrayCodec },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n {\n name: 'lmsig',\n wireKey: 'lmsig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n ],\n}\n\nexport const multiSignatureCodec = new ObjectModelCodec<MultisigSignature>(MultisigSignatureMeta)\nexport const logicSignatureCodec = new ObjectModelCodec<LogicSignature>(LogicSignatureMeta)\n\n/**\n * Metadata for SignedTransaction\n */\nexport const SignedTransactionMeta: ObjectModelMetadata<SignedTransaction> = {\n name: 'SignedTransaction',\n kind: 'object',\n fields: [\n {\n name: 'txn',\n wireKey: 'txn',\n optional: false,\n codec: transactionCodec,\n },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: multiSignatureCodec,\n },\n {\n name: 'lsig',\n wireKey: 'lsig',\n optional: true,\n codec: logicSignatureCodec,\n },\n { name: 'authAddress', wireKey: 'sgnr', optional: true, codec: addressCodec },\n ],\n}\n\nexport const signedTransactionCodec = new ObjectModelCodec<SignedTransaction>(SignedTransactionMeta)\n"],"mappings":";;;;;;;;;AAuBA,MAAMA,wBAAgE;CACpE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAW,SAAS;GAAK,UAAU;GAAO,OAAOC;GAAa;EACtE;GAAE,MAAM;GAAa,SAAS;GAAO,UAAU;GAAO,OAAOA;GAAa;EAC1E;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIC,yBAAW,IAAIC,sCAnB4C;IAC1E,MAAM;IACN,MAAM;IACN,QAAQ,CACN;KAAE,MAAM;KAAa,SAAS;KAAM,UAAU;KAAO,OAAOC;KAAmB,EAC/E;KAAE,MAAM;KAAa,SAAS;KAAK,UAAU;KAAM,OAAOC;KAAmB,CAC9E;IACF,CAYyE,CAAC;GACtE;EACF;CACF;AAED,MAAMC,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAS,SAAS;GAAK,UAAU;GAAO,OAAOC;GAAY;EACnE;GAAE,MAAM;GAAQ,SAAS;GAAO,UAAU;GAAM,OAAOC;GAAiB;EACxE;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAOH;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIF,sCAAiB,sBAAsB;GACnD;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIA,sCAAiB,sBAAsB;GACnD;EACF;CACF;AAED,MAAa,sBAAsB,IAAIA,sCAAoC,sBAAsB;AACjG,MAAa,sBAAsB,IAAIA,sCAAiC,mBAAmB;;;;AAK3F,MAAaM,wBAAgE;CAC3E,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAOC;GACR;EACD;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAOL;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAM,OAAOM;GAAc;EAC9E;CACF;AAED,MAAa,yBAAyB,IAAIR,sCAAoC,sBAAsB"}
1
+ {"version":3,"file":"signed-transaction-meta.js","names":["MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature>","numberCodec","ArrayCodec","ObjectModelCodec","fixedBytes32Codec","fixedBytes64Codec","LogicSignatureMeta: ObjectModelMetadata<LogicSignature>","bytesCodec","bytesArrayCodec","SignedTransactionMeta: ObjectModelMetadata<SignedTransaction>","transactionCodec","addressCodec"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport {\n ArrayCodec,\n ObjectModelCodec,\n addressCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n} from '@algorandfoundation/algokit-common'\nimport { LogicSignature, MultisigSignature, MultisigSubsignature, SignedTransaction } from './signed-transaction'\nimport { transactionCodec } from './transaction'\n\nconst MultisigSubsignatureMeta: ObjectModelMetadata<MultisigSubsignature> = {\n name: 'MultisigSubsignature',\n kind: 'object',\n fields: [\n { name: 'publicKey', wireKey: 'pk', optional: false, codec: fixedBytes32Codec },\n { name: 'sig', wireKey: 's', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\nconst MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature> = {\n name: 'MultisigSignature',\n kind: 'object',\n fields: [\n { name: 'version', wireKey: 'v', optional: false, codec: numberCodec },\n { name: 'threshold', wireKey: 'thr', optional: false, codec: numberCodec },\n {\n name: 'subsigs',\n wireKey: 'subsig',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(MultisigSubsignatureMeta)),\n },\n ],\n}\n\nconst LogicSignatureMeta: ObjectModelMetadata<LogicSignature> = {\n name: 'LogicSignature',\n kind: 'object',\n fields: [\n { name: 'logic', wireKey: 'l', optional: false, codec: bytesCodec },\n { name: 'args', wireKey: 'arg', optional: true, codec: bytesArrayCodec },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n {\n name: 'lmsig',\n wireKey: 'lmsig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n ],\n}\n\nexport const multiSignatureCodec = new ObjectModelCodec<MultisigSignature>(MultisigSignatureMeta)\nexport const logicSignatureCodec = new ObjectModelCodec<LogicSignature>(LogicSignatureMeta)\n\n/**\n * Metadata for SignedTransaction\n */\nexport const SignedTransactionMeta: ObjectModelMetadata<SignedTransaction> = {\n name: 'SignedTransaction',\n kind: 'object',\n fields: [\n {\n name: 'txn',\n wireKey: 'txn',\n optional: false,\n codec: transactionCodec,\n },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: multiSignatureCodec,\n },\n {\n name: 'lsig',\n wireKey: 'lsig',\n optional: true,\n codec: logicSignatureCodec,\n },\n { name: 'authAddress', wireKey: 'sgnr', optional: true, codec: addressCodec },\n ],\n}\n\nexport const signedTransactionCodec = new ObjectModelCodec<SignedTransaction>(SignedTransactionMeta)\n"],"mappings":";;;;;;;;;AAuBA,MAAMA,wBAAgE;CACpE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAW,SAAS;GAAK,UAAU;GAAO,OAAOC;GAAa;EACtE;GAAE,MAAM;GAAa,SAAS;GAAO,UAAU;GAAO,OAAOA;GAAa;EAC1E;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIC,yBAAW,IAAIC,sCAnB4C;IAC1E,MAAM;IACN,MAAM;IACN,QAAQ,CACN;KAAE,MAAM;KAAa,SAAS;KAAM,UAAU;KAAO,OAAOC;KAAmB,EAC/E;KAAE,MAAM;KAAO,SAAS;KAAK,UAAU;KAAM,OAAOC;KAAmB,CACxE;IACF,CAYyE,CAAC;GACtE;EACF;CACF;AAED,MAAMC,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAS,SAAS;GAAK,UAAU;GAAO,OAAOC;GAAY;EACnE;GAAE,MAAM;GAAQ,SAAS;GAAO,UAAU;GAAM,OAAOC;GAAiB;EACxE;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAOH;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIF,sCAAiB,sBAAsB;GACnD;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAIA,sCAAiB,sBAAsB;GACnD;EACF;CACF;AAED,MAAa,sBAAsB,IAAIA,sCAAoC,sBAAsB;AACjG,MAAa,sBAAsB,IAAIA,sCAAiC,mBAAmB;;;;AAK3F,MAAaM,wBAAgE;CAC3E,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAOC;GACR;EACD;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAOL;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAM,OAAOM;GAAc;EAC9E;CACF;AAED,MAAa,yBAAyB,IAAIR,sCAAoC,sBAAsB"}
@@ -24,7 +24,7 @@ const MultisigSignatureMeta = {
24
24
  codec: numberCodec
25
25
  },
26
26
  {
27
- name: "subsignatures",
27
+ name: "subsigs",
28
28
  wireKey: "subsig",
29
29
  optional: false,
30
30
  codec: new ArrayCodec(new ObjectModelCodec({
@@ -36,7 +36,7 @@ const MultisigSignatureMeta = {
36
36
  optional: false,
37
37
  codec: fixedBytes32Codec
38
38
  }, {
39
- name: "signature",
39
+ name: "sig",
40
40
  wireKey: "s",
41
41
  optional: true,
42
42
  codec: fixedBytes64Codec
@@ -125,5 +125,5 @@ const SignedTransactionMeta = {
125
125
  const signedTransactionCodec = new ObjectModelCodec(SignedTransactionMeta);
126
126
 
127
127
  //#endregion
128
- export { SignedTransactionMeta, logicSignatureCodec, multiSignatureCodec, signedTransactionCodec };
128
+ export { SignedTransactionMeta, logicSignatureCodec, signedTransactionCodec };
129
129
  //# sourceMappingURL=signed-transaction-meta.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"signed-transaction-meta.mjs","names":["MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature>","LogicSignatureMeta: ObjectModelMetadata<LogicSignature>","SignedTransactionMeta: ObjectModelMetadata<SignedTransaction>"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport {\n ArrayCodec,\n ObjectModelCodec,\n addressCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n} from '@algorandfoundation/algokit-common'\nimport { LogicSignature, MultisigSignature, MultisigSubsignature, SignedTransaction } from './signed-transaction'\nimport { transactionCodec } from './transaction'\n\nconst MultisigSubsignatureMeta: ObjectModelMetadata<MultisigSubsignature> = {\n name: 'MultisigSubsignature',\n kind: 'object',\n fields: [\n { name: 'publicKey', wireKey: 'pk', optional: false, codec: fixedBytes32Codec },\n { name: 'signature', wireKey: 's', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\nconst MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature> = {\n name: 'MultisigSignature',\n kind: 'object',\n fields: [\n { name: 'version', wireKey: 'v', optional: false, codec: numberCodec },\n { name: 'threshold', wireKey: 'thr', optional: false, codec: numberCodec },\n {\n name: 'subsignatures',\n wireKey: 'subsig',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(MultisigSubsignatureMeta)),\n },\n ],\n}\n\nconst LogicSignatureMeta: ObjectModelMetadata<LogicSignature> = {\n name: 'LogicSignature',\n kind: 'object',\n fields: [\n { name: 'logic', wireKey: 'l', optional: false, codec: bytesCodec },\n { name: 'args', wireKey: 'arg', optional: true, codec: bytesArrayCodec },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n {\n name: 'lmsig',\n wireKey: 'lmsig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n ],\n}\n\nexport const multiSignatureCodec = new ObjectModelCodec<MultisigSignature>(MultisigSignatureMeta)\nexport const logicSignatureCodec = new ObjectModelCodec<LogicSignature>(LogicSignatureMeta)\n\n/**\n * Metadata for SignedTransaction\n */\nexport const SignedTransactionMeta: ObjectModelMetadata<SignedTransaction> = {\n name: 'SignedTransaction',\n kind: 'object',\n fields: [\n {\n name: 'txn',\n wireKey: 'txn',\n optional: false,\n codec: transactionCodec,\n },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: multiSignatureCodec,\n },\n {\n name: 'lsig',\n wireKey: 'lsig',\n optional: true,\n codec: logicSignatureCodec,\n },\n { name: 'authAddress', wireKey: 'sgnr', optional: true, codec: addressCodec },\n ],\n}\n\nexport const signedTransactionCodec = new ObjectModelCodec<SignedTransaction>(SignedTransactionMeta)\n"],"mappings":";;;;;;;;;AAuBA,MAAMA,wBAAgE;CACpE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAW,SAAS;GAAK,UAAU;GAAO,OAAO;GAAa;EACtE;GAAE,MAAM;GAAa,SAAS;GAAO,UAAU;GAAO,OAAO;GAAa;EAC1E;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,WAAW,IAAI,iBAnB4C;IAC1E,MAAM;IACN,MAAM;IACN,QAAQ,CACN;KAAE,MAAM;KAAa,SAAS;KAAM,UAAU;KAAO,OAAO;KAAmB,EAC/E;KAAE,MAAM;KAAa,SAAS;KAAK,UAAU;KAAM,OAAO;KAAmB,CAC9E;IACF,CAYyE,CAAC;GACtE;EACF;CACF;AAED,MAAMC,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAS,SAAS;GAAK,UAAU;GAAO,OAAO;GAAY;EACnE;GAAE,MAAM;GAAQ,SAAS;GAAO,UAAU;GAAM,OAAO;GAAiB;EACxE;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAO;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,iBAAiB,sBAAsB;GACnD;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,iBAAiB,sBAAsB;GACnD;EACF;CACF;AAED,MAAa,sBAAsB,IAAI,iBAAoC,sBAAsB;AACjG,MAAa,sBAAsB,IAAI,iBAAiC,mBAAmB;;;;AAK3F,MAAaC,wBAAgE;CAC3E,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAO;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAM,OAAO;GAAc;EAC9E;CACF;AAED,MAAa,yBAAyB,IAAI,iBAAoC,sBAAsB"}
1
+ {"version":3,"file":"signed-transaction-meta.mjs","names":["MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature>","LogicSignatureMeta: ObjectModelMetadata<LogicSignature>","SignedTransactionMeta: ObjectModelMetadata<SignedTransaction>"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction-meta.ts"],"sourcesContent":["import type { ObjectModelMetadata } from '@algorandfoundation/algokit-common'\nimport {\n ArrayCodec,\n ObjectModelCodec,\n addressCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n} from '@algorandfoundation/algokit-common'\nimport { LogicSignature, MultisigSignature, MultisigSubsignature, SignedTransaction } from './signed-transaction'\nimport { transactionCodec } from './transaction'\n\nconst MultisigSubsignatureMeta: ObjectModelMetadata<MultisigSubsignature> = {\n name: 'MultisigSubsignature',\n kind: 'object',\n fields: [\n { name: 'publicKey', wireKey: 'pk', optional: false, codec: fixedBytes32Codec },\n { name: 'sig', wireKey: 's', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\nconst MultisigSignatureMeta: ObjectModelMetadata<MultisigSignature> = {\n name: 'MultisigSignature',\n kind: 'object',\n fields: [\n { name: 'version', wireKey: 'v', optional: false, codec: numberCodec },\n { name: 'threshold', wireKey: 'thr', optional: false, codec: numberCodec },\n {\n name: 'subsigs',\n wireKey: 'subsig',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(MultisigSubsignatureMeta)),\n },\n ],\n}\n\nconst LogicSignatureMeta: ObjectModelMetadata<LogicSignature> = {\n name: 'LogicSignature',\n kind: 'object',\n fields: [\n { name: 'logic', wireKey: 'l', optional: false, codec: bytesCodec },\n { name: 'args', wireKey: 'arg', optional: true, codec: bytesArrayCodec },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n {\n name: 'lmsig',\n wireKey: 'lmsig',\n optional: true,\n codec: new ObjectModelCodec(MultisigSignatureMeta),\n },\n ],\n}\n\nexport const multiSignatureCodec = new ObjectModelCodec<MultisigSignature>(MultisigSignatureMeta)\nexport const logicSignatureCodec = new ObjectModelCodec<LogicSignature>(LogicSignatureMeta)\n\n/**\n * Metadata for SignedTransaction\n */\nexport const SignedTransactionMeta: ObjectModelMetadata<SignedTransaction> = {\n name: 'SignedTransaction',\n kind: 'object',\n fields: [\n {\n name: 'txn',\n wireKey: 'txn',\n optional: false,\n codec: transactionCodec,\n },\n { name: 'sig', wireKey: 'sig', optional: true, codec: fixedBytes64Codec },\n {\n name: 'msig',\n wireKey: 'msig',\n optional: true,\n codec: multiSignatureCodec,\n },\n {\n name: 'lsig',\n wireKey: 'lsig',\n optional: true,\n codec: logicSignatureCodec,\n },\n { name: 'authAddress', wireKey: 'sgnr', optional: true, codec: addressCodec },\n ],\n}\n\nexport const signedTransactionCodec = new ObjectModelCodec<SignedTransaction>(SignedTransactionMeta)\n"],"mappings":";;;;;;;;;AAuBA,MAAMA,wBAAgE;CACpE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAW,SAAS;GAAK,UAAU;GAAO,OAAO;GAAa;EACtE;GAAE,MAAM;GAAa,SAAS;GAAO,UAAU;GAAO,OAAO;GAAa;EAC1E;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,WAAW,IAAI,iBAnB4C;IAC1E,MAAM;IACN,MAAM;IACN,QAAQ,CACN;KAAE,MAAM;KAAa,SAAS;KAAM,UAAU;KAAO,OAAO;KAAmB,EAC/E;KAAE,MAAM;KAAO,SAAS;KAAK,UAAU;KAAM,OAAO;KAAmB,CACxE;IACF,CAYyE,CAAC;GACtE;EACF;CACF;AAED,MAAMC,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAS,SAAS;GAAK,UAAU;GAAO,OAAO;GAAY;EACnE;GAAE,MAAM;GAAQ,SAAS;GAAO,UAAU;GAAM,OAAO;GAAiB;EACxE;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAO;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,iBAAiB,sBAAsB;GACnD;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,iBAAiB,sBAAsB;GACnD;EACF;CACF;AAED,MAAa,sBAAsB,IAAI,iBAAoC,sBAAsB;AACjG,MAAa,sBAAsB,IAAI,iBAAiC,mBAAmB;;;;AAK3F,MAAaC,wBAAgE;CAC3E,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAO,SAAS;GAAO,UAAU;GAAM,OAAO;GAAmB;EACzE;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAM,OAAO;GAAc;EAC9E;CACF;AAED,MAAa,yBAAyB,IAAI,iBAAoC,sBAAsB"}
@@ -41,7 +41,7 @@ type MultisigSubsignature = {
41
41
  /**
42
42
  * Optional Ed25519 signature for the transaction.
43
43
  */
44
- signature?: Uint8Array;
44
+ sig?: Uint8Array;
45
45
  };
46
46
  /**
47
47
  * Represents an Algorand multisignature signature.
@@ -62,7 +62,7 @@ type MultisigSignature = {
62
62
  /**
63
63
  * Array of subsignatures
64
64
  */
65
- subsignatures: Array<MultisigSubsignature>;
65
+ subsigs: Array<MultisigSubsignature>;
66
66
  };
67
67
  /**
68
68
  * Logic signature structure
@@ -1 +1 @@
1
- {"version":3,"file":"signed-transaction.js","names":["encodeMsgpack","signedTransactionCodec","decodeMsgpack"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction.ts"],"sourcesContent":["import type { Address } from '@algorandfoundation/algokit-common'\nimport { decodeMsgpack, encodeMsgpack } from '@algorandfoundation/algokit-common'\nimport { signedTransactionCodec } from './signed-transaction-meta'\nimport { Transaction, validateTransaction } from './transaction'\n\n/**\n * Represents a signed Algorand transaction\n */\nexport type SignedTransaction = {\n /**\n * The transaction that has been signed.\n */\n txn: Transaction\n\n /**\n * Optional Ed25519 signature authorizing the transaction.\n */\n sig?: Uint8Array\n\n /**\n * Optional multisignature signature for the transaction.\n */\n msig?: MultisigSignature\n\n /**\n * Optional logic signature for the transaction.\n */\n lsig?: LogicSignature\n\n /**\n * Optional auth address applicable if the transaction sender is a rekeyed account.\n */\n authAddress?: Address\n}\n\n/**\n * Represents a single subsignature in a multisignature transaction.\n *\n * Each subsignature contains the public key of a participant and an optional signature.\n */\nexport type MultisigSubsignature = {\n /**\n * Public key of a keypair account participant that is sub-signing a multisignature transaction.\n */\n publicKey: Uint8Array\n\n /**\n * Optional Ed25519 signature for the transaction.\n */\n signature?: Uint8Array\n}\n\n/**\n * Represents an Algorand multisignature signature.\n *\n * A multisignature signature is defined by a version, a threshold, and a list of participating addresses.\n * The version indicates the multisig protocol version, while the threshold specifies the minimum number of signatures required to authorize a transaction.\n * While technically this accepts `Address` types, it is expected that these will be the addresses of Ed25519 public keys.\n */\nexport type MultisigSignature = {\n /**\n * Multisig version.\n */\n version: number\n\n /**\n * Minimum number of signatures required.\n */\n threshold: number\n\n /**\n * Array of subsignatures\n */\n subsignatures: Array<MultisigSubsignature>\n}\n\n/**\n * Logic signature structure\n */\nexport type LogicSignature = {\n /**\n * Logic signature program\n */\n logic: Uint8Array\n\n /**\n * Logic signature arguments\n */\n args?: Uint8Array[]\n\n /**\n * Signature for delegated logic sig\n */\n sig?: Uint8Array\n\n /**\n * Legacy multisig for delegated logic sig\n */\n msig?: MultisigSignature\n\n /**\n * Multisig for delegated logic sig\n */\n lmsig?: MultisigSignature\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransaction - The signed transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransaction(signedTransaction: SignedTransaction): Uint8Array {\n validateSignedTransaction(signedTransaction)\n const encodingData = signedTransactionCodec.encode(signedTransaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransactions - A collection of signed transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransactions(signedTransactions: SignedTransaction[]): Uint8Array[] {\n return signedTransactions.map((st) => encodeSignedTransaction(st))\n}\n\n/**\n * Decodes MsgPack bytes into a signed transaction.\n *\n * @param encodedSignedTransaction - The MsgPack encoded signed transaction bytes\n * @returns The decoded SignedTransaction or an error if decoding fails.\n */\nexport function decodeSignedTransaction(encodedSignedTransaction: Uint8Array): SignedTransaction {\n const decodedData = decodeMsgpack(encodedSignedTransaction)\n return signedTransactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a signed transaction collection.\n *\n * @param encodedSignedTransactions - A collection of MsgPack encoded bytes, each representing a signed transaction.\n * @returns A collection of decoded signed transactions or an error if decoding fails.\n */\nexport function decodeSignedTransactions(encodedSignedTransactions: Uint8Array[]): SignedTransaction[] {\n return encodedSignedTransactions.map((est) => decodeSignedTransaction(est))\n}\n\n/**\n * Validate a signed transaction structure\n */\nfunction validateSignedTransaction(signedTransaction: SignedTransaction): void {\n validateTransaction(signedTransaction.txn)\n\n // Validate that only one signature type is set\n const sigTypes = [signedTransaction.sig, signedTransaction.msig, signedTransaction.lsig]\n const setSigCount = sigTypes.filter((sig) => sig !== undefined).length\n\n if (setSigCount > 1) {\n throw new Error(`Only one signature type can be set, found ${setSigCount}`)\n }\n\n // Validate signature lengths\n if (signedTransaction.sig && signedTransaction.sig.length !== 64) {\n throw new Error('Signature must be 64 bytes')\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkHA,SAAgB,wBAAwB,mBAAkD;AACxF,2BAA0B,kBAAkB;AAE5C,QAAOA,8BADcC,uDAAuB,OAAO,mBAAmB,UAAU,CAC9C;;;;;;;;;;AAWpC,SAAgB,yBAAyB,oBAAuD;AAC9F,QAAO,mBAAmB,KAAK,OAAO,wBAAwB,GAAG,CAAC;;;;;;;;AASpE,SAAgB,wBAAwB,0BAAyD;CAC/F,MAAM,cAAcC,8BAAc,yBAAyB;AAC3D,QAAOD,uDAAuB,OAAO,aAAa,UAAU;;;;;;;;AAS9D,SAAgB,yBAAyB,2BAA8D;AACrG,QAAO,0BAA0B,KAAK,QAAQ,wBAAwB,IAAI,CAAC;;;;;AAM7E,SAAS,0BAA0B,mBAA4C;AAC7E,yCAAoB,kBAAkB,IAAI;CAI1C,MAAM,cADW;EAAC,kBAAkB;EAAK,kBAAkB;EAAM,kBAAkB;EAAK,CAC3D,QAAQ,QAAQ,QAAQ,OAAU,CAAC;AAEhE,KAAI,cAAc,EAChB,OAAM,IAAI,MAAM,6CAA6C,cAAc;AAI7E,KAAI,kBAAkB,OAAO,kBAAkB,IAAI,WAAW,GAC5D,OAAM,IAAI,MAAM,6BAA6B"}
1
+ {"version":3,"file":"signed-transaction.js","names":["encodeMsgpack","signedTransactionCodec","decodeMsgpack"],"sources":["../../../../../packages/transact/src/transactions/signed-transaction.ts"],"sourcesContent":["import type { Address } from '@algorandfoundation/algokit-common'\nimport { decodeMsgpack, encodeMsgpack } from '@algorandfoundation/algokit-common'\nimport { signedTransactionCodec } from './signed-transaction-meta'\nimport { Transaction, validateTransaction } from './transaction'\n\n/**\n * Represents a signed Algorand transaction\n */\nexport type SignedTransaction = {\n /**\n * The transaction that has been signed.\n */\n txn: Transaction\n\n /**\n * Optional Ed25519 signature authorizing the transaction.\n */\n sig?: Uint8Array\n\n /**\n * Optional multisignature signature for the transaction.\n */\n msig?: MultisigSignature\n\n /**\n * Optional logic signature for the transaction.\n */\n lsig?: LogicSignature\n\n /**\n * Optional auth address applicable if the transaction sender is a rekeyed account.\n */\n authAddress?: Address\n}\n\n/**\n * Represents a single subsignature in a multisignature transaction.\n *\n * Each subsignature contains the public key of a participant and an optional signature.\n */\nexport type MultisigSubsignature = {\n /**\n * Public key of a keypair account participant that is sub-signing a multisignature transaction.\n */\n publicKey: Uint8Array\n\n /**\n * Optional Ed25519 signature for the transaction.\n */\n sig?: Uint8Array\n}\n\n/**\n * Represents an Algorand multisignature signature.\n *\n * A multisignature signature is defined by a version, a threshold, and a list of participating addresses.\n * The version indicates the multisig protocol version, while the threshold specifies the minimum number of signatures required to authorize a transaction.\n * While technically this accepts `Address` types, it is expected that these will be the addresses of Ed25519 public keys.\n */\nexport type MultisigSignature = {\n /**\n * Multisig version.\n */\n version: number\n\n /**\n * Minimum number of signatures required.\n */\n threshold: number\n\n /**\n * Array of subsignatures\n */\n subsigs: Array<MultisigSubsignature>\n}\n\n/**\n * Logic signature structure\n */\nexport type LogicSignature = {\n /**\n * Logic signature program\n */\n logic: Uint8Array\n\n /**\n * Logic signature arguments\n */\n args?: Uint8Array[]\n\n /**\n * Signature for delegated logic sig\n */\n sig?: Uint8Array\n\n /**\n * Legacy multisig for delegated logic sig\n */\n msig?: MultisigSignature\n\n /**\n * Multisig for delegated logic sig\n */\n lmsig?: MultisigSignature\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransaction - The signed transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransaction(signedTransaction: SignedTransaction): Uint8Array {\n validateSignedTransaction(signedTransaction)\n const encodingData = signedTransactionCodec.encode(signedTransaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransactions - A collection of signed transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransactions(signedTransactions: SignedTransaction[]): Uint8Array[] {\n return signedTransactions.map((st) => encodeSignedTransaction(st))\n}\n\n/**\n * Decodes MsgPack bytes into a signed transaction.\n *\n * @param encodedSignedTransaction - The MsgPack encoded signed transaction bytes\n * @returns The decoded SignedTransaction or an error if decoding fails.\n */\nexport function decodeSignedTransaction(encodedSignedTransaction: Uint8Array): SignedTransaction {\n const decodedData = decodeMsgpack(encodedSignedTransaction)\n return signedTransactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a signed transaction collection.\n *\n * @param encodedSignedTransactions - A collection of MsgPack encoded bytes, each representing a signed transaction.\n * @returns A collection of decoded signed transactions or an error if decoding fails.\n */\nexport function decodeSignedTransactions(encodedSignedTransactions: Uint8Array[]): SignedTransaction[] {\n return encodedSignedTransactions.map((est) => decodeSignedTransaction(est))\n}\n\n/**\n * Validate a signed transaction structure\n */\nfunction validateSignedTransaction(signedTransaction: SignedTransaction): void {\n validateTransaction(signedTransaction.txn)\n\n // Validate that only one signature type is set\n const sigTypes = [signedTransaction.sig, signedTransaction.msig, signedTransaction.lsig]\n const setSigCount = sigTypes.filter((sig) => sig !== undefined).length\n\n if (setSigCount > 1) {\n throw new Error(`Only one signature type can be set, found ${setSigCount}`)\n }\n\n // Validate signature lengths\n if (signedTransaction.sig && signedTransaction.sig.length !== 64) {\n throw new Error('Signature must be 64 bytes')\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkHA,SAAgB,wBAAwB,mBAAkD;AACxF,2BAA0B,kBAAkB;AAE5C,QAAOA,8BADcC,uDAAuB,OAAO,mBAAmB,UAAU,CAC9C;;;;;;;;;;AAWpC,SAAgB,yBAAyB,oBAAuD;AAC9F,QAAO,mBAAmB,KAAK,OAAO,wBAAwB,GAAG,CAAC;;;;;;;;AASpE,SAAgB,wBAAwB,0BAAyD;CAC/F,MAAM,cAAcC,8BAAc,yBAAyB;AAC3D,QAAOD,uDAAuB,OAAO,aAAa,UAAU;;;;;;;;AAS9D,SAAgB,yBAAyB,2BAA8D;AACrG,QAAO,0BAA0B,KAAK,QAAQ,wBAAwB,IAAI,CAAC;;;;;AAM7E,SAAS,0BAA0B,mBAA4C;AAC7E,yCAAoB,kBAAkB,IAAI;CAI1C,MAAM,cADW;EAAC,kBAAkB;EAAK,kBAAkB;EAAM,kBAAkB;EAAK,CAC3D,QAAQ,QAAQ,QAAQ,OAAU,CAAC;AAEhE,KAAI,cAAc,EAChB,OAAM,IAAI,MAAM,6CAA6C,cAAc;AAI7E,KAAI,kBAAkB,OAAO,kBAAkB,IAAI,WAAW,GAC5D,OAAM,IAAI,MAAM,6BAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"signed-transaction.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/signed-transaction.ts"],"sourcesContent":["import type { Address } from '@algorandfoundation/algokit-common'\nimport { decodeMsgpack, encodeMsgpack } from '@algorandfoundation/algokit-common'\nimport { signedTransactionCodec } from './signed-transaction-meta'\nimport { Transaction, validateTransaction } from './transaction'\n\n/**\n * Represents a signed Algorand transaction\n */\nexport type SignedTransaction = {\n /**\n * The transaction that has been signed.\n */\n txn: Transaction\n\n /**\n * Optional Ed25519 signature authorizing the transaction.\n */\n sig?: Uint8Array\n\n /**\n * Optional multisignature signature for the transaction.\n */\n msig?: MultisigSignature\n\n /**\n * Optional logic signature for the transaction.\n */\n lsig?: LogicSignature\n\n /**\n * Optional auth address applicable if the transaction sender is a rekeyed account.\n */\n authAddress?: Address\n}\n\n/**\n * Represents a single subsignature in a multisignature transaction.\n *\n * Each subsignature contains the public key of a participant and an optional signature.\n */\nexport type MultisigSubsignature = {\n /**\n * Public key of a keypair account participant that is sub-signing a multisignature transaction.\n */\n publicKey: Uint8Array\n\n /**\n * Optional Ed25519 signature for the transaction.\n */\n signature?: Uint8Array\n}\n\n/**\n * Represents an Algorand multisignature signature.\n *\n * A multisignature signature is defined by a version, a threshold, and a list of participating addresses.\n * The version indicates the multisig protocol version, while the threshold specifies the minimum number of signatures required to authorize a transaction.\n * While technically this accepts `Address` types, it is expected that these will be the addresses of Ed25519 public keys.\n */\nexport type MultisigSignature = {\n /**\n * Multisig version.\n */\n version: number\n\n /**\n * Minimum number of signatures required.\n */\n threshold: number\n\n /**\n * Array of subsignatures\n */\n subsignatures: Array<MultisigSubsignature>\n}\n\n/**\n * Logic signature structure\n */\nexport type LogicSignature = {\n /**\n * Logic signature program\n */\n logic: Uint8Array\n\n /**\n * Logic signature arguments\n */\n args?: Uint8Array[]\n\n /**\n * Signature for delegated logic sig\n */\n sig?: Uint8Array\n\n /**\n * Legacy multisig for delegated logic sig\n */\n msig?: MultisigSignature\n\n /**\n * Multisig for delegated logic sig\n */\n lmsig?: MultisigSignature\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransaction - The signed transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransaction(signedTransaction: SignedTransaction): Uint8Array {\n validateSignedTransaction(signedTransaction)\n const encodingData = signedTransactionCodec.encode(signedTransaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransactions - A collection of signed transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransactions(signedTransactions: SignedTransaction[]): Uint8Array[] {\n return signedTransactions.map((st) => encodeSignedTransaction(st))\n}\n\n/**\n * Decodes MsgPack bytes into a signed transaction.\n *\n * @param encodedSignedTransaction - The MsgPack encoded signed transaction bytes\n * @returns The decoded SignedTransaction or an error if decoding fails.\n */\nexport function decodeSignedTransaction(encodedSignedTransaction: Uint8Array): SignedTransaction {\n const decodedData = decodeMsgpack(encodedSignedTransaction)\n return signedTransactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a signed transaction collection.\n *\n * @param encodedSignedTransactions - A collection of MsgPack encoded bytes, each representing a signed transaction.\n * @returns A collection of decoded signed transactions or an error if decoding fails.\n */\nexport function decodeSignedTransactions(encodedSignedTransactions: Uint8Array[]): SignedTransaction[] {\n return encodedSignedTransactions.map((est) => decodeSignedTransaction(est))\n}\n\n/**\n * Validate a signed transaction structure\n */\nfunction validateSignedTransaction(signedTransaction: SignedTransaction): void {\n validateTransaction(signedTransaction.txn)\n\n // Validate that only one signature type is set\n const sigTypes = [signedTransaction.sig, signedTransaction.msig, signedTransaction.lsig]\n const setSigCount = sigTypes.filter((sig) => sig !== undefined).length\n\n if (setSigCount > 1) {\n throw new Error(`Only one signature type can be set, found ${setSigCount}`)\n }\n\n // Validate signature lengths\n if (signedTransaction.sig && signedTransaction.sig.length !== 64) {\n throw new Error('Signature must be 64 bytes')\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkHA,SAAgB,wBAAwB,mBAAkD;AACxF,2BAA0B,kBAAkB;AAE5C,QAAO,cADc,uBAAuB,OAAO,mBAAmB,UAAU,CAC9C;;;;;;;;;;AAWpC,SAAgB,yBAAyB,oBAAuD;AAC9F,QAAO,mBAAmB,KAAK,OAAO,wBAAwB,GAAG,CAAC;;;;;;;;AASpE,SAAgB,wBAAwB,0BAAyD;CAC/F,MAAM,cAAc,cAAc,yBAAyB;AAC3D,QAAO,uBAAuB,OAAO,aAAa,UAAU;;;;;;;;AAS9D,SAAgB,yBAAyB,2BAA8D;AACrG,QAAO,0BAA0B,KAAK,QAAQ,wBAAwB,IAAI,CAAC;;;;;AAM7E,SAAS,0BAA0B,mBAA4C;AAC7E,qBAAoB,kBAAkB,IAAI;CAI1C,MAAM,cADW;EAAC,kBAAkB;EAAK,kBAAkB;EAAM,kBAAkB;EAAK,CAC3D,QAAQ,QAAQ,QAAQ,OAAU,CAAC;AAEhE,KAAI,cAAc,EAChB,OAAM,IAAI,MAAM,6CAA6C,cAAc;AAI7E,KAAI,kBAAkB,OAAO,kBAAkB,IAAI,WAAW,GAC5D,OAAM,IAAI,MAAM,6BAA6B"}
1
+ {"version":3,"file":"signed-transaction.mjs","names":[],"sources":["../../../../../packages/transact/src/transactions/signed-transaction.ts"],"sourcesContent":["import type { Address } from '@algorandfoundation/algokit-common'\nimport { decodeMsgpack, encodeMsgpack } from '@algorandfoundation/algokit-common'\nimport { signedTransactionCodec } from './signed-transaction-meta'\nimport { Transaction, validateTransaction } from './transaction'\n\n/**\n * Represents a signed Algorand transaction\n */\nexport type SignedTransaction = {\n /**\n * The transaction that has been signed.\n */\n txn: Transaction\n\n /**\n * Optional Ed25519 signature authorizing the transaction.\n */\n sig?: Uint8Array\n\n /**\n * Optional multisignature signature for the transaction.\n */\n msig?: MultisigSignature\n\n /**\n * Optional logic signature for the transaction.\n */\n lsig?: LogicSignature\n\n /**\n * Optional auth address applicable if the transaction sender is a rekeyed account.\n */\n authAddress?: Address\n}\n\n/**\n * Represents a single subsignature in a multisignature transaction.\n *\n * Each subsignature contains the public key of a participant and an optional signature.\n */\nexport type MultisigSubsignature = {\n /**\n * Public key of a keypair account participant that is sub-signing a multisignature transaction.\n */\n publicKey: Uint8Array\n\n /**\n * Optional Ed25519 signature for the transaction.\n */\n sig?: Uint8Array\n}\n\n/**\n * Represents an Algorand multisignature signature.\n *\n * A multisignature signature is defined by a version, a threshold, and a list of participating addresses.\n * The version indicates the multisig protocol version, while the threshold specifies the minimum number of signatures required to authorize a transaction.\n * While technically this accepts `Address` types, it is expected that these will be the addresses of Ed25519 public keys.\n */\nexport type MultisigSignature = {\n /**\n * Multisig version.\n */\n version: number\n\n /**\n * Minimum number of signatures required.\n */\n threshold: number\n\n /**\n * Array of subsignatures\n */\n subsigs: Array<MultisigSubsignature>\n}\n\n/**\n * Logic signature structure\n */\nexport type LogicSignature = {\n /**\n * Logic signature program\n */\n logic: Uint8Array\n\n /**\n * Logic signature arguments\n */\n args?: Uint8Array[]\n\n /**\n * Signature for delegated logic sig\n */\n sig?: Uint8Array\n\n /**\n * Legacy multisig for delegated logic sig\n */\n msig?: MultisigSignature\n\n /**\n * Multisig for delegated logic sig\n */\n lmsig?: MultisigSignature\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransaction - The signed transaction to encode\n * @returns The MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransaction(signedTransaction: SignedTransaction): Uint8Array {\n validateSignedTransaction(signedTransaction)\n const encodingData = signedTransactionCodec.encode(signedTransaction, 'msgpack')\n return encodeMsgpack(encodingData)\n}\n\n/**\n * Encode signed transactions to MsgPack for sending on the network.\n *\n * This method performs canonical encoding. No domain separation prefix is applicable.\n *\n * @param signedTransactions - A collection of signed transactions to encode\n * @returns A collection of MsgPack encoded bytes or an error if encoding fails.\n */\nexport function encodeSignedTransactions(signedTransactions: SignedTransaction[]): Uint8Array[] {\n return signedTransactions.map((st) => encodeSignedTransaction(st))\n}\n\n/**\n * Decodes MsgPack bytes into a signed transaction.\n *\n * @param encodedSignedTransaction - The MsgPack encoded signed transaction bytes\n * @returns The decoded SignedTransaction or an error if decoding fails.\n */\nexport function decodeSignedTransaction(encodedSignedTransaction: Uint8Array): SignedTransaction {\n const decodedData = decodeMsgpack(encodedSignedTransaction)\n return signedTransactionCodec.decode(decodedData, 'msgpack')\n}\n\n/**\n * Decodes a collection of MsgPack bytes into a signed transaction collection.\n *\n * @param encodedSignedTransactions - A collection of MsgPack encoded bytes, each representing a signed transaction.\n * @returns A collection of decoded signed transactions or an error if decoding fails.\n */\nexport function decodeSignedTransactions(encodedSignedTransactions: Uint8Array[]): SignedTransaction[] {\n return encodedSignedTransactions.map((est) => decodeSignedTransaction(est))\n}\n\n/**\n * Validate a signed transaction structure\n */\nfunction validateSignedTransaction(signedTransaction: SignedTransaction): void {\n validateTransaction(signedTransaction.txn)\n\n // Validate that only one signature type is set\n const sigTypes = [signedTransaction.sig, signedTransaction.msig, signedTransaction.lsig]\n const setSigCount = sigTypes.filter((sig) => sig !== undefined).length\n\n if (setSigCount > 1) {\n throw new Error(`Only one signature type can be set, found ${setSigCount}`)\n }\n\n // Validate signature lengths\n if (signedTransaction.sig && signedTransaction.sig.length !== 64) {\n throw new Error('Signature must be 64 bytes')\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAkHA,SAAgB,wBAAwB,mBAAkD;AACxF,2BAA0B,kBAAkB;AAE5C,QAAO,cADc,uBAAuB,OAAO,mBAAmB,UAAU,CAC9C;;;;;;;;;;AAWpC,SAAgB,yBAAyB,oBAAuD;AAC9F,QAAO,mBAAmB,KAAK,OAAO,wBAAwB,GAAG,CAAC;;;;;;;;AASpE,SAAgB,wBAAwB,0BAAyD;CAC/F,MAAM,cAAc,cAAc,yBAAyB;AAC3D,QAAO,uBAAuB,OAAO,aAAa,UAAU;;;;;;;;AAS9D,SAAgB,yBAAyB,2BAA8D;AACrG,QAAO,0BAA0B,KAAK,QAAQ,wBAAwB,IAAI,CAAC;;;;;AAM7E,SAAS,0BAA0B,mBAA4C;AAC7E,qBAAoB,kBAAkB,IAAI;CAI1C,MAAM,cADW;EAAC,kBAAkB;EAAK,kBAAkB;EAAM,kBAAkB;EAAK,CAC3D,QAAQ,QAAQ,QAAQ,OAAU,CAAC;AAEhE,KAAI,cAAc,EAChB,OAAM,IAAI,MAAM,6CAA6C,cAAc;AAI7E,KAAI,kBAAkB,OAAO,kBAAkB,IAAI,WAAW,GAC5D,OAAM,IAAI,MAAM,6BAA6B"}
@@ -68,7 +68,7 @@ var AssetConfigDataCodec = class extends require_codec.Codec {
68
68
  toEncoded(value, format) {
69
69
  const result = {};
70
70
  if (!value) throw new Error("Transaction is not an asset config");
71
- const { assetId,...assetParams } = value;
71
+ const { assetId, ...assetParams } = value;
72
72
  const encodedAssetId = require_bigint.bigIntCodec.encodeOptional(assetId, format);
73
73
  if (encodedAssetId !== void 0) result.caid = encodedAssetId;
74
74
  const encodedParams = this.assetParamsCodec.encodeOptional(assetParams, format);
@@ -93,8 +93,8 @@ var AssetConfigDataCodec = class extends require_codec.Codec {
93
93
  var AppCallDataCodec = class extends require_codec.Codec {
94
94
  appCallFieldsCodec = new require_object_model.ObjectModelCodec(AppCallTransactionFieldsMeta);
95
95
  defaultValue() {}
96
- encodeAccessReferences(appId, accessReferences, format) {
97
- if (!accessReferences || accessReferences.length === 0) return void 0;
96
+ encodeResourceReferences(appId, resourceReferences, format) {
97
+ if (!resourceReferences || resourceReferences.length === 0) return void 0;
98
98
  const accessList = [];
99
99
  const ensure = (target) => {
100
100
  for (let idx = 0; idx < accessList.length; idx++) {
@@ -109,13 +109,13 @@ var AppCallDataCodec = class extends require_codec.Codec {
109
109
  if (target.appId !== void 0) accessList.push({ p: require_bigint.bigIntCodec.encodeOptional(target.appId, format) });
110
110
  return accessList.length;
111
111
  };
112
- for (const accessRef of accessReferences) {
113
- if (accessRef.address || accessRef.assetId !== void 0 || accessRef.appId !== void 0) {
114
- ensure(accessRef);
112
+ for (const resourceRef of resourceReferences) {
113
+ if (resourceRef.address || resourceRef.assetId !== void 0 || resourceRef.appId !== void 0) {
114
+ ensure(resourceRef);
115
115
  continue;
116
116
  }
117
- if (accessRef.holding) {
118
- const holding = accessRef.holding;
117
+ if (resourceRef.holding) {
118
+ const holding = resourceRef.holding;
119
119
  let addressIndex = 0;
120
120
  if (holding.address && !holding.address.equals(require_address.Address.zeroAddress())) addressIndex = ensure({ address: holding.address });
121
121
  const assetIndex = ensure({ assetId: holding.assetId });
@@ -125,8 +125,8 @@ var AppCallDataCodec = class extends require_codec.Codec {
125
125
  } });
126
126
  continue;
127
127
  }
128
- if (accessRef.locals) {
129
- const locals = accessRef.locals;
128
+ if (resourceRef.locals) {
129
+ const locals = resourceRef.locals;
130
130
  let addressIndex = 0;
131
131
  if (locals.address && !locals.address.equals(require_address.Address.zeroAddress())) addressIndex = ensure({ address: locals.address });
132
132
  let appIndex = 0;
@@ -137,8 +137,8 @@ var AppCallDataCodec = class extends require_codec.Codec {
137
137
  } });
138
138
  continue;
139
139
  }
140
- if (accessRef.box) {
141
- const box = accessRef.box;
140
+ if (resourceRef.box) {
141
+ const box = resourceRef.box;
142
142
  let appIndex = 0;
143
143
  if (box.appId && box.appId !== appId) appIndex = ensure({ appId: box.appId });
144
144
  accessList.push({ b: {
@@ -150,11 +150,11 @@ var AppCallDataCodec = class extends require_codec.Codec {
150
150
  }
151
151
  return accessList.length > 0 ? accessList : void 0;
152
152
  }
153
- decodeAccessReferences(_wireAccessReferences, format) {
154
- if (!_wireAccessReferences || _wireAccessReferences.length === 0) return [];
153
+ decodeResourceReferences(_wireResourceReferences, format) {
154
+ if (!_wireResourceReferences || _wireResourceReferences.length === 0) return [];
155
155
  const result = [];
156
- const wireAccessReferences = _wireAccessReferences.map((ref) => require_wire.normalizeWireObject(ref));
157
- for (const ref of wireAccessReferences) {
156
+ const wireResourceReferences = _wireResourceReferences.map((ref) => require_wire.normalizeWireObject(ref));
157
+ for (const ref of wireResourceReferences) {
158
158
  const d = ref.d;
159
159
  const s = ref.s;
160
160
  const p = ref.p;
@@ -180,8 +180,8 @@ var AppCallDataCodec = class extends require_codec.Codec {
180
180
  const addrIdx = h.d ?? 0;
181
181
  const assetIdx = h.s;
182
182
  if (assetIdx === void 0) throw new Error("Access list holding reference is missing asset index");
183
- const holdingAddress = addrIdx === 0 ? require_address.Address.zeroAddress() : require_address$1.addressCodec.decode(wireAccessReferences[addrIdx - 1].d, format);
184
- const holdingAssetId = wireAccessReferences[assetIdx - 1].s;
183
+ const holdingAddress = addrIdx === 0 ? require_address.Address.zeroAddress() : require_address$1.addressCodec.decode(wireResourceReferences[addrIdx - 1].d, format);
184
+ const holdingAssetId = wireResourceReferences[assetIdx - 1].s;
185
185
  result.push({ holding: {
186
186
  assetId: require_bigint.bigIntCodec.decode(holdingAssetId, format),
187
187
  address: holdingAddress
@@ -191,8 +191,8 @@ var AppCallDataCodec = class extends require_codec.Codec {
191
191
  if (l) {
192
192
  const addrIdx = l.d ?? 0;
193
193
  const appIdx = l.p ?? 0;
194
- const localsAddress = addrIdx === 0 ? require_address.Address.zeroAddress() : require_address$1.addressCodec.decode(wireAccessReferences[addrIdx - 1].d, format);
195
- const localsAppId = appIdx === 0 ? 0n : wireAccessReferences[appIdx - 1].p;
194
+ const localsAddress = addrIdx === 0 ? require_address.Address.zeroAddress() : require_address$1.addressCodec.decode(wireResourceReferences[addrIdx - 1].d, format);
195
+ const localsAppId = appIdx === 0 ? 0n : wireResourceReferences[appIdx - 1].p;
196
196
  result.push({ locals: {
197
197
  appId: require_bigint.bigIntCodec.decode(localsAppId, format),
198
198
  address: localsAddress
@@ -203,7 +203,7 @@ var AppCallDataCodec = class extends require_codec.Codec {
203
203
  const boxAppIdx = b.i ?? 0;
204
204
  const name = b.n;
205
205
  if (!name) throw new Error("Access list box reference is missing name");
206
- const boxAppId = boxAppIdx === 0 ? 0n : wireAccessReferences[boxAppIdx - 1].p;
206
+ const boxAppId = boxAppIdx === 0 ? 0n : wireResourceReferences[boxAppIdx - 1].p;
207
207
  result.push({ box: {
208
208
  appId: require_bigint.bigIntCodec.decode(boxAppId, format),
209
209
  name: require_bytes.bytesCodec.decode(name, format)
@@ -253,7 +253,7 @@ var AppCallDataCodec = class extends require_codec.Codec {
253
253
  if (encodedParams && Object.keys(encodedParams).length > 0) Object.assign(result, encodedParams);
254
254
  const wireBoxReferences = this.encodeBoxReferences(value.appId, value.appReferences, value.boxReferences, format);
255
255
  if (wireBoxReferences) result.apbx = wireBoxReferences;
256
- const wireAccessReferences = this.encodeAccessReferences(value.appId, value.accessReferences, format);
256
+ const wireAccessReferences = this.encodeResourceReferences(value.appId, value.accessReferences, format);
257
257
  if (wireAccessReferences) result.al = wireAccessReferences;
258
258
  return result;
259
259
  }
@@ -264,7 +264,7 @@ var AppCallDataCodec = class extends require_codec.Codec {
264
264
  const wireBoxReferences = value.apbx;
265
265
  const wireAccessReferences = value.al;
266
266
  const boxReferences = this.decodeBoxReferences(appReferences?.map((ar) => require_bigint.bigIntCodec.decode(ar, format)), wireBoxReferences, format);
267
- const accessReferences = this.decodeAccessReferences(wireAccessReferences, format);
267
+ const accessReferences = this.decodeResourceReferences(wireAccessReferences, format);
268
268
  return {
269
269
  ...this.appCallFieldsCodec.decode(value, format),
270
270
  ...accessReferences.length > 0 && { accessReferences },
@@ -563,6 +563,12 @@ const AppCallTransactionFieldsMeta = {
563
563
  wireKey: "apas",
564
564
  optional: true,
565
565
  codec: require_array.bigIntArrayCodec
566
+ },
567
+ {
568
+ name: "rejectVersion",
569
+ wireKey: "aprv",
570
+ optional: true,
571
+ codec: require_number.numberCodec
566
572
  }
567
573
  ]
568
574
  };