@algorandfoundation/algokit-utils 10.0.0-alpha.9 → 10.0.0-beta.2

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 (1602) hide show
  1. package/_virtual/_rolldown/runtime.js +23 -0
  2. package/abi/index.d.ts +2 -1
  3. package/abi/index.js +8 -5
  4. package/abi/index.mjs +2 -2
  5. package/account-manager.d.ts +447 -0
  6. package/account-manager.js +617 -0
  7. package/account-manager.js.map +1 -0
  8. package/account-manager.mjs +613 -0
  9. package/account-manager.mjs.map +1 -0
  10. package/account.d.ts +151 -0
  11. package/account.js +10 -0
  12. package/account.js.map +1 -0
  13. package/account.mjs +9 -0
  14. package/account.mjs.map +1 -0
  15. package/algo25/index.js +3 -3
  16. package/algo25/index.mjs +1 -2
  17. package/algod-client/index.d.ts +2 -3
  18. package/algod-client/index.js +10 -12
  19. package/algod-client/index.mjs +2 -3
  20. package/algorand-client-transaction-creator.d.ts +891 -0
  21. package/algorand-client-transaction-creator.js +735 -0
  22. package/algorand-client-transaction-creator.js.map +1 -0
  23. package/algorand-client-transaction-creator.mjs +734 -0
  24. package/algorand-client-transaction-creator.mjs.map +1 -0
  25. package/algorand-client-transaction-sender.d.ts +1098 -0
  26. package/algorand-client-transaction-sender.js +927 -0
  27. package/algorand-client-transaction-sender.js.map +1 -0
  28. package/algorand-client-transaction-sender.mjs +925 -0
  29. package/algorand-client-transaction-sender.mjs.map +1 -0
  30. package/algorand-client.d.ts +266 -0
  31. package/algorand-client.js +349 -0
  32. package/algorand-client.js.map +1 -0
  33. package/algorand-client.mjs +348 -0
  34. package/algorand-client.mjs.map +1 -0
  35. package/amount.d.ts +58 -3
  36. package/amount.js +110 -19
  37. package/amount.js.map +1 -1
  38. package/amount.mjs +101 -12
  39. package/amount.mjs.map +1 -1
  40. package/app-client.d.ts +1042 -0
  41. package/app-client.js +911 -0
  42. package/app-client.js.map +1 -0
  43. package/app-client.mjs +909 -0
  44. package/app-client.mjs.map +1 -0
  45. package/app-deployer.d.ts +159 -0
  46. package/app-deployer.js +353 -0
  47. package/app-deployer.js.map +1 -0
  48. package/app-deployer.mjs +352 -0
  49. package/app-deployer.mjs.map +1 -0
  50. package/app-factory.d.ts +791 -0
  51. package/app-factory.js +448 -0
  52. package/app-factory.js.map +1 -0
  53. package/app-factory.mjs +447 -0
  54. package/app-factory.mjs.map +1 -0
  55. package/app-manager.d.ts +323 -0
  56. package/app-manager.js +466 -0
  57. package/app-manager.js.map +1 -0
  58. package/app-manager.mjs +465 -0
  59. package/app-manager.mjs.map +1 -0
  60. package/app-spec.d.ts +200 -0
  61. package/app-spec.js +137 -0
  62. package/app-spec.js.map +1 -0
  63. package/app-spec.mjs +136 -0
  64. package/app-spec.mjs.map +1 -0
  65. package/app.d.ts +251 -0
  66. package/app.js +49 -0
  67. package/app.js.map +1 -0
  68. package/app.mjs +42 -0
  69. package/app.mjs.map +1 -0
  70. package/asset-manager.d.ts +215 -0
  71. package/asset-manager.js +169 -0
  72. package/asset-manager.js.map +1 -0
  73. package/asset-manager.mjs +168 -0
  74. package/asset-manager.mjs.map +1 -0
  75. package/async-event-emitter.d.ts +16 -0
  76. package/async-event-emitter.js +38 -0
  77. package/async-event-emitter.js.map +1 -0
  78. package/async-event-emitter.mjs +37 -0
  79. package/async-event-emitter.mjs.map +1 -0
  80. package/client-manager.d.ts +475 -0
  81. package/client-manager.js +616 -0
  82. package/client-manager.js.map +1 -0
  83. package/client-manager.mjs +615 -0
  84. package/client-manager.mjs.map +1 -0
  85. package/common/index.d.ts +28 -0
  86. package/common/index.js +109 -0
  87. package/common/index.mjs +25 -0
  88. package/composer.d.ts +942 -0
  89. package/composer.js +1583 -0
  90. package/composer.js.map +1 -0
  91. package/composer.mjs +1581 -0
  92. package/composer.mjs.map +1 -0
  93. package/config.d.ts +1 -1
  94. package/config.js +3 -4
  95. package/config.js.map +1 -1
  96. package/config.mjs +2 -3
  97. package/config.mjs.map +1 -1
  98. package/crypto/index.d.ts +5 -0
  99. package/crypto/index.js +13 -0
  100. package/crypto/index.mjs +5 -0
  101. package/debugging.d.ts +41 -0
  102. package/debugging.js +20 -0
  103. package/debugging.js.map +1 -0
  104. package/debugging.mjs +15 -0
  105. package/debugging.mjs.map +1 -0
  106. package/dispenser-client.d.ts +91 -0
  107. package/dispenser-client.js +128 -0
  108. package/dispenser-client.js.map +1 -0
  109. package/dispenser-client.mjs +127 -0
  110. package/dispenser-client.mjs.map +1 -0
  111. package/expand.d.ts +2 -0
  112. package/expand.js +0 -0
  113. package/expand.mjs +0 -0
  114. package/index.d.ts +28 -7
  115. package/index.js +45 -17
  116. package/index.mjs +21 -7
  117. package/indexer-client/index.d.ts +2 -2
  118. package/indexer-client/index.js +12 -12
  119. package/indexer-client/index.mjs +2 -3
  120. package/{indexer-lookup.d.ts → indexer-client/indexer-lookup.d.ts} +8 -11
  121. package/{indexer-lookup.js → indexer-client/indexer-lookup.js} +4 -16
  122. package/indexer-client/indexer-lookup.js.map +1 -0
  123. package/{indexer-lookup.mjs → indexer-client/indexer-lookup.mjs} +3 -11
  124. package/indexer-client/indexer-lookup.mjs.map +1 -0
  125. package/indexer.d.ts +40 -0
  126. package/indexer.js +38 -0
  127. package/indexer.js.map +1 -0
  128. package/indexer.mjs +35 -0
  129. package/indexer.mjs.map +1 -0
  130. package/instance-of.d.ts +8 -0
  131. package/kmd-account-manager.d.ts +74 -0
  132. package/kmd-account-manager.js +167 -0
  133. package/kmd-account-manager.js.map +1 -0
  134. package/kmd-account-manager.mjs +164 -0
  135. package/kmd-account-manager.mjs.map +1 -0
  136. package/kmd-client/index.d.ts +1 -2
  137. package/kmd-client/index.js +7 -12
  138. package/kmd-client/index.mjs +1 -3
  139. package/lifecycle-events.d.ts +14 -0
  140. package/lifecycle-events.js +11 -0
  141. package/lifecycle-events.js.map +1 -0
  142. package/lifecycle-events.mjs +10 -0
  143. package/lifecycle-events.mjs.map +1 -0
  144. package/logging.d.ts +13 -0
  145. package/logging.js +47 -0
  146. package/logging.js.map +1 -0
  147. package/logging.mjs +42 -0
  148. package/logging.mjs.map +1 -0
  149. package/logic-error.d.ts +39 -0
  150. package/logic-error.js +54 -0
  151. package/logic-error.js.map +1 -0
  152. package/logic-error.mjs +53 -0
  153. package/logic-error.mjs.map +1 -0
  154. package/network-client.d.ts +43 -0
  155. package/network-client.js +14 -0
  156. package/network-client.js.map +1 -0
  157. package/network-client.mjs +13 -0
  158. package/network-client.mjs.map +1 -0
  159. package/network-manager.d.ts +143 -0
  160. package/network-manager.js +190 -0
  161. package/network-manager.js.map +1 -0
  162. package/network-manager.mjs +189 -0
  163. package/network-manager.mjs.map +1 -0
  164. package/package.json +34 -8
  165. package/packages/abi/src/abi-method.d.ts +7 -12
  166. package/packages/abi/src/abi-method.js +20 -22
  167. package/packages/abi/src/abi-method.js.map +1 -1
  168. package/packages/abi/src/abi-method.mjs +18 -19
  169. package/packages/abi/src/abi-method.mjs.map +1 -1
  170. package/packages/abi/src/abi-type.d.ts +1 -6
  171. package/packages/abi/src/abi-type.js +26 -59
  172. package/packages/abi/src/abi-type.js.map +1 -1
  173. package/packages/abi/src/abi-type.mjs +23 -56
  174. package/packages/abi/src/abi-type.mjs.map +1 -1
  175. package/packages/abi/src/arc28-event.d.ts +4 -10
  176. package/packages/abi/src/arc56-contract.d.ts +66 -155
  177. package/packages/abi/src/arc56-contract.js +2 -3
  178. package/packages/abi/src/arc56-contract.js.map +1 -1
  179. package/packages/abi/src/arc56-contract.mjs +1 -2
  180. package/packages/abi/src/arc56-contract.mjs.map +1 -1
  181. package/packages/abi/src/bigint.js +1 -2
  182. package/packages/abi/src/bigint.js.map +1 -1
  183. package/packages/abi/src/bigint.mjs +1 -1
  184. package/packages/abi/src/utils.d.ts +21 -0
  185. package/packages/abi/src/utils.js +56 -0
  186. package/packages/abi/src/utils.js.map +1 -0
  187. package/packages/abi/src/utils.mjs +55 -0
  188. package/packages/abi/src/utils.mjs.map +1 -0
  189. package/packages/algo25/src/english.js +2 -4
  190. package/packages/algo25/src/english.js.map +1 -1
  191. package/packages/algo25/src/english.mjs +2 -3
  192. package/packages/algo25/src/english.mjs.map +1 -1
  193. package/packages/algo25/src/index.d.ts +2 -2
  194. package/packages/algo25/src/index.js +4 -5
  195. package/packages/algo25/src/index.js.map +1 -1
  196. package/packages/algo25/src/index.mjs +6 -7
  197. package/packages/algo25/src/index.mjs.map +1 -1
  198. package/packages/algod_client/src/apis/api-service.js +33 -34
  199. package/packages/algod_client/src/apis/api-service.js.map +1 -1
  200. package/packages/algod_client/src/apis/api-service.mjs +3 -4
  201. package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
  202. package/packages/algod_client/src/client.js +3 -4
  203. package/packages/algod_client/src/client.js.map +1 -1
  204. package/packages/algod_client/src/client.mjs +1 -2
  205. package/packages/algod_client/src/client.mjs.map +1 -1
  206. package/packages/algod_client/src/core/api-error.js +1 -2
  207. package/packages/algod_client/src/core/api-error.js.map +1 -1
  208. package/packages/algod_client/src/core/api-error.mjs +1 -1
  209. package/packages/algod_client/src/core/api-error.mjs.map +1 -1
  210. package/packages/algod_client/src/core/base-http-request.js +1 -2
  211. package/packages/algod_client/src/core/base-http-request.js.map +1 -1
  212. package/packages/algod_client/src/core/base-http-request.mjs +1 -1
  213. package/packages/algod_client/src/core/base-http-request.mjs.map +1 -1
  214. package/packages/algod_client/src/core/fetch-http-request.js +3 -4
  215. package/packages/algod_client/src/core/fetch-http-request.js.map +1 -1
  216. package/packages/algod_client/src/core/fetch-http-request.mjs +1 -2
  217. package/packages/algod_client/src/core/fetch-http-request.mjs.map +1 -1
  218. package/packages/algod_client/src/core/model-runtime.js +6 -7
  219. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  220. package/packages/algod_client/src/core/model-runtime.mjs +3 -4
  221. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  222. package/packages/algod_client/src/core/request.js +5 -6
  223. package/packages/algod_client/src/core/request.js.map +1 -1
  224. package/packages/algod_client/src/core/request.mjs +1 -2
  225. package/packages/algod_client/src/core/request.mjs.map +1 -1
  226. package/packages/algod_client/src/models/account-application-response.js +5 -6
  227. package/packages/algod_client/src/models/account-application-response.js.map +1 -1
  228. package/packages/algod_client/src/models/account-application-response.mjs +1 -2
  229. package/packages/algod_client/src/models/account-application-response.mjs.map +1 -1
  230. package/packages/algod_client/src/models/account-asset-response.js +5 -6
  231. package/packages/algod_client/src/models/account-asset-response.js.map +1 -1
  232. package/packages/algod_client/src/models/account-asset-response.mjs +1 -2
  233. package/packages/algod_client/src/models/account-asset-response.mjs.map +1 -1
  234. package/packages/algod_client/src/models/account-participation.js +3 -4
  235. package/packages/algod_client/src/models/account-participation.js.map +1 -1
  236. package/packages/algod_client/src/models/account-participation.mjs +1 -2
  237. package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
  238. package/packages/algod_client/src/models/account-state-delta.d.ts +0 -1
  239. package/packages/algod_client/src/models/account-state-delta.js +4 -5
  240. package/packages/algod_client/src/models/account-state-delta.js.map +1 -1
  241. package/packages/algod_client/src/models/account-state-delta.mjs +1 -2
  242. package/packages/algod_client/src/models/account-state-delta.mjs.map +1 -1
  243. package/packages/algod_client/src/models/account.d.ts +0 -1
  244. package/packages/algod_client/src/models/account.js +14 -15
  245. package/packages/algod_client/src/models/account.js.map +1 -1
  246. package/packages/algod_client/src/models/account.mjs +1 -2
  247. package/packages/algod_client/src/models/account.mjs.map +1 -1
  248. package/packages/algod_client/src/models/application-initial-states.d.ts +0 -1
  249. package/packages/algod_client/src/models/application-initial-states.js +5 -6
  250. package/packages/algod_client/src/models/application-initial-states.js.map +1 -1
  251. package/packages/algod_client/src/models/application-initial-states.mjs +1 -2
  252. package/packages/algod_client/src/models/application-initial-states.mjs.map +1 -1
  253. package/packages/algod_client/src/models/application-kv-storage.d.ts +0 -1
  254. package/packages/algod_client/src/models/application-kv-storage.js +5 -6
  255. package/packages/algod_client/src/models/application-kv-storage.js.map +1 -1
  256. package/packages/algod_client/src/models/application-kv-storage.mjs +1 -2
  257. package/packages/algod_client/src/models/application-kv-storage.mjs.map +1 -1
  258. package/packages/algod_client/src/models/application-local-state.d.ts +0 -1
  259. package/packages/algod_client/src/models/application-local-state.js +6 -7
  260. package/packages/algod_client/src/models/application-local-state.js.map +1 -1
  261. package/packages/algod_client/src/models/application-local-state.mjs +1 -2
  262. package/packages/algod_client/src/models/application-local-state.mjs.map +1 -1
  263. package/packages/algod_client/src/models/application-params.d.ts +0 -1
  264. package/packages/algod_client/src/models/application-params.js +8 -9
  265. package/packages/algod_client/src/models/application-params.js.map +1 -1
  266. package/packages/algod_client/src/models/application-params.mjs +1 -2
  267. package/packages/algod_client/src/models/application-params.mjs.map +1 -1
  268. package/packages/algod_client/src/models/application-state-operation.d.ts +0 -1
  269. package/packages/algod_client/src/models/application-state-operation.js +6 -7
  270. package/packages/algod_client/src/models/application-state-operation.js.map +1 -1
  271. package/packages/algod_client/src/models/application-state-operation.mjs +1 -2
  272. package/packages/algod_client/src/models/application-state-operation.mjs.map +1 -1
  273. package/packages/algod_client/src/models/application-state-schema.js +2 -3
  274. package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
  275. package/packages/algod_client/src/models/application-state-schema.mjs +1 -2
  276. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
  277. package/packages/algod_client/src/models/application.d.ts +0 -1
  278. package/packages/algod_client/src/models/application.js +4 -5
  279. package/packages/algod_client/src/models/application.js.map +1 -1
  280. package/packages/algod_client/src/models/application.mjs +1 -2
  281. package/packages/algod_client/src/models/application.mjs.map +1 -1
  282. package/packages/algod_client/src/models/asset-holding.js +3 -4
  283. package/packages/algod_client/src/models/asset-holding.js.map +1 -1
  284. package/packages/algod_client/src/models/asset-holding.mjs +1 -2
  285. package/packages/algod_client/src/models/asset-holding.mjs.map +1 -1
  286. package/packages/algod_client/src/models/asset-params.js +7 -8
  287. package/packages/algod_client/src/models/asset-params.js.map +1 -1
  288. package/packages/algod_client/src/models/asset-params.mjs +1 -2
  289. package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
  290. package/packages/algod_client/src/models/asset.d.ts +0 -1
  291. package/packages/algod_client/src/models/asset.js +4 -5
  292. package/packages/algod_client/src/models/asset.js.map +1 -1
  293. package/packages/algod_client/src/models/asset.mjs +1 -2
  294. package/packages/algod_client/src/models/asset.mjs.map +1 -1
  295. package/packages/algod_client/src/models/avm-key-value.d.ts +0 -1
  296. package/packages/algod_client/src/models/avm-key-value.js +4 -5
  297. package/packages/algod_client/src/models/avm-key-value.js.map +1 -1
  298. package/packages/algod_client/src/models/avm-key-value.mjs +1 -2
  299. package/packages/algod_client/src/models/avm-key-value.mjs.map +1 -1
  300. package/packages/algod_client/src/models/avm-value.js +4 -6
  301. package/packages/algod_client/src/models/avm-value.js.map +1 -1
  302. package/packages/algod_client/src/models/avm-value.mjs +1 -2
  303. package/packages/algod_client/src/models/avm-value.mjs.map +1 -1
  304. package/packages/algod_client/src/models/block-hash-response.js +2 -4
  305. package/packages/algod_client/src/models/block-hash-response.js.map +1 -1
  306. package/packages/algod_client/src/models/block-hash-response.mjs +1 -2
  307. package/packages/algod_client/src/models/block-hash-response.mjs.map +1 -1
  308. package/packages/algod_client/src/models/block-response.d.ts +1 -3
  309. package/packages/algod_client/src/models/block-response.js +4 -6
  310. package/packages/algod_client/src/models/block-response.js.map +1 -1
  311. package/packages/algod_client/src/models/block-response.mjs +1 -2
  312. package/packages/algod_client/src/models/block-response.mjs.map +1 -1
  313. package/packages/algod_client/src/models/block-txids-response.js +2 -4
  314. package/packages/algod_client/src/models/block-txids-response.js.map +1 -1
  315. package/packages/algod_client/src/models/block-txids-response.mjs +1 -2
  316. package/packages/algod_client/src/models/block-txids-response.mjs.map +1 -1
  317. package/packages/algod_client/src/models/block.d.ts +45 -97
  318. package/packages/algod_client/src/models/block.js +30 -31
  319. package/packages/algod_client/src/models/block.js.map +1 -1
  320. package/packages/algod_client/src/models/block.mjs +19 -20
  321. package/packages/algod_client/src/models/block.mjs.map +1 -1
  322. package/packages/algod_client/src/models/box-descriptor.js +2 -4
  323. package/packages/algod_client/src/models/box-descriptor.js.map +1 -1
  324. package/packages/algod_client/src/models/box-descriptor.mjs +1 -2
  325. package/packages/algod_client/src/models/box-descriptor.mjs.map +1 -1
  326. package/packages/algod_client/src/models/box.js +3 -4
  327. package/packages/algod_client/src/models/box.js.map +1 -1
  328. package/packages/algod_client/src/models/box.mjs +1 -2
  329. package/packages/algod_client/src/models/box.mjs.map +1 -1
  330. package/packages/algod_client/src/models/boxes-response.js +4 -5
  331. package/packages/algod_client/src/models/boxes-response.js.map +1 -1
  332. package/packages/algod_client/src/models/boxes-response.mjs +1 -2
  333. package/packages/algod_client/src/models/boxes-response.mjs.map +1 -1
  334. package/packages/algod_client/src/models/build-version.js +3 -4
  335. package/packages/algod_client/src/models/build-version.js.map +1 -1
  336. package/packages/algod_client/src/models/build-version.mjs +1 -2
  337. package/packages/algod_client/src/models/build-version.mjs.map +1 -1
  338. package/packages/algod_client/src/models/compile-response.js +4 -5
  339. package/packages/algod_client/src/models/compile-response.js.map +1 -1
  340. package/packages/algod_client/src/models/compile-response.mjs +1 -2
  341. package/packages/algod_client/src/models/compile-response.mjs.map +1 -1
  342. package/packages/algod_client/src/models/disassemble-response.js +2 -4
  343. package/packages/algod_client/src/models/disassemble-response.js.map +1 -1
  344. package/packages/algod_client/src/models/disassemble-response.mjs +1 -2
  345. package/packages/algod_client/src/models/disassemble-response.mjs.map +1 -1
  346. package/packages/algod_client/src/models/eval-delta-key-value.d.ts +0 -1
  347. package/packages/algod_client/src/models/eval-delta-key-value.js +5 -6
  348. package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -1
  349. package/packages/algod_client/src/models/eval-delta-key-value.mjs +3 -4
  350. package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -1
  351. package/packages/algod_client/src/models/eval-delta.js +5 -7
  352. package/packages/algod_client/src/models/eval-delta.js.map +1 -1
  353. package/packages/algod_client/src/models/eval-delta.mjs +3 -4
  354. package/packages/algod_client/src/models/eval-delta.mjs.map +1 -1
  355. package/packages/algod_client/src/models/genesis-allocation.js +59 -62
  356. package/packages/algod_client/src/models/genesis-allocation.js.map +1 -1
  357. package/packages/algod_client/src/models/genesis-allocation.mjs +55 -58
  358. package/packages/algod_client/src/models/genesis-allocation.mjs.map +1 -1
  359. package/packages/algod_client/src/models/genesis.js +7 -8
  360. package/packages/algod_client/src/models/genesis.js.map +1 -1
  361. package/packages/algod_client/src/models/genesis.mjs +1 -2
  362. package/packages/algod_client/src/models/genesis.mjs.map +1 -1
  363. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js +2 -4
  364. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.js.map +1 -1
  365. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs +1 -2
  366. package/packages/algod_client/src/models/get-block-time-stamp-offset-response.mjs.map +1 -1
  367. package/packages/algod_client/src/models/get-sync-round-response.js +2 -4
  368. package/packages/algod_client/src/models/get-sync-round-response.js.map +1 -1
  369. package/packages/algod_client/src/models/get-sync-round-response.mjs +1 -2
  370. package/packages/algod_client/src/models/get-sync-round-response.mjs.map +1 -1
  371. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.d.ts +0 -1
  372. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js +4 -5
  373. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.js.map +1 -1
  374. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs +1 -2
  375. package/packages/algod_client/src/models/ledger-state-delta-for-transaction-group.mjs.map +1 -1
  376. package/packages/algod_client/src/models/ledger-state-delta.d.ts +3 -8
  377. package/packages/algod_client/src/models/ledger-state-delta.js +98 -101
  378. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
  379. package/packages/algod_client/src/models/ledger-state-delta.mjs +205 -210
  380. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
  381. package/packages/algod_client/src/models/light-block-header-proof.js +3 -4
  382. package/packages/algod_client/src/models/light-block-header-proof.js.map +1 -1
  383. package/packages/algod_client/src/models/light-block-header-proof.mjs +1 -2
  384. package/packages/algod_client/src/models/light-block-header-proof.mjs.map +1 -1
  385. package/packages/algod_client/src/models/node-status-response.js +5 -6
  386. package/packages/algod_client/src/models/node-status-response.js.map +1 -1
  387. package/packages/algod_client/src/models/node-status-response.mjs +1 -2
  388. package/packages/algod_client/src/models/node-status-response.mjs.map +1 -1
  389. package/packages/algod_client/src/models/pending-transaction-response.d.ts +0 -1
  390. package/packages/algod_client/src/models/pending-transaction-response.js +9 -10
  391. package/packages/algod_client/src/models/pending-transaction-response.js.map +1 -1
  392. package/packages/algod_client/src/models/pending-transaction-response.mjs +1 -2
  393. package/packages/algod_client/src/models/pending-transaction-response.mjs.map +1 -1
  394. package/packages/algod_client/src/models/pending-transactions-response.d.ts +0 -1
  395. package/packages/algod_client/src/models/pending-transactions-response.js +5 -6
  396. package/packages/algod_client/src/models/pending-transactions-response.js.map +1 -1
  397. package/packages/algod_client/src/models/pending-transactions-response.mjs +1 -2
  398. package/packages/algod_client/src/models/pending-transactions-response.mjs.map +1 -1
  399. package/packages/algod_client/src/models/post-transactions-response.js +2 -4
  400. package/packages/algod_client/src/models/post-transactions-response.js.map +1 -1
  401. package/packages/algod_client/src/models/post-transactions-response.mjs +1 -2
  402. package/packages/algod_client/src/models/post-transactions-response.mjs.map +1 -1
  403. package/packages/algod_client/src/models/scratch-change.d.ts +0 -1
  404. package/packages/algod_client/src/models/scratch-change.js +4 -5
  405. package/packages/algod_client/src/models/scratch-change.js.map +1 -1
  406. package/packages/algod_client/src/models/scratch-change.mjs +1 -2
  407. package/packages/algod_client/src/models/scratch-change.mjs.map +1 -1
  408. package/packages/algod_client/src/models/simulate-initial-states.d.ts +0 -1
  409. package/packages/algod_client/src/models/simulate-initial-states.js +4 -5
  410. package/packages/algod_client/src/models/simulate-initial-states.js.map +1 -1
  411. package/packages/algod_client/src/models/simulate-initial-states.mjs +1 -2
  412. package/packages/algod_client/src/models/simulate-initial-states.mjs.map +1 -1
  413. package/packages/algod_client/src/models/simulate-request-transaction-group.d.ts +0 -1
  414. package/packages/algod_client/src/models/simulate-request-transaction-group.js +4 -5
  415. package/packages/algod_client/src/models/simulate-request-transaction-group.js.map +1 -1
  416. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs +1 -2
  417. package/packages/algod_client/src/models/simulate-request-transaction-group.mjs.map +1 -1
  418. package/packages/algod_client/src/models/simulate-request.d.ts +0 -1
  419. package/packages/algod_client/src/models/simulate-request.js +8 -9
  420. package/packages/algod_client/src/models/simulate-request.js.map +1 -1
  421. package/packages/algod_client/src/models/simulate-request.mjs +2 -3
  422. package/packages/algod_client/src/models/simulate-request.mjs.map +1 -1
  423. package/packages/algod_client/src/models/simulate-response.d.ts +3 -1
  424. package/packages/algod_client/src/models/simulate-response.js +18 -10
  425. package/packages/algod_client/src/models/simulate-response.js.map +1 -1
  426. package/packages/algod_client/src/models/simulate-response.mjs +10 -4
  427. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
  428. package/packages/algod_client/src/models/simulate-trace-config.js +2 -3
  429. package/packages/algod_client/src/models/simulate-trace-config.js.map +1 -1
  430. package/packages/algod_client/src/models/simulate-trace-config.mjs +1 -2
  431. package/packages/algod_client/src/models/simulate-trace-config.mjs.map +1 -1
  432. package/packages/algod_client/src/models/simulate-transaction-group-result.d.ts +0 -1
  433. package/packages/algod_client/src/models/simulate-transaction-group-result.js +7 -8
  434. package/packages/algod_client/src/models/simulate-transaction-group-result.js.map +1 -1
  435. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs +1 -2
  436. package/packages/algod_client/src/models/simulate-transaction-group-result.mjs.map +1 -1
  437. package/packages/algod_client/src/models/simulate-transaction-result.d.ts +0 -1
  438. package/packages/algod_client/src/models/simulate-transaction-result.js +7 -8
  439. package/packages/algod_client/src/models/simulate-transaction-result.js.map +1 -1
  440. package/packages/algod_client/src/models/simulate-transaction-result.mjs +1 -2
  441. package/packages/algod_client/src/models/simulate-transaction-result.mjs.map +1 -1
  442. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +0 -1
  443. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +5 -6
  444. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
  445. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +1 -2
  446. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
  447. package/packages/algod_client/src/models/simulation-eval-overrides.js +3 -4
  448. package/packages/algod_client/src/models/simulation-eval-overrides.js.map +1 -1
  449. package/packages/algod_client/src/models/simulation-eval-overrides.mjs +1 -2
  450. package/packages/algod_client/src/models/simulation-eval-overrides.mjs.map +1 -1
  451. package/packages/algod_client/src/models/simulation-opcode-trace-unit.d.ts +0 -1
  452. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js +7 -8
  453. package/packages/algod_client/src/models/simulation-opcode-trace-unit.js.map +1 -1
  454. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs +1 -2
  455. package/packages/algod_client/src/models/simulation-opcode-trace-unit.mjs.map +1 -1
  456. package/packages/algod_client/src/models/simulation-transaction-exec-trace.d.ts +0 -1
  457. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js +7 -8
  458. package/packages/algod_client/src/models/simulation-transaction-exec-trace.js.map +1 -1
  459. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs +1 -2
  460. package/packages/algod_client/src/models/simulation-transaction-exec-trace.mjs.map +1 -1
  461. package/packages/algod_client/src/models/source-map.js +4 -5
  462. package/packages/algod_client/src/models/source-map.js.map +1 -1
  463. package/packages/algod_client/src/models/source-map.mjs +1 -2
  464. package/packages/algod_client/src/models/source-map.mjs.map +1 -1
  465. package/packages/algod_client/src/models/state-delta.d.ts +0 -1
  466. package/packages/algod_client/src/models/state-delta.js +4 -5
  467. package/packages/algod_client/src/models/state-delta.js.map +1 -1
  468. package/packages/algod_client/src/models/state-delta.mjs +1 -2
  469. package/packages/algod_client/src/models/state-delta.mjs.map +1 -1
  470. package/packages/algod_client/src/models/state-proof-message.js +3 -4
  471. package/packages/algod_client/src/models/state-proof-message.js.map +1 -1
  472. package/packages/algod_client/src/models/state-proof-message.mjs +1 -2
  473. package/packages/algod_client/src/models/state-proof-message.mjs.map +1 -1
  474. package/packages/algod_client/src/models/state-proof.d.ts +0 -1
  475. package/packages/algod_client/src/models/state-proof.js +4 -5
  476. package/packages/algod_client/src/models/state-proof.js.map +1 -1
  477. package/packages/algod_client/src/models/state-proof.mjs +1 -2
  478. package/packages/algod_client/src/models/state-proof.mjs.map +1 -1
  479. package/packages/algod_client/src/models/supply-response.js +2 -3
  480. package/packages/algod_client/src/models/supply-response.js.map +1 -1
  481. package/packages/algod_client/src/models/supply-response.mjs +1 -2
  482. package/packages/algod_client/src/models/supply-response.mjs.map +1 -1
  483. package/packages/algod_client/src/models/teal-key-value-store.d.ts +0 -1
  484. package/packages/algod_client/src/models/teal-key-value-store.js +4 -5
  485. package/packages/algod_client/src/models/teal-key-value-store.js.map +1 -1
  486. package/packages/algod_client/src/models/teal-key-value-store.mjs +1 -2
  487. package/packages/algod_client/src/models/teal-key-value-store.mjs.map +1 -1
  488. package/packages/algod_client/src/models/teal-key-value.d.ts +0 -1
  489. package/packages/algod_client/src/models/teal-key-value.js +4 -5
  490. package/packages/algod_client/src/models/teal-key-value.js.map +1 -1
  491. package/packages/algod_client/src/models/teal-key-value.mjs +1 -2
  492. package/packages/algod_client/src/models/teal-key-value.mjs.map +1 -1
  493. package/packages/algod_client/src/models/teal-value.js +4 -6
  494. package/packages/algod_client/src/models/teal-value.js.map +1 -1
  495. package/packages/algod_client/src/models/teal-value.mjs +1 -2
  496. package/packages/algod_client/src/models/teal-value.mjs.map +1 -1
  497. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js +4 -5
  498. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.js.map +1 -1
  499. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs +1 -2
  500. package/packages/algod_client/src/models/transaction-group-ledger-state-deltas-for-round-response.mjs.map +1 -1
  501. package/packages/algod_client/src/models/transaction-parameters-response.js +4 -5
  502. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
  503. package/packages/algod_client/src/models/transaction-parameters-response.mjs +1 -2
  504. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
  505. package/packages/algod_client/src/models/transaction-proof.js +4 -5
  506. package/packages/algod_client/src/models/transaction-proof.js.map +1 -1
  507. package/packages/algod_client/src/models/transaction-proof.mjs +1 -2
  508. package/packages/algod_client/src/models/transaction-proof.mjs.map +1 -1
  509. package/packages/algod_client/src/models/version.d.ts +0 -1
  510. package/packages/algod_client/src/models/version.js +6 -7
  511. package/packages/algod_client/src/models/version.js.map +1 -1
  512. package/packages/algod_client/src/models/version.mjs +1 -2
  513. package/packages/algod_client/src/models/version.mjs.map +1 -1
  514. package/packages/common/src/address.d.ts +14 -3
  515. package/packages/common/src/address.js +24 -24
  516. package/packages/common/src/address.js.map +1 -1
  517. package/packages/common/src/address.mjs +17 -21
  518. package/packages/common/src/address.mjs.map +1 -1
  519. package/packages/common/src/array.d.ts +6 -0
  520. package/packages/common/src/array.js +1 -2
  521. package/packages/common/src/array.js.map +1 -1
  522. package/packages/common/src/array.mjs +1 -1
  523. package/packages/common/src/codecs/codec.d.ts +0 -1
  524. package/packages/common/src/codecs/codec.js +1 -2
  525. package/packages/common/src/codecs/codec.js.map +1 -1
  526. package/packages/common/src/codecs/codec.mjs +1 -1
  527. package/packages/common/src/codecs/codec.mjs.map +1 -1
  528. package/packages/common/src/codecs/composite/array.d.ts +25 -0
  529. package/packages/common/src/codecs/composite/array.js +9 -9
  530. package/packages/common/src/codecs/composite/array.js.map +1 -1
  531. package/packages/common/src/codecs/composite/array.mjs +2 -3
  532. package/packages/common/src/codecs/composite/array.mjs.map +1 -1
  533. package/packages/common/src/codecs/composite/map.d.ts +26 -0
  534. package/packages/common/src/codecs/composite/map.js +2 -3
  535. package/packages/common/src/codecs/composite/map.js.map +1 -1
  536. package/packages/common/src/codecs/composite/map.mjs +1 -2
  537. package/packages/common/src/codecs/composite/map.mjs.map +1 -1
  538. package/packages/common/src/codecs/composite/record.d.ts +19 -0
  539. package/packages/common/src/codecs/composite/record.js +3 -4
  540. package/packages/common/src/codecs/composite/record.js.map +1 -1
  541. package/packages/common/src/codecs/composite/record.mjs +1 -2
  542. package/packages/common/src/codecs/composite/record.mjs.map +1 -1
  543. package/packages/common/src/codecs/models/array-model.d.ts +19 -0
  544. package/packages/common/src/codecs/models/array-model.js +2 -3
  545. package/packages/common/src/codecs/models/array-model.js.map +1 -1
  546. package/packages/common/src/codecs/models/array-model.mjs +1 -2
  547. package/packages/common/src/codecs/models/array-model.mjs.map +1 -1
  548. package/packages/common/src/codecs/models/object-model.js +6 -8
  549. package/packages/common/src/codecs/models/object-model.js.map +1 -1
  550. package/packages/common/src/codecs/models/object-model.mjs +4 -6
  551. package/packages/common/src/codecs/models/object-model.mjs.map +1 -1
  552. package/packages/common/src/codecs/models/primitive-model.d.ts +19 -0
  553. package/packages/common/src/codecs/models/primitive-model.js +2 -3
  554. package/packages/common/src/codecs/models/primitive-model.js.map +1 -1
  555. package/packages/common/src/codecs/models/primitive-model.mjs +1 -2
  556. package/packages/common/src/codecs/models/primitive-model.mjs.map +1 -1
  557. package/packages/common/src/codecs/primitives/address.d.ts +16 -0
  558. package/packages/common/src/codecs/primitives/address.js +7 -8
  559. package/packages/common/src/codecs/primitives/address.js.map +1 -1
  560. package/packages/common/src/codecs/primitives/address.mjs +4 -5
  561. package/packages/common/src/codecs/primitives/address.mjs.map +1 -1
  562. package/packages/common/src/codecs/primitives/bigint.d.ts +13 -0
  563. package/packages/common/src/codecs/primitives/bigint.js +2 -3
  564. package/packages/common/src/codecs/primitives/bigint.js.map +1 -1
  565. package/packages/common/src/codecs/primitives/bigint.mjs +1 -2
  566. package/packages/common/src/codecs/primitives/bigint.mjs.map +1 -1
  567. package/packages/common/src/codecs/primitives/boolean.d.ts +10 -0
  568. package/packages/common/src/codecs/primitives/boolean.js +2 -3
  569. package/packages/common/src/codecs/primitives/boolean.js.map +1 -1
  570. package/packages/common/src/codecs/primitives/boolean.mjs +1 -2
  571. package/packages/common/src/codecs/primitives/boolean.mjs.map +1 -1
  572. package/packages/common/src/codecs/primitives/bytes-base64.d.ts +15 -0
  573. package/packages/common/src/codecs/primitives/bytes-base64.js +25 -0
  574. package/packages/common/src/codecs/primitives/bytes-base64.js.map +1 -0
  575. package/packages/common/src/codecs/primitives/bytes-base64.mjs +24 -0
  576. package/packages/common/src/codecs/primitives/bytes-base64.mjs.map +1 -0
  577. package/packages/common/src/codecs/primitives/bytes.d.ts +15 -0
  578. package/packages/common/src/codecs/primitives/bytes.js +3 -4
  579. package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
  580. package/packages/common/src/codecs/primitives/bytes.mjs +1 -2
  581. package/packages/common/src/codecs/primitives/bytes.mjs.map +1 -1
  582. package/packages/common/src/codecs/primitives/fixed-bytes.d.ts +19 -0
  583. package/packages/common/src/codecs/primitives/fixed-bytes.js +3 -4
  584. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
  585. package/packages/common/src/codecs/primitives/fixed-bytes.mjs +1 -2
  586. package/packages/common/src/codecs/primitives/fixed-bytes.mjs.map +1 -1
  587. package/packages/common/src/codecs/primitives/number.d.ts +11 -0
  588. package/packages/common/src/codecs/primitives/number.js +2 -3
  589. package/packages/common/src/codecs/primitives/number.js.map +1 -1
  590. package/packages/common/src/codecs/primitives/number.mjs +1 -2
  591. package/packages/common/src/codecs/primitives/number.mjs.map +1 -1
  592. package/packages/common/src/codecs/primitives/string.d.ts +13 -0
  593. package/packages/common/src/codecs/primitives/string.js +3 -4
  594. package/packages/common/src/codecs/primitives/string.js.map +1 -1
  595. package/packages/common/src/codecs/primitives/string.mjs +1 -2
  596. package/packages/common/src/codecs/primitives/string.mjs.map +1 -1
  597. package/packages/common/src/codecs/primitives/unknown.d.ts +26 -0
  598. package/packages/common/src/codecs/primitives/unknown.js +10 -11
  599. package/packages/common/src/codecs/primitives/unknown.js.map +1 -1
  600. package/packages/common/src/codecs/primitives/unknown.mjs +3 -4
  601. package/packages/common/src/codecs/primitives/unknown.mjs.map +1 -1
  602. package/packages/common/src/codecs/types.d.ts +12 -2
  603. package/packages/common/src/codecs/wire.d.ts +17 -1
  604. package/packages/common/src/codecs/wire.js +2 -3
  605. package/packages/common/src/codecs/wire.js.map +1 -1
  606. package/packages/common/src/codecs/wire.mjs +1 -2
  607. package/packages/common/src/codecs/wire.mjs.map +1 -1
  608. package/packages/common/src/constants.d.ts +34 -0
  609. package/packages/common/src/constants.js +4 -3
  610. package/packages/common/src/constants.js.map +1 -1
  611. package/packages/common/src/constants.mjs +4 -3
  612. package/packages/common/src/constants.mjs.map +1 -1
  613. package/packages/common/src/encoding.d.ts +10 -0
  614. package/packages/common/src/encoding.js +30 -0
  615. package/packages/common/src/encoding.js.map +1 -0
  616. package/packages/common/src/encoding.mjs +24 -0
  617. package/packages/common/src/encoding.mjs.map +1 -0
  618. package/packages/common/src/json.d.ts +17 -0
  619. package/packages/common/src/json.js +3 -4
  620. package/packages/common/src/json.js.map +1 -1
  621. package/packages/common/src/json.mjs +3 -4
  622. package/packages/common/src/json.mjs.map +1 -1
  623. package/packages/common/src/msgpack.d.ts +11 -0
  624. package/packages/common/src/msgpack.js +2 -3
  625. package/packages/common/src/msgpack.js.map +1 -1
  626. package/packages/common/src/msgpack.mjs +1 -2
  627. package/packages/common/src/msgpack.mjs.map +1 -1
  628. package/packages/{sdk/src/logic → common/src}/sourcemap.d.ts +1 -1
  629. package/packages/{sdk/src/logic → common/src}/sourcemap.js +4 -5
  630. package/packages/common/src/sourcemap.js.map +1 -0
  631. package/packages/{sdk/src/logic → common/src}/sourcemap.mjs +2 -3
  632. package/packages/common/src/sourcemap.mjs.map +1 -0
  633. package/packages/crypto/src/ed25519.d.ts +60 -0
  634. package/packages/crypto/src/ed25519.js +58 -0
  635. package/packages/crypto/src/ed25519.js.map +1 -0
  636. package/packages/crypto/src/ed25519.mjs +53 -0
  637. package/packages/crypto/src/ed25519.mjs.map +1 -0
  638. package/packages/crypto/src/hash.d.ts +8 -0
  639. package/packages/crypto/src/hash.js +14 -0
  640. package/packages/crypto/src/hash.js.map +1 -0
  641. package/packages/crypto/src/hash.mjs +13 -0
  642. package/packages/crypto/src/hash.mjs.map +1 -0
  643. package/packages/crypto/src/hd.d.ts +36 -0
  644. package/packages/crypto/src/hd.js +36 -0
  645. package/packages/crypto/src/hd.js.map +1 -0
  646. package/packages/crypto/src/hd.mjs +35 -0
  647. package/packages/crypto/src/hd.mjs.map +1 -0
  648. package/packages/crypto/src/index.d.ts +28 -0
  649. package/packages/crypto/src/index.js +142 -0
  650. package/packages/crypto/src/index.js.map +1 -0
  651. package/packages/crypto/src/index.mjs +139 -0
  652. package/packages/crypto/src/index.mjs.map +1 -0
  653. package/packages/indexer_client/src/apis/api-service.js +19 -20
  654. package/packages/indexer_client/src/apis/api-service.js.map +1 -1
  655. package/packages/indexer_client/src/apis/api-service.mjs +1 -2
  656. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
  657. package/packages/indexer_client/src/client.js +3 -4
  658. package/packages/indexer_client/src/client.js.map +1 -1
  659. package/packages/indexer_client/src/client.mjs +1 -2
  660. package/packages/indexer_client/src/client.mjs.map +1 -1
  661. package/packages/indexer_client/src/core/api-error.js +1 -2
  662. package/packages/indexer_client/src/core/api-error.js.map +1 -1
  663. package/packages/indexer_client/src/core/api-error.mjs +1 -1
  664. package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
  665. package/packages/indexer_client/src/core/base-http-request.js +1 -2
  666. package/packages/indexer_client/src/core/base-http-request.js.map +1 -1
  667. package/packages/indexer_client/src/core/base-http-request.mjs +1 -1
  668. package/packages/indexer_client/src/core/base-http-request.mjs.map +1 -1
  669. package/packages/indexer_client/src/core/fetch-http-request.js +3 -4
  670. package/packages/indexer_client/src/core/fetch-http-request.js.map +1 -1
  671. package/packages/indexer_client/src/core/fetch-http-request.mjs +1 -2
  672. package/packages/indexer_client/src/core/fetch-http-request.mjs.map +1 -1
  673. package/packages/indexer_client/src/core/model-runtime.js +2 -18
  674. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  675. package/packages/indexer_client/src/core/model-runtime.mjs +2 -15
  676. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  677. package/packages/indexer_client/src/core/request.js +5 -6
  678. package/packages/indexer_client/src/core/request.js.map +1 -1
  679. package/packages/indexer_client/src/core/request.mjs +1 -2
  680. package/packages/indexer_client/src/core/request.mjs.map +1 -1
  681. package/packages/indexer_client/src/models/account-participation.js +3 -4
  682. package/packages/indexer_client/src/models/account-participation.js.map +1 -1
  683. package/packages/indexer_client/src/models/account-participation.mjs +1 -2
  684. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
  685. package/packages/indexer_client/src/models/account-response.js +4 -5
  686. package/packages/indexer_client/src/models/account-response.js.map +1 -1
  687. package/packages/indexer_client/src/models/account-response.mjs +1 -2
  688. package/packages/indexer_client/src/models/account-response.mjs.map +1 -1
  689. package/packages/indexer_client/src/models/account-state-delta.d.ts +0 -1
  690. package/packages/indexer_client/src/models/account-state-delta.js +4 -5
  691. package/packages/indexer_client/src/models/account-state-delta.js.map +1 -1
  692. package/packages/indexer_client/src/models/account-state-delta.mjs +1 -2
  693. package/packages/indexer_client/src/models/account-state-delta.mjs.map +1 -1
  694. package/packages/indexer_client/src/models/account.d.ts +0 -1
  695. package/packages/indexer_client/src/models/account.js +14 -15
  696. package/packages/indexer_client/src/models/account.js.map +1 -1
  697. package/packages/indexer_client/src/models/account.mjs +1 -2
  698. package/packages/indexer_client/src/models/account.mjs.map +1 -1
  699. package/packages/indexer_client/src/models/accounts-response.js +6 -7
  700. package/packages/indexer_client/src/models/accounts-response.js.map +1 -1
  701. package/packages/indexer_client/src/models/accounts-response.mjs +1 -2
  702. package/packages/indexer_client/src/models/accounts-response.mjs.map +1 -1
  703. package/packages/indexer_client/src/models/application-local-state.d.ts +0 -1
  704. package/packages/indexer_client/src/models/application-local-state.js +7 -8
  705. package/packages/indexer_client/src/models/application-local-state.js.map +1 -1
  706. package/packages/indexer_client/src/models/application-local-state.mjs +1 -2
  707. package/packages/indexer_client/src/models/application-local-state.mjs.map +1 -1
  708. package/packages/indexer_client/src/models/application-local-states-response.js +6 -7
  709. package/packages/indexer_client/src/models/application-local-states-response.js.map +1 -1
  710. package/packages/indexer_client/src/models/application-local-states-response.mjs +1 -2
  711. package/packages/indexer_client/src/models/application-local-states-response.mjs.map +1 -1
  712. package/packages/indexer_client/src/models/application-log-data.js +3 -4
  713. package/packages/indexer_client/src/models/application-log-data.js.map +1 -1
  714. package/packages/indexer_client/src/models/application-log-data.mjs +1 -2
  715. package/packages/indexer_client/src/models/application-log-data.mjs.map +1 -1
  716. package/packages/indexer_client/src/models/application-logs-response.js +6 -7
  717. package/packages/indexer_client/src/models/application-logs-response.js.map +1 -1
  718. package/packages/indexer_client/src/models/application-logs-response.mjs +1 -2
  719. package/packages/indexer_client/src/models/application-logs-response.mjs.map +1 -1
  720. package/packages/indexer_client/src/models/application-params.d.ts +0 -1
  721. package/packages/indexer_client/src/models/application-params.js +8 -9
  722. package/packages/indexer_client/src/models/application-params.js.map +1 -1
  723. package/packages/indexer_client/src/models/application-params.mjs +1 -2
  724. package/packages/indexer_client/src/models/application-params.mjs.map +1 -1
  725. package/packages/indexer_client/src/models/application-response.js +4 -5
  726. package/packages/indexer_client/src/models/application-response.js.map +1 -1
  727. package/packages/indexer_client/src/models/application-response.mjs +1 -2
  728. package/packages/indexer_client/src/models/application-response.mjs.map +1 -1
  729. package/packages/indexer_client/src/models/application-state-schema.js +2 -3
  730. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
  731. package/packages/indexer_client/src/models/application-state-schema.mjs +1 -2
  732. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
  733. package/packages/indexer_client/src/models/application.d.ts +0 -1
  734. package/packages/indexer_client/src/models/application.js +5 -6
  735. package/packages/indexer_client/src/models/application.js.map +1 -1
  736. package/packages/indexer_client/src/models/application.mjs +1 -2
  737. package/packages/indexer_client/src/models/application.mjs.map +1 -1
  738. package/packages/indexer_client/src/models/applications-response.js +6 -7
  739. package/packages/indexer_client/src/models/applications-response.js.map +1 -1
  740. package/packages/indexer_client/src/models/applications-response.mjs +1 -2
  741. package/packages/indexer_client/src/models/applications-response.mjs.map +1 -1
  742. package/packages/indexer_client/src/models/asset-balances-response.js +6 -7
  743. package/packages/indexer_client/src/models/asset-balances-response.js.map +1 -1
  744. package/packages/indexer_client/src/models/asset-balances-response.mjs +1 -2
  745. package/packages/indexer_client/src/models/asset-balances-response.mjs.map +1 -1
  746. package/packages/indexer_client/src/models/asset-holding.js +3 -4
  747. package/packages/indexer_client/src/models/asset-holding.js.map +1 -1
  748. package/packages/indexer_client/src/models/asset-holding.mjs +1 -2
  749. package/packages/indexer_client/src/models/asset-holding.mjs.map +1 -1
  750. package/packages/indexer_client/src/models/asset-holdings-response.js +6 -7
  751. package/packages/indexer_client/src/models/asset-holdings-response.js.map +1 -1
  752. package/packages/indexer_client/src/models/asset-holdings-response.mjs +1 -2
  753. package/packages/indexer_client/src/models/asset-holdings-response.mjs.map +1 -1
  754. package/packages/indexer_client/src/models/asset-params.js +7 -8
  755. package/packages/indexer_client/src/models/asset-params.js.map +1 -1
  756. package/packages/indexer_client/src/models/asset-params.mjs +1 -2
  757. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
  758. package/packages/indexer_client/src/models/asset-response.js +4 -5
  759. package/packages/indexer_client/src/models/asset-response.js.map +1 -1
  760. package/packages/indexer_client/src/models/asset-response.mjs +1 -2
  761. package/packages/indexer_client/src/models/asset-response.mjs.map +1 -1
  762. package/packages/indexer_client/src/models/asset.d.ts +0 -1
  763. package/packages/indexer_client/src/models/asset.js +5 -6
  764. package/packages/indexer_client/src/models/asset.js.map +1 -1
  765. package/packages/indexer_client/src/models/asset.mjs +1 -2
  766. package/packages/indexer_client/src/models/asset.mjs.map +1 -1
  767. package/packages/indexer_client/src/models/assets-response.js +6 -7
  768. package/packages/indexer_client/src/models/assets-response.js.map +1 -1
  769. package/packages/indexer_client/src/models/assets-response.mjs +1 -2
  770. package/packages/indexer_client/src/models/assets-response.mjs.map +1 -1
  771. package/packages/indexer_client/src/models/block-headers-response.js +6 -7
  772. package/packages/indexer_client/src/models/block-headers-response.js.map +1 -1
  773. package/packages/indexer_client/src/models/block-headers-response.mjs +1 -2
  774. package/packages/indexer_client/src/models/block-headers-response.mjs.map +1 -1
  775. package/packages/indexer_client/src/models/block-rewards.js +3 -4
  776. package/packages/indexer_client/src/models/block-rewards.js.map +1 -1
  777. package/packages/indexer_client/src/models/block-rewards.mjs +1 -2
  778. package/packages/indexer_client/src/models/block-rewards.mjs.map +1 -1
  779. package/packages/indexer_client/src/models/block-upgrade-state.js +4 -5
  780. package/packages/indexer_client/src/models/block-upgrade-state.js.map +1 -1
  781. package/packages/indexer_client/src/models/block-upgrade-state.mjs +1 -2
  782. package/packages/indexer_client/src/models/block-upgrade-state.mjs.map +1 -1
  783. package/packages/indexer_client/src/models/block-upgrade-vote.js +4 -5
  784. package/packages/indexer_client/src/models/block-upgrade-vote.js.map +1 -1
  785. package/packages/indexer_client/src/models/block-upgrade-vote.mjs +1 -2
  786. package/packages/indexer_client/src/models/block-upgrade-vote.mjs.map +1 -1
  787. package/packages/indexer_client/src/models/block.d.ts +5 -6
  788. package/packages/indexer_client/src/models/block.js +19 -20
  789. package/packages/indexer_client/src/models/block.js.map +1 -1
  790. package/packages/indexer_client/src/models/block.mjs +6 -7
  791. package/packages/indexer_client/src/models/block.mjs.map +1 -1
  792. package/packages/indexer_client/src/models/box-descriptor.js +2 -4
  793. package/packages/indexer_client/src/models/box-descriptor.js.map +1 -1
  794. package/packages/indexer_client/src/models/box-descriptor.mjs +1 -2
  795. package/packages/indexer_client/src/models/box-descriptor.mjs.map +1 -1
  796. package/packages/indexer_client/src/models/box-reference.js +3 -4
  797. package/packages/indexer_client/src/models/box-reference.js.map +1 -1
  798. package/packages/indexer_client/src/models/box-reference.mjs +1 -2
  799. package/packages/indexer_client/src/models/box-reference.mjs.map +1 -1
  800. package/packages/indexer_client/src/models/box.js +3 -4
  801. package/packages/indexer_client/src/models/box.js.map +1 -1
  802. package/packages/indexer_client/src/models/box.mjs +1 -2
  803. package/packages/indexer_client/src/models/box.mjs.map +1 -1
  804. package/packages/indexer_client/src/models/boxes-response.js +6 -7
  805. package/packages/indexer_client/src/models/boxes-response.js.map +1 -1
  806. package/packages/indexer_client/src/models/boxes-response.mjs +1 -2
  807. package/packages/indexer_client/src/models/boxes-response.mjs.map +1 -1
  808. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +0 -1
  809. package/packages/indexer_client/src/models/eval-delta-key-value.js +4 -5
  810. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
  811. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +1 -2
  812. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
  813. package/packages/indexer_client/src/models/eval-delta.js +4 -6
  814. package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
  815. package/packages/indexer_client/src/models/eval-delta.mjs +1 -2
  816. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
  817. package/packages/indexer_client/src/models/hash-factory.js +2 -4
  818. package/packages/indexer_client/src/models/hash-factory.js.map +1 -1
  819. package/packages/indexer_client/src/models/hash-factory.mjs +1 -2
  820. package/packages/indexer_client/src/models/hash-factory.mjs.map +1 -1
  821. package/packages/indexer_client/src/models/hb-proof-fields.js +2 -3
  822. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
  823. package/packages/indexer_client/src/models/hb-proof-fields.mjs +1 -2
  824. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
  825. package/packages/indexer_client/src/models/health-check.js +7 -8
  826. package/packages/indexer_client/src/models/health-check.js.map +1 -1
  827. package/packages/indexer_client/src/models/health-check.mjs +1 -2
  828. package/packages/indexer_client/src/models/health-check.mjs.map +1 -1
  829. package/packages/indexer_client/src/models/holding-ref.d.ts +0 -1
  830. package/packages/indexer_client/src/models/holding-ref.js +3 -4
  831. package/packages/indexer_client/src/models/holding-ref.js.map +1 -1
  832. package/packages/indexer_client/src/models/holding-ref.mjs +1 -2
  833. package/packages/indexer_client/src/models/holding-ref.mjs.map +1 -1
  834. package/packages/indexer_client/src/models/indexer-state-proof-message.js +3 -4
  835. package/packages/indexer_client/src/models/indexer-state-proof-message.js.map +1 -1
  836. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs +1 -2
  837. package/packages/indexer_client/src/models/indexer-state-proof-message.mjs.map +1 -1
  838. package/packages/indexer_client/src/models/locals-ref.d.ts +0 -1
  839. package/packages/indexer_client/src/models/locals-ref.js +3 -4
  840. package/packages/indexer_client/src/models/locals-ref.js.map +1 -1
  841. package/packages/indexer_client/src/models/locals-ref.mjs +1 -2
  842. package/packages/indexer_client/src/models/locals-ref.mjs.map +1 -1
  843. package/packages/indexer_client/src/models/merkle-array-proof.js +5 -6
  844. package/packages/indexer_client/src/models/merkle-array-proof.js.map +1 -1
  845. package/packages/indexer_client/src/models/merkle-array-proof.mjs +1 -2
  846. package/packages/indexer_client/src/models/merkle-array-proof.mjs.map +1 -1
  847. package/packages/indexer_client/src/models/mini-asset-holding.js +4 -6
  848. package/packages/indexer_client/src/models/mini-asset-holding.js.map +1 -1
  849. package/packages/indexer_client/src/models/mini-asset-holding.mjs +1 -2
  850. package/packages/indexer_client/src/models/mini-asset-holding.mjs.map +1 -1
  851. package/packages/indexer_client/src/models/on-completion.js +2 -4
  852. package/packages/indexer_client/src/models/on-completion.js.map +1 -1
  853. package/packages/indexer_client/src/models/on-completion.mjs +1 -2
  854. package/packages/indexer_client/src/models/on-completion.mjs.map +1 -1
  855. package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
  856. package/packages/indexer_client/src/models/participation-updates.js +4 -5
  857. package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
  858. package/packages/indexer_client/src/models/participation-updates.mjs +3 -4
  859. package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
  860. package/packages/indexer_client/src/models/resource-ref.d.ts +0 -1
  861. package/packages/indexer_client/src/models/resource-ref.js +7 -8
  862. package/packages/indexer_client/src/models/resource-ref.js.map +1 -1
  863. package/packages/indexer_client/src/models/resource-ref.mjs +1 -2
  864. package/packages/indexer_client/src/models/resource-ref.mjs.map +1 -1
  865. package/packages/indexer_client/src/models/state-delta.d.ts +0 -1
  866. package/packages/indexer_client/src/models/state-delta.js +4 -5
  867. package/packages/indexer_client/src/models/state-delta.js.map +1 -1
  868. package/packages/indexer_client/src/models/state-delta.mjs +1 -2
  869. package/packages/indexer_client/src/models/state-delta.mjs.map +1 -1
  870. package/packages/indexer_client/src/models/state-proof-fields.d.ts +0 -1
  871. package/packages/indexer_client/src/models/state-proof-fields.js +8 -9
  872. package/packages/indexer_client/src/models/state-proof-fields.js.map +1 -1
  873. package/packages/indexer_client/src/models/state-proof-fields.mjs +1 -2
  874. package/packages/indexer_client/src/models/state-proof-fields.mjs.map +1 -1
  875. package/packages/indexer_client/src/models/state-proof-participant.js +4 -5
  876. package/packages/indexer_client/src/models/state-proof-participant.js.map +1 -1
  877. package/packages/indexer_client/src/models/state-proof-participant.mjs +1 -2
  878. package/packages/indexer_client/src/models/state-proof-participant.mjs.map +1 -1
  879. package/packages/indexer_client/src/models/state-proof-reveal.js +5 -6
  880. package/packages/indexer_client/src/models/state-proof-reveal.js.map +1 -1
  881. package/packages/indexer_client/src/models/state-proof-reveal.mjs +1 -2
  882. package/packages/indexer_client/src/models/state-proof-reveal.mjs.map +1 -1
  883. package/packages/indexer_client/src/models/state-proof-sig-slot.js +4 -5
  884. package/packages/indexer_client/src/models/state-proof-sig-slot.js.map +1 -1
  885. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs +1 -2
  886. package/packages/indexer_client/src/models/state-proof-sig-slot.mjs.map +1 -1
  887. package/packages/indexer_client/src/models/state-proof-signature.js +5 -6
  888. package/packages/indexer_client/src/models/state-proof-signature.js.map +1 -1
  889. package/packages/indexer_client/src/models/state-proof-signature.mjs +1 -2
  890. package/packages/indexer_client/src/models/state-proof-signature.mjs.map +1 -1
  891. package/packages/indexer_client/src/models/state-proof-tracking.js +4 -5
  892. package/packages/indexer_client/src/models/state-proof-tracking.js.map +1 -1
  893. package/packages/indexer_client/src/models/state-proof-tracking.mjs +1 -2
  894. package/packages/indexer_client/src/models/state-proof-tracking.mjs.map +1 -1
  895. package/packages/indexer_client/src/models/state-proof-verifier.js +3 -5
  896. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
  897. package/packages/indexer_client/src/models/state-proof-verifier.mjs +1 -2
  898. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
  899. package/packages/indexer_client/src/models/state-schema.js +2 -3
  900. package/packages/indexer_client/src/models/state-schema.js.map +1 -1
  901. package/packages/indexer_client/src/models/state-schema.mjs +1 -2
  902. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
  903. package/packages/indexer_client/src/models/teal-key-value-store.d.ts +0 -1
  904. package/packages/indexer_client/src/models/teal-key-value-store.js +4 -5
  905. package/packages/indexer_client/src/models/teal-key-value-store.js.map +1 -1
  906. package/packages/indexer_client/src/models/teal-key-value-store.mjs +1 -2
  907. package/packages/indexer_client/src/models/teal-key-value-store.mjs.map +1 -1
  908. package/packages/indexer_client/src/models/teal-key-value.d.ts +0 -1
  909. package/packages/indexer_client/src/models/teal-key-value.js +4 -5
  910. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
  911. package/packages/indexer_client/src/models/teal-key-value.mjs +1 -2
  912. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
  913. package/packages/indexer_client/src/models/teal-value.js +4 -6
  914. package/packages/indexer_client/src/models/teal-value.js.map +1 -1
  915. package/packages/indexer_client/src/models/teal-value.mjs +1 -2
  916. package/packages/indexer_client/src/models/teal-value.mjs.map +1 -1
  917. package/packages/indexer_client/src/models/transaction-application.d.ts +0 -1
  918. package/packages/indexer_client/src/models/transaction-application.js +11 -12
  919. package/packages/indexer_client/src/models/transaction-application.js.map +1 -1
  920. package/packages/indexer_client/src/models/transaction-application.mjs +1 -2
  921. package/packages/indexer_client/src/models/transaction-application.mjs.map +1 -1
  922. package/packages/indexer_client/src/models/transaction-asset-config.d.ts +0 -1
  923. package/packages/indexer_client/src/models/transaction-asset-config.js +4 -5
  924. package/packages/indexer_client/src/models/transaction-asset-config.js.map +1 -1
  925. package/packages/indexer_client/src/models/transaction-asset-config.mjs +1 -2
  926. package/packages/indexer_client/src/models/transaction-asset-config.mjs.map +1 -1
  927. package/packages/indexer_client/src/models/transaction-asset-freeze.js +4 -6
  928. package/packages/indexer_client/src/models/transaction-asset-freeze.js.map +1 -1
  929. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs +1 -2
  930. package/packages/indexer_client/src/models/transaction-asset-freeze.mjs.map +1 -1
  931. package/packages/indexer_client/src/models/transaction-asset-transfer.js +3 -4
  932. package/packages/indexer_client/src/models/transaction-asset-transfer.js.map +1 -1
  933. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs +1 -2
  934. package/packages/indexer_client/src/models/transaction-asset-transfer.mjs.map +1 -1
  935. package/packages/indexer_client/src/models/transaction-heartbeat.d.ts +0 -1
  936. package/packages/indexer_client/src/models/transaction-heartbeat.js +7 -8
  937. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
  938. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +1 -2
  939. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
  940. package/packages/indexer_client/src/models/transaction-keyreg.js +4 -5
  941. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
  942. package/packages/indexer_client/src/models/transaction-keyreg.mjs +1 -2
  943. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
  944. package/packages/indexer_client/src/models/transaction-payment.js +3 -4
  945. package/packages/indexer_client/src/models/transaction-payment.js.map +1 -1
  946. package/packages/indexer_client/src/models/transaction-payment.mjs +1 -2
  947. package/packages/indexer_client/src/models/transaction-payment.mjs.map +1 -1
  948. package/packages/indexer_client/src/models/transaction-response.js +4 -5
  949. package/packages/indexer_client/src/models/transaction-response.js.map +1 -1
  950. package/packages/indexer_client/src/models/transaction-response.mjs +1 -2
  951. package/packages/indexer_client/src/models/transaction-response.mjs.map +1 -1
  952. package/packages/indexer_client/src/models/transaction-signature-logicsig.d.ts +0 -1
  953. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +6 -7
  954. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
  955. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +1 -2
  956. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
  957. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +2 -3
  958. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
  959. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +1 -2
  960. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
  961. package/packages/indexer_client/src/models/transaction-signature-multisig.d.ts +0 -1
  962. package/packages/indexer_client/src/models/transaction-signature-multisig.js +5 -6
  963. package/packages/indexer_client/src/models/transaction-signature-multisig.js.map +1 -1
  964. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs +1 -2
  965. package/packages/indexer_client/src/models/transaction-signature-multisig.mjs.map +1 -1
  966. package/packages/indexer_client/src/models/transaction-signature.d.ts +0 -1
  967. package/packages/indexer_client/src/models/transaction-signature.js +5 -6
  968. package/packages/indexer_client/src/models/transaction-signature.js.map +1 -1
  969. package/packages/indexer_client/src/models/transaction-signature.mjs +1 -2
  970. package/packages/indexer_client/src/models/transaction-signature.mjs.map +1 -1
  971. package/packages/indexer_client/src/models/transaction-state-proof.d.ts +1 -2
  972. package/packages/indexer_client/src/models/transaction-state-proof.js +6 -7
  973. package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -1
  974. package/packages/indexer_client/src/models/transaction-state-proof.mjs +3 -4
  975. package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -1
  976. package/packages/indexer_client/src/models/transaction.d.ts +0 -1
  977. package/packages/indexer_client/src/models/transaction.js +21 -22
  978. package/packages/indexer_client/src/models/transaction.js.map +1 -1
  979. package/packages/indexer_client/src/models/transaction.mjs +1 -2
  980. package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
  981. package/packages/indexer_client/src/models/transactions-response.js +6 -7
  982. package/packages/indexer_client/src/models/transactions-response.js.map +1 -1
  983. package/packages/indexer_client/src/models/transactions-response.mjs +1 -2
  984. package/packages/indexer_client/src/models/transactions-response.mjs.map +1 -1
  985. package/packages/kmd_client/src/apis/api-service.js +44 -46
  986. package/packages/kmd_client/src/apis/api-service.js.map +1 -1
  987. package/packages/kmd_client/src/apis/api-service.mjs +3 -5
  988. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
  989. package/packages/kmd_client/src/client.js +3 -4
  990. package/packages/kmd_client/src/client.js.map +1 -1
  991. package/packages/kmd_client/src/client.mjs +1 -2
  992. package/packages/kmd_client/src/client.mjs.map +1 -1
  993. package/packages/kmd_client/src/core/api-error.js +1 -2
  994. package/packages/kmd_client/src/core/api-error.js.map +1 -1
  995. package/packages/kmd_client/src/core/api-error.mjs +1 -1
  996. package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
  997. package/packages/kmd_client/src/core/base-http-request.js +1 -2
  998. package/packages/kmd_client/src/core/base-http-request.js.map +1 -1
  999. package/packages/kmd_client/src/core/base-http-request.mjs +1 -1
  1000. package/packages/kmd_client/src/core/base-http-request.mjs.map +1 -1
  1001. package/packages/kmd_client/src/core/fetch-http-request.js +3 -4
  1002. package/packages/kmd_client/src/core/fetch-http-request.js.map +1 -1
  1003. package/packages/kmd_client/src/core/fetch-http-request.mjs +1 -2
  1004. package/packages/kmd_client/src/core/fetch-http-request.mjs.map +1 -1
  1005. package/packages/kmd_client/src/core/model-runtime.js +5 -16
  1006. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  1007. package/packages/kmd_client/src/core/model-runtime.mjs +4 -13
  1008. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  1009. package/packages/kmd_client/src/core/request.js +5 -6
  1010. package/packages/kmd_client/src/core/request.js.map +1 -1
  1011. package/packages/kmd_client/src/core/request.mjs +1 -2
  1012. package/packages/kmd_client/src/core/request.mjs.map +1 -1
  1013. package/packages/kmd_client/src/models/create-wallet-request.js +3 -4
  1014. package/packages/kmd_client/src/models/create-wallet-request.js.map +1 -1
  1015. package/packages/kmd_client/src/models/create-wallet-request.mjs +1 -2
  1016. package/packages/kmd_client/src/models/create-wallet-request.mjs.map +1 -1
  1017. package/packages/kmd_client/src/models/create-wallet-response.d.ts +0 -1
  1018. package/packages/kmd_client/src/models/create-wallet-response.js +3 -4
  1019. package/packages/kmd_client/src/models/create-wallet-response.js.map +1 -1
  1020. package/packages/kmd_client/src/models/create-wallet-response.mjs +1 -2
  1021. package/packages/kmd_client/src/models/create-wallet-response.mjs.map +1 -1
  1022. package/packages/kmd_client/src/models/delete-key-request.d.ts +0 -1
  1023. package/packages/kmd_client/src/models/delete-key-request.js +3 -4
  1024. package/packages/kmd_client/src/models/delete-key-request.js.map +1 -1
  1025. package/packages/kmd_client/src/models/delete-key-request.mjs +1 -2
  1026. package/packages/kmd_client/src/models/delete-key-request.mjs.map +1 -1
  1027. package/packages/kmd_client/src/models/delete-multisig-request.d.ts +0 -1
  1028. package/packages/kmd_client/src/models/delete-multisig-request.js +3 -4
  1029. package/packages/kmd_client/src/models/delete-multisig-request.js.map +1 -1
  1030. package/packages/kmd_client/src/models/delete-multisig-request.mjs +1 -2
  1031. package/packages/kmd_client/src/models/delete-multisig-request.mjs.map +1 -1
  1032. package/packages/kmd_client/src/models/export-key-request.d.ts +0 -1
  1033. package/packages/kmd_client/src/models/export-key-request.js +3 -4
  1034. package/packages/kmd_client/src/models/export-key-request.js.map +1 -1
  1035. package/packages/kmd_client/src/models/export-key-request.mjs +1 -2
  1036. package/packages/kmd_client/src/models/export-key-request.mjs.map +1 -1
  1037. package/packages/kmd_client/src/models/export-key-response.js +2 -4
  1038. package/packages/kmd_client/src/models/export-key-response.js.map +1 -1
  1039. package/packages/kmd_client/src/models/export-key-response.mjs +1 -2
  1040. package/packages/kmd_client/src/models/export-key-response.mjs.map +1 -1
  1041. package/packages/kmd_client/src/models/export-master-key-request.js +2 -3
  1042. package/packages/kmd_client/src/models/export-master-key-request.js.map +1 -1
  1043. package/packages/kmd_client/src/models/export-master-key-request.mjs +1 -2
  1044. package/packages/kmd_client/src/models/export-master-key-request.mjs.map +1 -1
  1045. package/packages/kmd_client/src/models/export-master-key-response.js +2 -4
  1046. package/packages/kmd_client/src/models/export-master-key-response.js.map +1 -1
  1047. package/packages/kmd_client/src/models/export-master-key-response.mjs +1 -2
  1048. package/packages/kmd_client/src/models/export-master-key-response.mjs.map +1 -1
  1049. package/packages/kmd_client/src/models/export-multisig-request.d.ts +0 -1
  1050. package/packages/kmd_client/src/models/export-multisig-request.js +3 -4
  1051. package/packages/kmd_client/src/models/export-multisig-request.js.map +1 -1
  1052. package/packages/kmd_client/src/models/export-multisig-request.mjs +1 -2
  1053. package/packages/kmd_client/src/models/export-multisig-request.mjs.map +1 -1
  1054. package/packages/kmd_client/src/models/export-multisig-response.js +3 -4
  1055. package/packages/kmd_client/src/models/export-multisig-response.js.map +1 -1
  1056. package/packages/kmd_client/src/models/export-multisig-response.mjs +1 -2
  1057. package/packages/kmd_client/src/models/export-multisig-response.mjs.map +1 -1
  1058. package/packages/kmd_client/src/models/generate-key-request.js +2 -4
  1059. package/packages/kmd_client/src/models/generate-key-request.js.map +1 -1
  1060. package/packages/kmd_client/src/models/generate-key-request.mjs +1 -2
  1061. package/packages/kmd_client/src/models/generate-key-request.mjs.map +1 -1
  1062. package/packages/kmd_client/src/models/generate-key-response.d.ts +0 -1
  1063. package/packages/kmd_client/src/models/generate-key-response.js +2 -4
  1064. package/packages/kmd_client/src/models/generate-key-response.js.map +1 -1
  1065. package/packages/kmd_client/src/models/generate-key-response.mjs +1 -2
  1066. package/packages/kmd_client/src/models/generate-key-response.mjs.map +1 -1
  1067. package/packages/kmd_client/src/models/import-key-request.js +3 -4
  1068. package/packages/kmd_client/src/models/import-key-request.js.map +1 -1
  1069. package/packages/kmd_client/src/models/import-key-request.mjs +1 -2
  1070. package/packages/kmd_client/src/models/import-key-request.mjs.map +1 -1
  1071. package/packages/kmd_client/src/models/import-key-response.d.ts +0 -1
  1072. package/packages/kmd_client/src/models/import-key-response.js +2 -4
  1073. package/packages/kmd_client/src/models/import-key-response.js.map +1 -1
  1074. package/packages/kmd_client/src/models/import-key-response.mjs +1 -2
  1075. package/packages/kmd_client/src/models/import-key-response.mjs.map +1 -1
  1076. package/packages/kmd_client/src/models/import-multisig-request.js +4 -5
  1077. package/packages/kmd_client/src/models/import-multisig-request.js.map +1 -1
  1078. package/packages/kmd_client/src/models/import-multisig-request.mjs +1 -2
  1079. package/packages/kmd_client/src/models/import-multisig-request.mjs.map +1 -1
  1080. package/packages/kmd_client/src/models/import-multisig-response.d.ts +0 -1
  1081. package/packages/kmd_client/src/models/import-multisig-response.js +2 -4
  1082. package/packages/kmd_client/src/models/import-multisig-response.js.map +1 -1
  1083. package/packages/kmd_client/src/models/import-multisig-response.mjs +1 -2
  1084. package/packages/kmd_client/src/models/import-multisig-response.mjs.map +1 -1
  1085. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js +2 -3
  1086. package/packages/kmd_client/src/models/init-wallet-handle-token-request.js.map +1 -1
  1087. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs +1 -2
  1088. package/packages/kmd_client/src/models/init-wallet-handle-token-request.mjs.map +1 -1
  1089. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js +2 -4
  1090. package/packages/kmd_client/src/models/init-wallet-handle-token-response.js.map +1 -1
  1091. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs +1 -2
  1092. package/packages/kmd_client/src/models/init-wallet-handle-token-response.mjs.map +1 -1
  1093. package/packages/kmd_client/src/models/list-keys-request.js +2 -4
  1094. package/packages/kmd_client/src/models/list-keys-request.js.map +1 -1
  1095. package/packages/kmd_client/src/models/list-keys-request.mjs +1 -2
  1096. package/packages/kmd_client/src/models/list-keys-request.mjs.map +1 -1
  1097. package/packages/kmd_client/src/models/list-keys-response.d.ts +0 -1
  1098. package/packages/kmd_client/src/models/list-keys-response.js +2 -4
  1099. package/packages/kmd_client/src/models/list-keys-response.js.map +1 -1
  1100. package/packages/kmd_client/src/models/list-keys-response.mjs +1 -2
  1101. package/packages/kmd_client/src/models/list-keys-response.mjs.map +1 -1
  1102. package/packages/kmd_client/src/models/list-multisig-request.js +2 -4
  1103. package/packages/kmd_client/src/models/list-multisig-request.js.map +1 -1
  1104. package/packages/kmd_client/src/models/list-multisig-request.mjs +1 -2
  1105. package/packages/kmd_client/src/models/list-multisig-request.mjs.map +1 -1
  1106. package/packages/kmd_client/src/models/list-multisig-response.d.ts +0 -1
  1107. package/packages/kmd_client/src/models/list-multisig-response.js +2 -4
  1108. package/packages/kmd_client/src/models/list-multisig-response.js.map +1 -1
  1109. package/packages/kmd_client/src/models/list-multisig-response.mjs +1 -2
  1110. package/packages/kmd_client/src/models/list-multisig-response.mjs.map +1 -1
  1111. package/packages/kmd_client/src/models/list-wallets-response.d.ts +0 -1
  1112. package/packages/kmd_client/src/models/list-wallets-response.js +4 -5
  1113. package/packages/kmd_client/src/models/list-wallets-response.js.map +1 -1
  1114. package/packages/kmd_client/src/models/list-wallets-response.mjs +1 -2
  1115. package/packages/kmd_client/src/models/list-wallets-response.mjs.map +1 -1
  1116. package/packages/kmd_client/src/models/multisig-sig.d.ts +0 -1
  1117. package/packages/kmd_client/src/models/multisig-sig.js +5 -6
  1118. package/packages/kmd_client/src/models/multisig-sig.js.map +1 -1
  1119. package/packages/kmd_client/src/models/multisig-sig.mjs +1 -2
  1120. package/packages/kmd_client/src/models/multisig-sig.mjs.map +1 -1
  1121. package/packages/kmd_client/src/models/multisig-subsig.js +2 -3
  1122. package/packages/kmd_client/src/models/multisig-subsig.js.map +1 -1
  1123. package/packages/kmd_client/src/models/multisig-subsig.mjs +1 -2
  1124. package/packages/kmd_client/src/models/multisig-subsig.mjs.map +1 -1
  1125. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js +2 -4
  1126. package/packages/kmd_client/src/models/release-wallet-handle-token-request.js.map +1 -1
  1127. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs +1 -2
  1128. package/packages/kmd_client/src/models/release-wallet-handle-token-request.mjs.map +1 -1
  1129. package/packages/kmd_client/src/models/rename-wallet-request.js +2 -3
  1130. package/packages/kmd_client/src/models/rename-wallet-request.js.map +1 -1
  1131. package/packages/kmd_client/src/models/rename-wallet-request.mjs +1 -2
  1132. package/packages/kmd_client/src/models/rename-wallet-request.mjs.map +1 -1
  1133. package/packages/kmd_client/src/models/rename-wallet-response.d.ts +0 -1
  1134. package/packages/kmd_client/src/models/rename-wallet-response.js +3 -4
  1135. package/packages/kmd_client/src/models/rename-wallet-response.js.map +1 -1
  1136. package/packages/kmd_client/src/models/rename-wallet-response.mjs +1 -2
  1137. package/packages/kmd_client/src/models/rename-wallet-response.mjs.map +1 -1
  1138. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js +2 -4
  1139. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.js.map +1 -1
  1140. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs +1 -2
  1141. package/packages/kmd_client/src/models/renew-wallet-handle-token-request.mjs.map +1 -1
  1142. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.d.ts +0 -1
  1143. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js +3 -4
  1144. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.js.map +1 -1
  1145. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs +1 -2
  1146. package/packages/kmd_client/src/models/renew-wallet-handle-token-response.mjs.map +1 -1
  1147. package/packages/kmd_client/src/models/sign-multisig-response.js +2 -4
  1148. package/packages/kmd_client/src/models/sign-multisig-response.js.map +1 -1
  1149. package/packages/kmd_client/src/models/sign-multisig-response.mjs +1 -2
  1150. package/packages/kmd_client/src/models/sign-multisig-response.mjs.map +1 -1
  1151. package/packages/kmd_client/src/models/sign-multisig-txn-request.d.ts +0 -1
  1152. package/packages/kmd_client/src/models/sign-multisig-txn-request.js +5 -6
  1153. package/packages/kmd_client/src/models/sign-multisig-txn-request.js.map +1 -1
  1154. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs +1 -2
  1155. package/packages/kmd_client/src/models/sign-multisig-txn-request.mjs.map +1 -1
  1156. package/packages/kmd_client/src/models/sign-program-multisig-request.d.ts +0 -1
  1157. package/packages/kmd_client/src/models/sign-program-multisig-request.js +7 -8
  1158. package/packages/kmd_client/src/models/sign-program-multisig-request.js.map +1 -1
  1159. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs +1 -2
  1160. package/packages/kmd_client/src/models/sign-program-multisig-request.mjs.map +1 -1
  1161. package/packages/kmd_client/src/models/sign-program-multisig-response.js +2 -4
  1162. package/packages/kmd_client/src/models/sign-program-multisig-response.js.map +1 -1
  1163. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs +1 -2
  1164. package/packages/kmd_client/src/models/sign-program-multisig-response.mjs.map +1 -1
  1165. package/packages/kmd_client/src/models/sign-program-request.d.ts +0 -1
  1166. package/packages/kmd_client/src/models/sign-program-request.js +4 -5
  1167. package/packages/kmd_client/src/models/sign-program-request.js.map +1 -1
  1168. package/packages/kmd_client/src/models/sign-program-request.mjs +1 -2
  1169. package/packages/kmd_client/src/models/sign-program-request.mjs.map +1 -1
  1170. package/packages/kmd_client/src/models/sign-program-response.js +2 -4
  1171. package/packages/kmd_client/src/models/sign-program-response.js.map +1 -1
  1172. package/packages/kmd_client/src/models/sign-program-response.mjs +1 -2
  1173. package/packages/kmd_client/src/models/sign-program-response.mjs.map +1 -1
  1174. package/packages/kmd_client/src/models/sign-transaction-response.js +2 -4
  1175. package/packages/kmd_client/src/models/sign-transaction-response.js.map +1 -1
  1176. package/packages/kmd_client/src/models/sign-transaction-response.mjs +1 -2
  1177. package/packages/kmd_client/src/models/sign-transaction-response.mjs.map +1 -1
  1178. package/packages/kmd_client/src/models/sign-txn-request.js +3 -4
  1179. package/packages/kmd_client/src/models/sign-txn-request.js.map +1 -1
  1180. package/packages/kmd_client/src/models/sign-txn-request.mjs +1 -2
  1181. package/packages/kmd_client/src/models/sign-txn-request.mjs.map +1 -1
  1182. package/packages/kmd_client/src/models/tx-type.js +2 -4
  1183. package/packages/kmd_client/src/models/tx-type.js.map +1 -1
  1184. package/packages/kmd_client/src/models/tx-type.mjs +1 -2
  1185. package/packages/kmd_client/src/models/tx-type.mjs.map +1 -1
  1186. package/packages/kmd_client/src/models/versions-response.js +2 -4
  1187. package/packages/kmd_client/src/models/versions-response.js.map +1 -1
  1188. package/packages/kmd_client/src/models/versions-response.mjs +1 -2
  1189. package/packages/kmd_client/src/models/versions-response.mjs.map +1 -1
  1190. package/packages/kmd_client/src/models/wallet-handle.d.ts +0 -1
  1191. package/packages/kmd_client/src/models/wallet-handle.js +4 -5
  1192. package/packages/kmd_client/src/models/wallet-handle.js.map +1 -1
  1193. package/packages/kmd_client/src/models/wallet-handle.mjs +1 -2
  1194. package/packages/kmd_client/src/models/wallet-handle.mjs.map +1 -1
  1195. package/packages/kmd_client/src/models/wallet-info-request.js +2 -4
  1196. package/packages/kmd_client/src/models/wallet-info-request.js.map +1 -1
  1197. package/packages/kmd_client/src/models/wallet-info-request.mjs +1 -2
  1198. package/packages/kmd_client/src/models/wallet-info-request.mjs.map +1 -1
  1199. package/packages/kmd_client/src/models/wallet-info-response.d.ts +0 -1
  1200. package/packages/kmd_client/src/models/wallet-info-response.js +3 -4
  1201. package/packages/kmd_client/src/models/wallet-info-response.js.map +1 -1
  1202. package/packages/kmd_client/src/models/wallet-info-response.mjs +1 -2
  1203. package/packages/kmd_client/src/models/wallet-info-response.mjs.map +1 -1
  1204. package/packages/kmd_client/src/models/wallet.d.ts +0 -1
  1205. package/packages/kmd_client/src/models/wallet.js +7 -8
  1206. package/packages/kmd_client/src/models/wallet.js.map +1 -1
  1207. package/packages/kmd_client/src/models/wallet.mjs +1 -2
  1208. package/packages/kmd_client/src/models/wallet.mjs.map +1 -1
  1209. package/packages/testing/src/globalSetup.js +39 -0
  1210. package/packages/testing/src/globalSetup.js.map +1 -0
  1211. package/packages/testing/src/globalSetup.mjs +35 -0
  1212. package/packages/testing/src/globalSetup.mjs.map +1 -0
  1213. package/packages/testing/src/mockServer.js +94 -0
  1214. package/packages/testing/src/mockServer.js.map +1 -0
  1215. package/packages/testing/src/mockServer.mjs +83 -0
  1216. package/packages/testing/src/mockServer.mjs.map +1 -0
  1217. package/packages/transact/src/logicsig.d.ts +35 -34
  1218. package/packages/transact/src/logicsig.js +81 -84
  1219. package/packages/transact/src/logicsig.js.map +1 -1
  1220. package/packages/transact/src/logicsig.mjs +79 -81
  1221. package/packages/transact/src/logicsig.mjs.map +1 -1
  1222. package/packages/transact/src/multisig.d.ts +11 -116
  1223. package/packages/transact/src/multisig.js +87 -118
  1224. package/packages/transact/src/multisig.js.map +1 -1
  1225. package/packages/transact/src/multisig.mjs +86 -97
  1226. package/packages/transact/src/multisig.mjs.map +1 -1
  1227. package/packages/transact/src/signer.d.ts +11 -3
  1228. package/packages/transact/src/signer.js +29 -8
  1229. package/packages/transact/src/signer.js.map +1 -1
  1230. package/packages/transact/src/signer.mjs +26 -6
  1231. package/packages/transact/src/signer.mjs.map +1 -1
  1232. package/packages/transact/src/transactions/app-call.d.ts +9 -25
  1233. package/packages/transact/src/transactions/app-call.js +30 -31
  1234. package/packages/transact/src/transactions/app-call.js.map +1 -1
  1235. package/packages/transact/src/transactions/app-call.mjs +29 -30
  1236. package/packages/transact/src/transactions/app-call.mjs.map +1 -1
  1237. package/packages/transact/src/transactions/asset-config.d.ts +1 -7
  1238. package/packages/transact/src/transactions/asset-config.js +11 -12
  1239. package/packages/transact/src/transactions/asset-config.js.map +1 -1
  1240. package/packages/transact/src/transactions/asset-config.mjs +10 -11
  1241. package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
  1242. package/packages/transact/src/transactions/asset-freeze.d.ts +1 -7
  1243. package/packages/transact/src/transactions/asset-freeze.js +2 -3
  1244. package/packages/transact/src/transactions/asset-freeze.js.map +1 -1
  1245. package/packages/transact/src/transactions/asset-freeze.mjs +1 -2
  1246. package/packages/transact/src/transactions/asset-freeze.mjs.map +1 -1
  1247. package/packages/transact/src/transactions/asset-transfer.d.ts +1 -7
  1248. package/packages/transact/src/transactions/asset-transfer.js +2 -3
  1249. package/packages/transact/src/transactions/asset-transfer.js.map +1 -1
  1250. package/packages/transact/src/transactions/asset-transfer.mjs +1 -2
  1251. package/packages/transact/src/transactions/asset-transfer.mjs.map +1 -1
  1252. package/packages/transact/src/transactions/common.js +8 -9
  1253. package/packages/transact/src/transactions/common.js.map +1 -1
  1254. package/packages/transact/src/transactions/common.mjs +8 -8
  1255. package/packages/transact/src/transactions/common.mjs.map +1 -1
  1256. package/packages/transact/src/transactions/heartbeat.d.ts +8 -19
  1257. package/packages/transact/src/transactions/key-registration.d.ts +1 -8
  1258. package/packages/transact/src/transactions/key-registration.js +2 -3
  1259. package/packages/transact/src/transactions/key-registration.js.map +1 -1
  1260. package/packages/transact/src/transactions/key-registration.mjs +1 -2
  1261. package/packages/transact/src/transactions/key-registration.mjs.map +1 -1
  1262. package/packages/transact/src/transactions/payment.d.ts +0 -1
  1263. package/packages/transact/src/transactions/reference-types-meta.d.ts +0 -1
  1264. package/packages/transact/src/transactions/reference-types-meta.js +4 -5
  1265. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -1
  1266. package/packages/transact/src/transactions/reference-types-meta.mjs +1 -2
  1267. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -1
  1268. package/packages/transact/src/transactions/signed-transaction-meta.d.ts +0 -1
  1269. package/packages/transact/src/transactions/signed-transaction-meta.js +14 -16
  1270. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
  1271. package/packages/transact/src/transactions/signed-transaction-meta.mjs +7 -8
  1272. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
  1273. package/packages/transact/src/transactions/signed-transaction.d.ts +20 -5
  1274. package/packages/transact/src/transactions/signed-transaction.js +21 -6
  1275. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  1276. package/packages/transact/src/transactions/signed-transaction.mjs +17 -4
  1277. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  1278. package/packages/transact/src/transactions/state-proof.d.ts +2 -5
  1279. package/packages/transact/src/transactions/transaction-meta.d.ts +0 -1
  1280. package/packages/transact/src/transactions/transaction-meta.js +15 -16
  1281. package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
  1282. package/packages/transact/src/transactions/transaction-meta.mjs +1 -2
  1283. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
  1284. package/packages/transact/src/transactions/transaction-type.d.ts +1 -1
  1285. package/packages/transact/src/transactions/transaction-type.js +12 -13
  1286. package/packages/transact/src/transactions/transaction-type.js.map +1 -1
  1287. package/packages/transact/src/transactions/transaction-type.mjs +12 -12
  1288. package/packages/transact/src/transactions/transaction-type.mjs.map +1 -1
  1289. package/packages/transact/src/transactions/transaction.d.ts +5 -2
  1290. package/packages/transact/src/transactions/transaction.js +29 -30
  1291. package/packages/transact/src/transactions/transaction.js.map +1 -1
  1292. package/packages/transact/src/transactions/transaction.mjs +13 -14
  1293. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  1294. package/testing/account.d.ts +2 -3
  1295. package/testing/account.js +5 -7
  1296. package/testing/account.js.map +1 -1
  1297. package/testing/account.mjs +3 -5
  1298. package/testing/account.mjs.map +1 -1
  1299. package/testing/fixtures/algokit-log-capture-fixture.d.ts +1 -2
  1300. package/testing/fixtures/algokit-log-capture-fixture.js +3 -4
  1301. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  1302. package/testing/fixtures/algokit-log-capture-fixture.mjs +1 -2
  1303. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  1304. package/testing/fixtures/algorand-fixture.d.ts +2 -3
  1305. package/testing/fixtures/algorand-fixture.js +8 -9
  1306. package/testing/fixtures/algorand-fixture.js.map +1 -1
  1307. package/testing/fixtures/algorand-fixture.mjs +3 -4
  1308. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  1309. package/testing/index.d.ts +2 -1
  1310. package/testing/index.js +26 -8
  1311. package/testing/index.mjs +3 -2
  1312. package/testing/indexer.js +1 -2
  1313. package/testing/indexer.js.map +1 -1
  1314. package/testing/indexer.mjs +1 -1
  1315. package/testing/indexer.mjs.map +1 -1
  1316. package/testing/test-logger.d.ts +1 -2
  1317. package/testing/test-logger.js +2 -3
  1318. package/testing/test-logger.js.map +1 -1
  1319. package/testing/test-logger.mjs +1 -2
  1320. package/testing/test-logger.mjs.map +1 -1
  1321. package/testing/transaction-logger.d.ts +0 -1
  1322. package/testing/transaction-logger.js +4 -5
  1323. package/testing/transaction-logger.js.map +1 -1
  1324. package/testing/transaction-logger.mjs +1 -2
  1325. package/testing/transaction-logger.mjs.map +1 -1
  1326. package/testing/types.d.ts +156 -0
  1327. package/transact/index.d.ts +12 -12
  1328. package/transact/index.js +16 -42
  1329. package/transact/index.mjs +7 -12
  1330. package/transaction/index.d.ts +4 -0
  1331. package/transaction/index.js +9 -0
  1332. package/transaction/index.mjs +3 -0
  1333. package/transaction/perform-transaction-composer-simulate.d.ts +1 -2
  1334. package/transaction/perform-transaction-composer-simulate.js +3 -5
  1335. package/transaction/perform-transaction-composer-simulate.js.map +1 -1
  1336. package/transaction/perform-transaction-composer-simulate.mjs +3 -4
  1337. package/transaction/perform-transaction-composer-simulate.mjs.map +1 -1
  1338. package/transaction/transaction.d.ts +2 -4
  1339. package/transaction/transaction.js +2 -5
  1340. package/transaction/transaction.js.map +1 -1
  1341. package/transaction/transaction.mjs +1 -4
  1342. package/transaction/transaction.mjs.map +1 -1
  1343. package/transaction/types.d.ts +133 -0
  1344. package/transactions/app-call.d.ts +17 -34
  1345. package/transactions/app-call.js +53 -54
  1346. package/transactions/app-call.js.map +1 -1
  1347. package/transactions/app-call.mjs +47 -48
  1348. package/transactions/app-call.mjs.map +1 -1
  1349. package/transactions/asset-config.d.ts +4 -10
  1350. package/transactions/asset-config.js +5 -6
  1351. package/transactions/asset-config.js.map +1 -1
  1352. package/transactions/asset-config.mjs +1 -2
  1353. package/transactions/asset-config.mjs.map +1 -1
  1354. package/transactions/asset-transfer.d.ts +4 -10
  1355. package/transactions/asset-transfer.js +5 -6
  1356. package/transactions/asset-transfer.js.map +1 -1
  1357. package/transactions/asset-transfer.mjs +1 -2
  1358. package/transactions/asset-transfer.mjs.map +1 -1
  1359. package/transactions/common.d.ts +8 -15
  1360. package/transactions/common.js +3 -4
  1361. package/transactions/common.js.map +1 -1
  1362. package/transactions/common.mjs +1 -2
  1363. package/transactions/common.mjs.map +1 -1
  1364. package/transactions/fee-coverage.js +7 -8
  1365. package/transactions/fee-coverage.js.map +1 -1
  1366. package/transactions/fee-coverage.mjs +7 -7
  1367. package/transactions/fee-coverage.mjs.map +1 -1
  1368. package/transactions/key-registration.d.ts +7 -15
  1369. package/transactions/key-registration.js +4 -5
  1370. package/transactions/key-registration.js.map +1 -1
  1371. package/transactions/key-registration.mjs +1 -2
  1372. package/transactions/key-registration.mjs.map +1 -1
  1373. package/transactions/method-call.d.ts +3 -5
  1374. package/transactions/method-call.js +84 -94
  1375. package/transactions/method-call.js.map +1 -1
  1376. package/transactions/method-call.mjs +76 -86
  1377. package/transactions/method-call.mjs.map +1 -1
  1378. package/transactions/payment.d.ts +2 -5
  1379. package/transactions/payment.js +5 -6
  1380. package/transactions/payment.js.map +1 -1
  1381. package/transactions/payment.mjs +1 -2
  1382. package/transactions/payment.mjs.map +1 -1
  1383. package/types/account-manager.d.ts +11 -444
  1384. package/types/account-manager.js +7 -608
  1385. package/types/account-manager.js.map +1 -1
  1386. package/types/account-manager.mjs +6 -606
  1387. package/types/account-manager.mjs.map +1 -1
  1388. package/types/account.d.ts +8 -150
  1389. package/types/account.js +4 -6
  1390. package/types/account.js.map +1 -1
  1391. package/types/account.mjs +4 -5
  1392. package/types/account.mjs.map +1 -1
  1393. package/types/algorand-client-transaction-creator.d.ts +5 -1098
  1394. package/types/algorand-client-transaction-creator.js +4 -731
  1395. package/types/algorand-client-transaction-creator.js.map +1 -1
  1396. package/types/algorand-client-transaction-creator.mjs +4 -730
  1397. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  1398. package/types/algorand-client-transaction-sender.d.ts +5 -1312
  1399. package/types/algorand-client-transaction-sender.js +4 -929
  1400. package/types/algorand-client-transaction-sender.js.map +1 -1
  1401. package/types/algorand-client-transaction-sender.mjs +4 -928
  1402. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  1403. package/types/algorand-client.d.ts +5 -241
  1404. package/types/algorand-client.js +4 -321
  1405. package/types/algorand-client.js.map +1 -1
  1406. package/types/algorand-client.mjs +4 -321
  1407. package/types/algorand-client.mjs.map +1 -1
  1408. package/types/amount.d.ts +6 -45
  1409. package/types/amount.js +4 -62
  1410. package/types/amount.js.map +1 -1
  1411. package/types/amount.mjs +4 -62
  1412. package/types/amount.mjs.map +1 -1
  1413. package/types/app-client.d.ts +75 -2125
  1414. package/types/app-client.js +4 -905
  1415. package/types/app-client.js.map +1 -1
  1416. package/types/app-client.mjs +4 -904
  1417. package/types/app-client.mjs.map +1 -1
  1418. package/types/app-deployer.d.ts +21 -161
  1419. package/types/app-deployer.js +4 -349
  1420. package/types/app-deployer.js.map +1 -1
  1421. package/types/app-deployer.mjs +4 -349
  1422. package/types/app-deployer.mjs.map +1 -1
  1423. package/types/app-factory.d.ts +21 -960
  1424. package/types/app-factory.js +4 -444
  1425. package/types/app-factory.js.map +1 -1
  1426. package/types/app-factory.mjs +4 -444
  1427. package/types/app-factory.mjs.map +1 -1
  1428. package/types/app-manager.d.ts +15 -318
  1429. package/types/app-manager.js +4 -464
  1430. package/types/app-manager.js.map +1 -1
  1431. package/types/app-manager.mjs +4 -464
  1432. package/types/app-manager.mjs.map +1 -1
  1433. package/types/app-spec.d.ts +39 -198
  1434. package/types/app-spec.js +4 -133
  1435. package/types/app-spec.js.map +1 -1
  1436. package/types/app-spec.mjs +4 -133
  1437. package/types/app-spec.mjs.map +1 -1
  1438. package/types/app.d.ts +63 -248
  1439. package/types/app.js +17 -39
  1440. package/types/app.js.map +1 -1
  1441. package/types/app.mjs +16 -38
  1442. package/types/app.mjs.map +1 -1
  1443. package/types/asset-manager.d.ts +9 -207
  1444. package/types/asset-manager.js +4 -162
  1445. package/types/asset-manager.js.map +1 -1
  1446. package/types/asset-manager.mjs +4 -162
  1447. package/types/asset-manager.mjs.map +1 -1
  1448. package/types/async-event-emitter.d.ts +7 -14
  1449. package/types/async-event-emitter.js +4 -34
  1450. package/types/async-event-emitter.js.map +1 -1
  1451. package/types/async-event-emitter.mjs +4 -33
  1452. package/types/async-event-emitter.mjs.map +1 -1
  1453. package/types/client-manager.d.ts +27 -470
  1454. package/types/client-manager.js +4 -612
  1455. package/types/client-manager.js.map +1 -1
  1456. package/types/client-manager.mjs +4 -612
  1457. package/types/client-manager.mjs.map +1 -1
  1458. package/types/composer.d.ts +79 -943
  1459. package/types/composer.js +4 -1575
  1460. package/types/composer.js.map +1 -1
  1461. package/types/composer.mjs +4 -1574
  1462. package/types/composer.mjs.map +1 -1
  1463. package/types/config.d.ts +7 -52
  1464. package/types/config.js +4 -76
  1465. package/types/config.js.map +1 -1
  1466. package/types/config.mjs +4 -76
  1467. package/types/config.mjs.map +1 -1
  1468. package/types/debugging.d.ts +12 -33
  1469. package/types/debugging.js +12 -11
  1470. package/types/debugging.js.map +1 -1
  1471. package/types/debugging.mjs +11 -10
  1472. package/types/debugging.mjs.map +1 -1
  1473. package/types/dispenser-client.d.ts +11 -85
  1474. package/types/dispenser-client.js +4 -123
  1475. package/types/dispenser-client.js.map +1 -1
  1476. package/types/dispenser-client.mjs +4 -123
  1477. package/types/dispenser-client.mjs.map +1 -1
  1478. package/types/expand.d.ts +4 -5
  1479. package/types/indexer.d.ts +16 -36
  1480. package/types/indexer.js +9 -32
  1481. package/types/indexer.js.map +1 -1
  1482. package/types/indexer.mjs +8 -31
  1483. package/types/indexer.mjs.map +1 -1
  1484. package/types/instance-of.d.ts +4 -4
  1485. package/types/kmd-account-manager.d.ts +5 -69
  1486. package/types/kmd-account-manager.js +4 -163
  1487. package/types/kmd-account-manager.js.map +1 -1
  1488. package/types/kmd-account-manager.mjs +4 -161
  1489. package/types/kmd-account-manager.mjs.map +1 -1
  1490. package/types/lifecycle-events.d.ts +7 -10
  1491. package/types/lifecycle-events.js +4 -7
  1492. package/types/lifecycle-events.js.map +1 -1
  1493. package/types/lifecycle-events.mjs +4 -6
  1494. package/types/lifecycle-events.mjs.map +1 -1
  1495. package/types/logging.d.ts +14 -9
  1496. package/types/logging.js +13 -39
  1497. package/types/logging.js.map +1 -1
  1498. package/types/logging.mjs +12 -38
  1499. package/types/logging.mjs.map +1 -1
  1500. package/types/logic-error.d.ts +8 -35
  1501. package/types/logic-error.js +4 -50
  1502. package/types/logic-error.js.map +1 -1
  1503. package/types/logic-error.mjs +4 -49
  1504. package/types/logic-error.mjs.map +1 -1
  1505. package/types/network-client.d.ts +10 -39
  1506. package/types/network-client.js +4 -10
  1507. package/types/network-client.js.map +1 -1
  1508. package/types/network-client.mjs +4 -9
  1509. package/types/network-client.mjs.map +1 -1
  1510. package/types/testing.d.ts +13 -151
  1511. package/types/transaction.d.ts +33 -128
  1512. package/updatable-config.d.ts +57 -0
  1513. package/updatable-config.js +79 -0
  1514. package/updatable-config.js.map +1 -0
  1515. package/updatable-config.mjs +79 -0
  1516. package/updatable-config.mjs.map +1 -0
  1517. package/util.js +2 -3
  1518. package/util.js.map +1 -1
  1519. package/util.mjs +2 -3
  1520. package/util.mjs.map +1 -1
  1521. package/_virtual/rolldown_runtime.js +0 -43
  1522. package/_virtual/rolldown_runtime.mjs +0 -18
  1523. package/indexer-lookup.js.map +0 -1
  1524. package/indexer-lookup.mjs.map +0 -1
  1525. package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
  1526. package/packages/common/src/crypto.js +0 -13
  1527. package/packages/common/src/crypto.js.map +0 -1
  1528. package/packages/common/src/crypto.mjs +0 -11
  1529. package/packages/common/src/crypto.mjs.map +0 -1
  1530. package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
  1531. package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
  1532. package/packages/sdk/src/convert.d.ts +0 -17
  1533. package/packages/sdk/src/convert.js +0 -28
  1534. package/packages/sdk/src/convert.js.map +0 -1
  1535. package/packages/sdk/src/convert.mjs +0 -25
  1536. package/packages/sdk/src/convert.mjs.map +0 -1
  1537. package/packages/sdk/src/encoding/binarydata.d.ts +0 -34
  1538. package/packages/sdk/src/encoding/binarydata.js +0 -65
  1539. package/packages/sdk/src/encoding/binarydata.js.map +0 -1
  1540. package/packages/sdk/src/encoding/binarydata.mjs +0 -60
  1541. package/packages/sdk/src/encoding/binarydata.mjs.map +0 -1
  1542. package/packages/sdk/src/encoding/encoding.d.ts +0 -237
  1543. package/packages/sdk/src/encoding/encoding.js +0 -312
  1544. package/packages/sdk/src/encoding/encoding.js.map +0 -1
  1545. package/packages/sdk/src/encoding/encoding.mjs +0 -298
  1546. package/packages/sdk/src/encoding/encoding.mjs.map +0 -1
  1547. package/packages/sdk/src/encoding/schema/array.js +0 -35
  1548. package/packages/sdk/src/encoding/schema/array.js.map +0 -1
  1549. package/packages/sdk/src/encoding/schema/array.mjs +0 -35
  1550. package/packages/sdk/src/encoding/schema/array.mjs.map +0 -1
  1551. package/packages/sdk/src/encoding/schema/bytearray.js +0 -49
  1552. package/packages/sdk/src/encoding/schema/bytearray.js.map +0 -1
  1553. package/packages/sdk/src/encoding/schema/bytearray.mjs +0 -49
  1554. package/packages/sdk/src/encoding/schema/bytearray.mjs.map +0 -1
  1555. package/packages/sdk/src/encoding/schema/map.d.ts +0 -58
  1556. package/packages/sdk/src/encoding/schema/map.js +0 -108
  1557. package/packages/sdk/src/encoding/schema/map.js.map +0 -1
  1558. package/packages/sdk/src/encoding/schema/map.mjs +0 -107
  1559. package/packages/sdk/src/encoding/schema/map.mjs.map +0 -1
  1560. package/packages/sdk/src/encoding/schema/optional.js +0 -46
  1561. package/packages/sdk/src/encoding/schema/optional.js.map +0 -1
  1562. package/packages/sdk/src/encoding/schema/optional.mjs +0 -46
  1563. package/packages/sdk/src/encoding/schema/optional.mjs.map +0 -1
  1564. package/packages/sdk/src/encoding/schema/uint64.js +0 -30
  1565. package/packages/sdk/src/encoding/schema/uint64.js.map +0 -1
  1566. package/packages/sdk/src/encoding/schema/uint64.mjs +0 -30
  1567. package/packages/sdk/src/encoding/schema/uint64.mjs.map +0 -1
  1568. package/packages/sdk/src/encoding/uint64.d.ts +0 -34
  1569. package/packages/sdk/src/encoding/uint64.js +0 -34
  1570. package/packages/sdk/src/encoding/uint64.js.map +0 -1
  1571. package/packages/sdk/src/encoding/uint64.mjs +0 -33
  1572. package/packages/sdk/src/encoding/uint64.mjs.map +0 -1
  1573. package/packages/sdk/src/index.d.ts +0 -44
  1574. package/packages/sdk/src/index.js +0 -62
  1575. package/packages/sdk/src/index.js.map +0 -1
  1576. package/packages/sdk/src/index.mjs +0 -58
  1577. package/packages/sdk/src/index.mjs.map +0 -1
  1578. package/packages/sdk/src/logic/sourcemap.js.map +0 -1
  1579. package/packages/sdk/src/logic/sourcemap.mjs.map +0 -1
  1580. package/packages/sdk/src/nacl/naclWrappers.js +0 -14
  1581. package/packages/sdk/src/nacl/naclWrappers.js.map +0 -1
  1582. package/packages/sdk/src/nacl/naclWrappers.mjs +0 -11
  1583. package/packages/sdk/src/nacl/naclWrappers.mjs.map +0 -1
  1584. package/packages/sdk/src/types/intDecoding.d.ts +0 -28
  1585. package/packages/sdk/src/types/intDecoding.js +0 -32
  1586. package/packages/sdk/src/types/intDecoding.js.map +0 -1
  1587. package/packages/sdk/src/types/intDecoding.mjs +0 -31
  1588. package/packages/sdk/src/types/intDecoding.mjs.map +0 -1
  1589. package/packages/sdk/src/types/transactions/encoded.d.ts +0 -40
  1590. package/packages/sdk/src/types/transactions/encoded.js +0 -64
  1591. package/packages/sdk/src/types/transactions/encoded.js.map +0 -1
  1592. package/packages/sdk/src/types/transactions/encoded.mjs +0 -59
  1593. package/packages/sdk/src/types/transactions/encoded.mjs.map +0 -1
  1594. package/packages/sdk/src/utils/utils.d.ts +0 -64
  1595. package/packages/sdk/src/utils/utils.js +0 -140
  1596. package/packages/sdk/src/utils/utils.js.map +0 -1
  1597. package/packages/sdk/src/utils/utils.mjs +0 -128
  1598. package/packages/sdk/src/utils/utils.mjs.map +0 -1
  1599. package/packages/transact/src/transactions/common.d.ts +0 -37
  1600. package/sdk/index.d.ts +0 -10
  1601. package/sdk/index.js +0 -59
  1602. package/sdk/index.mjs +0 -11
@@ -1,43 +1,11 @@
1
1
  import { arrayEqual } from "../../common/src/array.mjs";
2
- import { PUBLIC_KEY_BYTE_LENGTH, SIGNATURE_BYTE_LENGTH } from "../../common/src/constants.mjs";
3
- import { ALGORAND_ADDRESS_BYTE_LENGTH, ALGORAND_CHECKSUM_BYTE_LENGTH, Address, getAddress } from "../../common/src/address.mjs";
4
- import { hash } from "../../common/src/crypto.mjs";
5
- import { decodeMsgpack } from "../../common/src/msgpack.mjs";
6
- import { multiSignatureCodec } from "./transactions/signed-transaction-meta.mjs";
7
- import { decodeSignedTransaction, encodeSignedTransaction } from "./transactions/signed-transaction.mjs";
8
-
2
+ import "../../common/src/constants.mjs";
3
+ import { Address, getAddress } from "../../common/src/address.mjs";
4
+ import { hash } from "../../crypto/src/hash.mjs";
5
+ import { decodeSignedTransaction, encodeSignedTransaction, validateSignedTransaction } from "./transactions/signed-transaction.mjs";
9
6
  //#region packages/transact/src/multisig.ts
10
- /**
11
- * Creates an empty multisignature signature from a list of participant public keys.
12
- */
13
- function newMultisigSignature(version, threshold, participants) {
14
- if (version === 0) throw new Error("Version cannot be zero");
15
- if (participants.length === 0) throw new Error("Participants cannot be empty");
16
- if (threshold === 0 || threshold > participants.length) throw new Error("Threshold must be greater than zero and less than or equal to the number of participants");
17
- return {
18
- version,
19
- threshold,
20
- subsigs: participants.map((publicKey) => ({ publicKey }))
21
- };
22
- }
23
- /**
24
- * Returns the list of participant public keys from a multisignature signature.
25
- */
26
- function participantsFromMultisigSignature(multisigSignature) {
27
- return multisigSignature.subsigs.map((subsig) => subsig.publicKey);
28
- }
29
7
  const toPublicKeys = (addrs) => addrs.map((addr) => getAddress(addr).publicKey);
30
8
  /**
31
- * Returns the address of the multisignature account.
32
- */
33
- function addressFromMultisigSignature(multisigSignature) {
34
- return addressFromMultisigPreImg({
35
- version: multisigSignature.version,
36
- threshold: multisigSignature.threshold,
37
- publicKeys: multisigSignature.subsigs.map((subsig) => subsig.publicKey)
38
- });
39
- }
40
- /**
41
9
  * Applies a subsignature for a participant to a multisignature signature, replacing any existing signature.
42
10
  *
43
11
  * This method applies the signature to ALL instances of the given public key (to support weighted multisig).
@@ -61,29 +29,6 @@ function applyMultisigSubsignature(multisigSignature, participant, signature) {
61
29
  subsigs: newSubsignatures
62
30
  };
63
31
  }
64
- /**
65
- * Merges two multisignature signatures, replacing signatures in the first with those from the second where present.
66
- * For each participant, the resulting signature will be taken from the second multisig if present, otherwise from the first.
67
- */
68
- function mergeMultisignatures(multisigSignatureA, multisigSignatureB) {
69
- if (multisigSignatureA.version !== multisigSignatureB.version) throw new Error("Cannot merge multisig signatures with different versions");
70
- if (multisigSignatureA.threshold !== multisigSignatureB.threshold) throw new Error("Cannot merge multisig signatures with different thresholds");
71
- const participantsA = participantsFromMultisigSignature(multisigSignatureA);
72
- const participantsB = participantsFromMultisigSignature(multisigSignatureB);
73
- if (!(participantsA.length === participantsB.length && participantsA.every((pk, i) => arrayEqual(pk, participantsB[i])))) throw new Error("Cannot merge multisig signatures with different participants");
74
- const mergedSubsignatures = multisigSignatureA.subsigs.map((s1, index) => {
75
- const s2 = multisigSignatureB.subsigs[index];
76
- return {
77
- publicKey: s1.publicKey,
78
- sig: s2.sig || s1.sig
79
- };
80
- });
81
- return {
82
- version: multisigSignatureA.version,
83
- threshold: multisigSignatureA.threshold,
84
- subsigs: mergedSubsignatures
85
- };
86
- }
87
32
  const MULTISIG_PREIMG2ADDR_PREFIX = new Uint8Array([
88
33
  77,
89
34
  117,
@@ -107,8 +52,6 @@ const MULTISIG_MERGE_MISMATCH_ERROR_MSG = "Cannot merge txs. txIDs differ";
107
52
  const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = "Cannot merge txs. Auth addrs differ";
108
53
  const MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = "Cannot merge txs. Multisig preimages differ";
109
54
  const MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = "Cannot merge txs. subsigs are mismatched.";
110
- const MULTISIG_NO_MUTATE_ERROR_MSG = "Cannot mutate a multisig field as it would invalidate all existing signatures.";
111
- const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = "Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.";
112
55
  const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = "Cannot add multisig signature. Signature is not of the correct length.";
113
56
  const MULTISIG_KEY_NOT_EXIST_ERROR_MSG = "Key does not exist";
114
57
  /**
@@ -136,11 +79,11 @@ function createMultisigTransaction(txn, { version, threshold, addrs }) {
136
79
  });
137
80
  let authAddress;
138
81
  if (!msigAddr.equals(txn.sender)) authAddress = msigAddr;
139
- return encodeSignedTransaction({
82
+ return {
140
83
  txn,
141
84
  msig,
142
85
  authAddress
143
- });
86
+ };
144
87
  }
145
88
  /**
146
89
  * creates a multisig transaction blob with an included signature.
@@ -153,11 +96,11 @@ function createMultisigTransaction(txn, { version, threshold, addrs }) {
153
96
  * @returns encoded multisig blob
154
97
  */
155
98
  function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version, threshold, publicKeys }) {
156
- const signedTxn = decodeSignedTransaction(createMultisigTransaction(txn, {
99
+ const signedTxn = createMultisigTransaction(txn, {
157
100
  version,
158
101
  threshold,
159
102
  addrs: publicKeys.map((pk) => new Address(pk))
160
- }));
103
+ });
161
104
  let keyExist = false;
162
105
  const updatedSubsigs = signedTxn.msig.subsigs.map((subsig) => {
163
106
  if (arrayEqual(subsig.publicKey, myPk)) {
@@ -170,13 +113,13 @@ function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version
170
113
  return subsig;
171
114
  });
172
115
  if (!keyExist) throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG);
173
- return encodeSignedTransaction({
116
+ return {
174
117
  ...signedTxn,
175
118
  msig: {
176
119
  ...signedTxn.msig,
177
120
  subsigs: updatedSubsigs
178
121
  }
179
- });
122
+ };
180
123
  }
181
124
  /**
182
125
  * takes a list of multisig transaction blobs, and merges them.
@@ -185,7 +128,7 @@ function createMultisigTransactionWithSignature(txn, { rawSig, myPk }, { version
185
128
  */
186
129
  function mergeMultisigTransactions(multisigTxnBlobs) {
187
130
  if (multisigTxnBlobs.length < 2) throw new Error(MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG);
188
- const refSigTx = decodeSignedTransaction(multisigTxnBlobs[0]);
131
+ const refSigTx = multisigTxnBlobs[0];
189
132
  if (!refSigTx.msig) throw new Error("Invalid multisig transaction, multisig structure missing at index 0");
190
133
  const refTxID = refSigTx.txn.txId();
191
134
  const refAuthAddr = refSigTx.authAddress;
@@ -196,7 +139,7 @@ function mergeMultisigTransactions(multisigTxnBlobs) {
196
139
  });
197
140
  const newSubsigs = refSigTx.msig.subsigs.map((sig) => ({ ...sig }));
198
141
  for (let i = 1; i < multisigTxnBlobs.length; i++) {
199
- const unisig = decodeSignedTransaction(multisigTxnBlobs[i]);
142
+ const unisig = multisigTxnBlobs[i];
200
143
  if (!unisig.msig) throw new Error(`Invalid multisig transaction, multisig structure missing at index ${i}`);
201
144
  if (unisig.txn.txId() !== refTxID) throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG);
202
145
  if (refAuthAddr !== unisig.authAddress) throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG);
@@ -214,7 +157,7 @@ function mergeMultisigTransactions(multisigTxnBlobs) {
214
157
  current.sig = uniSubsig.sig;
215
158
  });
216
159
  }
217
- return encodeSignedTransaction({
160
+ return {
218
161
  txn: refSigTx.txn,
219
162
  msig: {
220
163
  version: refSigTx.msig.version,
@@ -222,7 +165,7 @@ function mergeMultisigTransactions(multisigTxnBlobs) {
222
165
  subsigs: newSubsigs
223
166
  },
224
167
  authAddress: refAuthAddr
225
- });
168
+ };
226
169
  }
227
170
  /**
228
171
  * Partially signs this transaction with an external raw multisig signature and returns
@@ -234,7 +177,7 @@ function mergeMultisigTransactions(multisigTxnBlobs) {
234
177
  * @returns an encoded, partially signed multisig transaction.
235
178
  */
236
179
  function partialSignWithMultisigSignature(transaction, metadata, signerAddr, signature) {
237
- if (signature.length != SIGNATURE_BYTE_LENGTH) throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG);
180
+ if (signature.length != 64) throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG);
238
181
  return createMultisigTransactionWithSignature(transaction, {
239
182
  rawSig: signature,
240
183
  myPk: (typeof signerAddr === "string" ? Address.fromString(signerAddr) : signerAddr).publicKey
@@ -251,18 +194,13 @@ function partialSignWithMultisigSignature(transaction, metadata, signerAddr, sig
251
194
  * @param signature - raw multisig signature
252
195
  * @returns object containing txID, and blob representing encoded multisig txn
253
196
  */
254
- function appendSignRawMultisigSignature(multisigTxnBlob, { version, threshold, addrs }, signerAddr, signature) {
197
+ function appendSignRawMultisigSignature(multisigTxn, { version, threshold, addrs }, signerAddr, signature) {
255
198
  const publicKeys = toPublicKeys(addrs);
256
- const multisigTxObj = decodeSignedTransaction(multisigTxnBlob);
257
- const partialSignedBlob = partialSignWithMultisigSignature(multisigTxObj.txn, {
199
+ return mergeMultisigTransactions([multisigTxn, partialSignWithMultisigSignature(multisigTxn.txn, {
258
200
  version,
259
201
  threshold,
260
202
  publicKeys
261
- }, signerAddr, signature);
262
- return {
263
- txID: multisigTxObj.txn.txId(),
264
- blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob])
265
- };
203
+ }, signerAddr, signature)]);
266
204
  }
267
205
  /**
268
206
  * Takes multisig parameters and returns a 32 byte typed array public key,
@@ -276,8 +214,8 @@ function appendSignRawMultisigSignature(multisigTxnBlob, { version, threshold, a
276
214
  function addressFromMultisigPreImg({ version, threshold, publicKeys }) {
277
215
  if (version > 255 || version < 0) throw new Error(`${INVALID_MSIG_VERSION_ERROR_MSG}: ${version}`);
278
216
  if (threshold === 0 || publicKeys.length === 0 || threshold > publicKeys.length || threshold > 255) throw new Error(INVALID_MSIG_THRESHOLD_ERROR_MSG);
279
- const pkLen = ALGORAND_ADDRESS_BYTE_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH;
280
- if (pkLen !== PUBLIC_KEY_BYTE_LENGTH) throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG);
217
+ const pkLen = 32;
218
+ if (pkLen !== 32) throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG);
281
219
  const merged = new Uint8Array(MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen * publicKeys.length);
282
220
  merged.set(MULTISIG_PREIMG2ADDR_PREFIX, 0);
283
221
  merged.set([version], MULTISIG_PREIMG2ADDR_PREFIX.length);
@@ -310,11 +248,12 @@ function addressFromMultisigPreImgAddrs({ version, threshold, addrs }) {
310
248
  */
311
249
  const multisigAddress = addressFromMultisigPreImgAddrs;
312
250
  /** Account wrapper that supports partial or full multisig signing. */
313
- var MultisigAccount = class {
251
+ var MultisigAccount = class MultisigAccount {
314
252
  _params;
315
253
  _subSigners;
316
254
  _addr;
317
255
  _signer;
256
+ _lsigSigner;
318
257
  /** The parameters for the multisig account */
319
258
  get params() {
320
259
  return this._params;
@@ -331,6 +270,16 @@ var MultisigAccount = class {
331
270
  get signer() {
332
271
  return this._signer;
333
272
  }
273
+ get lsigSigner() {
274
+ return this._lsigSigner;
275
+ }
276
+ static fromSignature(signature) {
277
+ return new MultisigAccount({
278
+ version: signature.version,
279
+ threshold: signature.threshold,
280
+ addrs: signature.subsigs.map((subsig) => new Address(subsig.publicKey))
281
+ }, []);
282
+ }
334
283
  constructor(multisigParams, subSigners) {
335
284
  this._params = multisigParams;
336
285
  this._subSigners = subSigners;
@@ -344,25 +293,65 @@ var MultisigAccount = class {
344
293
  const stxn = (await subSigner.signer([txn], [0]))[0];
345
294
  const sig = decodeSignedTransaction(stxn).sig;
346
295
  if (!sig) throw new Error(`Signer for address ${subSigner.addr.toString()} did not produce a valid signature when signing ${txn.txId()} for multisig account ${this._addr.toString()}`);
347
- signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig).blob;
296
+ signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig);
348
297
  }
349
298
  signedMsigTxns.push(signedMsigTxn);
350
299
  }
351
- return signedMsigTxns;
300
+ return signedMsigTxns.map((stxn) => {
301
+ validateSignedTransaction(stxn);
302
+ return encodeSignedTransaction(stxn);
303
+ });
304
+ };
305
+ this._lsigSigner = async (lsig, _) => {
306
+ let lmsig = lsig.lmsig ?? this.createMultisigSignature();
307
+ for (const addrWithSigner of this.subSigners) {
308
+ const { lsigSigner, addr } = addrWithSigner;
309
+ const result = await lsigSigner(lsig, this);
310
+ if (!("sig" in result) || !result.sig) throw new Error(`Signer for address ${addr.toString()} did not produce a valid signature when signing logic sig for multisig account ${this._addr.toString()}`);
311
+ lmsig = this.applySignature(lmsig, addr.publicKey, result.sig);
312
+ }
313
+ return {
314
+ addr: this.addr,
315
+ lmsig
316
+ };
352
317
  };
353
318
  }
319
+ createMultisigTransaction(txn) {
320
+ return createMultisigTransaction(txn, this._params);
321
+ }
322
+ createMultisigSignature() {
323
+ const subsignatures = toPublicKeys(this._params.addrs).map((pk) => ({
324
+ publicKey: pk,
325
+ sig: void 0
326
+ }));
327
+ return {
328
+ version: this._params.version,
329
+ threshold: this._params.threshold,
330
+ subsigs: subsignatures
331
+ };
332
+ }
333
+ applySignatureToTxn(txn, pubkey, signature) {
334
+ if (!txn.msig) txn.msig = this.createMultisigTransaction(txn.txn).msig;
335
+ txn.msig = applyMultisigSubsignature(txn.msig, pubkey, signature);
336
+ }
337
+ applySignature(msigSignature, pubkey, signature) {
338
+ if (msigSignature.version !== this._params.version || msigSignature.threshold !== this._params.threshold) {
339
+ const thisParams = {
340
+ version: this._params.version,
341
+ threshold: this._params.threshold,
342
+ participants: this._params.addrs.map((addr) => addr.toString())
343
+ };
344
+ const givenParams = {
345
+ version: msigSignature.version,
346
+ threshold: msigSignature.threshold,
347
+ participants: msigSignature.subsigs.map((subsig) => new Address(subsig.publicKey).toString())
348
+ };
349
+ throw new Error(`Multisig signature parameters do not match expected multisig parameters. Multisig params: ${JSON.stringify(thisParams)}, signature: ${JSON.stringify(givenParams)}`);
350
+ }
351
+ return applyMultisigSubsignature(msigSignature, pubkey, signature);
352
+ }
354
353
  };
355
- /**
356
- * Decodes MsgPack bytes into a multi signature.
357
- *
358
- * @param encodedMultiSignature - The MsgPack encoded multi signature
359
- * @returns The decoded MultisigSignature or an error if decoding fails.
360
- */
361
- function decodeMultiSignature(encodedMultiSignature) {
362
- const decodedData = decodeMsgpack(encodedMultiSignature);
363
- return multiSignatureCodec.decode(decodedData, "msgpack");
364
- }
365
-
366
354
  //#endregion
367
- export { MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG, MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG, MULTISIG_MERGE_MISMATCH_ERROR_MSG, MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG, MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG, MULTISIG_NO_MUTATE_ERROR_MSG, MULTISIG_SIGNATURE_LENGTH_ERROR_MSG, MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG, MultisigAccount, addressFromMultisigPreImg, addressFromMultisigPreImgAddrs, addressFromMultisigSignature, appendSignRawMultisigSignature, applyMultisigSubsignature, createMultisigTransaction, decodeMultiSignature, mergeMultisigTransactions, mergeMultisignatures, multisigAddress, newMultisigSignature, participantsFromMultisigSignature };
355
+ export { MultisigAccount };
356
+
368
357
  //# sourceMappingURL=multisig.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.mjs","names":["mergedSubsignatures: MultisigSubsignature[]","msig: MultisigSignature","authAddress: Address | undefined","newSubsigs: MultisigSubsignature[]","multisigAddress: typeof addressFromMultisigPreImgAddrs","signedMsigTxns: Uint8Array[]"],"sources":["../../../../packages/transact/src/multisig.ts"],"sourcesContent":["import {\n Address,\n ALGORAND_ADDRESS_BYTE_LENGTH,\n ALGORAND_CHECKSUM_BYTE_LENGTH,\n arrayEqual,\n decodeMsgpack,\n getAddress,\n hash,\n PUBLIC_KEY_BYTE_LENGTH,\n SIGNATURE_BYTE_LENGTH,\n} from '@algorandfoundation/algokit-common'\nimport { AddressWithDelegatedLsigSigner, AddressWithTransactionSigner, TransactionSigner } from './signer'\nimport {\n decodeSignedTransaction,\n encodeSignedTransaction,\n MultisigSignature,\n MultisigSubsignature,\n SignedTransaction,\n} from './transactions/signed-transaction'\nimport { multiSignatureCodec } from './transactions/signed-transaction-meta'\nimport { Transaction } from './transactions/transaction'\n\n/**\n * Creates an empty multisignature signature from a list of participant public keys.\n */\nexport function newMultisigSignature(version: number, threshold: number, participants: Uint8Array[]): MultisigSignature {\n if (version === 0) {\n throw new Error('Version cannot be zero')\n }\n if (participants.length === 0) {\n throw new Error('Participants cannot be empty')\n }\n if (threshold === 0 || threshold > participants.length) {\n throw new Error('Threshold must be greater than zero and less than or equal to the number of participants')\n }\n\n return {\n version,\n threshold,\n subsigs: participants.map((publicKey) => ({ publicKey })),\n }\n}\n\n/**\n * Returns the list of participant public keys from a multisignature signature.\n */\nexport function participantsFromMultisigSignature(multisigSignature: MultisigSignature): Uint8Array[] {\n return multisigSignature.subsigs.map((subsig) => subsig.publicKey)\n}\n\nconst toPublicKeys = (addrs: Array<string | Address>): Uint8Array[] => addrs.map((addr) => getAddress(addr).publicKey)\n\n/**\n * Returns the address of the multisignature account.\n */\nexport function addressFromMultisigSignature(multisigSignature: MultisigSignature): Address {\n return addressFromMultisigPreImg({\n version: multisigSignature.version,\n threshold: multisigSignature.threshold,\n publicKeys: multisigSignature.subsigs.map((subsig) => subsig.publicKey),\n })\n}\n\n/**\n * Applies a subsignature for a participant to a multisignature signature, replacing any existing signature.\n *\n * This method applies the signature to ALL instances of the given public key (to support weighted multisig).\n * Since ed25519 signatures are deterministic, there's only one valid signature for a given message and public key.\n */\nexport function applyMultisigSubsignature(\n multisigSignature: MultisigSignature,\n participant: Uint8Array,\n signature: Uint8Array,\n): MultisigSignature {\n let found = false\n const newSubsignatures = multisigSignature.subsigs.map((subsig) => {\n if (arrayEqual(subsig.publicKey, participant)) {\n found = true\n return { ...subsig, sig: signature } satisfies MultisigSubsignature\n }\n return subsig\n })\n\n if (!found) {\n throw new Error('Public key not found in multisig signature')\n }\n\n return {\n ...multisigSignature,\n subsigs: newSubsignatures,\n }\n}\n\n/**\n * Merges two multisignature signatures, replacing signatures in the first with those from the second where present.\n * For each participant, the resulting signature will be taken from the second multisig if present, otherwise from the first.\n */\nexport function mergeMultisignatures(multisigSignatureA: MultisigSignature, multisigSignatureB: MultisigSignature): MultisigSignature {\n if (multisigSignatureA.version !== multisigSignatureB.version) {\n throw new Error('Cannot merge multisig signatures with different versions')\n }\n if (multisigSignatureA.threshold !== multisigSignatureB.threshold) {\n throw new Error('Cannot merge multisig signatures with different thresholds')\n }\n\n // Check participants match exactly (same public keys in same order)\n const participantsA = participantsFromMultisigSignature(multisigSignatureA)\n const participantsB = participantsFromMultisigSignature(multisigSignatureB)\n const participantsMatch =\n participantsA.length === participantsB.length && participantsA.every((pk, i) => arrayEqual(pk, participantsB[i]))\n if (!participantsMatch) {\n throw new Error('Cannot merge multisig signatures with different participants')\n }\n\n const mergedSubsignatures: MultisigSubsignature[] = multisigSignatureA.subsigs.map((s1, index) => {\n const s2 = multisigSignatureB.subsigs[index]\n return {\n publicKey: s1.publicKey,\n sig: s2.sig || s1.sig, // Prefer s2, fall back to s1\n } satisfies MultisigSubsignature\n })\n\n return {\n version: multisigSignatureA.version,\n threshold: multisigSignatureA.threshold,\n subsigs: mergedSubsignatures,\n }\n}\n\n// Convert \"MultisigAddr\" UTF-8 to byte array\nconst MULTISIG_PREIMG2ADDR_PREFIX = new Uint8Array([77, 117, 108, 116, 105, 115, 105, 103, 65, 100, 100, 114])\n\nconst INVALID_MSIG_VERSION_ERROR_MSG = 'invalid multisig version'\nconst INVALID_MSIG_THRESHOLD_ERROR_MSG = 'bad multisig threshold'\nconst INVALID_MSIG_PK_ERROR_MSG = 'bad multisig public key - wrong length'\nconst UNEXPECTED_PK_LEN_ERROR_MSG = 'nacl public key length is not 32 bytes'\n\nexport const MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = 'Not enough multisig transactions to merge. Need at least two'\nexport const MULTISIG_MERGE_MISMATCH_ERROR_MSG = 'Cannot merge txs. txIDs differ'\nexport const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = 'Cannot merge txs. Auth addrs differ'\nexport const MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = 'Cannot merge txs. Multisig preimages differ'\nexport const MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = 'Cannot merge txs. subsigs are mismatched.'\nexport const MULTISIG_NO_MUTATE_ERROR_MSG = 'Cannot mutate a multisig field as it would invalidate all existing signatures.'\nexport const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = 'Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.'\nexport const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = 'Cannot add multisig signature. Signature is not of the correct length.'\nconst MULTISIG_KEY_NOT_EXIST_ERROR_MSG = 'Key does not exist'\n\n/**\n * creates a raw, multisig transaction blob without any signatures.\n * @param txn - the actual transaction.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - ordered list of public keys in this multisig\n * @returns encoded multisig blob\n */\nexport function createMultisigTransaction(txn: Transaction, { version, threshold, addrs }: MultisigMetadata) {\n // construct the appendable multisigned transaction format\n const pks = toPublicKeys(addrs)\n const subsignatures = pks.map(\n (pk) =>\n ({\n publicKey: pk,\n sig: undefined,\n }) satisfies MultisigSubsignature,\n )\n\n const msig: MultisigSignature = {\n version,\n threshold,\n subsigs: subsignatures,\n }\n\n // if the address of this multisig is different from the transaction sender,\n // we need to add the auth-addr field\n const msigAddr = addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys: pks,\n })\n let authAddress: Address | undefined\n if (!msigAddr.equals(txn.sender)) {\n authAddress = msigAddr\n }\n\n const signedTxn: SignedTransaction = {\n txn: txn,\n msig: msig,\n authAddress,\n }\n\n return encodeSignedTransaction(signedTxn)\n}\n\ninterface MultisigOptions {\n rawSig: Uint8Array\n myPk: Uint8Array\n}\n\ninterface MultisigMetadataWithPublicKeys extends Omit<MultisigMetadata, 'addrs'> {\n publicKeys: Uint8Array[]\n}\n\n/**\n * creates a multisig transaction blob with an included signature.\n * @param txn - the actual transaction to sign.\n * @param rawSig - a Uint8Array raw signature of that transaction\n * @param myPk - a public key that corresponds with rawSig\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - ordered list of public keys in this multisig\n * @returns encoded multisig blob\n */\nfunction createMultisigTransactionWithSignature(\n txn: Transaction,\n { rawSig, myPk }: MultisigOptions,\n { version, threshold, publicKeys }: MultisigMetadataWithPublicKeys,\n): Uint8Array {\n // Create an empty encoded multisig transaction\n const encodedMsig = createMultisigTransaction(txn, {\n version,\n threshold,\n addrs: publicKeys.map((pk) => new Address(pk)),\n })\n // note: this is not signed yet, but will be shortly\n const signedTxn = decodeSignedTransaction(encodedMsig)\n\n let keyExist = false\n\n // append the multisig signature to the corresponding public key in the multisig blob\n const updatedSubsigs = signedTxn.msig!.subsigs.map((subsig) => {\n if (arrayEqual(subsig.publicKey, myPk)) {\n keyExist = true\n return { ...subsig, sig: rawSig }\n }\n return subsig\n })\n\n if (!keyExist) {\n throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG)\n }\n\n const updatedSignedTxn: SignedTransaction = {\n ...signedTxn,\n msig: {\n ...signedTxn.msig!,\n subsigs: updatedSubsigs,\n },\n }\n\n return encodeSignedTransaction(updatedSignedTxn)\n}\n\n/**\n * takes a list of multisig transaction blobs, and merges them.\n * @param multisigTxnBlobs - a list of blobs representing encoded multisig txns\n * @returns typed array msg-pack encoded multisig txn\n */\nexport function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]) {\n if (multisigTxnBlobs.length < 2) {\n throw new Error(MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG)\n }\n const refSigTx = decodeSignedTransaction(multisigTxnBlobs[0])\n if (!refSigTx.msig) {\n throw new Error('Invalid multisig transaction, multisig structure missing at index 0')\n }\n const refTxID = refSigTx.txn.txId()\n const refAuthAddr = refSigTx.authAddress\n const refPreImage = {\n version: refSigTx.msig.version,\n threshold: refSigTx.msig.threshold,\n publicKeys: refSigTx.msig.subsigs.map((subsig) => subsig.publicKey),\n }\n const refMsigAddr = addressFromMultisigPreImg(refPreImage)\n\n const newSubsigs: MultisigSubsignature[] = refSigTx.msig.subsigs.map((sig) => ({ ...sig }))\n for (let i = 1; i < multisigTxnBlobs.length; i++) {\n const unisig = decodeSignedTransaction(multisigTxnBlobs[i])\n if (!unisig.msig) {\n throw new Error(`Invalid multisig transaction, multisig structure missing at index ${i}`)\n }\n\n if (unisig.txn.txId() !== refTxID) {\n throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG)\n }\n\n const authAddr = unisig.authAddress\n if (refAuthAddr !== authAddr) {\n throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG)\n }\n\n // check multisig has same preimage as reference\n if (unisig.msig.subsigs.length !== refSigTx.msig.subsigs.length) {\n throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG)\n }\n const preimg: MultisigMetadataWithPublicKeys = {\n version: unisig.msig.version,\n threshold: unisig.msig.threshold,\n publicKeys: unisig.msig.subsigs.map((subsig) => subsig.publicKey),\n }\n const msgigAddr = addressFromMultisigPreImg(preimg)\n if (refMsigAddr.toString() !== msgigAddr.toString()) {\n throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG)\n }\n\n // now, we can merge\n unisig.msig.subsigs.forEach((uniSubsig, index) => {\n if (!uniSubsig.sig) return\n const current = newSubsigs[index]\n if (current.sig && !arrayEqual(uniSubsig.sig, current.sig)) {\n // mismatch\n throw new Error(MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG)\n }\n current.sig = uniSubsig.sig\n })\n }\n\n const msig: MultisigSignature = {\n version: refSigTx.msig.version,\n threshold: refSigTx.msig.threshold,\n subsigs: newSubsigs,\n }\n\n const signedTxn: SignedTransaction = {\n txn: refSigTx.txn,\n msig: msig,\n authAddress: refAuthAddr,\n }\n\n return encodeSignedTransaction(signedTxn)\n}\n\n/**\n * Partially signs this transaction with an external raw multisig signature and returns\n * a partially-signed multisig transaction, encoded with msgpack as a typed array.\n * @param transaction - The transaction to sign\n * @param metadata - multisig metadata\n * @param signerAddr - address of the signer\n * @param signature - raw multisig signature\n * @returns an encoded, partially signed multisig transaction.\n */\nfunction partialSignWithMultisigSignature(\n transaction: Transaction,\n metadata: MultisigMetadataWithPublicKeys,\n signerAddr: string | Address,\n signature: Uint8Array,\n) {\n if (signature.length != SIGNATURE_BYTE_LENGTH) {\n throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG)\n }\n const signerAddressObj = typeof signerAddr === 'string' ? Address.fromString(signerAddr) : signerAddr\n return createMultisigTransactionWithSignature(\n transaction,\n {\n rawSig: signature,\n myPk: signerAddressObj.publicKey,\n },\n metadata,\n )\n}\n\n/**\n * Takes a multisig transaction blob, and appends a given raw signature to it.\n * This makes it possible to compile a multisig signature using only raw signatures from external methods.\n * @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.\n * @param signerAddr - address of the signer\n * @param signature - raw multisig signature\n * @returns object containing txID, and blob representing encoded multisig txn\n */\nexport function appendSignRawMultisigSignature(\n multisigTxnBlob: Uint8Array,\n { version, threshold, addrs }: MultisigMetadata,\n signerAddr: string | Address,\n signature: Uint8Array,\n) {\n const publicKeys = toPublicKeys(addrs)\n // obtain underlying txn, sign it, and merge it\n const multisigTxObj = decodeSignedTransaction(multisigTxnBlob)\n const partialSignedBlob = partialSignWithMultisigSignature(multisigTxObj.txn, { version, threshold, publicKeys }, signerAddr, signature)\n return {\n txID: multisigTxObj.txn.txId(),\n blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),\n }\n}\n\n/**\n * Takes multisig parameters and returns a 32 byte typed array public key,\n * representing an address that identifies the \"exact group, version, and public keys\" that are required for signing.\n * Hash(\"MultisigAddr\" || version uint8 || threshold uint8 || PK1 || PK2 || ...)\n * Encoding this output yields a human readable address.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - array of typed array public keys\n */\nexport function addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys,\n}: Omit<MultisigMetadata, 'addrs'> & {\n publicKeys: Uint8Array[]\n}): Address {\n if (version > 255 || version < 0) {\n // ^ a tad redundant, but in case in the future version != 1, still check for uint8\n throw new Error(`${INVALID_MSIG_VERSION_ERROR_MSG}: ${version}`)\n }\n if (threshold === 0 || publicKeys.length === 0 || threshold > publicKeys.length || threshold > 255) {\n throw new Error(INVALID_MSIG_THRESHOLD_ERROR_MSG)\n }\n const pkLen = ALGORAND_ADDRESS_BYTE_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH\n if (pkLen !== PUBLIC_KEY_BYTE_LENGTH) {\n throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG)\n }\n const merged = new Uint8Array(MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen * publicKeys.length)\n merged.set(MULTISIG_PREIMG2ADDR_PREFIX, 0)\n merged.set([version], MULTISIG_PREIMG2ADDR_PREFIX.length)\n merged.set([threshold], MULTISIG_PREIMG2ADDR_PREFIX.length + 1)\n for (let i = 0; i < publicKeys.length; i++) {\n if (publicKeys[i].length !== pkLen) {\n throw new Error(INVALID_MSIG_PK_ERROR_MSG)\n }\n merged.set(publicKeys[i], MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + i * pkLen)\n }\n return new Address(Uint8Array.from(hash(merged)))\n}\n\n/**\n * Takes multisig parameters and returns a human readable Algorand address.\n * This is equivalent to fromMultisigPreImg, but interfaces with encoded addresses.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - array of encoded addresses\n */\nexport function addressFromMultisigPreImgAddrs({ version, threshold, addrs }: MultisigMetadata): Address {\n return addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys: toPublicKeys(addrs),\n })\n}\n\n/**\n * Takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - list of Algorand addresses\n */\nexport const multisigAddress: typeof addressFromMultisigPreImgAddrs = addressFromMultisigPreImgAddrs\n\nexport interface MultisigMetadata {\n /**\n * Multisig version\n */\n version: number\n\n /**\n * Multisig threshold value. Authorization requires a subset of signatures,\n * equal to or greater than the threshold value.\n */\n threshold: number\n\n /**\n * A list of Algorand addresses representing possible signers for this multisig. Order is important.\n */\n addrs: Array<Address>\n}\n\n/** Account wrapper that supports partial or full multisig signing. */\nexport class MultisigAccount implements AddressWithTransactionSigner {\n _params: MultisigMetadata\n _subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[]\n _addr: Address\n _signer: TransactionSigner\n\n /** The parameters for the multisig account */\n get params(): Readonly<MultisigMetadata> {\n return this._params\n }\n\n /** The list of accounts that are present to sign transactions or lsigs */\n get subSigners() {\n return this._subSigners\n }\n\n /** The address of the multisig account */\n get addr(): Readonly<Address> {\n return this._addr\n }\n\n /** The transaction signer for the multisig account */\n get signer(): TransactionSigner {\n return this._signer\n }\n\n constructor(multisigParams: MultisigMetadata, subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[]) {\n this._params = multisigParams\n this._subSigners = subSigners\n this._addr = multisigAddress(multisigParams)\n this._signer = async (txns: Transaction[], indexesToSign: number[]): Promise<Uint8Array[]> => {\n const txnsToSign = txns.filter((_, index) => indexesToSign.includes(index))\n const signedMsigTxns: Uint8Array[] = []\n\n for (const txn of txnsToSign) {\n let signedMsigTxn = createMultisigTransaction(txn, this._params)\n\n for (const subSigner of this.subSigners) {\n const stxn = (await subSigner.signer([txn], [0]))[0]\n const sig = decodeSignedTransaction(stxn).sig\n\n if (!sig) {\n throw new Error(\n `Signer for address ${subSigner.addr.toString()} did not produce a valid signature when signing ${txn.txId()} for multisig account ${this._addr.toString()}`,\n )\n }\n\n signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig).blob\n }\n\n signedMsigTxns.push(signedMsigTxn)\n }\n\n return signedMsigTxns\n }\n }\n}\n/**\n * Decodes MsgPack bytes into a multi signature.\n *\n * @param encodedMultiSignature - The MsgPack encoded multi signature\n * @returns The decoded MultisigSignature or an error if decoding fails.\n */\nexport function decodeMultiSignature(encodedMultiSignature: Uint8Array): MultisigSignature {\n const decodedData = decodeMsgpack(encodedMultiSignature)\n return multiSignatureCodec.decode(decodedData, 'msgpack')\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"multisig.mjs","names":[],"sources":["../../../../packages/transact/src/multisig.ts"],"sourcesContent":["import {\n Address,\n ALGORAND_ADDRESS_BYTE_LENGTH,\n ALGORAND_CHECKSUM_BYTE_LENGTH,\n arrayEqual,\n getAddress,\n PUBLIC_KEY_BYTE_LENGTH,\n SIGNATURE_BYTE_LENGTH,\n} from '@algorandfoundation/algokit-common'\nimport { hash } from '@algorandfoundation/algokit-crypto'\nimport { DelegatedLsigSigner } from './logicsig'\nimport { AddressWithDelegatedLsigSigner, AddressWithTransactionSigner, TransactionSigner } from './signer'\nimport {\n decodeSignedTransaction,\n encodeSignedTransaction,\n MultisigSignature,\n MultisigSubsignature,\n SignedTransaction,\n validateSignedTransaction,\n} from './transactions/signed-transaction'\nimport { Transaction } from './transactions/transaction'\n\nconst toPublicKeys = (addrs: Array<string | Address>): Uint8Array[] => addrs.map((addr) => getAddress(addr).publicKey)\n\n/**\n * Applies a subsignature for a participant to a multisignature signature, replacing any existing signature.\n *\n * This method applies the signature to ALL instances of the given public key (to support weighted multisig).\n * Since ed25519 signatures are deterministic, there's only one valid signature for a given message and public key.\n */\nfunction applyMultisigSubsignature(\n multisigSignature: MultisigSignature,\n participant: Uint8Array,\n signature: Uint8Array,\n): MultisigSignature {\n let found = false\n const newSubsignatures = multisigSignature.subsigs.map((subsig) => {\n if (arrayEqual(subsig.publicKey, participant)) {\n found = true\n return { ...subsig, sig: signature } satisfies MultisigSubsignature\n }\n return subsig\n })\n\n if (!found) {\n throw new Error('Public key not found in multisig signature')\n }\n\n return {\n ...multisigSignature,\n subsigs: newSubsignatures,\n }\n}\n\n// Convert \"MultisigAddr\" UTF-8 to byte array\nconst MULTISIG_PREIMG2ADDR_PREFIX = new Uint8Array([77, 117, 108, 116, 105, 115, 105, 103, 65, 100, 100, 114])\n\nconst INVALID_MSIG_VERSION_ERROR_MSG = 'invalid multisig version'\nconst INVALID_MSIG_THRESHOLD_ERROR_MSG = 'bad multisig threshold'\nconst INVALID_MSIG_PK_ERROR_MSG = 'bad multisig public key - wrong length'\nconst UNEXPECTED_PK_LEN_ERROR_MSG = 'nacl public key length is not 32 bytes'\n\nconst MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = 'Not enough multisig transactions to merge. Need at least two'\nconst MULTISIG_MERGE_MISMATCH_ERROR_MSG = 'Cannot merge txs. txIDs differ'\nconst MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = 'Cannot merge txs. Auth addrs differ'\nconst MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = 'Cannot merge txs. Multisig preimages differ'\nconst MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = 'Cannot merge txs. subsigs are mismatched.'\nconst MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = 'Cannot add multisig signature. Signature is not of the correct length.'\nconst MULTISIG_KEY_NOT_EXIST_ERROR_MSG = 'Key does not exist'\n\n/**\n * creates a raw, multisig transaction blob without any signatures.\n * @param txn - the actual transaction.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - ordered list of public keys in this multisig\n * @returns encoded multisig blob\n */\nfunction createMultisigTransaction(txn: Transaction, { version, threshold, addrs }: MultisigMetadata) {\n // construct the appendable multisigned transaction format\n const pks = toPublicKeys(addrs)\n const subsignatures = pks.map(\n (pk) =>\n ({\n publicKey: pk,\n sig: undefined,\n }) satisfies MultisigSubsignature,\n )\n\n const msig: MultisigSignature = {\n version,\n threshold,\n subsigs: subsignatures,\n }\n\n // if the address of this multisig is different from the transaction sender,\n // we need to add the auth-addr field\n const msigAddr = addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys: pks,\n })\n let authAddress: Address | undefined\n if (!msigAddr.equals(txn.sender)) {\n authAddress = msigAddr\n }\n\n const signedTxn: SignedTransaction = {\n txn: txn,\n msig: msig,\n authAddress,\n }\n\n return signedTxn\n}\n\ninterface MultisigOptions {\n rawSig: Uint8Array\n myPk: Uint8Array\n}\n\ninterface MultisigMetadataWithPublicKeys extends Omit<MultisigMetadata, 'addrs'> {\n publicKeys: Uint8Array[]\n}\n\n/**\n * creates a multisig transaction blob with an included signature.\n * @param txn - the actual transaction to sign.\n * @param rawSig - a Uint8Array raw signature of that transaction\n * @param myPk - a public key that corresponds with rawSig\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - ordered list of public keys in this multisig\n * @returns encoded multisig blob\n */\nfunction createMultisigTransactionWithSignature(\n txn: Transaction,\n { rawSig, myPk }: MultisigOptions,\n { version, threshold, publicKeys }: MultisigMetadataWithPublicKeys,\n): SignedTransaction {\n // Create an empty encoded multisig transaction\n const signedTxn = createMultisigTransaction(txn, {\n version,\n threshold,\n addrs: publicKeys.map((pk) => new Address(pk)),\n })\n\n let keyExist = false\n\n // append the multisig signature to the corresponding public key in the multisig blob\n const updatedSubsigs = signedTxn.msig!.subsigs.map((subsig) => {\n if (arrayEqual(subsig.publicKey, myPk)) {\n keyExist = true\n return { ...subsig, sig: rawSig }\n }\n return subsig\n })\n\n if (!keyExist) {\n throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG)\n }\n\n const updatedSignedTxn: SignedTransaction = {\n ...signedTxn,\n msig: {\n ...signedTxn.msig!,\n subsigs: updatedSubsigs,\n },\n }\n\n return updatedSignedTxn\n}\n\n/**\n * takes a list of multisig transaction blobs, and merges them.\n * @param multisigTxnBlobs - a list of blobs representing encoded multisig txns\n * @returns typed array msg-pack encoded multisig txn\n */\nfunction mergeMultisigTransactions(multisigTxnBlobs: SignedTransaction[]): SignedTransaction {\n if (multisigTxnBlobs.length < 2) {\n throw new Error(MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG)\n }\n const refSigTx = multisigTxnBlobs[0]\n if (!refSigTx.msig) {\n throw new Error('Invalid multisig transaction, multisig structure missing at index 0')\n }\n const refTxID = refSigTx.txn.txId()\n const refAuthAddr = refSigTx.authAddress\n const refPreImage = {\n version: refSigTx.msig.version,\n threshold: refSigTx.msig.threshold,\n publicKeys: refSigTx.msig.subsigs.map((subsig) => subsig.publicKey),\n }\n const refMsigAddr = addressFromMultisigPreImg(refPreImage)\n\n const newSubsigs: MultisigSubsignature[] = refSigTx.msig.subsigs.map((sig) => ({ ...sig }))\n for (let i = 1; i < multisigTxnBlobs.length; i++) {\n const unisig = multisigTxnBlobs[i]\n if (!unisig.msig) {\n throw new Error(`Invalid multisig transaction, multisig structure missing at index ${i}`)\n }\n\n if (unisig.txn.txId() !== refTxID) {\n throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG)\n }\n\n const authAddr = unisig.authAddress\n if (refAuthAddr !== authAddr) {\n throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG)\n }\n\n // check multisig has same preimage as reference\n if (unisig.msig.subsigs.length !== refSigTx.msig.subsigs.length) {\n throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG)\n }\n const preimg: MultisigMetadataWithPublicKeys = {\n version: unisig.msig.version,\n threshold: unisig.msig.threshold,\n publicKeys: unisig.msig.subsigs.map((subsig) => subsig.publicKey),\n }\n const msgigAddr = addressFromMultisigPreImg(preimg)\n if (refMsigAddr.toString() !== msgigAddr.toString()) {\n throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG)\n }\n\n // now, we can merge\n unisig.msig.subsigs.forEach((uniSubsig, index) => {\n if (!uniSubsig.sig) return\n const current = newSubsigs[index]\n if (current.sig && !arrayEqual(uniSubsig.sig, current.sig)) {\n // mismatch\n throw new Error(MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG)\n }\n current.sig = uniSubsig.sig\n })\n }\n\n const msig: MultisigSignature = {\n version: refSigTx.msig.version,\n threshold: refSigTx.msig.threshold,\n subsigs: newSubsigs,\n }\n\n const signedTxn: SignedTransaction = {\n txn: refSigTx.txn,\n msig: msig,\n authAddress: refAuthAddr,\n }\n\n return signedTxn\n}\n\n/**\n * Partially signs this transaction with an external raw multisig signature and returns\n * a partially-signed multisig transaction, encoded with msgpack as a typed array.\n * @param transaction - The transaction to sign\n * @param metadata - multisig metadata\n * @param signerAddr - address of the signer\n * @param signature - raw multisig signature\n * @returns an encoded, partially signed multisig transaction.\n */\nfunction partialSignWithMultisigSignature(\n transaction: Transaction,\n metadata: MultisigMetadataWithPublicKeys,\n signerAddr: string | Address,\n signature: Uint8Array,\n) {\n if (signature.length != SIGNATURE_BYTE_LENGTH) {\n throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG)\n }\n const signerAddressObj = typeof signerAddr === 'string' ? Address.fromString(signerAddr) : signerAddr\n return createMultisigTransactionWithSignature(\n transaction,\n {\n rawSig: signature,\n myPk: signerAddressObj.publicKey,\n },\n metadata,\n )\n}\n\n/**\n * Takes a multisig transaction blob, and appends a given raw signature to it.\n * This makes it possible to compile a multisig signature using only raw signatures from external methods.\n * @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.\n * @param signerAddr - address of the signer\n * @param signature - raw multisig signature\n * @returns object containing txID, and blob representing encoded multisig txn\n */\nfunction appendSignRawMultisigSignature(\n multisigTxn: SignedTransaction,\n { version, threshold, addrs }: MultisigMetadata,\n signerAddr: string | Address,\n signature: Uint8Array,\n): SignedTransaction {\n const publicKeys = toPublicKeys(addrs)\n // obtain underlying txn, sign it, and merge it\n const partialSigned = partialSignWithMultisigSignature(multisigTxn.txn, { version, threshold, publicKeys }, signerAddr, signature)\n return mergeMultisigTransactions([multisigTxn, partialSigned])\n}\n\n/**\n * Takes multisig parameters and returns a 32 byte typed array public key,\n * representing an address that identifies the \"exact group, version, and public keys\" that are required for signing.\n * Hash(\"MultisigAddr\" || version uint8 || threshold uint8 || PK1 || PK2 || ...)\n * Encoding this output yields a human readable address.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param pks - array of typed array public keys\n */\nfunction addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys,\n}: Omit<MultisigMetadata, 'addrs'> & {\n publicKeys: Uint8Array[]\n}): Address {\n if (version > 255 || version < 0) {\n // ^ a tad redundant, but in case in the future version != 1, still check for uint8\n throw new Error(`${INVALID_MSIG_VERSION_ERROR_MSG}: ${version}`)\n }\n if (threshold === 0 || publicKeys.length === 0 || threshold > publicKeys.length || threshold > 255) {\n throw new Error(INVALID_MSIG_THRESHOLD_ERROR_MSG)\n }\n const pkLen = ALGORAND_ADDRESS_BYTE_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH\n if (pkLen !== PUBLIC_KEY_BYTE_LENGTH) {\n throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG)\n }\n const merged = new Uint8Array(MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen * publicKeys.length)\n merged.set(MULTISIG_PREIMG2ADDR_PREFIX, 0)\n merged.set([version], MULTISIG_PREIMG2ADDR_PREFIX.length)\n merged.set([threshold], MULTISIG_PREIMG2ADDR_PREFIX.length + 1)\n for (let i = 0; i < publicKeys.length; i++) {\n if (publicKeys[i].length !== pkLen) {\n throw new Error(INVALID_MSIG_PK_ERROR_MSG)\n }\n merged.set(publicKeys[i], MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + i * pkLen)\n }\n return new Address(Uint8Array.from(hash(merged)))\n}\n\n/**\n * Takes multisig parameters and returns a human readable Algorand address.\n * This is equivalent to fromMultisigPreImg, but interfaces with encoded addresses.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - array of encoded addresses\n */\nfunction addressFromMultisigPreImgAddrs({ version, threshold, addrs }: MultisigMetadata): Address {\n return addressFromMultisigPreImg({\n version,\n threshold,\n publicKeys: toPublicKeys(addrs),\n })\n}\n\n/**\n * Takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.\n * @param version - multisig version\n * @param threshold - multisig threshold\n * @param addrs - list of Algorand addresses\n */\nconst multisigAddress: typeof addressFromMultisigPreImgAddrs = addressFromMultisigPreImgAddrs\n\nexport interface MultisigMetadata {\n /**\n * Multisig version\n */\n version: number\n\n /**\n * Multisig threshold value. Authorization requires a subset of signatures,\n * equal to or greater than the threshold value.\n */\n threshold: number\n\n /**\n * A list of Algorand addresses representing possible signers for this multisig. Order is important.\n */\n addrs: Array<Address>\n}\n\n/** Account wrapper that supports partial or full multisig signing. */\nexport class MultisigAccount implements AddressWithTransactionSigner, AddressWithDelegatedLsigSigner {\n _params: MultisigMetadata\n _subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[]\n _addr: Address\n _signer: TransactionSigner\n _lsigSigner: DelegatedLsigSigner\n\n /** The parameters for the multisig account */\n get params(): Readonly<MultisigMetadata> {\n return this._params\n }\n\n /** The list of accounts that are present to sign transactions or lsigs */\n get subSigners() {\n return this._subSigners\n }\n\n /** The address of the multisig account */\n get addr(): Readonly<Address> {\n return this._addr\n }\n\n /** The transaction signer for the multisig account */\n get signer(): TransactionSigner {\n return this._signer\n }\n\n get lsigSigner(): DelegatedLsigSigner {\n return this._lsigSigner\n }\n\n static fromSignature(signature: MultisigSignature): MultisigAccount {\n const params: MultisigMetadata = {\n version: signature.version,\n threshold: signature.threshold,\n addrs: signature.subsigs.map((subsig) => new Address(subsig.publicKey)),\n }\n\n return new MultisigAccount(params, [])\n }\n\n constructor(multisigParams: MultisigMetadata, subSigners: (AddressWithTransactionSigner & AddressWithDelegatedLsigSigner)[]) {\n this._params = multisigParams\n this._subSigners = subSigners\n this._addr = multisigAddress(multisigParams)\n this._signer = async (txns: Transaction[], indexesToSign: number[]): Promise<Uint8Array[]> => {\n const txnsToSign = txns.filter((_, index) => indexesToSign.includes(index))\n const signedMsigTxns: SignedTransaction[] = []\n\n for (const txn of txnsToSign) {\n let signedMsigTxn = createMultisigTransaction(txn, this._params)\n\n for (const subSigner of this.subSigners) {\n const stxn = (await subSigner.signer([txn], [0]))[0]\n const sig = decodeSignedTransaction(stxn).sig\n\n if (!sig) {\n throw new Error(\n `Signer for address ${subSigner.addr.toString()} did not produce a valid signature when signing ${txn.txId()} for multisig account ${this._addr.toString()}`,\n )\n }\n\n signedMsigTxn = appendSignRawMultisigSignature(signedMsigTxn, this._params, subSigner.addr, sig)\n }\n\n signedMsigTxns.push(signedMsigTxn)\n }\n\n return signedMsigTxns.map((stxn) => {\n validateSignedTransaction(stxn)\n return encodeSignedTransaction(stxn)\n })\n }\n\n this._lsigSigner = async (lsig, _) => {\n let lmsig = lsig.lmsig ?? this.createMultisigSignature()\n\n for (const addrWithSigner of this.subSigners) {\n const { lsigSigner, addr } = addrWithSigner\n const result = await lsigSigner(lsig, this)\n if (!('sig' in result) || !result.sig) {\n throw new Error(\n `Signer for address ${addr.toString()} did not produce a valid signature when signing logic sig for multisig account ${this._addr.toString()}`,\n )\n }\n\n lmsig = this.applySignature(lmsig, addr.publicKey, result.sig)\n }\n\n return { addr: this.addr, lmsig }\n }\n }\n\n createMultisigTransaction(txn: Transaction): SignedTransaction {\n return createMultisigTransaction(txn, this._params)\n }\n\n createMultisigSignature(): MultisigSignature {\n const pks = toPublicKeys(this._params.addrs)\n const subsignatures: MultisigSubsignature[] = pks.map((pk) => ({\n publicKey: pk,\n sig: undefined,\n }))\n\n return {\n version: this._params.version,\n threshold: this._params.threshold,\n subsigs: subsignatures,\n }\n }\n\n applySignatureToTxn(txn: SignedTransaction, pubkey: Uint8Array, signature: Uint8Array): void {\n if (!txn.msig) {\n const createdTxn = this.createMultisigTransaction(txn.txn)\n txn.msig = createdTxn.msig\n }\n\n txn.msig = applyMultisigSubsignature(txn.msig!, pubkey, signature)\n }\n\n applySignature(msigSignature: MultisigSignature, pubkey: Uint8Array, signature: Uint8Array): MultisigSignature {\n if (msigSignature.version !== this._params.version || msigSignature.threshold !== this._params.threshold) {\n const thisParams = {\n version: this._params.version,\n threshold: this._params.threshold,\n participants: this._params.addrs.map((addr) => addr.toString()),\n }\n\n const givenParams = {\n version: msigSignature.version,\n threshold: msigSignature.threshold,\n participants: msigSignature.subsigs.map((subsig) => new Address(subsig.publicKey).toString()),\n }\n\n throw new Error(\n `Multisig signature parameters do not match expected multisig parameters. Multisig params: ${JSON.stringify(thisParams)}, signature: ${JSON.stringify(givenParams)}`,\n )\n }\n\n return applyMultisigSubsignature(msigSignature, pubkey, signature)\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Address, Addressable, ReadableAddress } from "../../common/src/address.js";
2
2
  import { Expand } from "../../common/src/expand.js";
3
3
  import { Transaction } from "./transactions/transaction.js";
4
- import { DelegatedLsigSigner, ProgramDataSigner } from "./logicsig.js";
4
+ import { MultisigAccount } from "./multisig.js";
5
+ import { DelegatedLsigSigner, LogicSig, ProgramDataSigner } from "./logicsig.js";
6
+ import { RawEd25519Signer } from "../../crypto/src/ed25519.js";
5
7
 
6
8
  //#region packages/transact/src/signer.d.ts
7
9
  /** Function for signing a group of transactions */
@@ -35,13 +37,19 @@ type AddressWithSigners = Expand<Addressable & AddressWithTransactionSigner & Ad
35
37
  declare function generateAddressWithSigners(args: {
36
38
  ed25519Pubkey: Uint8Array;
37
39
  sendingAddress?: Address;
38
- rawEd25519Signer: (bytesToSign: Uint8Array) => Promise<Uint8Array>;
40
+ rawEd25519Signer: RawEd25519Signer;
39
41
  }): AddressWithSigners;
40
42
  /**
41
43
  * Create a makeEmptyTransactionSigner that does not specify any signer or
42
44
  * signing capabilities. This should only be used to simulate transactions.
43
45
  */
44
46
  declare function makeEmptyTransactionSigner(): TransactionSigner;
47
+ declare const bytesForSigning: {
48
+ transaction(txn: Transaction): Uint8Array;
49
+ mxBytes(bytes: Uint8Array): Uint8Array;
50
+ lsigForDelegation(lsig: LogicSig, msig?: MultisigAccount): Uint8Array;
51
+ programData(lsig: LogicSig, data: Uint8Array): Uint8Array;
52
+ };
45
53
  //#endregion
46
- export { AddressWithDelegatedLsigSigner, AddressWithMxBytesSigner, AddressWithProgramDataSigner, AddressWithSigners, AddressWithTransactionSigner, MxBytesSigner, SendingAddress, TransactionSigner, generateAddressWithSigners, makeEmptyTransactionSigner };
54
+ export { AddressWithDelegatedLsigSigner, AddressWithMxBytesSigner, AddressWithProgramDataSigner, AddressWithSigners, AddressWithTransactionSigner, MxBytesSigner, SendingAddress, TransactionSigner, bytesForSigning, generateAddressWithSigners, makeEmptyTransactionSigner };
47
55
  //# sourceMappingURL=signer.d.ts.map
@@ -1,8 +1,7 @@
1
- const require_array = require('../../common/src/array.js');
2
- const require_address = require('../../common/src/address.js');
3
- const require_transaction = require('./transactions/transaction.js');
4
- const require_signed_transaction = require('./transactions/signed-transaction.js');
5
-
1
+ const require_array = require("../../common/src/array.js");
2
+ const require_address = require("../../common/src/address.js");
3
+ const require_transaction = require("./transactions/transaction.js");
4
+ const require_signed_transaction = require("./transactions/signed-transaction.js");
6
5
  //#region packages/transact/src/signer.ts
7
6
  const SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]);
8
7
  /**
@@ -28,10 +27,16 @@ function generateAddressWithSigners(args) {
28
27
  if (!txn.sender.equals(sendingAddress)) stxn.authAddress = authAddr;
29
28
  stxns.push(stxn);
30
29
  }
31
- return stxns.map(require_signed_transaction.encodeSignedTransaction);
30
+ return stxns.map((stxn) => {
31
+ require_signed_transaction.validateSignedTransaction(stxn);
32
+ return require_signed_transaction.encodeSignedTransaction(stxn);
33
+ });
32
34
  };
33
35
  const lsigSigner = async (lsig, msig) => {
34
- return await rawEd25519Signer(lsig.bytesToSignForDelegation(msig));
36
+ return {
37
+ sig: await rawEd25519Signer(lsig.bytesToSignForDelegation(msig)),
38
+ addr: sendingAddress
39
+ };
35
40
  };
36
41
  const programDataSigner = async (data, lsig) => {
37
42
  return await rawEd25519Signer(lsig.programDataToSign(data));
@@ -59,13 +64,29 @@ function makeEmptyTransactionSigner() {
59
64
  txn: txnGroup[index],
60
65
  sig: new Uint8Array(64).fill(0)
61
66
  };
67
+ require_signed_transaction.validateSignedTransaction(stxn);
62
68
  unsigned.push(require_signed_transaction.encodeSignedTransaction(stxn));
63
69
  }
64
70
  return Promise.resolve(unsigned);
65
71
  };
66
72
  }
67
-
73
+ const bytesForSigning = {
74
+ transaction(txn) {
75
+ return require_transaction.encodeTransaction(txn);
76
+ },
77
+ mxBytes(bytes) {
78
+ return require_array.concatArrays(SIGN_BYTES_PREFIX, bytes);
79
+ },
80
+ lsigForDelegation(lsig, msig) {
81
+ return lsig.bytesToSignForDelegation(msig);
82
+ },
83
+ programData(lsig, data) {
84
+ return lsig.programDataToSign(data);
85
+ }
86
+ };
68
87
  //#endregion
88
+ exports.bytesForSigning = bytesForSigning;
69
89
  exports.generateAddressWithSigners = generateAddressWithSigners;
70
90
  exports.makeEmptyTransactionSigner = makeEmptyTransactionSigner;
91
+
71
92
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","names":["Address","signer: TransactionSigner","stxns: SignedTransaction[]","stxn: SignedTransaction","encodeTransaction","encodeSignedTransaction","lsigSigner: DelegatedLsigSigner","programDataSigner: ProgramDataSigner","mxBytesSigner: MxBytesSigner","concatArrays","unsigned: Uint8Array[]"],"sources":["../../../../packages/transact/src/signer.ts"],"sourcesContent":["import { Address, Addressable, concatArrays, Expand, ReadableAddress } from '@algorandfoundation/algokit-common'\nimport { encodeTransaction, Transaction } from './transactions/transaction'\nimport { DelegatedLsigSigner, ProgramDataSigner } from './logicsig'\nimport { encodeSignedTransaction, SignedTransaction } from './transactions/signed-transaction'\n\n/** Function for signing a group of transactions */\nexport type TransactionSigner = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>\n\n/** A transaction signer attached to an address */\nexport interface AddressWithTransactionSigner extends Addressable {\n signer: TransactionSigner\n}\n\n/** An address that can be used to send transactions that may or may not have a signer */\nexport type SendingAddress = ReadableAddress | AddressWithTransactionSigner\n\n/** A delegated logic signature signer attached to an address */\nexport interface AddressWithDelegatedLsigSigner extends Addressable {\n lsigSigner: DelegatedLsigSigner\n}\n\nexport interface AddressWithProgramDataSigner extends Addressable {\n programDataSigner: ProgramDataSigner\n}\n\nexport type MxBytesSigner = (bytesToSign: Uint8Array) => Promise<Uint8Array>\n\nexport interface AddressWithMxBytesSigner extends Addressable {\n mxBytesSigner: MxBytesSigner\n}\n\nexport type AddressWithSigners = Expand<\n Addressable & AddressWithTransactionSigner & AddressWithDelegatedLsigSigner & AddressWithProgramDataSigner & AddressWithMxBytesSigner\n>\n\nconst SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]) // \"MX\"\n\n/**\n * Generate type-safe domain-separated signer callbacks given an ed25519 pubkey and a signing callback\n * @param args - The arguments for generating signers\n * @param args.ed25519Pubkey - The ed25519 public key used for signing\n * @param args.sendingAddress - The address that will be used as the sender of transactions. If not provided, defaults to the address derived from the ed25519 public key. This is useful when signing for a rekeyed account where the sending address differs from the auth address.\n * @param args.rawEd25519Signer - A callback function that signs raw bytes using the ed25519 private key\n * @returns An object containing the sending address and various signer functions\n */\nexport function generateAddressWithSigners(args: {\n ed25519Pubkey: Uint8Array\n sendingAddress?: Address\n rawEd25519Signer: (bytesToSign: Uint8Array) => Promise<Uint8Array>\n}): AddressWithSigners {\n const { ed25519Pubkey, rawEd25519Signer } = args\n const authAddr = new Address(ed25519Pubkey)\n const sendingAddress = args.sendingAddress ?? authAddr\n\n const signer: TransactionSigner = async (txnGroup: Transaction[], indexesToSign: number[]) => {\n const stxns: SignedTransaction[] = []\n for (const index of indexesToSign) {\n const txn = txnGroup[index]\n const bytesToSign = encodeTransaction(txn)\n const signature = await rawEd25519Signer(bytesToSign)\n const stxn: SignedTransaction = {\n txn,\n sig: signature,\n }\n\n if (!txn.sender.equals(sendingAddress)) {\n stxn.authAddress = authAddr\n }\n\n stxns.push(stxn)\n }\n\n return stxns.map(encodeSignedTransaction)\n }\n\n const lsigSigner: DelegatedLsigSigner = async (lsig, msig) => {\n const bytesToSign = lsig.bytesToSignForDelegation(msig)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const programDataSigner: ProgramDataSigner = async (data, lsig) => {\n const bytesToSign = lsig.programDataToSign(data)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const mxBytesSigner: MxBytesSigner = async (bytes: Uint8Array) => {\n const bytesToSign = concatArrays(SIGN_BYTES_PREFIX, bytes)\n return await rawEd25519Signer(bytesToSign)\n }\n\n return { addr: sendingAddress, signer, lsigSigner, programDataSigner, mxBytesSigner }\n}\n\n/**\n * Create a makeEmptyTransactionSigner that does not specify any signer or\n * signing capabilities. This should only be used to simulate transactions.\n */\nexport function makeEmptyTransactionSigner(): TransactionSigner {\n return (txnGroup: Transaction[], indexesToSign: number[]) => {\n const unsigned: Uint8Array[] = []\n\n for (const index of indexesToSign) {\n const stxn: SignedTransaction = {\n txn: txnGroup[index],\n sig: new Uint8Array(64).fill(0),\n }\n unsigned.push(encodeSignedTransaction(stxn))\n }\n\n return Promise.resolve(unsigned)\n }\n}\n"],"mappings":";;;;;;AAmCA,MAAM,oBAAoB,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC;;;;;;;;;AAUnD,SAAgB,2BAA2B,MAIpB;CACrB,MAAM,EAAE,eAAe,qBAAqB;CAC5C,MAAM,WAAW,IAAIA,wBAAQ,cAAc;CAC3C,MAAM,iBAAiB,KAAK,kBAAkB;CAE9C,MAAMC,SAA4B,OAAO,UAAyB,kBAA4B;EAC5F,MAAMC,QAA6B,EAAE;AACrC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,MAAM,SAAS;GAGrB,MAAMC,OAA0B;IAC9B;IACA,KAHgB,MAAM,iBADJC,sCAAkB,IAAI,CACW;IAIpD;AAED,OAAI,CAAC,IAAI,OAAO,OAAO,eAAe,CACpC,MAAK,cAAc;AAGrB,SAAM,KAAK,KAAK;;AAGlB,SAAO,MAAM,IAAIC,mDAAwB;;CAG3C,MAAMC,aAAkC,OAAO,MAAM,SAAS;AAE5D,SAAO,MAAM,iBADO,KAAK,yBAAyB,KAAK,CACb;;CAG5C,MAAMC,oBAAuC,OAAO,MAAM,SAAS;AAEjE,SAAO,MAAM,iBADO,KAAK,kBAAkB,KAAK,CACN;;CAG5C,MAAMC,gBAA+B,OAAO,UAAsB;AAEhE,SAAO,MAAM,iBADOC,2BAAa,mBAAmB,MAAM,CAChB;;AAG5C,QAAO;EAAE,MAAM;EAAgB;EAAQ;EAAY;EAAmB;EAAe;;;;;;AAOvF,SAAgB,6BAAgD;AAC9D,SAAQ,UAAyB,kBAA4B;EAC3D,MAAMC,WAAyB,EAAE;AAEjC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAMP,OAA0B;IAC9B,KAAK,SAAS;IACd,KAAK,IAAI,WAAW,GAAG,CAAC,KAAK,EAAE;IAChC;AACD,YAAS,KAAKE,mDAAwB,KAAK,CAAC;;AAG9C,SAAO,QAAQ,QAAQ,SAAS"}
1
+ {"version":3,"file":"signer.js","names":["Address","encodeTransaction","encodeSignedTransaction","concatArrays"],"sources":["../../../../packages/transact/src/signer.ts"],"sourcesContent":["import { Address, Addressable, concatArrays, Expand, ReadableAddress } from '@algorandfoundation/algokit-common'\nimport { DelegatedLsigSigner, LogicSig, ProgramDataSigner } from './logicsig'\nimport { encodeSignedTransaction, SignedTransaction, validateSignedTransaction } from './transactions/signed-transaction'\nimport { encodeTransaction, Transaction } from './transactions/transaction'\nimport type { RawEd25519Signer } from '@algorandfoundation/algokit-crypto'\nimport { MultisigAccount } from './multisig'\n\n/** Function for signing a group of transactions */\nexport type TransactionSigner = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>\n\n/** A transaction signer attached to an address */\nexport interface AddressWithTransactionSigner extends Addressable {\n signer: TransactionSigner\n}\n\n/** An address that can be used to send transactions that may or may not have a signer */\nexport type SendingAddress = ReadableAddress | AddressWithTransactionSigner\n\n/** A delegated logic signature signer attached to an address */\nexport interface AddressWithDelegatedLsigSigner extends Addressable {\n lsigSigner: DelegatedLsigSigner\n}\n\nexport interface AddressWithProgramDataSigner extends Addressable {\n programDataSigner: ProgramDataSigner\n}\n\nexport type MxBytesSigner = (bytesToSign: Uint8Array) => Promise<Uint8Array>\n\nexport interface AddressWithMxBytesSigner extends Addressable {\n mxBytesSigner: MxBytesSigner\n}\n\nexport type AddressWithSigners = Expand<\n Addressable & AddressWithTransactionSigner & AddressWithDelegatedLsigSigner & AddressWithProgramDataSigner & AddressWithMxBytesSigner\n>\n\nconst SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]) // \"MX\"\n\n/**\n * Generate type-safe domain-separated signer callbacks given an ed25519 pubkey and a signing callback\n * @param args - The arguments for generating signers\n * @param args.ed25519Pubkey - The ed25519 public key used for signing\n * @param args.sendingAddress - The address that will be used as the sender of transactions. If not provided, defaults to the address derived from the ed25519 public key. This is useful when signing for a rekeyed account where the sending address differs from the auth address.\n * @param args.rawEd25519Signer - A callback function that signs raw bytes using the ed25519 private key\n * @returns An object containing the sending address and various signer functions\n */\nexport function generateAddressWithSigners(args: {\n ed25519Pubkey: Uint8Array\n sendingAddress?: Address\n rawEd25519Signer: RawEd25519Signer\n}): AddressWithSigners {\n const { ed25519Pubkey, rawEd25519Signer } = args\n const authAddr = new Address(ed25519Pubkey)\n const sendingAddress = args.sendingAddress ?? authAddr\n\n const signer: TransactionSigner = async (txnGroup: Transaction[], indexesToSign: number[]) => {\n const stxns: SignedTransaction[] = []\n for (const index of indexesToSign) {\n const txn = txnGroup[index]\n const bytesToSign = encodeTransaction(txn)\n const signature = await rawEd25519Signer(bytesToSign)\n const stxn: SignedTransaction = {\n txn,\n sig: signature,\n }\n\n if (!txn.sender.equals(sendingAddress)) {\n stxn.authAddress = authAddr\n }\n\n stxns.push(stxn)\n }\n\n return stxns.map((stxn) => {\n validateSignedTransaction(stxn)\n return encodeSignedTransaction(stxn)\n })\n }\n\n const lsigSigner: DelegatedLsigSigner = async (lsig, msig) => {\n const bytesToSign = lsig.bytesToSignForDelegation(msig)\n const sig = await rawEd25519Signer(bytesToSign)\n return { sig, addr: sendingAddress }\n }\n\n const programDataSigner: ProgramDataSigner = async (data, lsig) => {\n const bytesToSign = lsig.programDataToSign(data)\n return await rawEd25519Signer(bytesToSign)\n }\n\n const mxBytesSigner: MxBytesSigner = async (bytes: Uint8Array) => {\n const bytesToSign = concatArrays(SIGN_BYTES_PREFIX, bytes)\n return await rawEd25519Signer(bytesToSign)\n }\n\n return { addr: sendingAddress, signer, lsigSigner, programDataSigner, mxBytesSigner }\n}\n\n/**\n * Create a makeEmptyTransactionSigner that does not specify any signer or\n * signing capabilities. This should only be used to simulate transactions.\n */\nexport function makeEmptyTransactionSigner(): TransactionSigner {\n return (txnGroup: Transaction[], indexesToSign: number[]) => {\n const unsigned: Uint8Array[] = []\n\n for (const index of indexesToSign) {\n const stxn: SignedTransaction = {\n txn: txnGroup[index],\n sig: new Uint8Array(64).fill(0),\n }\n validateSignedTransaction(stxn)\n unsigned.push(encodeSignedTransaction(stxn))\n }\n\n return Promise.resolve(unsigned)\n }\n}\n\nexport const bytesForSigning = {\n transaction(txn: Transaction): Uint8Array {\n return encodeTransaction(txn)\n },\n mxBytes(bytes: Uint8Array): Uint8Array {\n return concatArrays(SIGN_BYTES_PREFIX, bytes)\n },\n lsigForDelegation(lsig: LogicSig, msig?: MultisigAccount): Uint8Array {\n return lsig.bytesToSignForDelegation(msig)\n },\n programData(lsig: LogicSig, data: Uint8Array): Uint8Array {\n return lsig.programDataToSign(data)\n },\n}\n"],"mappings":";;;;;AAqCA,MAAM,oBAAoB,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC;;;;;;;;;AAUnD,SAAgB,2BAA2B,MAIpB;CACrB,MAAM,EAAE,eAAe,qBAAqB;CAC5C,MAAM,WAAW,IAAIA,gBAAAA,QAAQ,cAAc;CAC3C,MAAM,iBAAiB,KAAK,kBAAkB;CAE9C,MAAM,SAA4B,OAAO,UAAyB,kBAA4B;EAC5F,MAAM,QAA6B,EAAE;AACrC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,MAAM,SAAS;GAGrB,MAAM,OAA0B;IAC9B;IACA,KAHgB,MAAM,iBADJC,oBAAAA,kBAAkB,IAAI,CACW;IAIpD;AAED,OAAI,CAAC,IAAI,OAAO,OAAO,eAAe,CACpC,MAAK,cAAc;AAGrB,SAAM,KAAK,KAAK;;AAGlB,SAAO,MAAM,KAAK,SAAS;AACzB,8BAAA,0BAA0B,KAAK;AAC/B,UAAOC,2BAAAA,wBAAwB,KAAK;IACpC;;CAGJ,MAAM,aAAkC,OAAO,MAAM,SAAS;AAG5D,SAAO;GAAE,KADG,MAAM,iBADE,KAAK,yBAAyB,KAAK,CACR;GACjC,MAAM;GAAgB;;CAGtC,MAAM,oBAAuC,OAAO,MAAM,SAAS;AAEjE,SAAO,MAAM,iBADO,KAAK,kBAAkB,KAAK,CACN;;CAG5C,MAAM,gBAA+B,OAAO,UAAsB;AAEhE,SAAO,MAAM,iBADOC,cAAAA,aAAa,mBAAmB,MAAM,CAChB;;AAG5C,QAAO;EAAE,MAAM;EAAgB;EAAQ;EAAY;EAAmB;EAAe;;;;;;AAOvF,SAAgB,6BAAgD;AAC9D,SAAQ,UAAyB,kBAA4B;EAC3D,MAAM,WAAyB,EAAE;AAEjC,OAAK,MAAM,SAAS,eAAe;GACjC,MAAM,OAA0B;IAC9B,KAAK,SAAS;IACd,KAAK,IAAI,WAAW,GAAG,CAAC,KAAK,EAAE;IAChC;AACD,8BAAA,0BAA0B,KAAK;AAC/B,YAAS,KAAKD,2BAAAA,wBAAwB,KAAK,CAAC;;AAG9C,SAAO,QAAQ,QAAQ,SAAS;;;AAIpC,MAAa,kBAAkB;CAC7B,YAAY,KAA8B;AACxC,SAAOD,oBAAAA,kBAAkB,IAAI;;CAE/B,QAAQ,OAA+B;AACrC,SAAOE,cAAAA,aAAa,mBAAmB,MAAM;;CAE/C,kBAAkB,MAAgB,MAAoC;AACpE,SAAO,KAAK,yBAAyB,KAAK;;CAE5C,YAAY,MAAgB,MAA8B;AACxD,SAAO,KAAK,kBAAkB,KAAK;;CAEtC"}
@@ -1,8 +1,7 @@
1
1
  import { concatArrays } from "../../common/src/array.mjs";
2
2
  import { Address } from "../../common/src/address.mjs";
3
3
  import { encodeTransaction } from "./transactions/transaction.mjs";
4
- import { encodeSignedTransaction } from "./transactions/signed-transaction.mjs";
5
-
4
+ import { encodeSignedTransaction, validateSignedTransaction } from "./transactions/signed-transaction.mjs";
6
5
  //#region packages/transact/src/signer.ts
7
6
  const SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]);
8
7
  /**
@@ -28,10 +27,16 @@ function generateAddressWithSigners(args) {
28
27
  if (!txn.sender.equals(sendingAddress)) stxn.authAddress = authAddr;
29
28
  stxns.push(stxn);
30
29
  }
31
- return stxns.map(encodeSignedTransaction);
30
+ return stxns.map((stxn) => {
31
+ validateSignedTransaction(stxn);
32
+ return encodeSignedTransaction(stxn);
33
+ });
32
34
  };
33
35
  const lsigSigner = async (lsig, msig) => {
34
- return await rawEd25519Signer(lsig.bytesToSignForDelegation(msig));
36
+ return {
37
+ sig: await rawEd25519Signer(lsig.bytesToSignForDelegation(msig)),
38
+ addr: sendingAddress
39
+ };
35
40
  };
36
41
  const programDataSigner = async (data, lsig) => {
37
42
  return await rawEd25519Signer(lsig.programDataToSign(data));
@@ -59,12 +64,27 @@ function makeEmptyTransactionSigner() {
59
64
  txn: txnGroup[index],
60
65
  sig: new Uint8Array(64).fill(0)
61
66
  };
67
+ validateSignedTransaction(stxn);
62
68
  unsigned.push(encodeSignedTransaction(stxn));
63
69
  }
64
70
  return Promise.resolve(unsigned);
65
71
  };
66
72
  }
67
-
73
+ const bytesForSigning = {
74
+ transaction(txn) {
75
+ return encodeTransaction(txn);
76
+ },
77
+ mxBytes(bytes) {
78
+ return concatArrays(SIGN_BYTES_PREFIX, bytes);
79
+ },
80
+ lsigForDelegation(lsig, msig) {
81
+ return lsig.bytesToSignForDelegation(msig);
82
+ },
83
+ programData(lsig, data) {
84
+ return lsig.programDataToSign(data);
85
+ }
86
+ };
68
87
  //#endregion
69
- export { generateAddressWithSigners, makeEmptyTransactionSigner };
88
+ export { bytesForSigning, generateAddressWithSigners, makeEmptyTransactionSigner };
89
+
70
90
  //# sourceMappingURL=signer.mjs.map