@algorandfoundation/algokit-utils 10.0.0-alpha.3 → 10.0.0-alpha.32

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 (704) hide show
  1. package/_virtual/rolldown_runtime.js +10 -15
  2. package/abi/index.d.ts +2 -1
  3. package/abi/index.js +3 -0
  4. package/abi/index.mjs +2 -1
  5. package/account-manager.d.ts +448 -0
  6. package/account-manager.js +623 -0
  7. package/account-manager.js.map +1 -0
  8. package/account-manager.mjs +620 -0
  9. package/account-manager.mjs.map +1 -0
  10. package/account.d.ts +156 -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/algod-client/index.d.ts +3 -7
  16. package/algod-client/index.js +2 -5
  17. package/algod-client/index.mjs +2 -2
  18. package/algorand-client-transaction-creator.d.ts +1103 -0
  19. package/algorand-client-transaction-creator.js +735 -0
  20. package/algorand-client-transaction-creator.js.map +1 -0
  21. package/algorand-client-transaction-creator.mjs +734 -0
  22. package/algorand-client-transaction-creator.mjs.map +1 -0
  23. package/algorand-client-transaction-sender.d.ts +1317 -0
  24. package/algorand-client-transaction-sender.js +933 -0
  25. package/algorand-client-transaction-sender.js.map +1 -0
  26. package/algorand-client-transaction-sender.mjs +932 -0
  27. package/algorand-client-transaction-sender.mjs.map +1 -0
  28. package/algorand-client.d.ts +246 -0
  29. package/algorand-client.js +325 -0
  30. package/algorand-client.js.map +1 -0
  31. package/algorand-client.mjs +325 -0
  32. package/algorand-client.mjs.map +1 -0
  33. package/amount.d.ts +46 -3
  34. package/amount.js +92 -13
  35. package/amount.js.map +1 -1
  36. package/amount.mjs +80 -3
  37. package/amount.mjs.map +1 -1
  38. package/app-client.d.ts +2130 -0
  39. package/app-client.js +909 -0
  40. package/app-client.js.map +1 -0
  41. package/app-client.mjs +908 -0
  42. package/app-client.mjs.map +1 -0
  43. package/app-deployer.d.ts +166 -0
  44. package/app-deployer.js +353 -0
  45. package/app-deployer.js.map +1 -0
  46. package/app-deployer.mjs +353 -0
  47. package/app-deployer.mjs.map +1 -0
  48. package/app-factory.d.ts +965 -0
  49. package/app-factory.js +448 -0
  50. package/app-factory.js.map +1 -0
  51. package/app-factory.mjs +448 -0
  52. package/app-factory.mjs.map +1 -0
  53. package/app-manager.d.ts +323 -0
  54. package/app-manager.js +468 -0
  55. package/app-manager.js.map +1 -0
  56. package/app-manager.mjs +468 -0
  57. package/app-manager.mjs.map +1 -0
  58. package/app-spec.d.ts +203 -0
  59. package/app-spec.js +137 -0
  60. package/app-spec.js.map +1 -0
  61. package/app-spec.mjs +137 -0
  62. package/app-spec.mjs.map +1 -0
  63. package/app.d.ts +257 -0
  64. package/app.js +49 -0
  65. package/app.js.map +1 -0
  66. package/app.mjs +42 -0
  67. package/app.mjs.map +1 -0
  68. package/asset-manager.d.ts +212 -0
  69. package/asset-manager.js +166 -0
  70. package/asset-manager.js.map +1 -0
  71. package/asset-manager.mjs +166 -0
  72. package/asset-manager.mjs.map +1 -0
  73. package/async-event-emitter.d.ts +16 -0
  74. package/async-event-emitter.js +38 -0
  75. package/async-event-emitter.js.map +1 -0
  76. package/async-event-emitter.mjs +37 -0
  77. package/async-event-emitter.mjs.map +1 -0
  78. package/client-manager.d.ts +475 -0
  79. package/client-manager.js +616 -0
  80. package/client-manager.js.map +1 -0
  81. package/client-manager.mjs +616 -0
  82. package/client-manager.mjs.map +1 -0
  83. package/composer.d.ts +947 -0
  84. package/composer.js +1584 -0
  85. package/composer.js.map +1 -0
  86. package/composer.mjs +1583 -0
  87. package/composer.mjs.map +1 -0
  88. package/config.d.ts +1 -1
  89. package/config.js +2 -2
  90. package/config.js.map +1 -1
  91. package/config.mjs +1 -1
  92. package/config.mjs.map +1 -1
  93. package/debugging.d.ts +47 -0
  94. package/debugging.js +20 -0
  95. package/debugging.js.map +1 -0
  96. package/debugging.mjs +15 -0
  97. package/debugging.mjs.map +1 -0
  98. package/dispenser-client.d.ts +90 -0
  99. package/dispenser-client.js +127 -0
  100. package/dispenser-client.js.map +1 -0
  101. package/dispenser-client.mjs +127 -0
  102. package/dispenser-client.mjs.map +1 -0
  103. package/expand.d.ts +2 -0
  104. package/expand.js +0 -0
  105. package/expand.mjs +0 -0
  106. package/index.d.ts +6 -6
  107. package/index.js +4 -10
  108. package/index.mjs +5 -6
  109. package/indexer-client/index.d.ts +2 -2
  110. package/indexer-client/index.js +6 -6
  111. package/indexer-client/index.mjs +2 -2
  112. package/{indexer-lookup.d.ts → indexer-client/indexer-lookup.d.ts} +8 -11
  113. package/{indexer-lookup.mjs → indexer-client/indexer-lookup.js} +6 -10
  114. package/indexer-client/indexer-lookup.js.map +1 -0
  115. package/{indexer-lookup.js → indexer-client/indexer-lookup.mjs} +3 -18
  116. package/indexer-client/indexer-lookup.mjs.map +1 -0
  117. package/indexer.d.ts +40 -0
  118. package/indexer.js +38 -0
  119. package/indexer.js.map +1 -0
  120. package/indexer.mjs +35 -0
  121. package/indexer.mjs.map +1 -0
  122. package/instance-of.d.ts +8 -0
  123. package/kmd-account-manager.d.ts +74 -0
  124. package/kmd-account-manager.js +167 -0
  125. package/kmd-account-manager.js.map +1 -0
  126. package/kmd-account-manager.mjs +165 -0
  127. package/kmd-account-manager.mjs.map +1 -0
  128. package/kmd-client/index.d.ts +1 -2
  129. package/kmd-client/index.js +0 -5
  130. package/kmd-client/index.mjs +1 -2
  131. package/lifecycle-events.d.ts +14 -0
  132. package/lifecycle-events.js +11 -0
  133. package/lifecycle-events.js.map +1 -0
  134. package/lifecycle-events.mjs +10 -0
  135. package/lifecycle-events.mjs.map +1 -0
  136. package/logging.d.ts +13 -0
  137. package/logging.js +47 -0
  138. package/logging.js.map +1 -0
  139. package/logging.mjs +42 -0
  140. package/logging.mjs.map +1 -0
  141. package/logic-error.d.ts +39 -0
  142. package/logic-error.js +54 -0
  143. package/logic-error.js.map +1 -0
  144. package/logic-error.mjs +53 -0
  145. package/logic-error.mjs.map +1 -0
  146. package/network-client.d.ts +43 -0
  147. package/network-client.js +14 -0
  148. package/network-client.js.map +1 -0
  149. package/network-client.mjs +13 -0
  150. package/network-client.mjs.map +1 -0
  151. package/package.json +14 -5
  152. package/packages/abi/src/abi-method.d.ts +1 -1
  153. package/packages/abi/src/abi-method.js +1 -1
  154. package/packages/abi/src/abi-method.js.map +1 -1
  155. package/packages/abi/src/abi-method.mjs +1 -1
  156. package/packages/abi/src/abi-method.mjs.map +1 -1
  157. package/packages/abi/src/abi-type.d.ts +1 -3
  158. package/packages/abi/src/abi-type.js +7 -36
  159. package/packages/abi/src/abi-type.js.map +1 -1
  160. package/packages/abi/src/abi-type.mjs +7 -36
  161. package/packages/abi/src/abi-type.mjs.map +1 -1
  162. package/packages/abi/src/arc56-contract.js +1 -0
  163. package/packages/abi/src/arc56-contract.js.map +1 -1
  164. package/packages/abi/src/arc56-contract.mjs +1 -0
  165. package/packages/abi/src/arc56-contract.mjs.map +1 -1
  166. package/packages/abi/src/utils.d.ts +22 -0
  167. package/packages/abi/src/utils.js +57 -0
  168. package/packages/abi/src/utils.js.map +1 -0
  169. package/packages/abi/src/utils.mjs +55 -0
  170. package/packages/abi/src/utils.mjs.map +1 -0
  171. package/packages/algo25/src/index.js +1 -1
  172. package/packages/algo25/src/index.mjs +1 -1
  173. package/packages/algod_client/src/apis/api-service.d.ts +44 -44
  174. package/packages/algod_client/src/apis/api-service.js +155 -155
  175. package/packages/algod_client/src/apis/api-service.js.map +1 -1
  176. package/packages/algod_client/src/apis/api-service.mjs +155 -155
  177. package/packages/algod_client/src/apis/api-service.mjs.map +1 -1
  178. package/packages/algod_client/src/core/api-error.js +3 -1
  179. package/packages/algod_client/src/core/api-error.js.map +1 -1
  180. package/packages/algod_client/src/core/api-error.mjs +3 -1
  181. package/packages/algod_client/src/core/api-error.mjs.map +1 -1
  182. package/packages/algod_client/src/core/model-runtime.js +6 -6
  183. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  184. package/packages/algod_client/src/core/model-runtime.mjs +8 -8
  185. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  186. package/packages/algod_client/src/models/account-participation.js +4 -4
  187. package/packages/algod_client/src/models/account-participation.js.map +1 -1
  188. package/packages/algod_client/src/models/account-participation.mjs +4 -4
  189. package/packages/algod_client/src/models/account-participation.mjs.map +1 -1
  190. package/packages/algod_client/src/models/application-state-schema.d.ts +2 -2
  191. package/packages/algod_client/src/models/application-state-schema.js +2 -2
  192. package/packages/algod_client/src/models/application-state-schema.js.map +1 -1
  193. package/packages/algod_client/src/models/application-state-schema.mjs +2 -2
  194. package/packages/algod_client/src/models/application-state-schema.mjs.map +1 -1
  195. package/packages/algod_client/src/models/asset-params.js +2 -1
  196. package/packages/algod_client/src/models/asset-params.js.map +1 -1
  197. package/packages/algod_client/src/models/asset-params.mjs +2 -1
  198. package/packages/algod_client/src/models/asset-params.mjs.map +1 -1
  199. package/packages/algod_client/src/models/block-response.js +1 -2
  200. package/packages/algod_client/src/models/block-response.js.map +1 -1
  201. package/packages/algod_client/src/models/block-response.mjs +2 -3
  202. package/packages/algod_client/src/models/block-response.mjs.map +1 -1
  203. package/packages/algod_client/src/models/block.d.ts +60 -40
  204. package/packages/algod_client/src/models/block.js +184 -108
  205. package/packages/algod_client/src/models/block.js.map +1 -1
  206. package/packages/algod_client/src/models/block.mjs +184 -108
  207. package/packages/algod_client/src/models/block.mjs.map +1 -1
  208. package/packages/algod_client/src/models/eval-delta-key-value.js +2 -2
  209. package/packages/algod_client/src/models/eval-delta-key-value.js.map +1 -1
  210. package/packages/algod_client/src/models/eval-delta-key-value.mjs +2 -2
  211. package/packages/algod_client/src/models/eval-delta-key-value.mjs.map +1 -1
  212. package/packages/algod_client/src/models/eval-delta.js +2 -2
  213. package/packages/algod_client/src/models/eval-delta.js.map +1 -1
  214. package/packages/algod_client/src/models/eval-delta.mjs +2 -2
  215. package/packages/algod_client/src/models/eval-delta.mjs.map +1 -1
  216. package/packages/algod_client/src/models/ledger-state-delta.js +1 -1
  217. package/packages/algod_client/src/models/ledger-state-delta.js.map +1 -1
  218. package/packages/algod_client/src/models/ledger-state-delta.mjs +2 -2
  219. package/packages/algod_client/src/models/ledger-state-delta.mjs.map +1 -1
  220. package/packages/algod_client/src/models/simulate-request.js +1 -1
  221. package/packages/algod_client/src/models/simulate-request.mjs +1 -1
  222. package/packages/algod_client/src/models/simulate-response.d.ts +2 -1
  223. package/packages/algod_client/src/models/simulate-response.js +6 -1
  224. package/packages/algod_client/src/models/simulate-response.js.map +1 -1
  225. package/packages/algod_client/src/models/simulate-response.mjs +6 -2
  226. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
  227. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.d.ts +3 -5
  228. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js +4 -6
  229. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.js.map +1 -1
  230. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs +3 -5
  231. package/packages/algod_client/src/models/simulate-unnamed-resources-accessed.mjs.map +1 -1
  232. package/packages/algod_client/src/models/transaction-parameters-response.js +2 -2
  233. package/packages/algod_client/src/models/transaction-parameters-response.js.map +1 -1
  234. package/packages/algod_client/src/models/transaction-parameters-response.mjs +2 -2
  235. package/packages/algod_client/src/models/transaction-parameters-response.mjs.map +1 -1
  236. package/packages/common/src/address.d.ts +0 -1
  237. package/packages/common/src/address.js +4 -17
  238. package/packages/common/src/address.js.map +1 -1
  239. package/packages/common/src/address.mjs +5 -17
  240. package/packages/common/src/address.mjs.map +1 -1
  241. package/packages/common/src/codecs/composite/map.js +7 -4
  242. package/packages/common/src/codecs/composite/map.js.map +1 -1
  243. package/packages/common/src/codecs/composite/map.mjs +7 -4
  244. package/packages/common/src/codecs/composite/map.mjs.map +1 -1
  245. package/packages/common/src/codecs/composite/record.js +0 -1
  246. package/packages/common/src/codecs/composite/record.js.map +1 -1
  247. package/packages/common/src/codecs/primitives/address.js +0 -1
  248. package/packages/common/src/codecs/primitives/address.js.map +1 -1
  249. package/packages/common/src/codecs/primitives/bytes-base64.js +26 -0
  250. package/packages/common/src/codecs/primitives/bytes-base64.js.map +1 -0
  251. package/packages/common/src/codecs/primitives/bytes-base64.mjs +25 -0
  252. package/packages/common/src/codecs/primitives/bytes-base64.mjs.map +1 -0
  253. package/packages/common/src/codecs/primitives/bytes.js +0 -1
  254. package/packages/common/src/codecs/primitives/bytes.js.map +1 -1
  255. package/packages/common/src/codecs/primitives/fixed-bytes.js +0 -1
  256. package/packages/common/src/codecs/primitives/fixed-bytes.js.map +1 -1
  257. package/packages/common/src/codecs/wire.js +0 -1
  258. package/packages/common/src/codecs/wire.js.map +1 -1
  259. package/packages/common/src/json.mjs +2 -2
  260. package/packages/common/src/json.mjs.map +1 -1
  261. package/packages/common/src/msgpack.js +0 -1
  262. package/packages/common/src/msgpack.js.map +1 -1
  263. package/packages/{sdk/src/logic → common/src}/sourcemap.d.ts +2 -2
  264. package/packages/{sdk/src/logic → common/src}/sourcemap.js +2 -2
  265. package/packages/{sdk/src/logic → common/src}/sourcemap.js.map +1 -1
  266. package/packages/{sdk/src/logic → common/src}/sourcemap.mjs +1 -1
  267. package/packages/{sdk/src/logic → common/src}/sourcemap.mjs.map +1 -1
  268. package/packages/indexer_client/src/apis/api-service.d.ts +1 -1
  269. package/packages/indexer_client/src/apis/api-service.js +12 -12
  270. package/packages/indexer_client/src/apis/api-service.js.map +1 -1
  271. package/packages/indexer_client/src/apis/api-service.mjs +12 -12
  272. package/packages/indexer_client/src/apis/api-service.mjs.map +1 -1
  273. package/packages/indexer_client/src/core/api-error.js +3 -1
  274. package/packages/indexer_client/src/core/api-error.js.map +1 -1
  275. package/packages/indexer_client/src/core/api-error.mjs +3 -1
  276. package/packages/indexer_client/src/core/api-error.mjs.map +1 -1
  277. package/packages/indexer_client/src/core/model-runtime.js +0 -15
  278. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  279. package/packages/indexer_client/src/core/model-runtime.mjs +1 -13
  280. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  281. package/packages/indexer_client/src/models/account-participation.js +4 -4
  282. package/packages/indexer_client/src/models/account-participation.js.map +1 -1
  283. package/packages/indexer_client/src/models/account-participation.mjs +4 -4
  284. package/packages/indexer_client/src/models/account-participation.mjs.map +1 -1
  285. package/packages/indexer_client/src/models/application-state-schema.d.ts +2 -2
  286. package/packages/indexer_client/src/models/application-state-schema.js +2 -2
  287. package/packages/indexer_client/src/models/application-state-schema.js.map +1 -1
  288. package/packages/indexer_client/src/models/application-state-schema.mjs +2 -2
  289. package/packages/indexer_client/src/models/application-state-schema.mjs.map +1 -1
  290. package/packages/indexer_client/src/models/asset-params.js +2 -1
  291. package/packages/indexer_client/src/models/asset-params.js.map +1 -1
  292. package/packages/indexer_client/src/models/asset-params.mjs +2 -1
  293. package/packages/indexer_client/src/models/asset-params.mjs.map +1 -1
  294. package/packages/indexer_client/src/models/block.d.ts +5 -5
  295. package/packages/indexer_client/src/models/block.js +13 -13
  296. package/packages/indexer_client/src/models/block.js.map +1 -1
  297. package/packages/indexer_client/src/models/block.mjs +13 -13
  298. package/packages/indexer_client/src/models/block.mjs.map +1 -1
  299. package/packages/indexer_client/src/models/eval-delta-key-value.d.ts +1 -1
  300. package/packages/indexer_client/src/models/eval-delta-key-value.js +2 -2
  301. package/packages/indexer_client/src/models/eval-delta-key-value.js.map +1 -1
  302. package/packages/indexer_client/src/models/eval-delta-key-value.mjs +2 -2
  303. package/packages/indexer_client/src/models/eval-delta-key-value.mjs.map +1 -1
  304. package/packages/indexer_client/src/models/eval-delta.d.ts +1 -1
  305. package/packages/indexer_client/src/models/eval-delta.js +2 -2
  306. package/packages/indexer_client/src/models/eval-delta.js.map +1 -1
  307. package/packages/indexer_client/src/models/eval-delta.mjs +2 -2
  308. package/packages/indexer_client/src/models/eval-delta.mjs.map +1 -1
  309. package/packages/indexer_client/src/models/hb-proof-fields.js +6 -6
  310. package/packages/indexer_client/src/models/hb-proof-fields.js.map +1 -1
  311. package/packages/indexer_client/src/models/hb-proof-fields.mjs +6 -6
  312. package/packages/indexer_client/src/models/hb-proof-fields.mjs.map +1 -1
  313. package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
  314. package/packages/indexer_client/src/models/participation-updates.js +2 -2
  315. package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
  316. package/packages/indexer_client/src/models/participation-updates.mjs +2 -2
  317. package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
  318. package/packages/indexer_client/src/models/state-proof-verifier.js +2 -2
  319. package/packages/indexer_client/src/models/state-proof-verifier.js.map +1 -1
  320. package/packages/indexer_client/src/models/state-proof-verifier.mjs +2 -2
  321. package/packages/indexer_client/src/models/state-proof-verifier.mjs.map +1 -1
  322. package/packages/indexer_client/src/models/state-schema.d.ts +2 -2
  323. package/packages/indexer_client/src/models/state-schema.js +2 -2
  324. package/packages/indexer_client/src/models/state-schema.js.map +1 -1
  325. package/packages/indexer_client/src/models/state-schema.mjs +2 -2
  326. package/packages/indexer_client/src/models/state-schema.mjs.map +1 -1
  327. package/packages/indexer_client/src/models/teal-key-value.d.ts +1 -1
  328. package/packages/indexer_client/src/models/teal-key-value.js +2 -2
  329. package/packages/indexer_client/src/models/teal-key-value.js.map +1 -1
  330. package/packages/indexer_client/src/models/teal-key-value.mjs +2 -2
  331. package/packages/indexer_client/src/models/teal-key-value.mjs.map +1 -1
  332. package/packages/indexer_client/src/models/transaction-heartbeat.js +2 -1
  333. package/packages/indexer_client/src/models/transaction-heartbeat.js.map +1 -1
  334. package/packages/indexer_client/src/models/transaction-heartbeat.mjs +2 -1
  335. package/packages/indexer_client/src/models/transaction-heartbeat.mjs.map +1 -1
  336. package/packages/indexer_client/src/models/transaction-keyreg.js +4 -4
  337. package/packages/indexer_client/src/models/transaction-keyreg.js.map +1 -1
  338. package/packages/indexer_client/src/models/transaction-keyreg.mjs +4 -4
  339. package/packages/indexer_client/src/models/transaction-keyreg.mjs.map +1 -1
  340. package/packages/indexer_client/src/models/transaction-signature-logicsig.js +2 -1
  341. package/packages/indexer_client/src/models/transaction-signature-logicsig.js.map +1 -1
  342. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs +2 -1
  343. package/packages/indexer_client/src/models/transaction-signature-logicsig.mjs.map +1 -1
  344. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js +3 -3
  345. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.js.map +1 -1
  346. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs +3 -3
  347. package/packages/indexer_client/src/models/transaction-signature-multisig-subsignature.mjs.map +1 -1
  348. package/packages/indexer_client/src/models/transaction-state-proof.d.ts +1 -1
  349. package/packages/indexer_client/src/models/transaction-state-proof.js +2 -2
  350. package/packages/indexer_client/src/models/transaction-state-proof.js.map +1 -1
  351. package/packages/indexer_client/src/models/transaction-state-proof.mjs +2 -2
  352. package/packages/indexer_client/src/models/transaction-state-proof.mjs.map +1 -1
  353. package/packages/indexer_client/src/models/transaction.d.ts +2 -2
  354. package/packages/indexer_client/src/models/transaction.js +6 -5
  355. package/packages/indexer_client/src/models/transaction.js.map +1 -1
  356. package/packages/indexer_client/src/models/transaction.mjs +6 -5
  357. package/packages/indexer_client/src/models/transaction.mjs.map +1 -1
  358. package/packages/kmd_client/src/apis/api-service.d.ts +5 -5
  359. package/packages/kmd_client/src/apis/api-service.js +32 -32
  360. package/packages/kmd_client/src/apis/api-service.js.map +1 -1
  361. package/packages/kmd_client/src/apis/api-service.mjs +32 -32
  362. package/packages/kmd_client/src/apis/api-service.mjs.map +1 -1
  363. package/packages/kmd_client/src/core/api-error.js +3 -1
  364. package/packages/kmd_client/src/core/api-error.js.map +1 -1
  365. package/packages/kmd_client/src/core/api-error.mjs +3 -1
  366. package/packages/kmd_client/src/core/api-error.mjs.map +1 -1
  367. package/packages/kmd_client/src/core/model-runtime.js +2 -12
  368. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  369. package/packages/kmd_client/src/core/model-runtime.mjs +3 -11
  370. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  371. package/packages/transact/src/logicsig.d.ts +35 -33
  372. package/packages/transact/src/logicsig.js +74 -76
  373. package/packages/transact/src/logicsig.js.map +1 -1
  374. package/packages/transact/src/logicsig.mjs +77 -78
  375. package/packages/transact/src/logicsig.mjs.map +1 -1
  376. package/packages/transact/src/multisig.d.ts +11 -116
  377. package/packages/transact/src/multisig.js +106 -136
  378. package/packages/transact/src/multisig.js.map +1 -1
  379. package/packages/transact/src/multisig.mjs +108 -118
  380. package/packages/transact/src/multisig.mjs.map +1 -1
  381. package/packages/transact/src/signer.js +9 -2
  382. package/packages/transact/src/signer.js.map +1 -1
  383. package/packages/transact/src/signer.mjs +10 -3
  384. package/packages/transact/src/signer.mjs.map +1 -1
  385. package/packages/transact/src/transactions/app-call.d.ts +10 -15
  386. package/packages/transact/src/transactions/app-call.js.map +1 -1
  387. package/packages/transact/src/transactions/app-call.mjs.map +1 -1
  388. package/packages/transact/src/transactions/asset-config.d.ts +1 -6
  389. package/packages/transact/src/transactions/asset-config.js.map +1 -1
  390. package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
  391. package/packages/transact/src/transactions/asset-freeze.d.ts +1 -6
  392. package/packages/transact/src/transactions/asset-transfer.d.ts +1 -6
  393. package/packages/transact/src/transactions/key-registration.d.ts +1 -8
  394. package/packages/transact/src/transactions/reference-types-meta.d.ts +26 -0
  395. package/packages/transact/src/transactions/reference-types-meta.js +71 -0
  396. package/packages/transact/src/transactions/reference-types-meta.js.map +1 -0
  397. package/packages/transact/src/transactions/reference-types-meta.mjs +69 -0
  398. package/packages/transact/src/transactions/reference-types-meta.mjs.map +1 -0
  399. package/packages/transact/src/transactions/signed-transaction-meta.js +8 -9
  400. package/packages/transact/src/transactions/signed-transaction-meta.js.map +1 -1
  401. package/packages/transact/src/transactions/signed-transaction-meta.mjs +8 -8
  402. package/packages/transact/src/transactions/signed-transaction-meta.mjs.map +1 -1
  403. package/packages/transact/src/transactions/signed-transaction.d.ts +10 -6
  404. package/packages/transact/src/transactions/signed-transaction.js +1 -1
  405. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  406. package/packages/transact/src/transactions/signed-transaction.mjs +1 -2
  407. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  408. package/packages/transact/src/transactions/state-proof.d.ts +1 -1
  409. package/packages/transact/src/transactions/transaction-meta.js +29 -23
  410. package/packages/transact/src/transactions/transaction-meta.js.map +1 -1
  411. package/packages/transact/src/transactions/transaction-meta.mjs +29 -23
  412. package/packages/transact/src/transactions/transaction-meta.mjs.map +1 -1
  413. package/packages/transact/src/transactions/transaction.d.ts +5 -2
  414. package/packages/transact/src/transactions/transaction.js +5 -4
  415. package/packages/transact/src/transactions/transaction.js.map +1 -1
  416. package/packages/transact/src/transactions/transaction.mjs +5 -4
  417. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  418. package/testing/account.d.ts +2 -2
  419. package/testing/account.js +2 -3
  420. package/testing/account.js.map +1 -1
  421. package/testing/account.mjs +2 -3
  422. package/testing/account.mjs.map +1 -1
  423. package/testing/fixtures/algokit-log-capture-fixture.d.ts +1 -1
  424. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  425. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  426. package/testing/fixtures/algorand-fixture.d.ts +5 -5
  427. package/testing/fixtures/algorand-fixture.js +2 -2
  428. package/testing/fixtures/algorand-fixture.js.map +1 -1
  429. package/testing/fixtures/algorand-fixture.mjs +2 -2
  430. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  431. package/testing/index.d.ts +2 -1
  432. package/testing/test-logger.d.ts +1 -1
  433. package/testing/test-logger.js.map +1 -1
  434. package/testing/test-logger.mjs.map +1 -1
  435. package/testing/transaction-logger.js +1 -1
  436. package/testing/transaction-logger.mjs +1 -1
  437. package/testing/types.d.ts +156 -0
  438. package/transact/index.d.ts +11 -10
  439. package/transact/index.js +7 -31
  440. package/transact/index.mjs +7 -10
  441. package/transaction/index.d.ts +4 -0
  442. package/transaction/index.js +9 -0
  443. package/transaction/index.mjs +4 -0
  444. package/transaction/perform-transaction-composer-simulate.d.ts +1 -1
  445. package/transaction/perform-transaction-composer-simulate.js.map +1 -1
  446. package/transaction/perform-transaction-composer-simulate.mjs.map +1 -1
  447. package/transaction/transaction.d.ts +2 -2
  448. package/transaction/transaction.js +2 -2
  449. package/transaction/transaction.js.map +1 -1
  450. package/transaction/transaction.mjs +2 -2
  451. package/transaction/transaction.mjs.map +1 -1
  452. package/transaction/types.d.ts +133 -0
  453. package/transactions/app-call.d.ts +6 -5
  454. package/transactions/app-call.js +17 -17
  455. package/transactions/app-call.js.map +1 -1
  456. package/transactions/app-call.mjs +17 -17
  457. package/transactions/app-call.mjs.map +1 -1
  458. package/transactions/asset-config.d.ts +1 -1
  459. package/transactions/asset-config.js +1 -1
  460. package/transactions/asset-config.js.map +1 -1
  461. package/transactions/asset-config.mjs +1 -1
  462. package/transactions/asset-config.mjs.map +1 -1
  463. package/transactions/common.d.ts +1 -1
  464. package/transactions/common.js.map +1 -1
  465. package/transactions/common.mjs.map +1 -1
  466. package/transactions/key-registration.d.ts +1 -1
  467. package/transactions/key-registration.js.map +1 -1
  468. package/transactions/key-registration.mjs.map +1 -1
  469. package/transactions/method-call.d.ts +2 -2
  470. package/transactions/method-call.js +78 -85
  471. package/transactions/method-call.js.map +1 -1
  472. package/transactions/method-call.mjs +78 -85
  473. package/transactions/method-call.mjs.map +1 -1
  474. package/transactions/payment.d.ts +1 -1
  475. package/transactions/payment.js.map +1 -1
  476. package/transactions/payment.mjs.map +1 -1
  477. package/types/account-manager.d.ts +11 -444
  478. package/types/account-manager.js +5 -606
  479. package/types/account-manager.js.map +1 -1
  480. package/types/account-manager.mjs +5 -604
  481. package/types/account-manager.mjs.map +1 -1
  482. package/types/account.d.ts +8 -150
  483. package/types/account.js +3 -4
  484. package/types/account.js.map +1 -1
  485. package/types/account.mjs +4 -4
  486. package/types/account.mjs.map +1 -1
  487. package/types/algorand-client-transaction-creator.d.ts +5 -1084
  488. package/types/algorand-client-transaction-creator.js +3 -721
  489. package/types/algorand-client-transaction-creator.js.map +1 -1
  490. package/types/algorand-client-transaction-creator.mjs +4 -721
  491. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  492. package/types/algorand-client-transaction-sender.d.ts +5 -1298
  493. package/types/algorand-client-transaction-sender.js +3 -920
  494. package/types/algorand-client-transaction-sender.js.map +1 -1
  495. package/types/algorand-client-transaction-sender.mjs +3 -918
  496. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  497. package/types/algorand-client.d.ts +5 -241
  498. package/types/algorand-client.js +3 -319
  499. package/types/algorand-client.js.map +1 -1
  500. package/types/algorand-client.mjs +3 -319
  501. package/types/algorand-client.mjs.map +1 -1
  502. package/types/amount.d.ts +6 -45
  503. package/types/amount.js +3 -60
  504. package/types/amount.js.map +1 -1
  505. package/types/amount.mjs +3 -60
  506. package/types/amount.mjs.map +1 -1
  507. package/types/app-client.d.ts +75 -2120
  508. package/types/app-client.js +3 -904
  509. package/types/app-client.js.map +1 -1
  510. package/types/app-client.mjs +3 -902
  511. package/types/app-client.mjs.map +1 -1
  512. package/types/app-deployer.d.ts +21 -161
  513. package/types/app-deployer.js +3 -347
  514. package/types/app-deployer.js.map +1 -1
  515. package/types/app-deployer.mjs +3 -347
  516. package/types/app-deployer.mjs.map +1 -1
  517. package/types/app-factory.d.ts +21 -957
  518. package/types/app-factory.js +3 -442
  519. package/types/app-factory.js.map +1 -1
  520. package/types/app-factory.mjs +3 -442
  521. package/types/app-factory.mjs.map +1 -1
  522. package/types/app-manager.d.ts +15 -316
  523. package/types/app-manager.js +3 -456
  524. package/types/app-manager.js.map +1 -1
  525. package/types/app-manager.mjs +3 -456
  526. package/types/app-manager.mjs.map +1 -1
  527. package/types/app-spec.d.ts +39 -198
  528. package/types/app-spec.js +3 -124
  529. package/types/app-spec.js.map +1 -1
  530. package/types/app-spec.mjs +3 -124
  531. package/types/app-spec.mjs.map +1 -1
  532. package/types/app.d.ts +62 -247
  533. package/types/app.js +15 -37
  534. package/types/app.js.map +1 -1
  535. package/types/app.mjs +16 -37
  536. package/types/app.mjs.map +1 -1
  537. package/types/asset-manager.d.ts +9 -207
  538. package/types/asset-manager.js +3 -160
  539. package/types/asset-manager.js.map +1 -1
  540. package/types/asset-manager.mjs +3 -160
  541. package/types/asset-manager.mjs.map +1 -1
  542. package/types/async-event-emitter.d.ts +7 -14
  543. package/types/async-event-emitter.js +3 -32
  544. package/types/async-event-emitter.js.map +1 -1
  545. package/types/async-event-emitter.mjs +4 -32
  546. package/types/async-event-emitter.mjs.map +1 -1
  547. package/types/client-manager.d.ts +27 -470
  548. package/types/client-manager.js +3 -610
  549. package/types/client-manager.js.map +1 -1
  550. package/types/client-manager.mjs +3 -610
  551. package/types/client-manager.mjs.map +1 -1
  552. package/types/composer.d.ts +79 -935
  553. package/types/composer.js +3 -1569
  554. package/types/composer.js.map +1 -1
  555. package/types/composer.mjs +3 -1567
  556. package/types/composer.mjs.map +1 -1
  557. package/types/config.d.ts +7 -52
  558. package/types/config.js +3 -74
  559. package/types/config.js.map +1 -1
  560. package/types/config.mjs +3 -74
  561. package/types/config.mjs.map +1 -1
  562. package/types/debugging.d.ts +12 -33
  563. package/types/debugging.js +11 -10
  564. package/types/debugging.js.map +1 -1
  565. package/types/debugging.mjs +12 -10
  566. package/types/debugging.mjs.map +1 -1
  567. package/types/dispenser-client.d.ts +11 -85
  568. package/types/dispenser-client.js +3 -121
  569. package/types/dispenser-client.js.map +1 -1
  570. package/types/dispenser-client.mjs +3 -121
  571. package/types/dispenser-client.mjs.map +1 -1
  572. package/types/expand.d.ts +4 -5
  573. package/types/indexer.d.ts +16 -36
  574. package/types/indexer.js +7 -30
  575. package/types/indexer.js.map +1 -1
  576. package/types/indexer.mjs +8 -30
  577. package/types/indexer.mjs.map +1 -1
  578. package/types/instance-of.d.ts +4 -4
  579. package/types/kmd-account-manager.d.ts +5 -68
  580. package/types/kmd-account-manager.js +3 -150
  581. package/types/kmd-account-manager.js.map +1 -1
  582. package/types/kmd-account-manager.mjs +3 -148
  583. package/types/kmd-account-manager.mjs.map +1 -1
  584. package/types/lifecycle-events.d.ts +7 -10
  585. package/types/lifecycle-events.js +3 -5
  586. package/types/lifecycle-events.js.map +1 -1
  587. package/types/lifecycle-events.mjs +4 -5
  588. package/types/lifecycle-events.mjs.map +1 -1
  589. package/types/logging.d.ts +14 -9
  590. package/types/logging.js +11 -37
  591. package/types/logging.js.map +1 -1
  592. package/types/logging.mjs +12 -37
  593. package/types/logging.mjs.map +1 -1
  594. package/types/logic-error.d.ts +8 -35
  595. package/types/logic-error.js +3 -48
  596. package/types/logic-error.js.map +1 -1
  597. package/types/logic-error.mjs +4 -48
  598. package/types/logic-error.mjs.map +1 -1
  599. package/types/network-client.d.ts +10 -39
  600. package/types/network-client.js +3 -8
  601. package/types/network-client.js.map +1 -1
  602. package/types/network-client.mjs +4 -8
  603. package/types/network-client.mjs.map +1 -1
  604. package/types/testing.d.ts +13 -151
  605. package/types/transaction.d.ts +33 -128
  606. package/updatable-config.d.ts +57 -0
  607. package/updatable-config.js +80 -0
  608. package/updatable-config.js.map +1 -0
  609. package/updatable-config.mjs +80 -0
  610. package/updatable-config.mjs.map +1 -0
  611. package/util.js +1 -1
  612. package/util.js.map +1 -1
  613. package/util.mjs +1 -1
  614. package/util.mjs.map +1 -1
  615. package/_virtual/rolldown_runtime.mjs +0 -13
  616. package/indexer-lookup.js.map +0 -1
  617. package/indexer-lookup.mjs.map +0 -1
  618. package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
  619. package/packages/algod_client/src/models/application-local-reference.d.ts +0 -20
  620. package/packages/algod_client/src/models/application-local-reference.js +0 -23
  621. package/packages/algod_client/src/models/application-local-reference.js.map +0 -1
  622. package/packages/algod_client/src/models/application-local-reference.mjs +0 -23
  623. package/packages/algod_client/src/models/application-local-reference.mjs.map +0 -1
  624. package/packages/algod_client/src/models/asset-holding-reference.d.ts +0 -20
  625. package/packages/algod_client/src/models/asset-holding-reference.js +0 -23
  626. package/packages/algod_client/src/models/asset-holding-reference.js.map +0 -1
  627. package/packages/algod_client/src/models/asset-holding-reference.mjs +0 -23
  628. package/packages/algod_client/src/models/asset-holding-reference.mjs.map +0 -1
  629. package/packages/algod_client/src/models/box-reference.d.ts +0 -17
  630. package/packages/algod_client/src/models/box-reference.js +0 -23
  631. package/packages/algod_client/src/models/box-reference.js.map +0 -1
  632. package/packages/algod_client/src/models/box-reference.mjs +0 -23
  633. package/packages/algod_client/src/models/box-reference.mjs.map +0 -1
  634. package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
  635. package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
  636. package/packages/sdk/src/convert.d.ts +0 -17
  637. package/packages/sdk/src/convert.js +0 -28
  638. package/packages/sdk/src/convert.js.map +0 -1
  639. package/packages/sdk/src/convert.mjs +0 -25
  640. package/packages/sdk/src/convert.mjs.map +0 -1
  641. package/packages/sdk/src/encoding/binarydata.d.ts +0 -34
  642. package/packages/sdk/src/encoding/binarydata.js +0 -65
  643. package/packages/sdk/src/encoding/binarydata.js.map +0 -1
  644. package/packages/sdk/src/encoding/binarydata.mjs +0 -60
  645. package/packages/sdk/src/encoding/binarydata.mjs.map +0 -1
  646. package/packages/sdk/src/encoding/encoding.d.ts +0 -237
  647. package/packages/sdk/src/encoding/encoding.js +0 -302
  648. package/packages/sdk/src/encoding/encoding.js.map +0 -1
  649. package/packages/sdk/src/encoding/encoding.mjs +0 -287
  650. package/packages/sdk/src/encoding/encoding.mjs.map +0 -1
  651. package/packages/sdk/src/encoding/schema/array.js +0 -35
  652. package/packages/sdk/src/encoding/schema/array.js.map +0 -1
  653. package/packages/sdk/src/encoding/schema/array.mjs +0 -35
  654. package/packages/sdk/src/encoding/schema/array.mjs.map +0 -1
  655. package/packages/sdk/src/encoding/schema/bytearray.js +0 -49
  656. package/packages/sdk/src/encoding/schema/bytearray.js.map +0 -1
  657. package/packages/sdk/src/encoding/schema/bytearray.mjs +0 -49
  658. package/packages/sdk/src/encoding/schema/bytearray.mjs.map +0 -1
  659. package/packages/sdk/src/encoding/schema/map.d.ts +0 -58
  660. package/packages/sdk/src/encoding/schema/map.js +0 -110
  661. package/packages/sdk/src/encoding/schema/map.js.map +0 -1
  662. package/packages/sdk/src/encoding/schema/map.mjs +0 -107
  663. package/packages/sdk/src/encoding/schema/map.mjs.map +0 -1
  664. package/packages/sdk/src/encoding/schema/optional.js +0 -46
  665. package/packages/sdk/src/encoding/schema/optional.js.map +0 -1
  666. package/packages/sdk/src/encoding/schema/optional.mjs +0 -46
  667. package/packages/sdk/src/encoding/schema/optional.mjs.map +0 -1
  668. package/packages/sdk/src/encoding/schema/uint64.js +0 -30
  669. package/packages/sdk/src/encoding/schema/uint64.js.map +0 -1
  670. package/packages/sdk/src/encoding/schema/uint64.mjs +0 -30
  671. package/packages/sdk/src/encoding/schema/uint64.mjs.map +0 -1
  672. package/packages/sdk/src/encoding/uint64.d.ts +0 -34
  673. package/packages/sdk/src/encoding/uint64.js +0 -34
  674. package/packages/sdk/src/encoding/uint64.js.map +0 -1
  675. package/packages/sdk/src/encoding/uint64.mjs +0 -33
  676. package/packages/sdk/src/encoding/uint64.mjs.map +0 -1
  677. package/packages/sdk/src/index.d.ts +0 -44
  678. package/packages/sdk/src/index.js +0 -62
  679. package/packages/sdk/src/index.js.map +0 -1
  680. package/packages/sdk/src/index.mjs +0 -58
  681. package/packages/sdk/src/index.mjs.map +0 -1
  682. package/packages/sdk/src/nacl/naclWrappers.js +0 -14
  683. package/packages/sdk/src/nacl/naclWrappers.js.map +0 -1
  684. package/packages/sdk/src/nacl/naclWrappers.mjs +0 -11
  685. package/packages/sdk/src/nacl/naclWrappers.mjs.map +0 -1
  686. package/packages/sdk/src/types/intDecoding.d.ts +0 -28
  687. package/packages/sdk/src/types/intDecoding.js +0 -32
  688. package/packages/sdk/src/types/intDecoding.js.map +0 -1
  689. package/packages/sdk/src/types/intDecoding.mjs +0 -31
  690. package/packages/sdk/src/types/intDecoding.mjs.map +0 -1
  691. package/packages/sdk/src/types/transactions/encoded.d.ts +0 -40
  692. package/packages/sdk/src/types/transactions/encoded.js +0 -64
  693. package/packages/sdk/src/types/transactions/encoded.js.map +0 -1
  694. package/packages/sdk/src/types/transactions/encoded.mjs +0 -59
  695. package/packages/sdk/src/types/transactions/encoded.mjs.map +0 -1
  696. package/packages/sdk/src/utils/utils.d.ts +0 -64
  697. package/packages/sdk/src/utils/utils.js +0 -140
  698. package/packages/sdk/src/utils/utils.js.map +0 -1
  699. package/packages/sdk/src/utils/utils.mjs +0 -128
  700. package/packages/sdk/src/utils/utils.mjs.map +0 -1
  701. package/packages/transact/src/transactions/common.d.ts +0 -37
  702. package/sdk/index.d.ts +0 -10
  703. package/sdk/index.js +0 -59
  704. package/sdk/index.mjs +0 -11
@@ -0,0 +1,74 @@
1
+ import { Address } from "./packages/common/src/address.js";
2
+ import { AddressWithTransactionSigner } from "./packages/transact/src/signer.js";
3
+ import { Account } from "./packages/algod_client/src/models/account.js";
4
+ import { AlgoAmount } from "./amount.js";
5
+ import { KmdClient } from "./packages/kmd_client/src/client.js";
6
+ import { ClientManager } from "./client-manager.js";
7
+
8
+ //#region src/kmd-account-manager.d.ts
9
+ /** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance
10
+ * that makes it easier to get and manage accounts using KMD. */
11
+ declare class KmdAccountManager {
12
+ private _clientManager;
13
+ private _kmd?;
14
+ /**
15
+ * Create a new KMD manager.
16
+ * @param clientManager A ClientManager client to use for algod and kmd clients
17
+ */
18
+ constructor(clientManager: ClientManager);
19
+ kmd(): Promise<KmdClient>;
20
+ /**
21
+ * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).
22
+ *
23
+ * @param walletName The name of the wallet to retrieve an account from
24
+ * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)
25
+ * @param sender The optional sender address to use this signer for (aka a rekeyed account)
26
+ * @example Get default funded account in a LocalNet
27
+ *
28
+ * ```typescript
29
+ * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(
30
+ * 'unencrypted-default-wallet',
31
+ * a => a.status !== 'Offline' && a.amount > 1_000_000_000
32
+ * )
33
+ * ```
34
+ * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found
35
+ */
36
+ getWalletAccount(walletName: string, predicate?: (account: Account) => boolean, sender?: string | Address): Promise<AddressWithTransactionSigner | undefined>;
37
+ private findWalletAccount;
38
+ /**
39
+ * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.
40
+ *
41
+ * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).
42
+ *
43
+ * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.
44
+ *
45
+ * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!
46
+ *
47
+ * @param name The name of the wallet to retrieve / create
48
+ * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD
53
+ * // if creating it then fund it with 2 ALGO from the default dispenser account
54
+ * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())
55
+ * // This will return the same account as above since the name matches
56
+ * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')
57
+ * ```
58
+ *
59
+ * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you
60
+ */
61
+ getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner>;
62
+ /**
63
+ * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).
64
+ * @example
65
+ * ```typescript
66
+ * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()
67
+ * ```
68
+ * @returns The default LocalNet dispenser account
69
+ */
70
+ getLocalNetDispenserAccount(): Promise<AddressWithTransactionSigner>;
71
+ }
72
+ //#endregion
73
+ export { KmdAccountManager };
74
+ //# sourceMappingURL=kmd-account-manager.d.ts.map
@@ -0,0 +1,167 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.js');
2
+ const require_address = require('./packages/common/src/address.js');
3
+ const require_amount = require('./amount.js');
4
+ const require_config = require('./config.js');
5
+ const require_signer = require('./packages/transact/src/signer.js');
6
+ const require_composer = require('./composer.js');
7
+ const require_client_manager = require('./client-manager.js');
8
+ let tweetnacl = require("tweetnacl");
9
+ tweetnacl = require_rolldown_runtime.__toESM(tweetnacl);
10
+
11
+ //#region src/kmd-account-manager.ts
12
+ /** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance
13
+ * that makes it easier to get and manage accounts using KMD. */
14
+ var KmdAccountManager = class {
15
+ _clientManager;
16
+ _kmd;
17
+ /**
18
+ * Create a new KMD manager.
19
+ * @param clientManager A ClientManager client to use for algod and kmd clients
20
+ */
21
+ constructor(clientManager) {
22
+ this._clientManager = clientManager;
23
+ try {
24
+ this._kmd = clientManager.kmd;
25
+ } catch {
26
+ this._kmd = void 0;
27
+ }
28
+ }
29
+ async kmd() {
30
+ if (this._kmd === void 0) {
31
+ if (await this._clientManager.isLocalNet()) {
32
+ const { kmdConfig } = require_client_manager.ClientManager.getConfigFromEnvironmentOrLocalNet();
33
+ if (kmdConfig) {
34
+ this._kmd = require_client_manager.ClientManager.getKmdClient(kmdConfig);
35
+ return this._kmd;
36
+ }
37
+ }
38
+ this._kmd = null;
39
+ }
40
+ if (!this._kmd) throw new Error("Attempt to use Kmd client in AlgoKit instance with no Kmd configured");
41
+ return this._kmd;
42
+ }
43
+ /**
44
+ * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).
45
+ *
46
+ * @param walletName The name of the wallet to retrieve an account from
47
+ * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)
48
+ * @param sender The optional sender address to use this signer for (aka a rekeyed account)
49
+ * @example Get default funded account in a LocalNet
50
+ *
51
+ * ```typescript
52
+ * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(
53
+ * 'unencrypted-default-wallet',
54
+ * a => a.status !== 'Offline' && a.amount > 1_000_000_000
55
+ * )
56
+ * ```
57
+ * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found
58
+ */
59
+ async getWalletAccount(walletName, predicate, sender) {
60
+ return this.findWalletAccount(walletName, predicate, sender);
61
+ }
62
+ async findWalletAccount(walletName, predicateOrAddress, sender) {
63
+ const kmd = await this.kmd();
64
+ const wallet = (await kmd.listWallets()).wallets.filter((w) => w.name === walletName);
65
+ if (wallet.length === 0) return;
66
+ const walletHandle = (await kmd.initWalletHandle({
67
+ walletId: wallet[0].id,
68
+ walletPassword: ""
69
+ })).walletHandleToken;
70
+ let matchedAddress = void 0;
71
+ if (predicateOrAddress && typeof predicateOrAddress === "string") matchedAddress = require_address.Address.fromString(predicateOrAddress);
72
+ else {
73
+ const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses;
74
+ if (addresses.length > 0) if (predicateOrAddress && typeof predicateOrAddress === "function") {
75
+ for (let i = 0; i < addresses.length; i++) if (predicateOrAddress(await this._clientManager.algod.accountInformation(addresses[i]))) {
76
+ matchedAddress = addresses[i];
77
+ break;
78
+ }
79
+ } else matchedAddress = addresses[0];
80
+ }
81
+ if (!matchedAddress) return;
82
+ const accountKey = (await kmd.exportKey({
83
+ walletHandleToken: walletHandle,
84
+ address: matchedAddress
85
+ })).privateKey;
86
+ const keys = tweetnacl.default.sign.keyPair.fromSecretKey(accountKey);
87
+ const rawSigner = async (bytesToSign) => {
88
+ return tweetnacl.default.sign.detached(bytesToSign, keys.secretKey);
89
+ };
90
+ return require_signer.generateAddressWithSigners({
91
+ ed25519Pubkey: keys.publicKey,
92
+ sendingAddress: require_address.getOptionalAddress(sender),
93
+ rawEd25519Signer: rawSigner
94
+ });
95
+ }
96
+ /**
97
+ * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.
98
+ *
99
+ * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).
100
+ *
101
+ * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.
102
+ *
103
+ * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!
104
+ *
105
+ * @param name The name of the wallet to retrieve / create
106
+ * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD
111
+ * // if creating it then fund it with 2 ALGO from the default dispenser account
112
+ * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())
113
+ * // This will return the same account as above since the name matches
114
+ * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')
115
+ * ```
116
+ *
117
+ * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you
118
+ */
119
+ async getOrCreateWalletAccount(name, fundWith) {
120
+ const existing = await this.getWalletAccount(name);
121
+ if (existing) return existing;
122
+ const kmd = await this.kmd();
123
+ const walletId = (await kmd.createWallet({
124
+ walletName: name,
125
+ walletPassword: ""
126
+ })).wallet.id;
127
+ const walletHandle = (await kmd.initWalletHandle({
128
+ walletId,
129
+ walletPassword: ""
130
+ })).walletHandleToken;
131
+ await kmd.generateKey({ walletHandleToken: walletHandle });
132
+ const account = await this.getWalletAccount(name);
133
+ require_config.Config.logger.info(`LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${fundWith?.algo ?? 1e3} ALGO`);
134
+ const dispenser = await this.getLocalNetDispenserAccount();
135
+ await new require_composer.TransactionComposer({
136
+ algod: this._clientManager.algod,
137
+ getSigner: () => dispenser.signer,
138
+ getSuggestedParams: () => this._clientManager.algod.suggestedParams()
139
+ }).addPayment({
140
+ amount: fundWith ?? require_amount.AlgoAmount.Algo(1e3),
141
+ receiver: account.addr,
142
+ sender: dispenser.addr
143
+ }).send();
144
+ return account;
145
+ }
146
+ /**
147
+ * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).
148
+ * @example
149
+ * ```typescript
150
+ * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()
151
+ * ```
152
+ * @returns The default LocalNet dispenser account
153
+ */
154
+ async getLocalNetDispenserAccount() {
155
+ if (!await this._clientManager.isLocalNet()) throw new Error("Can't get LocalNet dispenser account from non LocalNet network");
156
+ const dispenserAddresses = (await this._clientManager.algod.genesis()).alloc.filter((a) => a.comment === "Wallet1").map((a) => a.addr);
157
+ if (dispenserAddresses.length > 0) {
158
+ const dispenser = await this.findWalletAccount("unencrypted-default-wallet", dispenserAddresses[0]);
159
+ if (dispenser) return dispenser;
160
+ }
161
+ throw new Error("Error retrieving LocalNet dispenser account; couldn't find the default account in KMD");
162
+ }
163
+ };
164
+
165
+ //#endregion
166
+ exports.KmdAccountManager = KmdAccountManager;
167
+ //# sourceMappingURL=kmd-account-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmd-account-manager.js","names":["ClientManager","matchedAddress: Address | undefined","Address","nacl","generateAddressWithSigners","getOptionalAddress","TransactionComposer","AlgoAmount"],"sources":["../src/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\nimport { Config } from './config'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n return this.findWalletAccount(walletName, predicate, sender)\n }\n\n private async findWalletAccount(\n walletName: string,\n predicateOrAddress?: ((account: Account) => boolean) | string,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n const walletId = wallet[0].id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n\n let matchedAddress: Address | undefined = undefined\n if (predicateOrAddress && typeof predicateOrAddress === 'string') {\n matchedAddress = Address.fromString(predicateOrAddress)\n } else {\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n if (addresses.length > 0) {\n if (predicateOrAddress && typeof predicateOrAddress === 'function') {\n for (let i = 0; i < addresses.length; i++) {\n const account = await this._clientManager.algod.accountInformation(addresses[i])\n if (predicateOrAddress(account)) {\n matchedAddress = addresses[i]\n break\n }\n }\n } else {\n matchedAddress = addresses[0]\n }\n }\n }\n\n if (!matchedAddress) {\n return undefined\n }\n\n const accountKey = (await kmd.exportKey({ walletHandleToken: walletHandle, address: matchedAddress })).privateKey\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({ amount: fundWith ?? AlgoAmount.Algo(1000), receiver: account.addr, sender: dispenser.addr })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n const genesisResponse = await this._clientManager.algod.genesis()\n const dispenserAddresses = genesisResponse.alloc.filter((a) => a.comment === 'Wallet1').map((a) => a.addr)\n if (dispenserAddresses.length > 0) {\n const dispenser = await this.findWalletAccount('unencrypted-default-wallet', dispenserAddresses[0])\n if (dispenser) {\n return dispenser\n }\n }\n\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ import { Address, getOptionalAddress } from "./packages/common/src/address.mjs";
2
+ import { AlgoAmount } from "./amount.mjs";
3
+ import { Config } from "./config.mjs";
4
+ import { generateAddressWithSigners } from "./packages/transact/src/signer.mjs";
5
+ import { TransactionComposer } from "./composer.mjs";
6
+ import { ClientManager } from "./client-manager.mjs";
7
+ import nacl from "tweetnacl";
8
+
9
+ //#region src/kmd-account-manager.ts
10
+ /** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance
11
+ * that makes it easier to get and manage accounts using KMD. */
12
+ var KmdAccountManager = class {
13
+ _clientManager;
14
+ _kmd;
15
+ /**
16
+ * Create a new KMD manager.
17
+ * @param clientManager A ClientManager client to use for algod and kmd clients
18
+ */
19
+ constructor(clientManager) {
20
+ this._clientManager = clientManager;
21
+ try {
22
+ this._kmd = clientManager.kmd;
23
+ } catch {
24
+ this._kmd = void 0;
25
+ }
26
+ }
27
+ async kmd() {
28
+ if (this._kmd === void 0) {
29
+ if (await this._clientManager.isLocalNet()) {
30
+ const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet();
31
+ if (kmdConfig) {
32
+ this._kmd = ClientManager.getKmdClient(kmdConfig);
33
+ return this._kmd;
34
+ }
35
+ }
36
+ this._kmd = null;
37
+ }
38
+ if (!this._kmd) throw new Error("Attempt to use Kmd client in AlgoKit instance with no Kmd configured");
39
+ return this._kmd;
40
+ }
41
+ /**
42
+ * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).
43
+ *
44
+ * @param walletName The name of the wallet to retrieve an account from
45
+ * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)
46
+ * @param sender The optional sender address to use this signer for (aka a rekeyed account)
47
+ * @example Get default funded account in a LocalNet
48
+ *
49
+ * ```typescript
50
+ * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(
51
+ * 'unencrypted-default-wallet',
52
+ * a => a.status !== 'Offline' && a.amount > 1_000_000_000
53
+ * )
54
+ * ```
55
+ * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found
56
+ */
57
+ async getWalletAccount(walletName, predicate, sender) {
58
+ return this.findWalletAccount(walletName, predicate, sender);
59
+ }
60
+ async findWalletAccount(walletName, predicateOrAddress, sender) {
61
+ const kmd = await this.kmd();
62
+ const wallet = (await kmd.listWallets()).wallets.filter((w) => w.name === walletName);
63
+ if (wallet.length === 0) return;
64
+ const walletHandle = (await kmd.initWalletHandle({
65
+ walletId: wallet[0].id,
66
+ walletPassword: ""
67
+ })).walletHandleToken;
68
+ let matchedAddress = void 0;
69
+ if (predicateOrAddress && typeof predicateOrAddress === "string") matchedAddress = Address.fromString(predicateOrAddress);
70
+ else {
71
+ const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses;
72
+ if (addresses.length > 0) if (predicateOrAddress && typeof predicateOrAddress === "function") {
73
+ for (let i = 0; i < addresses.length; i++) if (predicateOrAddress(await this._clientManager.algod.accountInformation(addresses[i]))) {
74
+ matchedAddress = addresses[i];
75
+ break;
76
+ }
77
+ } else matchedAddress = addresses[0];
78
+ }
79
+ if (!matchedAddress) return;
80
+ const accountKey = (await kmd.exportKey({
81
+ walletHandleToken: walletHandle,
82
+ address: matchedAddress
83
+ })).privateKey;
84
+ const keys = nacl.sign.keyPair.fromSecretKey(accountKey);
85
+ const rawSigner = async (bytesToSign) => {
86
+ return nacl.sign.detached(bytesToSign, keys.secretKey);
87
+ };
88
+ return generateAddressWithSigners({
89
+ ed25519Pubkey: keys.publicKey,
90
+ sendingAddress: getOptionalAddress(sender),
91
+ rawEd25519Signer: rawSigner
92
+ });
93
+ }
94
+ /**
95
+ * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.
96
+ *
97
+ * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).
98
+ *
99
+ * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.
100
+ *
101
+ * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!
102
+ *
103
+ * @param name The name of the wallet to retrieve / create
104
+ * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD
109
+ * // if creating it then fund it with 2 ALGO from the default dispenser account
110
+ * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())
111
+ * // This will return the same account as above since the name matches
112
+ * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')
113
+ * ```
114
+ *
115
+ * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you
116
+ */
117
+ async getOrCreateWalletAccount(name, fundWith) {
118
+ const existing = await this.getWalletAccount(name);
119
+ if (existing) return existing;
120
+ const kmd = await this.kmd();
121
+ const walletId = (await kmd.createWallet({
122
+ walletName: name,
123
+ walletPassword: ""
124
+ })).wallet.id;
125
+ const walletHandle = (await kmd.initWalletHandle({
126
+ walletId,
127
+ walletPassword: ""
128
+ })).walletHandleToken;
129
+ await kmd.generateKey({ walletHandleToken: walletHandle });
130
+ const account = await this.getWalletAccount(name);
131
+ Config.logger.info(`LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${fundWith?.algo ?? 1e3} ALGO`);
132
+ const dispenser = await this.getLocalNetDispenserAccount();
133
+ await new TransactionComposer({
134
+ algod: this._clientManager.algod,
135
+ getSigner: () => dispenser.signer,
136
+ getSuggestedParams: () => this._clientManager.algod.suggestedParams()
137
+ }).addPayment({
138
+ amount: fundWith ?? AlgoAmount.Algo(1e3),
139
+ receiver: account.addr,
140
+ sender: dispenser.addr
141
+ }).send();
142
+ return account;
143
+ }
144
+ /**
145
+ * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).
146
+ * @example
147
+ * ```typescript
148
+ * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()
149
+ * ```
150
+ * @returns The default LocalNet dispenser account
151
+ */
152
+ async getLocalNetDispenserAccount() {
153
+ if (!await this._clientManager.isLocalNet()) throw new Error("Can't get LocalNet dispenser account from non LocalNet network");
154
+ const dispenserAddresses = (await this._clientManager.algod.genesis()).alloc.filter((a) => a.comment === "Wallet1").map((a) => a.addr);
155
+ if (dispenserAddresses.length > 0) {
156
+ const dispenser = await this.findWalletAccount("unencrypted-default-wallet", dispenserAddresses[0]);
157
+ if (dispenser) return dispenser;
158
+ }
159
+ throw new Error("Error retrieving LocalNet dispenser account; couldn't find the default account in KMD");
160
+ }
161
+ };
162
+
163
+ //#endregion
164
+ export { KmdAccountManager };
165
+ //# sourceMappingURL=kmd-account-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmd-account-manager.mjs","names":["matchedAddress: Address | undefined"],"sources":["../src/kmd-account-manager.ts"],"sourcesContent":["import { Account } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getOptionalAddress } from '@algorandfoundation/algokit-common'\nimport { KmdClient } from '@algorandfoundation/algokit-kmd-client'\nimport { AddressWithTransactionSigner, generateAddressWithSigners } from '@algorandfoundation/algokit-transact'\nimport nacl from 'tweetnacl'\nimport { AlgoAmount } from './amount'\nimport { ClientManager } from './client-manager'\nimport { TransactionComposer } from './composer'\nimport { Config } from './config'\n\n/** Provides abstractions over a [KMD](https://github.com/algorand/go-algorand/blob/master/daemon/kmd/README.md) instance\n * that makes it easier to get and manage accounts using KMD. */\nexport class KmdAccountManager {\n private _clientManager: Omit<ClientManager, 'kmd'>\n private _kmd?: KmdClient | null\n\n /**\n * Create a new KMD manager.\n * @param clientManager A ClientManager client to use for algod and kmd clients\n */\n constructor(clientManager: ClientManager) {\n this._clientManager = clientManager\n try {\n this._kmd = clientManager.kmd\n } catch {\n this._kmd = undefined\n }\n }\n\n async kmd(): Promise<KmdClient> {\n if (this._kmd === undefined) {\n if (await this._clientManager.isLocalNet()) {\n const { kmdConfig } = ClientManager.getConfigFromEnvironmentOrLocalNet()\n if (kmdConfig) {\n this._kmd = ClientManager.getKmdClient(kmdConfig)\n return this._kmd\n }\n }\n this._kmd = null\n }\n\n if (!this._kmd) {\n throw new Error('Attempt to use Kmd client in AlgoKit instance with no Kmd configured')\n }\n\n return this._kmd\n }\n\n /**\n * Returns an Algorand signing account with private key loaded from the given KMD wallet (identified by name).\n *\n * @param walletName The name of the wallet to retrieve an account from\n * @param predicate An optional filter to use to find the account (otherwise it will return a random account from the wallet)\n * @param sender The optional sender address to use this signer for (aka a rekeyed account)\n * @example Get default funded account in a LocalNet\n *\n * ```typescript\n * const defaultDispenserAccount = await kmdAccountManager.getWalletAccount(\n * 'unencrypted-default-wallet',\n * a => a.status !== 'Offline' && a.amount > 1_000_000_000\n * )\n * ```\n * @returns The signing account (with private key loaded) or undefined if no matching wallet or account was found\n */\n public async getWalletAccount(\n walletName: string,\n predicate?: (account: Account) => boolean,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n return this.findWalletAccount(walletName, predicate, sender)\n }\n\n private async findWalletAccount(\n walletName: string,\n predicateOrAddress?: ((account: Account) => boolean) | string,\n sender?: string | Address,\n ): Promise<AddressWithTransactionSigner | undefined> {\n const kmd = await this.kmd()\n const walletsResponse = await kmd.listWallets()\n const wallet = walletsResponse.wallets.filter((w) => w.name === walletName)\n if (wallet.length === 0) {\n return undefined\n }\n const walletId = wallet[0].id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n\n let matchedAddress: Address | undefined = undefined\n if (predicateOrAddress && typeof predicateOrAddress === 'string') {\n matchedAddress = Address.fromString(predicateOrAddress)\n } else {\n const addresses = (await kmd.listKeysInWallet({ walletHandleToken: walletHandle })).addresses\n if (addresses.length > 0) {\n if (predicateOrAddress && typeof predicateOrAddress === 'function') {\n for (let i = 0; i < addresses.length; i++) {\n const account = await this._clientManager.algod.accountInformation(addresses[i])\n if (predicateOrAddress(account)) {\n matchedAddress = addresses[i]\n break\n }\n }\n } else {\n matchedAddress = addresses[0]\n }\n }\n }\n\n if (!matchedAddress) {\n return undefined\n }\n\n const accountKey = (await kmd.exportKey({ walletHandleToken: walletHandle, address: matchedAddress })).privateKey\n const keys = nacl.sign.keyPair.fromSecretKey(accountKey)\n const rawSigner = async (bytesToSign: Uint8Array): Promise<Uint8Array> => {\n return nacl.sign.detached(bytesToSign, keys.secretKey)\n }\n\n return generateAddressWithSigners({\n ed25519Pubkey: keys.publicKey,\n sendingAddress: getOptionalAddress(sender),\n rawEd25519Signer: rawSigner,\n })\n }\n\n /**\n * Gets an account with private key loaded from a KMD wallet of the given name, or alternatively creates one with funds in it via a KMD wallet of the given name.\n *\n * This is useful to get idempotent accounts from LocalNet without having to specify the private key (which will change when resetting the LocalNet).\n *\n * This significantly speeds up local dev time and improves experience since you can write code that *just works* first go without manual config in a fresh LocalNet.\n *\n * If this is used via `mnemonicAccountFromEnvironment`, then you can even use the same code that runs on production without changes for local development!\n *\n * @param name The name of the wallet to retrieve / create\n * @param fundWith The number of Algo to fund the account with when it gets created, if not specified then 1000 ALGO will be funded from the dispenser account\n *\n * @example\n * ```typescript\n * // Idempotently get (if exists) or create (if it doesn't exist yet) an account by name using KMD\n * // if creating it then fund it with 2 ALGO from the default dispenser account\n * const newAccount = await kmdAccountManager.getOrCreateWalletAccount('account1', (2).algo())\n * // This will return the same account as above since the name matches\n * const existingAccount = await kmdAccountManager.getOrCreateWalletAccount('account1')\n * ```\n *\n * @returns An Algorand account with private key loaded - either one that already existed in the given KMD wallet, or a new one that is funded for you\n */\n public async getOrCreateWalletAccount(name: string, fundWith?: AlgoAmount): Promise<AddressWithTransactionSigner> {\n // Get an existing account from the KMD wallet\n const existing = await this.getWalletAccount(name)\n if (existing) {\n return existing\n }\n\n const kmd = await this.kmd()\n\n // None existed: create the KMD wallet instead\n const walletId = (await kmd.createWallet({ walletName: name, walletPassword: '' })).wallet.id\n const walletHandle = (await kmd.initWalletHandle({ walletId, walletPassword: '' })).walletHandleToken\n await kmd.generateKey({ walletHandleToken: walletHandle })\n\n // Get the account from the new KMD wallet\n const account = (await this.getWalletAccount(name))!\n\n Config.logger.info(\n `LocalNet account '${name}' doesn't yet exist; created account ${account.addr} with keys stored in KMD and funding with ${\n fundWith?.algo ?? 1000\n } ALGO`,\n )\n\n // Fund the account from the dispenser\n const dispenser = await this.getLocalNetDispenserAccount()\n await new TransactionComposer({\n algod: this._clientManager.algod,\n getSigner: () => dispenser.signer,\n getSuggestedParams: () => this._clientManager.algod.suggestedParams(),\n })\n .addPayment({ amount: fundWith ?? AlgoAmount.Algo(1000), receiver: account.addr, sender: dispenser.addr })\n .send()\n\n return account\n }\n\n /**\n * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).\n * @example\n * ```typescript\n * const dispenser = await kmdAccountManager.getLocalNetDispenserAccount()\n * ```\n * @returns The default LocalNet dispenser account\n */\n public async getLocalNetDispenserAccount() {\n if (!(await this._clientManager.isLocalNet())) {\n throw new Error(\"Can't get LocalNet dispenser account from non LocalNet network\")\n }\n const genesisResponse = await this._clientManager.algod.genesis()\n const dispenserAddresses = genesisResponse.alloc.filter((a) => a.comment === 'Wallet1').map((a) => a.addr)\n if (dispenserAddresses.length > 0) {\n const dispenser = await this.findWalletAccount('unencrypted-default-wallet', dispenserAddresses[0])\n if (dispenser) {\n return dispenser\n }\n }\n\n throw new Error(\"Error retrieving LocalNet dispenser account; couldn't find the default account in KMD\")\n }\n}\n"],"mappings":"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"}
@@ -2,7 +2,6 @@ import { ClientConfig } from "../packages/kmd_client/src/core/client-config.js";
2
2
  import { ApiRequestOptions, BaseHttpRequest, inputValueAsString } from "../packages/kmd_client/src/core/base-http-request.js";
3
3
  import { FetchHttpRequest } from "../packages/kmd_client/src/core/fetch-http-request.js";
4
4
  import { ApiError } from "../packages/kmd_client/src/core/api-error.js";
5
- import { decodeJson, decodeMsgpack, encodeJson, encodeMsgpack } from "../packages/kmd_client/src/core/model-runtime.js";
6
5
  import { TxType } from "../packages/kmd_client/src/models/tx-type.js";
7
6
  import { Wallet } from "../packages/kmd_client/src/models/wallet.js";
8
7
  import { ListWalletsResponse } from "../packages/kmd_client/src/models/list-wallets-response.js";
@@ -51,4 +50,4 @@ import { SignMultisigRequest } from "../packages/kmd_client/src/models/sign-mult
51
50
  import { SignTransactionRequest } from "../packages/kmd_client/src/models/sign-transaction-request.js";
52
51
  import { KmdApi } from "../packages/kmd_client/src/apis/api-service.js";
53
52
  import { KmdClient } from "../packages/kmd_client/src/client.js";
54
- export { ApiError, ApiRequestOptions, BaseHttpRequest, ClientConfig, CreateWalletRequest, CreateWalletResponse, DeleteKeyRequest, DeleteMultisigRequest, ExportKeyRequest, ExportKeyResponse, ExportMasterKeyRequest, ExportMasterKeyResponse, ExportMultisigRequest, ExportMultisigResponse, FetchHttpRequest, GenerateKeyRequest, GenerateKeyResponse, ImportKeyRequest, ImportKeyResponse, ImportMultisigRequest, ImportMultisigResponse, InitWalletHandleTokenRequest, InitWalletHandleTokenResponse, KmdApi, KmdClient, ListKeysRequest, ListKeysResponse, ListMultisigRequest, ListMultisigResponse, ListWalletsResponse, MultisigSig, MultisigSubsig, ReleaseWalletHandleTokenRequest, RenameWalletRequest, RenameWalletResponse, RenewWalletHandleTokenRequest, RenewWalletHandleTokenResponse, SignMultisigRequest, SignMultisigResponse, SignMultisigTxnRequest, SignProgramMultisigRequest, SignProgramMultisigResponse, SignProgramRequest, SignProgramResponse, SignTransactionRequest, SignTransactionResponse, SignTxnRequest, TxType, VersionsResponse, Wallet, WalletHandle, WalletInfoRequest, WalletInfoResponse, decodeJson, decodeMsgpack, encodeJson, encodeMsgpack, inputValueAsString };
53
+ export { ApiError, ApiRequestOptions, BaseHttpRequest, ClientConfig, CreateWalletRequest, CreateWalletResponse, DeleteKeyRequest, DeleteMultisigRequest, ExportKeyRequest, ExportKeyResponse, ExportMasterKeyRequest, ExportMasterKeyResponse, ExportMultisigRequest, ExportMultisigResponse, FetchHttpRequest, GenerateKeyRequest, GenerateKeyResponse, ImportKeyRequest, ImportKeyResponse, ImportMultisigRequest, ImportMultisigResponse, InitWalletHandleTokenRequest, InitWalletHandleTokenResponse, KmdApi, KmdClient, ListKeysRequest, ListKeysResponse, ListMultisigRequest, ListMultisigResponse, ListWalletsResponse, MultisigSig, MultisigSubsig, ReleaseWalletHandleTokenRequest, RenameWalletRequest, RenameWalletResponse, RenewWalletHandleTokenRequest, RenewWalletHandleTokenResponse, SignMultisigRequest, SignMultisigResponse, SignMultisigTxnRequest, SignProgramMultisigRequest, SignProgramMultisigResponse, SignProgramRequest, SignProgramResponse, SignTransactionRequest, SignTransactionResponse, SignTxnRequest, TxType, VersionsResponse, Wallet, WalletHandle, WalletInfoRequest, WalletInfoResponse, inputValueAsString };
@@ -1,7 +1,6 @@
1
1
  const require_base_http_request = require('../packages/kmd_client/src/core/base-http-request.js');
2
2
  const require_api_error = require('../packages/kmd_client/src/core/api-error.js');
3
3
  const require_fetch_http_request = require('../packages/kmd_client/src/core/fetch-http-request.js');
4
- const require_model_runtime = require('../packages/kmd_client/src/core/model-runtime.js');
5
4
  const require_api_service = require('../packages/kmd_client/src/apis/api-service.js');
6
5
  const require_client = require('../packages/kmd_client/src/client.js');
7
6
 
@@ -10,8 +9,4 @@ exports.BaseHttpRequest = require_base_http_request.BaseHttpRequest;
10
9
  exports.FetchHttpRequest = require_fetch_http_request.FetchHttpRequest;
11
10
  exports.KmdApi = require_api_service.KmdApi;
12
11
  exports.KmdClient = require_client.KmdClient;
13
- exports.decodeJson = require_model_runtime.decodeJson;
14
- exports.decodeMsgpack = require_model_runtime.decodeMsgpack;
15
- exports.encodeJson = require_model_runtime.encodeJson;
16
- exports.encodeMsgpack = require_model_runtime.encodeMsgpack;
17
12
  exports.inputValueAsString = require_base_http_request.inputValueAsString;
@@ -1,8 +1,7 @@
1
1
  import { BaseHttpRequest, inputValueAsString } from "../packages/kmd_client/src/core/base-http-request.mjs";
2
2
  import { ApiError } from "../packages/kmd_client/src/core/api-error.mjs";
3
3
  import { FetchHttpRequest } from "../packages/kmd_client/src/core/fetch-http-request.mjs";
4
- import { decodeJson, decodeMsgpack, encodeJson, encodeMsgpack } from "../packages/kmd_client/src/core/model-runtime.mjs";
5
4
  import { KmdApi } from "../packages/kmd_client/src/apis/api-service.mjs";
6
5
  import { KmdClient } from "../packages/kmd_client/src/client.mjs";
7
6
 
8
- export { ApiError, BaseHttpRequest, FetchHttpRequest, KmdApi, KmdClient, decodeJson, decodeMsgpack, encodeJson, encodeMsgpack, inputValueAsString };
7
+ export { ApiError, BaseHttpRequest, FetchHttpRequest, KmdApi, KmdClient, inputValueAsString };
@@ -0,0 +1,14 @@
1
+ import { AVMTracesEventData, TealSourcesDebugEventData } from "./debugging.js";
2
+
3
+ //#region src/lifecycle-events.d.ts
4
+ declare enum EventType {
5
+ TxnGroupSimulated = "TxnGroupSimulated",
6
+ AppCompiled = "AppCompiled",
7
+ }
8
+ type EventDataMap = {
9
+ [EventType.TxnGroupSimulated]: AVMTracesEventData;
10
+ [EventType.AppCompiled]: TealSourcesDebugEventData;
11
+ };
12
+ //#endregion
13
+ export { EventDataMap, EventType };
14
+ //# sourceMappingURL=lifecycle-events.d.ts.map
@@ -0,0 +1,11 @@
1
+
2
+ //#region src/lifecycle-events.ts
3
+ let EventType = /* @__PURE__ */ function(EventType$1) {
4
+ EventType$1["TxnGroupSimulated"] = "TxnGroupSimulated";
5
+ EventType$1["AppCompiled"] = "AppCompiled";
6
+ return EventType$1;
7
+ }({});
8
+
9
+ //#endregion
10
+ exports.EventType = EventType;
11
+ //# sourceMappingURL=lifecycle-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-events.js","names":[],"sources":["../src/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n}\n"],"mappings":";;AAEA,IAAY,kDAAL;AACL;AACA"}
@@ -0,0 +1,10 @@
1
+ //#region src/lifecycle-events.ts
2
+ let EventType = /* @__PURE__ */ function(EventType$1) {
3
+ EventType$1["TxnGroupSimulated"] = "TxnGroupSimulated";
4
+ EventType$1["AppCompiled"] = "AppCompiled";
5
+ return EventType$1;
6
+ }({});
7
+
8
+ //#endregion
9
+ export { EventType };
10
+ //# sourceMappingURL=lifecycle-events.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-events.mjs","names":[],"sources":["../src/lifecycle-events.ts"],"sourcesContent":["import { AVMTracesEventData, TealSourcesDebugEventData } from './debugging'\n\nexport enum EventType {\n TxnGroupSimulated = 'TxnGroupSimulated',\n AppCompiled = 'AppCompiled',\n}\n\nexport type EventDataMap = {\n [EventType.TxnGroupSimulated]: AVMTracesEventData\n [EventType.AppCompiled]: TealSourcesDebugEventData\n}\n"],"mappings":";AAEA,IAAY,kDAAL;AACL;AACA"}
package/logging.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { Logger } from "./packages/common/src/logger.js";
2
+
3
+ //#region src/logging.d.ts
4
+ /** A logger implementation that writes to console */
5
+ declare const consoleLogger: Logger;
6
+ declare const infoConsoleLogger: Logger;
7
+ declare const verboseConsoleLogger: Logger;
8
+ declare const warningConsoleLogger: Logger;
9
+ /** A logger implementation that does nothing */
10
+ declare const nullLogger: Logger;
11
+ //#endregion
12
+ export { type Logger, consoleLogger, infoConsoleLogger, nullLogger, verboseConsoleLogger, warningConsoleLogger };
13
+ //# sourceMappingURL=logging.d.ts.map
package/logging.js ADDED
@@ -0,0 +1,47 @@
1
+
2
+ //#region src/logging.ts
3
+ /** A logger implementation that writes to console */
4
+ const consoleLogger = {
5
+ error: console.error,
6
+ warn: console.warn,
7
+ info: console.info,
8
+ verbose: () => {},
9
+ debug: console.debug
10
+ };
11
+ const infoConsoleLogger = {
12
+ error: console.error,
13
+ warn: console.warn,
14
+ info: console.info,
15
+ verbose: () => {},
16
+ debug: () => {}
17
+ };
18
+ const verboseConsoleLogger = {
19
+ error: console.error,
20
+ warn: console.warn,
21
+ info: console.info,
22
+ verbose: console.trace,
23
+ debug: console.debug
24
+ };
25
+ const warningConsoleLogger = {
26
+ error: console.error,
27
+ warn: console.warn,
28
+ info: () => {},
29
+ verbose: () => {},
30
+ debug: () => {}
31
+ };
32
+ /** A logger implementation that does nothing */
33
+ const nullLogger = {
34
+ error: function(message, ...optionalParams) {},
35
+ warn: function(message, ...optionalParams) {},
36
+ info: function(message, ...optionalParams) {},
37
+ verbose: function(message, ...optionalParams) {},
38
+ debug: function(message, ...optionalParams) {}
39
+ };
40
+
41
+ //#endregion
42
+ exports.consoleLogger = consoleLogger;
43
+ exports.infoConsoleLogger = infoConsoleLogger;
44
+ exports.nullLogger = nullLogger;
45
+ exports.verboseConsoleLogger = verboseConsoleLogger;
46
+ exports.warningConsoleLogger = warningConsoleLogger;
47
+ //# sourceMappingURL=logging.js.map
package/logging.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","names":["consoleLogger: Logger","infoConsoleLogger: Logger","verboseConsoleLogger: Logger","warningConsoleLogger: Logger","nullLogger: Logger"],"sources":["../src/logging.ts"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\n/* eslint-disable no-console */\n\nimport type { Logger } from '@algorandfoundation/algokit-common'\nexport type { Logger } from '@algorandfoundation/algokit-common'\n\n/** A logger implementation that writes to console */\nexport const consoleLogger: Logger = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n verbose: () => {},\n debug: console.debug,\n}\n\nexport const infoConsoleLogger: Logger = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n verbose: () => {},\n debug: () => {},\n}\n\nexport const verboseConsoleLogger: Logger = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n verbose: console.trace,\n debug: console.debug,\n}\n\nexport const warningConsoleLogger: Logger = {\n error: console.error,\n warn: console.warn,\n info: () => {},\n verbose: () => {},\n debug: () => {},\n}\n\n/** A logger implementation that does nothing */\nexport const nullLogger: Logger = {\n error: function (message: string, ...optionalParams: unknown[]): void {},\n warn: function (message: string, ...optionalParams: unknown[]): void {},\n info: function (message: string, ...optionalParams: unknown[]): void {},\n verbose: function (message: string, ...optionalParams: unknown[]): void {},\n debug: function (message: string, ...optionalParams: unknown[]): void {},\n}\n"],"mappings":";;;AAOA,MAAaA,gBAAwB;CACnC,OAAO,QAAQ;CACf,MAAM,QAAQ;CACd,MAAM,QAAQ;CACd,eAAe;CACf,OAAO,QAAQ;CAChB;AAED,MAAaC,oBAA4B;CACvC,OAAO,QAAQ;CACf,MAAM,QAAQ;CACd,MAAM,QAAQ;CACd,eAAe;CACf,aAAa;CACd;AAED,MAAaC,uBAA+B;CAC1C,OAAO,QAAQ;CACf,MAAM,QAAQ;CACd,MAAM,QAAQ;CACd,SAAS,QAAQ;CACjB,OAAO,QAAQ;CAChB;AAED,MAAaC,uBAA+B;CAC1C,OAAO,QAAQ;CACf,MAAM,QAAQ;CACd,YAAY;CACZ,eAAe;CACf,aAAa;CACd;;AAGD,MAAaC,aAAqB;CAChC,OAAO,SAAU,SAAiB,GAAG,gBAAiC;CACtE,MAAM,SAAU,SAAiB,GAAG,gBAAiC;CACrE,MAAM,SAAU,SAAiB,GAAG,gBAAiC;CACrE,SAAS,SAAU,SAAiB,GAAG,gBAAiC;CACxE,OAAO,SAAU,SAAiB,GAAG,gBAAiC;CACvE"}