algosdk 2.8.0 → 3.0.0-beta.1

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 (810) hide show
  1. package/README.md +8 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.LICENSE.txt +0 -9
  4. package/dist/browser/algosdk.min.js.map +1 -1
  5. package/dist/cjs/abi/abi_type.js +34 -27
  6. package/dist/cjs/abi/abi_type.js.map +1 -1
  7. package/dist/cjs/abi/contract.js +5 -3
  8. package/dist/cjs/abi/contract.js.map +1 -1
  9. package/dist/cjs/{types/transactions/asset.js → abi/event.js} +1 -1
  10. package/dist/cjs/abi/event.js.map +1 -0
  11. package/dist/cjs/abi/index.js +6 -6
  12. package/dist/cjs/abi/index.js.map +1 -1
  13. package/dist/cjs/abi/interface.js +3 -3
  14. package/dist/cjs/abi/interface.js.map +1 -1
  15. package/dist/cjs/abi/method.js +14 -10
  16. package/dist/cjs/abi/method.js.map +1 -1
  17. package/dist/cjs/abi/reference.js +1 -1
  18. package/dist/cjs/abi/reference.js.map +1 -1
  19. package/dist/cjs/abi/transaction.js +2 -2
  20. package/dist/cjs/abi/transaction.js.map +1 -1
  21. package/dist/cjs/account.js +4 -4
  22. package/dist/cjs/account.js.map +1 -1
  23. package/dist/cjs/boxStorage.js +17 -17
  24. package/dist/cjs/boxStorage.js.map +1 -1
  25. package/dist/cjs/client/client.js +77 -41
  26. package/dist/cjs/client/client.js.map +1 -1
  27. package/dist/cjs/client/index.js +29 -0
  28. package/dist/cjs/client/index.js.map +1 -0
  29. package/dist/cjs/client/kmd.js +69 -86
  30. package/dist/cjs/client/kmd.js.map +1 -1
  31. package/dist/cjs/client/urlTokenBaseHTTPClient.js +16 -11
  32. package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
  33. package/dist/cjs/client/v2/algod/accountApplicationInformation.js +11 -7
  34. package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -1
  35. package/dist/cjs/client/v2/algod/accountAssetInformation.js +11 -7
  36. package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -1
  37. package/dist/cjs/client/v2/algod/accountInformation.js +11 -6
  38. package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -1
  39. package/dist/cjs/client/v2/algod/algod.js +85 -83
  40. package/dist/cjs/client/v2/algod/algod.js.map +1 -1
  41. package/dist/cjs/client/v2/algod/block.js +6 -33
  42. package/dist/cjs/client/v2/algod/block.js.map +1 -1
  43. package/dist/cjs/client/v2/algod/compile.js +17 -11
  44. package/dist/cjs/client/v2/algod/compile.js.map +1 -1
  45. package/dist/cjs/client/v2/algod/disassemble.js +17 -11
  46. package/dist/cjs/client/v2/algod/disassemble.js.map +1 -1
  47. package/dist/cjs/client/v2/algod/dryrun.js +18 -37
  48. package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
  49. package/dist/cjs/client/v2/algod/genesis.js +6 -2
  50. package/dist/cjs/client/v2/algod/genesis.js.map +1 -1
  51. package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +10 -10
  52. package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
  53. package/dist/cjs/client/v2/algod/getApplicationBoxes.js +8 -8
  54. package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -1
  55. package/dist/cjs/client/v2/algod/getApplicationByID.js +10 -5
  56. package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -1
  57. package/dist/cjs/client/v2/algod/getAssetByID.js +10 -5
  58. package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -1
  59. package/dist/cjs/client/v2/algod/getBlockHash.js +10 -6
  60. package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -1
  61. package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js +6 -5
  62. package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
  63. package/dist/cjs/client/v2/algod/getBlockTxids.js +10 -4
  64. package/dist/cjs/client/v2/algod/getBlockTxids.js.map +1 -1
  65. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js +11 -6
  66. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js.map +1 -1
  67. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +11 -6
  68. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
  69. package/dist/cjs/client/v2/algod/getSyncRound.js +6 -5
  70. package/dist/cjs/client/v2/algod/getSyncRound.js.map +1 -1
  71. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +9 -9
  72. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
  73. package/dist/cjs/client/v2/algod/getTransactionProof.js +10 -6
  74. package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -1
  75. package/dist/cjs/client/v2/algod/healthCheck.js +4 -9
  76. package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -1
  77. package/dist/cjs/{types → client/v2/algod}/index.js +5 -3
  78. package/dist/cjs/client/v2/algod/index.js.map +1 -0
  79. package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js +10 -5
  80. package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
  81. package/dist/cjs/client/v2/algod/models/types.js +3712 -1824
  82. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  83. package/dist/cjs/client/v2/algod/pendingTransactionInformation.js +6 -32
  84. package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -1
  85. package/dist/cjs/client/v2/algod/pendingTransactions.js +6 -31
  86. package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -1
  87. package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js +7 -33
  88. package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
  89. package/dist/cjs/client/v2/algod/ready.js +4 -2
  90. package/dist/cjs/client/v2/algod/ready.js.map +1 -1
  91. package/dist/cjs/client/v2/algod/sendRawTransaction.js +17 -8
  92. package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
  93. package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js +13 -8
  94. package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
  95. package/dist/cjs/client/v2/algod/setSyncRound.js +13 -8
  96. package/dist/cjs/client/v2/algod/setSyncRound.js.map +1 -1
  97. package/dist/cjs/client/v2/algod/simulateTransaction.js +15 -35
  98. package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -1
  99. package/dist/cjs/client/v2/algod/stateproof.js +10 -5
  100. package/dist/cjs/client/v2/algod/stateproof.js.map +1 -1
  101. package/dist/cjs/client/v2/algod/status.js +8 -2
  102. package/dist/cjs/client/v2/algod/status.js.map +1 -1
  103. package/dist/cjs/client/v2/algod/statusAfterBlock.js +10 -5
  104. package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -1
  105. package/dist/cjs/client/v2/algod/suggestedParams.js +13 -9
  106. package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -1
  107. package/dist/cjs/client/v2/algod/supply.js +8 -2
  108. package/dist/cjs/client/v2/algod/supply.js.map +1 -1
  109. package/dist/cjs/client/v2/algod/unsetSyncRound.js +11 -5
  110. package/dist/cjs/client/v2/algod/unsetSyncRound.js.map +1 -1
  111. package/dist/cjs/client/v2/algod/versions.js +8 -2
  112. package/dist/cjs/client/v2/algod/versions.js.map +1 -1
  113. package/dist/cjs/client/v2/indexer/index.js +22 -0
  114. package/dist/cjs/client/v2/indexer/index.js.map +1 -0
  115. package/dist/cjs/client/v2/indexer/indexer.js +44 -43
  116. package/dist/cjs/client/v2/indexer/indexer.js.map +1 -1
  117. package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js +11 -6
  118. package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
  119. package/dist/cjs/client/v2/indexer/lookupAccountAssets.js +11 -6
  120. package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -1
  121. package/dist/cjs/client/v2/indexer/lookupAccountByID.js +11 -6
  122. package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -1
  123. package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js +11 -6
  124. package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
  125. package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js +11 -6
  126. package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
  127. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +19 -12
  128. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  129. package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +10 -10
  130. package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
  131. package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js +10 -5
  132. package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
  133. package/dist/cjs/client/v2/indexer/lookupApplications.js +10 -5
  134. package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -1
  135. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js +10 -5
  136. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  137. package/dist/cjs/client/v2/indexer/lookupAssetByID.js +10 -5
  138. package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -1
  139. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +19 -12
  140. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  141. package/dist/cjs/client/v2/indexer/lookupBlock.js +10 -5
  142. package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -1
  143. package/dist/cjs/client/v2/indexer/lookupTransactionByID.js +10 -5
  144. package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -1
  145. package/dist/cjs/client/v2/indexer/makeHealthCheck.js +8 -2
  146. package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -1
  147. package/dist/cjs/client/v2/indexer/models/types.js +3591 -1651
  148. package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
  149. package/dist/cjs/client/v2/indexer/searchAccounts.js +9 -3
  150. package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -1
  151. package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js +8 -8
  152. package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
  153. package/dist/cjs/client/v2/indexer/searchForApplications.js +9 -3
  154. package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -1
  155. package/dist/cjs/client/v2/indexer/searchForAssets.js +9 -3
  156. package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -1
  157. package/dist/cjs/client/v2/indexer/searchForTransactions.js +17 -9
  158. package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -1
  159. package/dist/cjs/client/v2/jsonrequest.js +22 -54
  160. package/dist/cjs/client/v2/jsonrequest.js.map +1 -1
  161. package/dist/cjs/client/v2/serviceClient.js +5 -25
  162. package/dist/cjs/client/v2/serviceClient.js.map +1 -1
  163. package/dist/cjs/client/v2/untypedmodel.js +22 -0
  164. package/dist/cjs/client/v2/untypedmodel.js.map +1 -0
  165. package/dist/cjs/composer.js +64 -58
  166. package/dist/cjs/composer.js.map +1 -1
  167. package/dist/cjs/convert.js.map +1 -1
  168. package/dist/cjs/dryrun.js +107 -203
  169. package/dist/cjs/dryrun.js.map +1 -1
  170. package/dist/cjs/encoding/address.js +88 -104
  171. package/dist/cjs/encoding/address.js.map +1 -1
  172. package/dist/cjs/encoding/bigint.js +2 -3
  173. package/dist/cjs/encoding/bigint.js.map +1 -1
  174. package/dist/cjs/encoding/binarydata.js +82 -0
  175. package/dist/cjs/encoding/binarydata.js.map +1 -0
  176. package/dist/cjs/encoding/encoding.js +353 -38
  177. package/dist/cjs/encoding/encoding.js.map +1 -1
  178. package/dist/cjs/encoding/schema/address.js +41 -0
  179. package/dist/cjs/encoding/schema/address.js.map +1 -0
  180. package/dist/cjs/encoding/schema/array.js +43 -0
  181. package/dist/cjs/encoding/schema/array.js.map +1 -0
  182. package/dist/cjs/encoding/schema/binarystring.js +55 -0
  183. package/dist/cjs/encoding/schema/binarystring.js.map +1 -0
  184. package/dist/cjs/encoding/schema/blockhash.js +67 -0
  185. package/dist/cjs/encoding/schema/blockhash.js.map +1 -0
  186. package/dist/cjs/encoding/schema/boolean.js +42 -0
  187. package/dist/cjs/encoding/schema/boolean.js.map +1 -0
  188. package/dist/cjs/encoding/schema/bytearray.js +98 -0
  189. package/dist/cjs/encoding/schema/bytearray.js.map +1 -0
  190. package/dist/cjs/encoding/schema/index.js +34 -0
  191. package/dist/cjs/encoding/schema/index.js.map +1 -0
  192. package/dist/cjs/encoding/schema/map.js +528 -0
  193. package/dist/cjs/encoding/schema/map.js.map +1 -0
  194. package/dist/cjs/encoding/schema/optional.js +58 -0
  195. package/dist/cjs/encoding/schema/optional.js.map +1 -0
  196. package/dist/cjs/encoding/schema/string.js +43 -0
  197. package/dist/cjs/encoding/schema/string.js.map +1 -0
  198. package/dist/cjs/encoding/schema/uint64.js +36 -0
  199. package/dist/cjs/encoding/schema/uint64.js.map +1 -0
  200. package/dist/cjs/encoding/schema/untyped.js +33 -0
  201. package/dist/cjs/encoding/schema/untyped.js.map +1 -0
  202. package/dist/cjs/encoding/uint64.js +2 -2
  203. package/dist/cjs/encoding/uint64.js.map +1 -1
  204. package/dist/cjs/group.js +23 -60
  205. package/dist/cjs/group.js.map +1 -1
  206. package/dist/cjs/index.js +2 -2
  207. package/dist/cjs/index.js.map +1 -1
  208. package/dist/cjs/logic/sourcemap.js +56 -25
  209. package/dist/cjs/logic/sourcemap.js.map +1 -1
  210. package/dist/cjs/logicsig.js +113 -146
  211. package/dist/cjs/logicsig.js.map +1 -1
  212. package/dist/cjs/main.js +113 -122
  213. package/dist/cjs/main.js.map +1 -1
  214. package/dist/cjs/makeTxn.js +320 -554
  215. package/dist/cjs/makeTxn.js.map +1 -1
  216. package/dist/cjs/mnemonic/mnemonic.js +8 -8
  217. package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
  218. package/dist/cjs/multisig.js +60 -312
  219. package/dist/cjs/multisig.js.map +1 -1
  220. package/dist/cjs/multisigSigning.js +285 -0
  221. package/dist/cjs/multisigSigning.js.map +1 -0
  222. package/dist/cjs/nacl/naclWrappers.js +2 -2
  223. package/dist/cjs/nacl/naclWrappers.js.map +1 -1
  224. package/dist/cjs/signedTransaction.js +106 -0
  225. package/dist/cjs/signedTransaction.js.map +1 -0
  226. package/dist/cjs/signer.js +7 -7
  227. package/dist/cjs/signer.js.map +1 -1
  228. package/dist/cjs/signing.js +105 -0
  229. package/dist/cjs/signing.js.map +1 -0
  230. package/dist/cjs/stateproof.js +421 -0
  231. package/dist/cjs/stateproof.js.map +1 -0
  232. package/dist/cjs/transaction.js +724 -1009
  233. package/dist/cjs/transaction.js.map +1 -1
  234. package/dist/cjs/types/block.js +813 -0
  235. package/dist/cjs/types/block.js.map +1 -0
  236. package/dist/cjs/types/intDecoding.js +1 -1
  237. package/dist/cjs/types/intDecoding.js.map +1 -1
  238. package/dist/cjs/types/statedelta.js +1155 -0
  239. package/dist/cjs/types/statedelta.js.map +1 -0
  240. package/dist/cjs/types/transactions/base.js +22 -5
  241. package/dist/cjs/types/transactions/base.js.map +1 -1
  242. package/dist/cjs/types/transactions/encoded.js +67 -0
  243. package/dist/cjs/types/transactions/encoded.js.map +1 -1
  244. package/dist/cjs/types/transactions/index.js +2 -5
  245. package/dist/cjs/types/transactions/index.js.map +1 -1
  246. package/dist/cjs/utils/utils.js +86 -22
  247. package/dist/cjs/utils/utils.js.map +1 -1
  248. package/dist/cjs/wait.js +4 -4
  249. package/dist/cjs/wait.js.map +1 -1
  250. package/dist/esm/abi/abi_type.js +22 -15
  251. package/dist/esm/abi/abi_type.js.map +1 -1
  252. package/dist/esm/abi/contract.js +3 -1
  253. package/dist/esm/abi/contract.js.map +1 -1
  254. package/dist/esm/abi/event.js +2 -0
  255. package/dist/esm/abi/event.js.map +1 -0
  256. package/dist/esm/abi/index.js +6 -6
  257. package/dist/esm/abi/index.js.map +1 -1
  258. package/dist/esm/abi/interface.js +1 -1
  259. package/dist/esm/abi/interface.js.map +1 -1
  260. package/dist/esm/abi/method.js +8 -4
  261. package/dist/esm/abi/method.js.map +1 -1
  262. package/dist/esm/abi/transaction.js +1 -1
  263. package/dist/esm/abi/transaction.js.map +1 -1
  264. package/dist/esm/account.js +4 -4
  265. package/dist/esm/account.js.map +1 -1
  266. package/dist/esm/boxStorage.js +15 -15
  267. package/dist/esm/boxStorage.js.map +1 -1
  268. package/dist/esm/client/client.js +74 -40
  269. package/dist/esm/client/client.js.map +1 -1
  270. package/dist/esm/client/index.js +7 -0
  271. package/dist/esm/client/index.js.map +1 -0
  272. package/dist/esm/client/kmd.js +67 -62
  273. package/dist/esm/client/kmd.js.map +1 -1
  274. package/dist/esm/client/urlTokenBaseHTTPClient.js +16 -11
  275. package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
  276. package/dist/esm/client/v2/algod/accountApplicationInformation.js +10 -6
  277. package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -1
  278. package/dist/esm/client/v2/algod/accountAssetInformation.js +10 -6
  279. package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -1
  280. package/dist/esm/client/v2/algod/accountInformation.js +10 -5
  281. package/dist/esm/client/v2/algod/accountInformation.js.map +1 -1
  282. package/dist/esm/client/v2/algod/algod.js +71 -70
  283. package/dist/esm/client/v2/algod/algod.js.map +1 -1
  284. package/dist/esm/client/v2/algod/block.js +5 -9
  285. package/dist/esm/client/v2/algod/block.js.map +1 -1
  286. package/dist/esm/client/v2/algod/compile.js +16 -10
  287. package/dist/esm/client/v2/algod/compile.js.map +1 -1
  288. package/dist/esm/client/v2/algod/disassemble.js +16 -10
  289. package/dist/esm/client/v2/algod/disassemble.js.map +1 -1
  290. package/dist/esm/client/v2/algod/dryrun.js +16 -12
  291. package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
  292. package/dist/esm/client/v2/algod/genesis.js +5 -1
  293. package/dist/esm/client/v2/algod/genesis.js.map +1 -1
  294. package/dist/esm/client/v2/algod/getApplicationBoxByName.js +9 -9
  295. package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
  296. package/dist/esm/client/v2/algod/getApplicationBoxes.js +7 -7
  297. package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -1
  298. package/dist/esm/client/v2/algod/getApplicationByID.js +9 -4
  299. package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -1
  300. package/dist/esm/client/v2/algod/getAssetByID.js +9 -4
  301. package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -1
  302. package/dist/esm/client/v2/algod/getBlockHash.js +9 -5
  303. package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -1
  304. package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js +5 -4
  305. package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
  306. package/dist/esm/client/v2/algod/getBlockTxids.js +9 -3
  307. package/dist/esm/client/v2/algod/getBlockTxids.js.map +1 -1
  308. package/dist/esm/client/v2/algod/getLedgerStateDelta.js +10 -5
  309. package/dist/esm/client/v2/algod/getLedgerStateDelta.js.map +1 -1
  310. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +10 -5
  311. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
  312. package/dist/esm/client/v2/algod/getSyncRound.js +5 -4
  313. package/dist/esm/client/v2/algod/getSyncRound.js.map +1 -1
  314. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +8 -8
  315. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
  316. package/dist/esm/client/v2/algod/getTransactionProof.js +9 -5
  317. package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -1
  318. package/dist/esm/client/v2/algod/healthCheck.js +3 -8
  319. package/dist/esm/client/v2/algod/healthCheck.js.map +1 -1
  320. package/dist/esm/client/v2/algod/index.js +4 -0
  321. package/dist/esm/client/v2/algod/index.js.map +1 -0
  322. package/dist/esm/client/v2/algod/lightBlockHeaderProof.js +9 -4
  323. package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
  324. package/dist/esm/client/v2/algod/models/types.js +3712 -1821
  325. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  326. package/dist/esm/client/v2/algod/pendingTransactionInformation.js +5 -8
  327. package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -1
  328. package/dist/esm/client/v2/algod/pendingTransactions.js +5 -7
  329. package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -1
  330. package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js +6 -9
  331. package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
  332. package/dist/esm/client/v2/algod/ready.js +3 -1
  333. package/dist/esm/client/v2/algod/ready.js.map +1 -1
  334. package/dist/esm/client/v2/algod/sendRawTransaction.js +15 -6
  335. package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
  336. package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js +12 -7
  337. package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
  338. package/dist/esm/client/v2/algod/setSyncRound.js +12 -7
  339. package/dist/esm/client/v2/algod/setSyncRound.js.map +1 -1
  340. package/dist/esm/client/v2/algod/simulateTransaction.js +14 -11
  341. package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -1
  342. package/dist/esm/client/v2/algod/stateproof.js +9 -4
  343. package/dist/esm/client/v2/algod/stateproof.js.map +1 -1
  344. package/dist/esm/client/v2/algod/status.js +7 -1
  345. package/dist/esm/client/v2/algod/status.js.map +1 -1
  346. package/dist/esm/client/v2/algod/statusAfterBlock.js +9 -4
  347. package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -1
  348. package/dist/esm/client/v2/algod/suggestedParams.js +12 -8
  349. package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -1
  350. package/dist/esm/client/v2/algod/supply.js +7 -1
  351. package/dist/esm/client/v2/algod/supply.js.map +1 -1
  352. package/dist/esm/client/v2/algod/unsetSyncRound.js +10 -4
  353. package/dist/esm/client/v2/algod/unsetSyncRound.js.map +1 -1
  354. package/dist/esm/client/v2/algod/versions.js +7 -1
  355. package/dist/esm/client/v2/algod/versions.js.map +1 -1
  356. package/dist/esm/client/v2/indexer/index.js +4 -0
  357. package/dist/esm/client/v2/indexer/index.js.map +1 -0
  358. package/dist/esm/client/v2/indexer/indexer.js +42 -42
  359. package/dist/esm/client/v2/indexer/indexer.js.map +1 -1
  360. package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js +10 -5
  361. package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
  362. package/dist/esm/client/v2/indexer/lookupAccountAssets.js +10 -5
  363. package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -1
  364. package/dist/esm/client/v2/indexer/lookupAccountByID.js +10 -5
  365. package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -1
  366. package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js +10 -5
  367. package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
  368. package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js +10 -5
  369. package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
  370. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +18 -11
  371. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  372. package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +9 -9
  373. package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
  374. package/dist/esm/client/v2/indexer/lookupApplicationLogs.js +9 -4
  375. package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
  376. package/dist/esm/client/v2/indexer/lookupApplications.js +9 -4
  377. package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -1
  378. package/dist/esm/client/v2/indexer/lookupAssetBalances.js +9 -4
  379. package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  380. package/dist/esm/client/v2/indexer/lookupAssetByID.js +9 -4
  381. package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -1
  382. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +17 -10
  383. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  384. package/dist/esm/client/v2/indexer/lookupBlock.js +9 -4
  385. package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -1
  386. package/dist/esm/client/v2/indexer/lookupTransactionByID.js +9 -4
  387. package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -1
  388. package/dist/esm/client/v2/indexer/makeHealthCheck.js +7 -1
  389. package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -1
  390. package/dist/esm/client/v2/indexer/models/types.js +3591 -1648
  391. package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
  392. package/dist/esm/client/v2/indexer/searchAccounts.js +8 -2
  393. package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -1
  394. package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js +7 -7
  395. package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
  396. package/dist/esm/client/v2/indexer/searchForApplications.js +8 -2
  397. package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -1
  398. package/dist/esm/client/v2/indexer/searchForAssets.js +8 -2
  399. package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -1
  400. package/dist/esm/client/v2/indexer/searchForTransactions.js +15 -7
  401. package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -1
  402. package/dist/esm/client/v2/jsonrequest.js +22 -51
  403. package/dist/esm/client/v2/jsonrequest.js.map +1 -1
  404. package/dist/esm/client/v2/serviceClient.js +3 -20
  405. package/dist/esm/client/v2/serviceClient.js.map +1 -1
  406. package/dist/esm/client/v2/untypedmodel.js +18 -0
  407. package/dist/esm/client/v2/untypedmodel.js.map +1 -0
  408. package/dist/esm/composer.js +43 -37
  409. package/dist/esm/composer.js.map +1 -1
  410. package/dist/esm/convert.js.map +1 -1
  411. package/dist/esm/dryrun.js +98 -195
  412. package/dist/esm/dryrun.js.map +1 -1
  413. package/dist/esm/encoding/address.js +85 -100
  414. package/dist/esm/encoding/address.js.map +1 -1
  415. package/dist/esm/encoding/bigint.js +2 -3
  416. package/dist/esm/encoding/bigint.js.map +1 -1
  417. package/dist/esm/encoding/binarydata.js +73 -0
  418. package/dist/esm/encoding/binarydata.js.map +1 -0
  419. package/dist/esm/encoding/encoding.js +337 -12
  420. package/dist/esm/encoding/encoding.js.map +1 -1
  421. package/dist/esm/encoding/schema/address.js +37 -0
  422. package/dist/esm/encoding/schema/address.js.map +1 -0
  423. package/dist/esm/encoding/schema/array.js +39 -0
  424. package/dist/esm/encoding/schema/array.js.map +1 -0
  425. package/dist/esm/encoding/schema/binarystring.js +51 -0
  426. package/dist/esm/encoding/schema/binarystring.js.map +1 -0
  427. package/dist/esm/encoding/schema/blockhash.js +60 -0
  428. package/dist/esm/encoding/schema/blockhash.js.map +1 -0
  429. package/dist/esm/encoding/schema/boolean.js +38 -0
  430. package/dist/esm/encoding/schema/boolean.js.map +1 -0
  431. package/dist/esm/encoding/schema/bytearray.js +93 -0
  432. package/dist/esm/encoding/schema/bytearray.js.map +1 -0
  433. package/dist/esm/encoding/schema/index.js +12 -0
  434. package/dist/esm/encoding/schema/index.js.map +1 -0
  435. package/dist/esm/encoding/schema/map.js +517 -0
  436. package/dist/esm/encoding/schema/map.js.map +1 -0
  437. package/dist/esm/encoding/schema/optional.js +54 -0
  438. package/dist/esm/encoding/schema/optional.js.map +1 -0
  439. package/dist/esm/encoding/schema/string.js +39 -0
  440. package/dist/esm/encoding/schema/string.js.map +1 -0
  441. package/dist/esm/encoding/schema/uint64.js +32 -0
  442. package/dist/esm/encoding/schema/uint64.js.map +1 -0
  443. package/dist/esm/encoding/schema/untyped.js +29 -0
  444. package/dist/esm/encoding/schema/untyped.js.map +1 -0
  445. package/dist/esm/encoding/uint64.js +1 -1
  446. package/dist/esm/encoding/uint64.js.map +1 -1
  447. package/dist/esm/group.js +22 -58
  448. package/dist/esm/group.js.map +1 -1
  449. package/dist/esm/index.js +2 -2
  450. package/dist/esm/index.js.map +1 -1
  451. package/dist/esm/logic/sourcemap.js +54 -23
  452. package/dist/esm/logic/sourcemap.js.map +1 -1
  453. package/dist/esm/logicsig.js +110 -141
  454. package/dist/esm/logicsig.js.map +1 -1
  455. package/dist/esm/main.js +47 -76
  456. package/dist/esm/main.js.map +1 -1
  457. package/dist/esm/makeTxn.js +314 -513
  458. package/dist/esm/makeTxn.js.map +1 -1
  459. package/dist/esm/mnemonic/mnemonic.js +5 -5
  460. package/dist/esm/mnemonic/mnemonic.js.map +1 -1
  461. package/dist/esm/multisig.js +56 -305
  462. package/dist/esm/multisig.js.map +1 -1
  463. package/dist/esm/multisigSigning.js +254 -0
  464. package/dist/esm/multisigSigning.js.map +1 -0
  465. package/dist/esm/nacl/naclWrappers.js +1 -1
  466. package/dist/esm/nacl/naclWrappers.js.map +1 -1
  467. package/dist/esm/package.json +1 -0
  468. package/dist/esm/signedTransaction.js +100 -0
  469. package/dist/esm/signedTransaction.js.map +1 -0
  470. package/dist/esm/signer.js +3 -3
  471. package/dist/esm/signer.js.map +1 -1
  472. package/dist/esm/signing.js +77 -0
  473. package/dist/esm/signing.js.map +1 -0
  474. package/dist/esm/stateproof.js +408 -0
  475. package/dist/esm/stateproof.js.map +1 -0
  476. package/dist/esm/transaction.js +723 -1005
  477. package/dist/esm/transaction.js.map +1 -1
  478. package/dist/esm/types/block.js +797 -0
  479. package/dist/esm/types/block.js.map +1 -0
  480. package/dist/esm/types/intDecoding.js +1 -1
  481. package/dist/esm/types/intDecoding.js.map +1 -1
  482. package/dist/esm/types/statedelta.js +1129 -0
  483. package/dist/esm/types/statedelta.js.map +1 -0
  484. package/dist/esm/types/transactions/base.js +18 -2
  485. package/dist/esm/types/transactions/base.js.map +1 -1
  486. package/dist/esm/types/transactions/encoded.js +62 -1
  487. package/dist/esm/types/transactions/encoded.js.map +1 -1
  488. package/dist/esm/types/transactions/index.js +2 -3
  489. package/dist/esm/types/transactions/index.js.map +1 -1
  490. package/dist/esm/utils/utils.js +80 -21
  491. package/dist/esm/utils/utils.js.map +1 -1
  492. package/dist/esm/wait.js +4 -4
  493. package/dist/esm/wait.js.map +1 -1
  494. package/dist/types/abi/abi_type.d.ts +1 -1
  495. package/dist/types/abi/contract.d.ts +5 -1
  496. package/dist/types/abi/event.d.ts +16 -0
  497. package/dist/types/abi/index.d.ts +6 -6
  498. package/dist/types/abi/interface.d.ts +1 -1
  499. package/dist/types/abi/method.d.ts +12 -5
  500. package/dist/types/abi/transaction.d.ts +1 -1
  501. package/dist/types/account.d.ts +1 -1
  502. package/dist/types/boxStorage.d.ts +4 -5
  503. package/dist/types/client/baseHTTPClient.d.ts +9 -6
  504. package/dist/types/client/client.d.ts +59 -18
  505. package/dist/types/client/index.d.ts +5 -0
  506. package/dist/types/client/kmd.d.ts +12 -10
  507. package/dist/types/client/urlTokenBaseHTTPClient.d.ts +8 -5
  508. package/dist/types/client/v2/algod/accountApplicationInformation.d.ts +8 -6
  509. package/dist/types/client/v2/algod/accountAssetInformation.d.ts +8 -6
  510. package/dist/types/client/v2/algod/accountInformation.d.ts +7 -5
  511. package/dist/types/client/v2/algod/algod.d.ts +53 -52
  512. package/dist/types/client/v2/algod/block.d.ts +5 -4
  513. package/dist/types/client/v2/algod/compile.d.ts +7 -9
  514. package/dist/types/client/v2/algod/disassemble.d.ts +7 -9
  515. package/dist/types/client/v2/algod/dryrun.d.ts +7 -9
  516. package/dist/types/client/v2/algod/genesis.d.ts +4 -2
  517. package/dist/types/client/v2/algod/getApplicationBoxByName.d.ts +6 -7
  518. package/dist/types/client/v2/algod/getApplicationBoxes.d.ts +6 -7
  519. package/dist/types/client/v2/algod/getApplicationByID.d.ts +6 -5
  520. package/dist/types/client/v2/algod/getAssetByID.d.ts +6 -5
  521. package/dist/types/client/v2/algod/getBlockHash.d.ts +7 -6
  522. package/dist/types/client/v2/algod/getBlockOffsetTimestamp.d.ts +5 -4
  523. package/dist/types/client/v2/algod/getBlockTxids.d.ts +6 -5
  524. package/dist/types/client/v2/algod/getLedgerStateDelta.d.ts +6 -5
  525. package/dist/types/client/v2/algod/getLedgerStateDeltaForTransactionGroup.d.ts +6 -5
  526. package/dist/types/client/v2/algod/getSyncRound.d.ts +5 -4
  527. package/dist/types/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.d.ts +6 -7
  528. package/dist/types/client/v2/algod/getTransactionProof.d.ts +6 -5
  529. package/dist/types/client/v2/algod/healthCheck.d.ts +4 -3
  530. package/dist/types/client/v2/algod/index.d.ts +2 -0
  531. package/dist/types/client/v2/algod/lightBlockHeaderProof.d.ts +6 -5
  532. package/dist/types/client/v2/algod/models/types.d.ts +629 -318
  533. package/dist/types/client/v2/algod/pendingTransactionInformation.d.ts +5 -4
  534. package/dist/types/client/v2/algod/pendingTransactions.d.ts +5 -4
  535. package/dist/types/client/v2/algod/pendingTransactionsByAddress.d.ts +7 -5
  536. package/dist/types/client/v2/algod/ready.d.ts +4 -2
  537. package/dist/types/client/v2/algod/sendRawTransaction.d.ts +7 -5
  538. package/dist/types/client/v2/algod/setBlockOffsetTimestamp.d.ts +6 -6
  539. package/dist/types/client/v2/algod/setSyncRound.d.ts +6 -6
  540. package/dist/types/client/v2/algod/simulateTransaction.d.ts +7 -7
  541. package/dist/types/client/v2/algod/stateproof.d.ts +6 -5
  542. package/dist/types/client/v2/algod/status.d.ts +5 -2
  543. package/dist/types/client/v2/algod/statusAfterBlock.d.ts +6 -5
  544. package/dist/types/client/v2/algod/suggestedParams.d.ts +25 -4
  545. package/dist/types/client/v2/algod/supply.d.ts +5 -2
  546. package/dist/types/client/v2/algod/unsetSyncRound.d.ts +5 -3
  547. package/dist/types/client/v2/algod/versions.d.ts +5 -2
  548. package/dist/types/client/v2/indexer/index.d.ts +2 -0
  549. package/dist/types/client/v2/indexer/indexer.d.ts +31 -30
  550. package/dist/types/client/v2/indexer/lookupAccountAppLocalStates.d.ts +7 -5
  551. package/dist/types/client/v2/indexer/lookupAccountAssets.d.ts +7 -5
  552. package/dist/types/client/v2/indexer/lookupAccountByID.d.ts +7 -5
  553. package/dist/types/client/v2/indexer/lookupAccountCreatedApplications.d.ts +7 -5
  554. package/dist/types/client/v2/indexer/lookupAccountCreatedAssets.d.ts +7 -5
  555. package/dist/types/client/v2/indexer/lookupAccountTransactions.d.ts +11 -9
  556. package/dist/types/client/v2/indexer/lookupApplicationBoxByIDandName.d.ts +6 -7
  557. package/dist/types/client/v2/indexer/lookupApplicationLogs.d.ts +6 -5
  558. package/dist/types/client/v2/indexer/lookupApplications.d.ts +6 -5
  559. package/dist/types/client/v2/indexer/lookupAssetBalances.d.ts +6 -5
  560. package/dist/types/client/v2/indexer/lookupAssetByID.d.ts +6 -5
  561. package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +12 -10
  562. package/dist/types/client/v2/indexer/lookupBlock.d.ts +6 -5
  563. package/dist/types/client/v2/indexer/lookupTransactionByID.d.ts +6 -5
  564. package/dist/types/client/v2/indexer/makeHealthCheck.d.ts +5 -2
  565. package/dist/types/client/v2/indexer/models/types.d.ts +513 -267
  566. package/dist/types/client/v2/indexer/searchAccounts.d.ts +7 -3
  567. package/dist/types/client/v2/indexer/searchForApplicationBoxes.d.ts +6 -7
  568. package/dist/types/client/v2/indexer/searchForApplications.d.ts +7 -3
  569. package/dist/types/client/v2/indexer/searchForAssets.d.ts +7 -3
  570. package/dist/types/client/v2/indexer/searchForTransactions.d.ts +11 -7
  571. package/dist/types/client/v2/jsonrequest.d.ts +20 -33
  572. package/dist/types/client/v2/serviceClient.d.ts +4 -18
  573. package/dist/types/client/v2/untypedmodel.d.ts +10 -0
  574. package/dist/types/composer.d.ts +18 -17
  575. package/dist/types/dryrun.d.ts +8 -80
  576. package/dist/types/encoding/address.d.ts +40 -31
  577. package/dist/types/encoding/binarydata.d.ts +30 -0
  578. package/dist/types/encoding/encoding.d.ts +219 -7
  579. package/dist/types/encoding/schema/address.d.ts +10 -0
  580. package/dist/types/encoding/schema/array.d.ts +11 -0
  581. package/dist/types/encoding/schema/binarystring.d.ts +18 -0
  582. package/dist/types/encoding/schema/blockhash.d.ts +16 -0
  583. package/dist/types/encoding/schema/boolean.d.ts +10 -0
  584. package/dist/types/encoding/schema/bytearray.d.ts +19 -0
  585. package/dist/types/encoding/schema/index.d.ts +11 -0
  586. package/dist/types/encoding/schema/map.d.ts +125 -0
  587. package/dist/types/encoding/schema/optional.d.ts +24 -0
  588. package/dist/types/encoding/schema/string.d.ts +9 -0
  589. package/dist/types/encoding/schema/uint64.d.ts +9 -0
  590. package/dist/types/encoding/schema/untyped.d.ts +9 -0
  591. package/dist/types/encoding/uint64.d.ts +1 -0
  592. package/dist/types/group.d.ts +6 -25
  593. package/dist/types/index.d.ts +2 -2
  594. package/dist/types/logic/sourcemap.d.ts +39 -13
  595. package/dist/types/logicsig.d.ts +27 -57
  596. package/dist/types/main.d.ts +43 -54
  597. package/dist/types/makeTxn.d.ts +129 -388
  598. package/dist/types/mnemonic/mnemonic.d.ts +1 -1
  599. package/dist/types/multisig.d.ts +28 -99
  600. package/dist/types/multisigSigning.d.ts +72 -0
  601. package/dist/types/signedTransaction.d.ts +55 -0
  602. package/dist/types/signer.d.ts +5 -5
  603. package/dist/types/signing.d.ts +29 -0
  604. package/dist/types/stateproof.d.ts +194 -0
  605. package/dist/types/transaction.d.ts +103 -182
  606. package/dist/types/types/account.d.ts +2 -1
  607. package/dist/types/types/block.d.ts +407 -0
  608. package/dist/types/types/intDecoding.d.ts +1 -1
  609. package/dist/types/types/statedelta.d.ts +575 -0
  610. package/dist/types/types/transactions/base.d.ts +206 -118
  611. package/dist/types/types/transactions/encoded.d.ts +7 -301
  612. package/dist/types/types/transactions/index.d.ts +2 -15
  613. package/dist/types/types/utils.d.ts +7 -7
  614. package/dist/types/utils/utils.d.ts +21 -16
  615. package/dist/types/wait.d.ts +3 -2
  616. package/package.json +48 -20
  617. package/src/abi/abi_type.ts +28 -18
  618. package/src/abi/contract.ts +7 -1
  619. package/src/abi/event.ts +16 -0
  620. package/src/abi/index.ts +6 -6
  621. package/src/abi/interface.ts +1 -1
  622. package/src/abi/method.ts +22 -8
  623. package/src/abi/transaction.ts +2 -2
  624. package/src/account.ts +5 -5
  625. package/src/boxStorage.ts +25 -23
  626. package/src/client/baseHTTPClient.ts +12 -6
  627. package/src/client/client.ts +147 -75
  628. package/src/client/index.ts +6 -0
  629. package/src/client/kmd.ts +79 -72
  630. package/src/client/urlTokenBaseHTTPClient.ts +25 -14
  631. package/src/client/v2/algod/accountApplicationInformation.ts +16 -9
  632. package/src/client/v2/algod/accountAssetInformation.ts +16 -9
  633. package/src/client/v2/algod/accountInformation.ts +16 -11
  634. package/src/client/v2/algod/algod.ts +83 -105
  635. package/src/client/v2/algod/block.ts +7 -11
  636. package/src/client/v2/algod/compile.ts +27 -19
  637. package/src/client/v2/algod/disassemble.ts +27 -19
  638. package/src/client/v2/algod/dryrun.ts +23 -19
  639. package/src/client/v2/algod/genesis.ts +8 -2
  640. package/src/client/v2/algod/getApplicationBoxByName.ts +10 -15
  641. package/src/client/v2/algod/getApplicationBoxes.ts +12 -13
  642. package/src/client/v2/algod/getApplicationByID.ts +15 -7
  643. package/src/client/v2/algod/getAssetByID.ts +15 -7
  644. package/src/client/v2/algod/getBlockHash.ts +13 -9
  645. package/src/client/v2/algod/getBlockOffsetTimestamp.ts +7 -8
  646. package/src/client/v2/algod/getBlockTxids.ts +12 -6
  647. package/src/client/v2/algod/getLedgerStateDelta.ts +16 -8
  648. package/src/client/v2/algod/getLedgerStateDeltaForTransactionGroup.ts +16 -8
  649. package/src/client/v2/algod/getSyncRound.ts +7 -8
  650. package/src/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.ts +15 -15
  651. package/src/client/v2/algod/getTransactionProof.ts +11 -9
  652. package/src/client/v2/algod/healthCheck.ts +5 -9
  653. package/src/client/v2/algod/index.ts +3 -0
  654. package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -8
  655. package/src/client/v2/algod/models/types.ts +4729 -2254
  656. package/src/client/v2/algod/pendingTransactionInformation.ts +11 -11
  657. package/src/client/v2/algod/pendingTransactions.ts +7 -9
  658. package/src/client/v2/algod/pendingTransactionsByAddress.ts +12 -11
  659. package/src/client/v2/algod/ready.ts +6 -2
  660. package/src/client/v2/algod/sendRawTransaction.ts +24 -13
  661. package/src/client/v2/algod/setBlockOffsetTimestamp.ts +21 -11
  662. package/src/client/v2/algod/setSyncRound.ts +21 -11
  663. package/src/client/v2/algod/simulateTransaction.ts +22 -23
  664. package/src/client/v2/algod/stateproof.ts +15 -8
  665. package/src/client/v2/algod/status.ts +10 -2
  666. package/src/client/v2/algod/statusAfterBlock.ts +15 -7
  667. package/src/client/v2/algod/suggestedParams.ts +40 -10
  668. package/src/client/v2/algod/supply.ts +10 -2
  669. package/src/client/v2/algod/unsetSyncRound.ts +16 -5
  670. package/src/client/v2/algod/versions.ts +10 -2
  671. package/src/client/v2/indexer/index.ts +3 -0
  672. package/src/client/v2/indexer/indexer.ts +51 -59
  673. package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +16 -11
  674. package/src/client/v2/indexer/lookupAccountAssets.ts +16 -11
  675. package/src/client/v2/indexer/lookupAccountByID.ts +16 -11
  676. package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +16 -11
  677. package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +16 -11
  678. package/src/client/v2/indexer/lookupAccountTransactions.ts +26 -19
  679. package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +10 -15
  680. package/src/client/v2/indexer/lookupApplicationLogs.ts +15 -7
  681. package/src/client/v2/indexer/lookupApplications.ts +15 -7
  682. package/src/client/v2/indexer/lookupAssetBalances.ts +15 -7
  683. package/src/client/v2/indexer/lookupAssetByID.ts +15 -7
  684. package/src/client/v2/indexer/lookupAssetTransactions.ts +27 -16
  685. package/src/client/v2/indexer/lookupBlock.ts +15 -7
  686. package/src/client/v2/indexer/lookupTransactionByID.ts +15 -7
  687. package/src/client/v2/indexer/makeHealthCheck.ts +10 -2
  688. package/src/client/v2/indexer/models/types.ts +4454 -1988
  689. package/src/client/v2/indexer/searchAccounts.ts +13 -4
  690. package/src/client/v2/indexer/searchForApplicationBoxes.ts +12 -13
  691. package/src/client/v2/indexer/searchForApplications.ts +13 -4
  692. package/src/client/v2/indexer/searchForAssets.ts +13 -4
  693. package/src/client/v2/indexer/searchForTransactions.ts +22 -11
  694. package/src/client/v2/jsonrequest.ts +39 -57
  695. package/src/client/v2/serviceClient.ts +9 -31
  696. package/src/client/v2/untypedmodel.ts +25 -0
  697. package/src/composer.ts +83 -60
  698. package/src/dryrun.ts +129 -306
  699. package/src/encoding/address.ts +134 -146
  700. package/src/encoding/bigint.ts +2 -4
  701. package/src/encoding/binarydata.ts +80 -0
  702. package/src/encoding/encoding.ts +558 -13
  703. package/src/encoding/schema/address.ts +53 -0
  704. package/src/encoding/schema/array.ts +66 -0
  705. package/src/encoding/schema/binarystring.ts +73 -0
  706. package/src/encoding/schema/blockhash.ts +84 -0
  707. package/src/encoding/schema/boolean.ts +54 -0
  708. package/src/encoding/schema/bytearray.ts +127 -0
  709. package/src/encoding/schema/index.ts +26 -0
  710. package/src/encoding/schema/map.ts +713 -0
  711. package/src/encoding/schema/optional.ts +72 -0
  712. package/src/encoding/schema/string.ts +55 -0
  713. package/src/encoding/schema/uint64.ts +46 -0
  714. package/src/encoding/schema/untyped.ts +47 -0
  715. package/src/encoding/uint64.ts +2 -1
  716. package/src/group.ts +27 -75
  717. package/src/index.ts +2 -2
  718. package/src/logic/sourcemap.ts +94 -29
  719. package/src/logicsig.ts +154 -202
  720. package/src/main.ts +91 -94
  721. package/src/makeTxn.ts +670 -1320
  722. package/src/mnemonic/mnemonic.ts +14 -14
  723. package/src/multisig.ts +89 -403
  724. package/src/multisigSigning.ts +359 -0
  725. package/src/nacl/naclWrappers.ts +1 -1
  726. package/src/signedTransaction.ts +163 -0
  727. package/src/signer.ts +10 -5
  728. package/src/signing.ts +95 -0
  729. package/src/stateproof.ts +595 -0
  730. package/src/transaction.ts +986 -1242
  731. package/src/types/account.ts +3 -1
  732. package/src/types/block.ts +1278 -0
  733. package/src/types/intDecoding.ts +1 -1
  734. package/src/types/statedelta.ts +1717 -0
  735. package/src/types/transactions/base.ts +230 -122
  736. package/src/types/transactions/encoded.ts +81 -371
  737. package/src/types/transactions/index.ts +2 -72
  738. package/src/types/utils.ts +3 -3
  739. package/src/utils/utils.ts +96 -25
  740. package/src/wait.ts +8 -7
  741. package/dist/cjs/bid.js +0 -83
  742. package/dist/cjs/bid.js.map +0 -1
  743. package/dist/cjs/client/v2/basemodel.js +0 -67
  744. package/dist/cjs/client/v2/basemodel.js.map +0 -1
  745. package/dist/cjs/types/address.js +0 -3
  746. package/dist/cjs/types/address.js.map +0 -1
  747. package/dist/cjs/types/blockHeader.js +0 -3
  748. package/dist/cjs/types/blockHeader.js.map +0 -1
  749. package/dist/cjs/types/index.js.map +0 -1
  750. package/dist/cjs/types/multisig.js +0 -3
  751. package/dist/cjs/types/multisig.js.map +0 -1
  752. package/dist/cjs/types/transactions/application.js +0 -3
  753. package/dist/cjs/types/transactions/application.js.map +0 -1
  754. package/dist/cjs/types/transactions/asset.js.map +0 -1
  755. package/dist/cjs/types/transactions/builder.js +0 -3
  756. package/dist/cjs/types/transactions/builder.js.map +0 -1
  757. package/dist/cjs/types/transactions/keyreg.js +0 -3
  758. package/dist/cjs/types/transactions/keyreg.js.map +0 -1
  759. package/dist/cjs/types/transactions/payment.js +0 -3
  760. package/dist/cjs/types/transactions/payment.js.map +0 -1
  761. package/dist/cjs/types/transactions/stateproof.js +0 -3
  762. package/dist/cjs/types/transactions/stateproof.js.map +0 -1
  763. package/dist/esm/bid.js +0 -57
  764. package/dist/esm/bid.js.map +0 -1
  765. package/dist/esm/client/v2/basemodel.js +0 -64
  766. package/dist/esm/client/v2/basemodel.js.map +0 -1
  767. package/dist/esm/types/address.js +0 -2
  768. package/dist/esm/types/address.js.map +0 -1
  769. package/dist/esm/types/blockHeader.js +0 -2
  770. package/dist/esm/types/blockHeader.js.map +0 -1
  771. package/dist/esm/types/index.js +0 -4
  772. package/dist/esm/types/index.js.map +0 -1
  773. package/dist/esm/types/multisig.js +0 -2
  774. package/dist/esm/types/multisig.js.map +0 -1
  775. package/dist/esm/types/transactions/application.js +0 -2
  776. package/dist/esm/types/transactions/application.js.map +0 -1
  777. package/dist/esm/types/transactions/asset.js +0 -2
  778. package/dist/esm/types/transactions/asset.js.map +0 -1
  779. package/dist/esm/types/transactions/builder.js +0 -2
  780. package/dist/esm/types/transactions/builder.js.map +0 -1
  781. package/dist/esm/types/transactions/keyreg.js +0 -2
  782. package/dist/esm/types/transactions/keyreg.js.map +0 -1
  783. package/dist/esm/types/transactions/payment.js +0 -2
  784. package/dist/esm/types/transactions/payment.js.map +0 -1
  785. package/dist/esm/types/transactions/stateproof.js +0 -2
  786. package/dist/esm/types/transactions/stateproof.js.map +0 -1
  787. package/dist/types/bid.d.ts +0 -38
  788. package/dist/types/client/v2/basemodel.d.ts +0 -11
  789. package/dist/types/types/address.d.ts +0 -7
  790. package/dist/types/types/blockHeader.d.ts +0 -67
  791. package/dist/types/types/index.d.ts +0 -3
  792. package/dist/types/types/multisig.d.ts +0 -20
  793. package/dist/types/types/transactions/application.d.ts +0 -22
  794. package/dist/types/types/transactions/asset.d.ts +0 -28
  795. package/dist/types/types/transactions/builder.d.ts +0 -36
  796. package/dist/types/types/transactions/keyreg.d.ts +0 -8
  797. package/dist/types/types/transactions/payment.d.ts +0 -8
  798. package/dist/types/types/transactions/stateproof.d.ts +0 -8
  799. package/src/bid.ts +0 -96
  800. package/src/client/v2/basemodel.ts +0 -81
  801. package/src/types/address.ts +0 -7
  802. package/src/types/blockHeader.ts +0 -81
  803. package/src/types/index.ts +0 -3
  804. package/src/types/multisig.ts +0 -22
  805. package/src/types/transactions/application.ts +0 -111
  806. package/src/types/transactions/asset.ts +0 -108
  807. package/src/types/transactions/builder.ts +0 -69
  808. package/src/types/transactions/keyreg.ts +0 -23
  809. package/src/types/transactions/payment.ts +0 -14
  810. package/src/types/transactions/stateproof.ts +0 -17
package/src/makeTxn.ts CHANGED
@@ -1,1448 +1,798 @@
1
- import * as txnBuilder from './transaction';
2
- import { OnApplicationComplete } from './types/transactions/base';
1
+ import { Transaction } from './transaction.js';
3
2
  import {
4
- // Transaction types
5
- PaymentTxn,
6
- KeyRegistrationTxn,
7
-
8
- // Utilities
3
+ OnApplicationComplete,
9
4
  TransactionType,
10
- MustHaveSuggestedParams,
11
- AssetCreateTxn,
12
- AssetConfigTxn,
13
- AssetDestroyTxn,
14
- AssetFreezeTxn,
15
- AssetTransferTxn,
16
- AppCreateTxn,
17
- AppUpdateTxn,
18
- AppDeleteTxn,
19
- AppOptInTxn,
20
- AppCloseOutTxn,
21
- AppClearStateTxn,
22
- AppNoOpTxn,
23
- } from './types/transactions';
24
- import { RenameProperties, RenameProperty, Expand } from './types/utils';
5
+ SuggestedParams,
6
+ PaymentTransactionParams,
7
+ KeyRegistrationTransactionParams,
8
+ AssetConfigurationTransactionParams,
9
+ AssetTransferTransactionParams,
10
+ AssetFreezeTransactionParams,
11
+ ApplicationCallTransactionParams,
12
+ } from './types/transactions/base.js';
13
+ import { Address } from './encoding/address.js';
14
+
15
+ /** Contains parameters common to every transaction type */
16
+ export interface CommonTransactionParams {
17
+ /** Algorand address of sender */
18
+ sender: string | Address;
19
+ /** Suggested parameters relevant to the network that will accept this transaction */
20
+ suggestedParams: SuggestedParams;
21
+ /** Optional, arbitrary data to be stored in the transaction's note field */
22
+ note?: Uint8Array;
23
+ /**
24
+ * Optional, 32-byte lease to associate with this transaction.
25
+ *
26
+ * The sender cannot send another transaction with the same lease until the last round of original
27
+ * transaction has passed.
28
+ */
29
+ lease?: Uint8Array;
30
+ /** The Algorand address that will be used to authorize all future transactions from the sender, if provided. */
31
+ rekeyTo?: string | Address;
32
+ }
25
33
 
26
34
  /**
27
- * makePaymentTxnWithSuggestedParams takes payment arguments and returns a Transaction object
28
- * @param from - string representation of Algorand address of sender
29
- * @param to - string representation of Algorand address of recipient
30
- * @param amount - integer amount to send, in microAlgos
31
- * @param closeRemainderTo - optionally close out remaining account balance to this account, represented as string rep of Algorand address
32
- * @param note - uint8array of arbitrary data for sender to store
33
- * @param suggestedParams - a dict holding common-to-all-txns args:
34
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
35
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
36
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
37
- * firstRound - integer first protocol round on which this txn is valid
38
- * lastRound - integer last protocol round on which this txn is valid
39
- * genesisHash - string specifies hash genesis block of network in use
40
- * genesisID - string specifies genesis ID of network in use
41
- * @param rekeyTo - rekeyTo address, optional
35
+ * Create a new payment transaction
36
+ *
37
+ * @param options - Payment transaction parameters
42
38
  */
43
- export function makePaymentTxnWithSuggestedParams(
44
- from: PaymentTxn['from'],
45
- to: PaymentTxn['to'],
46
- amount: PaymentTxn['amount'],
47
- closeRemainderTo: PaymentTxn['closeRemainderTo'],
48
- note: PaymentTxn['note'],
49
- suggestedParams: MustHaveSuggestedParams<PaymentTxn>['suggestedParams'],
50
- rekeyTo?: PaymentTxn['reKeyTo']
51
- ) {
52
- const o: PaymentTxn = {
53
- from,
54
- to,
55
- amount,
56
- closeRemainderTo,
39
+ export function makePaymentTxnWithSuggestedParamsFromObject({
40
+ sender,
41
+ receiver,
42
+ amount,
43
+ closeRemainderTo,
44
+ suggestedParams,
45
+ note,
46
+ lease,
47
+ rekeyTo,
48
+ }: PaymentTransactionParams & CommonTransactionParams): Transaction {
49
+ return new Transaction({
50
+ type: TransactionType.pay,
51
+ sender,
57
52
  note,
53
+ lease,
54
+ rekeyTo,
58
55
  suggestedParams,
59
- type: TransactionType.pay,
60
- reKeyTo: rekeyTo,
61
- };
62
- return new txnBuilder.Transaction(o);
63
- }
64
-
65
- // helper for above makePaymentTxnWithSuggestedParams, instead accepting an arguments object
66
- export function makePaymentTxnWithSuggestedParamsFromObject(
67
- o: Expand<
68
- Pick<
69
- RenameProperty<MustHaveSuggestedParams<PaymentTxn>, 'reKeyTo', 'rekeyTo'>,
70
- | 'from'
71
- | 'to'
72
- | 'amount'
73
- | 'closeRemainderTo'
74
- | 'note'
75
- | 'suggestedParams'
76
- | 'rekeyTo'
77
- >
78
- >
79
- ) {
80
- return makePaymentTxnWithSuggestedParams(
81
- o.from,
82
- o.to,
83
- o.amount,
84
- o.closeRemainderTo,
85
- o.note,
86
- o.suggestedParams,
87
- o.rekeyTo
88
- );
56
+ paymentParams: {
57
+ receiver,
58
+ amount,
59
+ closeRemainderTo,
60
+ },
61
+ });
89
62
  }
90
63
 
91
64
  /**
92
- * makeKeyRegistrationTxnWithSuggestedParams takes key registration arguments and returns a Transaction object for
93
- * that key registration operation
65
+ * Create a new key registration transaction
94
66
  *
95
- * @param from - string representation of Algorand address of sender
96
- * @param note - uint8array of arbitrary data for sender to store
97
- * @param voteKey - voting key. for key deregistration, leave undefined
98
- * @param selectionKey - selection key. for key deregistration, leave undefined
99
- * @param voteFirst - first round on which voteKey is valid
100
- * @param voteLast - last round on which voteKey is valid
101
- * @param voteKeyDilution - integer
102
- * @param suggestedParams - a dict holding common-to-all-txns args:
103
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
104
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
105
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
106
- * firstRound - integer first protocol round on which this txn is valid
107
- * lastRound - integer last protocol round on which this txn is valid
108
- * genesisHash - string specifies hash genesis block of network in use
109
- * genesisID - string specifies genesis ID of network in use
110
- * @param rekeyTo - rekeyTo address, optional
111
- * @param nonParticipation - configure whether the address wants to stop participating. If true,
112
- * voteKey, selectionKey, voteFirst, voteLast, and voteKeyDilution must be undefined.
113
- * @param stateProofKey - state proof key. for key deregistration, leave undefined
67
+ * @param options - Key registration transaction parameters
114
68
  */
115
- export function makeKeyRegistrationTxnWithSuggestedParams(
116
- from: KeyRegistrationTxn['from'],
117
- note: KeyRegistrationTxn['note'],
118
- voteKey: KeyRegistrationTxn['voteKey'],
119
- selectionKey: KeyRegistrationTxn['selectionKey'],
120
- voteFirst: KeyRegistrationTxn['voteFirst'],
121
- voteLast: KeyRegistrationTxn['voteLast'],
122
- voteKeyDilution: KeyRegistrationTxn['voteKeyDilution'],
123
- suggestedParams: MustHaveSuggestedParams<KeyRegistrationTxn>['suggestedParams'],
124
- rekeyTo?: KeyRegistrationTxn['reKeyTo'],
125
- nonParticipation?: false,
126
- stateProofKey?: KeyRegistrationTxn['stateProofKey']
127
- ): txnBuilder.Transaction;
128
- export function makeKeyRegistrationTxnWithSuggestedParams(
129
- from: KeyRegistrationTxn['from'],
130
- note: KeyRegistrationTxn['note'],
131
- voteKey: undefined,
132
- selectionKey: undefined,
133
- voteFirst: undefined,
134
- voteLast: undefined,
135
- voteKeyDilution: undefined,
136
- suggestedParams: MustHaveSuggestedParams<KeyRegistrationTxn>['suggestedParams'],
137
- rekeyTo?: KeyRegistrationTxn['reKeyTo'],
138
- nonParticipation?: boolean,
139
- stateProofKey?: undefined
140
- ): txnBuilder.Transaction;
141
- export function makeKeyRegistrationTxnWithSuggestedParams(
142
- from: any,
143
- note: any,
144
- voteKey: any,
145
- selectionKey: any,
146
- voteFirst: any,
147
- voteLast: any,
148
- voteKeyDilution: any,
149
- suggestedParams: any,
150
- rekeyTo?: any,
151
- nonParticipation = false,
152
- stateProofKey: any = undefined
153
- ) {
154
- const o: KeyRegistrationTxn = {
155
- from,
69
+ export function makeKeyRegistrationTxnWithSuggestedParamsFromObject({
70
+ sender,
71
+ voteKey,
72
+ selectionKey,
73
+ stateProofKey,
74
+ voteFirst,
75
+ voteLast,
76
+ voteKeyDilution,
77
+ nonParticipation,
78
+ suggestedParams,
79
+ note,
80
+ lease,
81
+ rekeyTo,
82
+ }: KeyRegistrationTransactionParams & CommonTransactionParams): Transaction {
83
+ return new Transaction({
84
+ type: TransactionType.keyreg,
85
+ sender,
156
86
  note,
157
- voteKey,
158
- selectionKey,
159
- voteFirst,
160
- voteLast,
161
- voteKeyDilution,
87
+ lease,
88
+ rekeyTo,
162
89
  suggestedParams,
163
- type: TransactionType.keyreg,
164
- reKeyTo: rekeyTo,
165
- nonParticipation,
166
- stateProofKey,
167
- };
168
- return new txnBuilder.Transaction(o);
90
+ keyregParams: {
91
+ voteKey,
92
+ selectionKey,
93
+ stateProofKey,
94
+ voteFirst,
95
+ voteLast,
96
+ voteKeyDilution,
97
+ nonParticipation,
98
+ },
99
+ });
169
100
  }
170
101
 
171
- // helper for above makeKeyRegistrationTxnWithSuggestedParams, instead accepting an arguments object
172
- export function makeKeyRegistrationTxnWithSuggestedParamsFromObject(
173
- o: Expand<
174
- Pick<
175
- RenameProperty<
176
- MustHaveSuggestedParams<KeyRegistrationTxn>,
177
- 'reKeyTo',
178
- 'rekeyTo'
179
- >,
180
- | 'from'
181
- | 'note'
182
- | 'voteKey'
183
- | 'selectionKey'
184
- | 'stateProofKey'
185
- | 'voteFirst'
186
- | 'voteLast'
187
- | 'voteKeyDilution'
188
- | 'suggestedParams'
189
- | 'rekeyTo'
190
- > & {
191
- nonParticipation?: false;
192
- }
193
- >
194
- ): txnBuilder.Transaction;
195
- export function makeKeyRegistrationTxnWithSuggestedParamsFromObject(
196
- o: Expand<
197
- Pick<
198
- RenameProperty<
199
- MustHaveSuggestedParams<KeyRegistrationTxn>,
200
- 'reKeyTo',
201
- 'rekeyTo'
202
- >,
203
- 'from' | 'note' | 'suggestedParams' | 'rekeyTo' | 'nonParticipation'
204
- >
205
- >
206
- ): txnBuilder.Transaction;
207
- export function makeKeyRegistrationTxnWithSuggestedParamsFromObject(o: any) {
208
- return makeKeyRegistrationTxnWithSuggestedParams(
209
- o.from,
210
- o.note,
211
- o.voteKey,
212
- o.selectionKey,
213
- o.voteFirst,
214
- o.voteLast,
215
- o.voteKeyDilution,
216
- o.suggestedParams,
217
- o.rekeyTo,
218
- o.nonParticipation,
219
- o.stateProofKey
220
- );
221
- }
222
-
223
- /** makeAssetCreateTxnWithSuggestedParams takes asset creation arguments and returns a Transaction object
224
- * for creating that asset
102
+ /**
103
+ * Base function for creating any type of asset config transaction.
225
104
  *
226
- * @param from - string representation of Algorand address of sender
227
- * @param note - uint8array of arbitrary data for sender to store
228
- * @param total - integer total supply of the asset
229
- * @param decimals - integer number of decimals for asset unit calculation
230
- * @param defaultFrozen - boolean whether asset accounts should default to being frozen
231
- * @param manager - string representation of Algorand address in charge of reserve, freeze, clawback, destruction, etc
232
- * @param reserve - string representation of Algorand address representing asset reserve
233
- * @param freeze - string representation of Algorand address with power to freeze/unfreeze asset holdings
234
- * @param clawback - string representation of Algorand address with power to revoke asset holdings
235
- * @param unitName - string units name for this asset
236
- * @param assetName - string name for this asset
237
- * @param assetURL - string URL relating to this asset
238
- * @param assetMetadataHash - Uint8Array or UTF-8 string representation of a hash commitment with respect to the asset. Must be exactly 32 bytes long.
239
- * @param suggestedParams - a dict holding common-to-all-txns args:
240
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
241
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
242
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
243
- * firstRound - integer first protocol round on which this txn is valid
244
- * lastRound - integer last protocol round on which this txn is valid
245
- * genesisHash - string specifies hash genesis block of network in use
246
- * genesisID - string specifies genesis ID of network in use
247
- * @param rekeyTo - rekeyTo address, optional
105
+ * @param options - Asset config transaction parameters
248
106
  */
249
- export function makeAssetCreateTxnWithSuggestedParams(
250
- from: AssetCreateTxn['from'],
251
- note: AssetCreateTxn['note'],
252
- total: AssetCreateTxn['assetTotal'],
253
- decimals: AssetCreateTxn['assetDecimals'],
254
- defaultFrozen: AssetCreateTxn['assetDefaultFrozen'],
255
- manager: AssetCreateTxn['assetManager'],
256
- reserve: AssetCreateTxn['assetReserve'],
257
- freeze: AssetCreateTxn['assetFreeze'],
258
- clawback: AssetCreateTxn['assetClawback'],
259
- unitName: AssetCreateTxn['assetUnitName'],
260
- assetName: AssetCreateTxn['assetName'],
261
- assetURL: AssetCreateTxn['assetURL'],
262
- assetMetadataHash: AssetCreateTxn['assetMetadataHash'] | undefined,
263
- suggestedParams: MustHaveSuggestedParams<AssetCreateTxn>['suggestedParams'],
264
- rekeyTo?: AssetCreateTxn['reKeyTo']
265
- ) {
266
- const o: AssetCreateTxn = {
267
- from,
107
+ export function makeBaseAssetConfigTxn({
108
+ sender,
109
+ assetIndex,
110
+ total,
111
+ decimals,
112
+ defaultFrozen,
113
+ manager,
114
+ reserve,
115
+ freeze,
116
+ clawback,
117
+ unitName,
118
+ assetName,
119
+ assetURL,
120
+ assetMetadataHash,
121
+ note,
122
+ lease,
123
+ rekeyTo,
124
+ suggestedParams,
125
+ }: AssetConfigurationTransactionParams & CommonTransactionParams): Transaction {
126
+ return new Transaction({
127
+ type: TransactionType.acfg,
128
+ sender,
268
129
  note,
130
+ lease,
131
+ rekeyTo,
269
132
  suggestedParams,
270
- assetTotal: total,
271
- assetDecimals: decimals,
272
- assetDefaultFrozen: defaultFrozen,
273
- assetUnitName: unitName,
133
+ assetConfigParams: {
134
+ assetIndex,
135
+ total,
136
+ decimals,
137
+ defaultFrozen,
138
+ manager,
139
+ reserve,
140
+ freeze,
141
+ clawback,
142
+ unitName,
143
+ assetName,
144
+ assetURL,
145
+ assetMetadataHash,
146
+ },
147
+ });
148
+ }
149
+
150
+ /**
151
+ * Create a new asset creation transaction
152
+ *
153
+ * @param options - Asset creation transaction parameters
154
+ */
155
+ export function makeAssetCreateTxnWithSuggestedParamsFromObject({
156
+ sender,
157
+ total,
158
+ decimals,
159
+ defaultFrozen,
160
+ manager,
161
+ reserve,
162
+ freeze,
163
+ clawback,
164
+ unitName,
165
+ assetName,
166
+ assetURL,
167
+ assetMetadataHash,
168
+ note,
169
+ lease,
170
+ rekeyTo,
171
+ suggestedParams,
172
+ }: Omit<AssetConfigurationTransactionParams, 'assetIndex'> &
173
+ CommonTransactionParams): Transaction {
174
+ return makeBaseAssetConfigTxn({
175
+ sender,
176
+ total,
177
+ decimals,
178
+ defaultFrozen,
179
+ manager,
180
+ reserve,
181
+ freeze,
182
+ clawback,
183
+ unitName,
274
184
  assetName,
275
185
  assetURL,
276
186
  assetMetadataHash,
277
- assetManager: manager,
278
- assetReserve: reserve,
279
- assetFreeze: freeze,
280
- assetClawback: clawback,
281
- type: TransactionType.acfg,
282
- reKeyTo: rekeyTo,
283
- };
284
- return new txnBuilder.Transaction(o);
187
+ note,
188
+ lease,
189
+ rekeyTo,
190
+ suggestedParams,
191
+ });
285
192
  }
286
193
 
287
- // helper for above makeAssetCreateTxnWithSuggestedParams, instead accepting an arguments object
288
- export function makeAssetCreateTxnWithSuggestedParamsFromObject(
289
- o: Expand<
290
- Pick<
291
- RenameProperties<
292
- MustHaveSuggestedParams<AssetCreateTxn>,
293
- {
294
- reKeyTo: 'rekeyTo';
295
- assetTotal: 'total';
296
- assetDecimals: 'decimals';
297
- assetDefaultFrozen: 'defaultFrozen';
298
- assetManager: 'manager';
299
- assetReserve: 'reserve';
300
- assetFreeze: 'freeze';
301
- assetClawback: 'clawback';
302
- assetUnitName: 'unitName';
303
- }
304
- >,
305
- | 'from'
306
- | 'note'
307
- | 'total'
308
- | 'decimals'
309
- | 'defaultFrozen'
310
- | 'manager'
311
- | 'reserve'
312
- | 'freeze'
313
- | 'clawback'
314
- | 'unitName'
315
- | 'assetName'
316
- | 'assetURL'
317
- | 'assetMetadataHash'
318
- | 'suggestedParams'
319
- | 'rekeyTo'
320
- >
321
- >
322
- ) {
323
- return makeAssetCreateTxnWithSuggestedParams(
324
- o.from,
325
- o.note,
326
- o.total,
327
- o.decimals,
328
- o.defaultFrozen,
329
- o.manager,
330
- o.reserve,
331
- o.freeze,
332
- o.clawback,
333
- o.unitName,
334
- o.assetName,
335
- o.assetURL,
336
- o.assetMetadataHash,
337
- o.suggestedParams,
338
- o.rekeyTo
339
- );
194
+ /** Contains asset modification transaction parameters */
195
+ export interface AssetModificationTransactionParams {
196
+ /**
197
+ * The unique ID of the asset to be modified
198
+ */
199
+ assetIndex: number | bigint;
200
+
201
+ /**
202
+ * The Algorand address in charge of reserve, freeze, clawback, destruction, etc.
203
+ *
204
+ * If empty, this role will be irrevocably removed from this asset.
205
+ */
206
+ manager?: string | Address;
207
+
208
+ /**
209
+ * The Algorand address representing asset reserve.
210
+ *
211
+ * If empty, this role will be irrevocably removed from this asset.
212
+ */
213
+ reserve?: string | Address;
214
+
215
+ /**
216
+ * The Algorand address with power to freeze/unfreeze asset holdings.
217
+ *
218
+ * If empty, this role will be irrevocably removed from this asset.
219
+ */
220
+ freeze?: string | Address;
221
+
222
+ /**
223
+ * The Algorand address with power to revoke asset holdings.
224
+ *
225
+ * If empty, this role will be irrevocably removed from this asset.
226
+ */
227
+ clawback?: string | Address;
228
+
229
+ /**
230
+ * This is a safety flag to prevent unintentionally removing a role from an asset. If undefined or
231
+ * true, an error will be thrown if any of assetManager, assetReserve, assetFreeze, or
232
+ * assetClawback are empty.
233
+ *
234
+ * Set this to false to allow removing roles by leaving the corresponding address empty.
235
+ */
236
+ strictEmptyAddressChecking?: boolean;
340
237
  }
341
238
 
342
- /** makeAssetConfigTxnWithSuggestedParams can be issued by the asset manager to change the manager, reserve, freeze, or clawback
343
- * you must respecify existing addresses to keep them the same; leaving a field blank is the same as turning
344
- * that feature off for this asset
239
+ /**
240
+ * Create a new asset config transaction. This transaction can be issued by the asset manager to
241
+ * change the manager, reserve, freeze, or clawback address.
345
242
  *
346
- * @param from - string representation of Algorand address of sender
347
- * @param note - uint8array of arbitrary data for sender to store
348
- * @param assetIndex - int asset index uniquely specifying the asset
349
- * @param manager - string representation of new asset manager Algorand address
350
- * @param reserve - string representation of new reserve Algorand address
351
- * @param freeze - string representation of new freeze manager Algorand address
352
- * @param clawback - string representation of new revocation manager Algorand address
353
- * @param strictEmptyAddressChecking - boolean - throw an error if any of manager, reserve, freeze, or clawback are undefined. optional, defaults to true.
354
- * @param suggestedParams - a dict holding common-to-all-txns args:
355
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
356
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
357
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
358
- * firstRound - integer first protocol round on which this txn is valid
359
- * lastRound - integer last protocol round on which this txn is valid
360
- * genesisHash - string specifies hash genesis block of network in use
361
- * genesisID - string specifies genesis ID of network in use
362
- * @param rekeyTo - rekeyTo address, optional
243
+ * You must respecify existing addresses to keep them the same; leaving a field blank is the same as
244
+ * turning that feature off for this asset.
245
+ *
246
+ * @param options - Asset modification transaction parameters
363
247
  */
364
- export function makeAssetConfigTxnWithSuggestedParams(
365
- from: AssetConfigTxn['from'],
366
- note: AssetConfigTxn['note'],
367
- assetIndex: AssetConfigTxn['assetIndex'],
368
- manager: AssetConfigTxn['assetManager'],
369
- reserve: AssetConfigTxn['assetReserve'],
370
- freeze: AssetConfigTxn['assetFreeze'],
371
- clawback: AssetConfigTxn['assetClawback'],
372
- suggestedParams: MustHaveSuggestedParams<AssetConfigTxn>['suggestedParams'],
373
- strictEmptyAddressChecking = true,
374
- rekeyTo?: AssetConfigTxn['reKeyTo']
375
- ) {
248
+ export function makeAssetConfigTxnWithSuggestedParamsFromObject({
249
+ sender,
250
+ assetIndex,
251
+ manager,
252
+ reserve,
253
+ freeze,
254
+ clawback,
255
+ strictEmptyAddressChecking,
256
+ note,
257
+ lease,
258
+ rekeyTo,
259
+ suggestedParams,
260
+ }: AssetModificationTransactionParams & CommonTransactionParams): Transaction {
261
+ if (!assetIndex) {
262
+ throw Error('assetIndex must be provided');
263
+ }
264
+ const strictChecking = strictEmptyAddressChecking ?? true;
376
265
  if (
377
- strictEmptyAddressChecking &&
378
- (manager === undefined ||
379
- reserve === undefined ||
380
- freeze === undefined ||
381
- clawback === undefined)
266
+ strictChecking &&
267
+ (manager == null || reserve == null || freeze == null || clawback == null)
382
268
  ) {
383
269
  throw Error(
384
- 'strict empty address checking was turned on, but at least one empty address was provided'
270
+ 'strictEmptyAddressChecking is enabled, but an address is empty. If this is intentional, set strictEmptyAddressChecking to false.'
385
271
  );
386
272
  }
387
- const o: AssetConfigTxn = {
388
- from,
389
- suggestedParams,
273
+ return makeBaseAssetConfigTxn({
274
+ sender,
390
275
  assetIndex,
391
- assetManager: manager,
392
- assetReserve: reserve,
393
- assetFreeze: freeze,
394
- assetClawback: clawback,
395
- type: TransactionType.acfg,
276
+ manager,
277
+ reserve,
278
+ freeze,
279
+ clawback,
396
280
  note,
397
- reKeyTo: rekeyTo,
398
- };
399
- return new txnBuilder.Transaction(o);
400
- }
401
-
402
- // helper for above makeAssetConfigTxnWithSuggestedParams, instead accepting an arguments object
403
- export function makeAssetConfigTxnWithSuggestedParamsFromObject(
404
- o: Expand<
405
- Pick<
406
- RenameProperties<
407
- MustHaveSuggestedParams<AssetConfigTxn>,
408
- {
409
- reKeyTo: 'rekeyTo';
410
- assetManager: 'manager';
411
- assetReserve: 'reserve';
412
- assetFreeze: 'freeze';
413
- assetClawback: 'clawback';
414
- }
415
- >,
416
- | 'from'
417
- | 'note'
418
- | 'assetIndex'
419
- | 'manager'
420
- | 'reserve'
421
- | 'freeze'
422
- | 'clawback'
423
- | 'suggestedParams'
424
- | 'rekeyTo'
425
- > & {
426
- strictEmptyAddressChecking: boolean;
427
- }
428
- >
429
- ) {
430
- return makeAssetConfigTxnWithSuggestedParams(
431
- o.from,
432
- o.note,
433
- o.assetIndex,
434
- o.manager,
435
- o.reserve,
436
- o.freeze,
437
- o.clawback,
438
- o.suggestedParams,
439
- o.strictEmptyAddressChecking,
440
- o.rekeyTo
441
- );
281
+ lease,
282
+ rekeyTo,
283
+ suggestedParams,
284
+ });
442
285
  }
443
286
 
444
- /** makeAssetDestroyTxnWithSuggestedParams will allow the asset's manager to remove this asset from the ledger, so long
445
- * as all outstanding assets are held by the creator.
287
+ /**
288
+ * Create a new asset destroy transaction. This will allow the asset's manager to remove this asset
289
+ * from the ledger, provided all outstanding assets are held by the creator.
446
290
  *
447
- * @param from - string representation of Algorand address of sender
448
- * @param note - uint8array of arbitrary data for sender to store
449
- * @param assetIndex - int asset index uniquely specifying the asset
450
- * @param suggestedParams - a dict holding common-to-all-txns args:
451
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
452
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
453
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
454
- * firstRound - integer first protocol round on which this txn is valid
455
- * lastRound - integer last protocol round on which this txn is valid
456
- * genesisHash - string specifies hash genesis block of network in use
457
- * genesisID - string specifies genesis ID of network in use
458
- * @param rekeyTo - rekeyTo address, optional
291
+ * @param options - Asset destroy transaction parameters
459
292
  */
460
- export function makeAssetDestroyTxnWithSuggestedParams(
461
- from: AssetDestroyTxn['from'],
462
- note: AssetDestroyTxn['note'],
463
- assetIndex: AssetDestroyTxn['assetIndex'],
464
- suggestedParams: MustHaveSuggestedParams<AssetDestroyTxn>['suggestedParams'],
465
- rekeyTo?: AssetDestroyTxn['reKeyTo']
466
- ) {
467
- const o: AssetDestroyTxn = {
468
- from,
469
- suggestedParams,
293
+ export function makeAssetDestroyTxnWithSuggestedParamsFromObject({
294
+ sender,
295
+ assetIndex,
296
+ note,
297
+ lease,
298
+ rekeyTo,
299
+ suggestedParams,
300
+ }: Required<Pick<AssetConfigurationTransactionParams, 'assetIndex'>> &
301
+ CommonTransactionParams): Transaction {
302
+ if (!assetIndex) {
303
+ throw Error('assetIndex must be provided');
304
+ }
305
+ return makeBaseAssetConfigTxn({
306
+ sender,
470
307
  assetIndex,
471
- type: TransactionType.acfg,
472
308
  note,
473
- reKeyTo: rekeyTo,
474
- };
475
- return new txnBuilder.Transaction(o);
476
- }
477
-
478
- // helper for above makeAssetDestroyTxnWithSuggestedParams, instead accepting an arguments object
479
- export function makeAssetDestroyTxnWithSuggestedParamsFromObject(
480
- o: Expand<
481
- Pick<
482
- RenameProperty<
483
- MustHaveSuggestedParams<AssetDestroyTxn>,
484
- 'reKeyTo',
485
- 'rekeyTo'
486
- >,
487
- 'from' | 'note' | 'assetIndex' | 'suggestedParams' | 'rekeyTo'
488
- >
489
- >
490
- ) {
491
- return makeAssetDestroyTxnWithSuggestedParams(
492
- o.from,
493
- o.note,
494
- o.assetIndex,
495
- o.suggestedParams,
496
- o.rekeyTo
497
- );
309
+ lease,
310
+ rekeyTo,
311
+ suggestedParams,
312
+ });
498
313
  }
499
314
 
500
- /** makeAssetFreezeTxnWithSuggestedParams will allow the asset's freeze manager to freeze or un-freeze an account,
501
- * blocking or allowing asset transfers to and from the targeted account.
315
+ /**
316
+ * Create a new asset freeze transaction. This transaction allows the asset's freeze manager to
317
+ * freeze or un-freeze an account, blocking or allowing asset transfers to and from the targeted
318
+ * account.
502
319
  *
503
- * @param from - string representation of Algorand address of sender
504
- * @param note - uint8array of arbitrary data for sender to store
505
- * @param assetIndex - int asset index uniquely specifying the asset
506
- * @param freezeTarget - string representation of Algorand address being frozen or unfrozen
507
- * @param freezeState - true if freezeTarget should be frozen, false if freezeTarget should be allowed to transact
508
- * @param suggestedParams - a dict holding common-to-all-txns args:
509
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
510
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
511
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
512
- * firstRound - integer first protocol round on which this txn is valid
513
- * lastRound - integer last protocol round on which this txn is valid
514
- * genesisHash - string specifies hash genesis block of network in use
515
- * genesisID - string specifies genesis ID of network in use
516
- * @param rekeyTo - rekeyTo address, optional
320
+ * @param options - Asset freeze transaction parameters
517
321
  */
518
- export function makeAssetFreezeTxnWithSuggestedParams(
519
- from: AssetFreezeTxn['from'],
520
- note: AssetFreezeTxn['note'],
521
- assetIndex: AssetFreezeTxn['assetIndex'],
522
- freezeTarget: AssetFreezeTxn['freezeAccount'],
523
- freezeState: AssetFreezeTxn['freezeState'],
524
- suggestedParams: MustHaveSuggestedParams<AssetFreezeTxn>['suggestedParams'],
525
- rekeyTo?: AssetFreezeTxn['reKeyTo']
526
- ) {
527
- const o: AssetFreezeTxn = {
528
- from,
322
+ export function makeAssetFreezeTxnWithSuggestedParamsFromObject({
323
+ sender,
324
+ assetIndex,
325
+ freezeTarget,
326
+ frozen,
327
+ suggestedParams,
328
+ note,
329
+ lease,
330
+ rekeyTo,
331
+ }: AssetFreezeTransactionParams & CommonTransactionParams): Transaction {
332
+ return new Transaction({
529
333
  type: TransactionType.afrz,
530
- freezeAccount: freezeTarget,
531
- assetIndex,
532
- freezeState,
334
+ sender,
533
335
  note,
336
+ lease,
337
+ rekeyTo,
534
338
  suggestedParams,
535
- reKeyTo: rekeyTo,
536
- };
537
- return new txnBuilder.Transaction(o);
538
- }
539
-
540
- // helper for above makeAssetFreezeTxnWithSuggestedParams, instead accepting an arguments object
541
- export function makeAssetFreezeTxnWithSuggestedParamsFromObject(
542
- o: Expand<
543
- Pick<
544
- RenameProperties<
545
- MustHaveSuggestedParams<AssetFreezeTxn>,
546
- {
547
- freezeAccount: 'freezeTarget';
548
- reKeyTo: 'rekeyTo';
549
- }
550
- >,
551
- | 'from'
552
- | 'note'
553
- | 'assetIndex'
554
- | 'freezeTarget'
555
- | 'freezeState'
556
- | 'suggestedParams'
557
- | 'rekeyTo'
558
- >
559
- >
560
- ) {
561
- return makeAssetFreezeTxnWithSuggestedParams(
562
- o.from,
563
- o.note,
564
- o.assetIndex,
565
- o.freezeTarget,
566
- o.freezeState,
567
- o.suggestedParams,
568
- o.rekeyTo
569
- );
339
+ assetFreezeParams: {
340
+ assetIndex,
341
+ freezeTarget,
342
+ frozen,
343
+ },
344
+ });
570
345
  }
571
346
 
572
- /** makeAssetTransferTxnWithSuggestedParams allows for the creation of an asset transfer transaction.
573
- * Special case: to begin accepting assets, set amount=0 and from=to.
347
+ /**
348
+ * Create a new asset transfer transaction.
574
349
  *
575
- * @param from - string representation of Algorand address of sender
576
- * @param to - string representation of Algorand address of asset recipient
577
- * @param closeRemainderTo - optional - string representation of Algorand address - if provided,
578
- * send all remaining assets after transfer to the "closeRemainderTo" address and close "from"'s asset holdings
579
- * @param revocationTarget - optional - string representation of Algorand address - if provided,
580
- * and if "from" is the asset's revocation manager, then deduct from "revocationTarget" rather than "from"
581
- * @param amount - integer amount of assets to send
582
- * @param note - uint8array of arbitrary data for sender to store
583
- * @param assetIndex - int asset index uniquely specifying the asset
584
- * @param suggestedParams - a dict holding common-to-all-txns args:
585
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
586
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
587
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
588
- * * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
589
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
590
- * firstRound - integer first protocol round on which this txn is valid
591
- * lastRound - integer last protocol round on which this txn is valid
592
- * genesisHash - string specifies hash genesis block of network in use
593
- * genesisID - string specifies genesis ID of network in use
594
- * @param rekeyTo - rekeyTo address, optional
350
+ * Special case: to opt into an assets, set amount=0 and sender=receiver.
351
+ *
352
+ * @param options - Asset transfer transaction parameters
595
353
  */
596
- export function makeAssetTransferTxnWithSuggestedParams(
597
- from: AssetTransferTxn['from'],
598
- to: AssetTransferTxn['to'],
599
- closeRemainderTo: AssetTransferTxn['closeRemainderTo'],
600
- revocationTarget: AssetTransferTxn['assetRevocationTarget'],
601
- amount: AssetTransferTxn['amount'],
602
- note: AssetTransferTxn['note'],
603
- assetIndex: AssetTransferTxn['assetIndex'],
604
- suggestedParams: MustHaveSuggestedParams<AssetTransferTxn>['suggestedParams'],
605
- rekeyTo?: AssetTransferTxn['reKeyTo']
606
- ) {
607
- const o: AssetTransferTxn = {
354
+ export function makeAssetTransferTxnWithSuggestedParamsFromObject({
355
+ sender,
356
+ receiver,
357
+ amount,
358
+ closeRemainderTo,
359
+ assetSender,
360
+ note,
361
+ assetIndex,
362
+ suggestedParams,
363
+ rekeyTo,
364
+ lease,
365
+ }: AssetTransferTransactionParams & CommonTransactionParams): Transaction {
366
+ if (!assetIndex) {
367
+ throw Error('assetIndex must be provided');
368
+ }
369
+ return new Transaction({
608
370
  type: TransactionType.axfer,
609
- from,
610
- to,
611
- amount,
612
- suggestedParams,
613
- assetIndex,
371
+ sender,
614
372
  note,
615
- assetRevocationTarget: revocationTarget,
616
- closeRemainderTo,
617
- reKeyTo: rekeyTo,
618
- };
619
- return new txnBuilder.Transaction(o);
373
+ lease,
374
+ rekeyTo,
375
+ suggestedParams,
376
+ assetTransferParams: {
377
+ assetIndex,
378
+ receiver,
379
+ amount,
380
+ assetSender,
381
+ closeRemainderTo,
382
+ },
383
+ });
620
384
  }
621
385
 
622
- // helper for above makeAssetTransferTxnWithSuggestedParams, instead accepting an arguments object
623
- export function makeAssetTransferTxnWithSuggestedParamsFromObject(
624
- o: Expand<
625
- Pick<
626
- RenameProperties<
627
- MustHaveSuggestedParams<AssetTransferTxn>,
628
- {
629
- assetRevocationTarget: 'revocationTarget';
630
- reKeyTo: 'rekeyTo';
631
- }
632
- >,
633
- | 'from'
634
- | 'to'
635
- | 'closeRemainderTo'
636
- | 'revocationTarget'
637
- | 'amount'
638
- | 'note'
639
- | 'assetIndex'
640
- | 'suggestedParams'
641
- | 'rekeyTo'
642
- >
643
- >
644
- ) {
645
- return makeAssetTransferTxnWithSuggestedParams(
646
- o.from,
647
- o.to,
648
- o.closeRemainderTo,
649
- o.revocationTarget,
650
- o.amount,
651
- o.note,
652
- o.assetIndex,
653
- o.suggestedParams,
654
- o.rekeyTo
655
- );
386
+ /**
387
+ * Base function for creating any application call transaction.
388
+ *
389
+ * @param options - Application call transaction parameters
390
+ */
391
+ export function makeApplicationCallTxnFromObject({
392
+ sender,
393
+ appIndex,
394
+ onComplete,
395
+ appArgs,
396
+ accounts,
397
+ foreignApps,
398
+ foreignAssets,
399
+ boxes,
400
+ approvalProgram,
401
+ clearProgram,
402
+ numLocalInts,
403
+ numLocalByteSlices,
404
+ numGlobalInts,
405
+ numGlobalByteSlices,
406
+ extraPages,
407
+ note,
408
+ lease,
409
+ rekeyTo,
410
+ suggestedParams,
411
+ }: ApplicationCallTransactionParams & CommonTransactionParams): Transaction {
412
+ if (onComplete == null) {
413
+ throw Error('onComplete must be provided');
414
+ }
415
+ return new Transaction({
416
+ type: TransactionType.appl,
417
+ sender,
418
+ note,
419
+ lease,
420
+ rekeyTo,
421
+ suggestedParams,
422
+ appCallParams: {
423
+ appIndex,
424
+ onComplete,
425
+ appArgs,
426
+ accounts,
427
+ foreignAssets,
428
+ foreignApps,
429
+ boxes,
430
+ approvalProgram,
431
+ clearProgram,
432
+ numLocalInts,
433
+ numLocalByteSlices,
434
+ numGlobalInts,
435
+ numGlobalByteSlices,
436
+ extraPages,
437
+ },
438
+ });
656
439
  }
657
440
 
658
441
  /**
659
442
  * Make a transaction that will create an application.
660
- * @param from - address of sender
661
- * @param suggestedParams - a dict holding common-to-all-txns args:
662
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
663
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
664
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
665
- * firstRound - integer first protocol round on which this txn is valid
666
- * lastRound - integer last protocol round on which this txn is valid
667
- * genesisHash - string specifies hash genesis block of network in use
668
- * genesisID - string specifies genesis ID of network in use
669
- * @param onComplete - algosdk.OnApplicationComplete, what application should do once the program is done being run
670
- * @param approvalProgram - Uint8Array, the compiled TEAL that approves a transaction
671
- * @param clearProgram - Uint8Array, the compiled TEAL that runs when clearing state
672
- * @param numLocalInts - restricts number of ints in per-user local state
673
- * @param numLocalByteSlices - restricts number of byte slices in per-user local state
674
- * @param numGlobalInts - restricts number of ints in global state
675
- * @param numGlobalByteSlices - restricts number of byte slices in global state
676
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
677
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
678
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
679
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
680
- * @param note - Arbitrary data for sender to store
681
- * @param lease - Lease a transaction
682
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
683
- * @param extraPages - integer extra pages of memory to rent on creation of application
684
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
443
+ *
444
+ * @param options - Application creation transaction parameters
685
445
  */
686
- export function makeApplicationCreateTxn(
687
- from: AppCreateTxn['from'],
688
- suggestedParams: MustHaveSuggestedParams<AppCreateTxn>['suggestedParams'],
689
- onComplete: AppCreateTxn['appOnComplete'],
690
- approvalProgram: AppCreateTxn['appApprovalProgram'],
691
- clearProgram: AppCreateTxn['appClearProgram'],
692
- numLocalInts: AppCreateTxn['appLocalInts'],
693
- numLocalByteSlices: AppCreateTxn['appLocalByteSlices'],
694
- numGlobalInts: AppCreateTxn['appGlobalInts'],
695
- numGlobalByteSlices: AppCreateTxn['appGlobalByteSlices'],
696
- appArgs?: AppCreateTxn['appArgs'],
697
- accounts?: AppCreateTxn['appAccounts'],
698
- foreignApps?: AppCreateTxn['appForeignApps'],
699
- foreignAssets?: AppCreateTxn['appForeignAssets'],
700
- note?: AppCreateTxn['note'],
701
- lease?: AppCreateTxn['lease'],
702
- rekeyTo?: AppCreateTxn['reKeyTo'],
703
- extraPages?: AppCreateTxn['extraPages'],
704
- boxes?: AppCreateTxn['boxes']
705
- ) {
706
- const o: AppCreateTxn = {
707
- type: TransactionType.appl,
708
- from,
709
- suggestedParams,
446
+ export function makeApplicationCreateTxnFromObject({
447
+ sender,
448
+ onComplete,
449
+ appArgs,
450
+ accounts,
451
+ foreignApps,
452
+ foreignAssets,
453
+ boxes,
454
+ approvalProgram,
455
+ clearProgram,
456
+ numLocalInts,
457
+ numLocalByteSlices,
458
+ numGlobalInts,
459
+ numGlobalByteSlices,
460
+ extraPages,
461
+ note,
462
+ lease,
463
+ rekeyTo,
464
+ suggestedParams,
465
+ }: Omit<
466
+ ApplicationCallTransactionParams,
467
+ 'appIndex' | 'approvalProgram' | 'clearProgram'
468
+ > &
469
+ Required<
470
+ Pick<ApplicationCallTransactionParams, 'approvalProgram' | 'clearProgram'>
471
+ > &
472
+ CommonTransactionParams): Transaction {
473
+ if (!approvalProgram || !clearProgram) {
474
+ throw Error('approvalProgram and clearProgram must be provided');
475
+ }
476
+ if (onComplete == null) {
477
+ throw Error('onComplete must be provided');
478
+ }
479
+ return makeApplicationCallTxnFromObject({
480
+ sender,
710
481
  appIndex: 0,
711
- appOnComplete: onComplete,
712
- appLocalInts: numLocalInts,
713
- appLocalByteSlices: numLocalByteSlices,
714
- appGlobalInts: numGlobalInts,
715
- appGlobalByteSlices: numGlobalByteSlices,
716
- appApprovalProgram: approvalProgram,
717
- appClearProgram: clearProgram,
482
+ onComplete,
718
483
  appArgs,
719
- appAccounts: accounts,
720
- appForeignApps: foreignApps,
721
- appForeignAssets: foreignAssets,
484
+ accounts,
485
+ foreignApps,
486
+ foreignAssets,
722
487
  boxes,
488
+ approvalProgram,
489
+ clearProgram,
490
+ numLocalInts,
491
+ numLocalByteSlices,
492
+ numGlobalInts,
493
+ numGlobalByteSlices,
494
+ extraPages,
723
495
  note,
724
496
  lease,
725
- reKeyTo: rekeyTo,
726
- extraPages,
727
- };
728
- return new txnBuilder.Transaction(o);
729
- }
730
-
731
- // helper for above makeApplicationCreateTxn, instead accepting an arguments object
732
- export function makeApplicationCreateTxnFromObject(
733
- o: Expand<
734
- Pick<
735
- RenameProperties<
736
- MustHaveSuggestedParams<AppCreateTxn>,
737
- {
738
- appOnComplete: 'onComplete';
739
- appApprovalProgram: 'approvalProgram';
740
- appClearProgram: 'clearProgram';
741
- appLocalInts: 'numLocalInts';
742
- appLocalByteSlices: 'numLocalByteSlices';
743
- appGlobalInts: 'numGlobalInts';
744
- appGlobalByteSlices: 'numGlobalByteSlices';
745
- appAccounts: 'accounts';
746
- appForeignApps: 'foreignApps';
747
- appForeignAssets: 'foreignAssets';
748
- reKeyTo: 'rekeyTo';
749
- }
750
- >,
751
- | 'from'
752
- | 'suggestedParams'
753
- | 'onComplete'
754
- | 'approvalProgram'
755
- | 'clearProgram'
756
- | 'numLocalInts'
757
- | 'numLocalByteSlices'
758
- | 'numGlobalInts'
759
- | 'numGlobalByteSlices'
760
- | 'appArgs'
761
- | 'accounts'
762
- | 'foreignApps'
763
- | 'foreignAssets'
764
- | 'boxes'
765
- | 'note'
766
- | 'lease'
767
- | 'rekeyTo'
768
- | 'extraPages'
769
- >
770
- >
771
- ) {
772
- return makeApplicationCreateTxn(
773
- o.from,
774
- o.suggestedParams,
775
- o.onComplete,
776
- o.approvalProgram,
777
- o.clearProgram,
778
- o.numLocalInts,
779
- o.numLocalByteSlices,
780
- o.numGlobalInts,
781
- o.numGlobalByteSlices,
782
- o.appArgs,
783
- o.accounts,
784
- o.foreignApps,
785
- o.foreignAssets,
786
- o.note,
787
- o.lease,
788
- o.rekeyTo,
789
- o.extraPages,
790
- o.boxes
791
- );
497
+ rekeyTo,
498
+ suggestedParams,
499
+ });
792
500
  }
793
501
 
794
502
  /**
795
503
  * Make a transaction that changes an application's approval and clear programs
796
- * @param from - address of sender
797
- * @param suggestedParams - a dict holding common-to-all-txns args:
798
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
799
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
800
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
801
- * firstRound - integer first protocol round on which this txn is valid
802
- * lastRound - integer last protocol round on which this txn is valid
803
- * genesisHash - string specifies hash genesis block of network in use
804
- * genesisID - string specifies genesis ID of network in use
805
- * @param appIndex - the ID of the app to be updated
806
- * @param approvalProgram - Uint8Array, the compiled TEAL that approves a transaction
807
- * @param clearProgram - Uint8Array, the compiled TEAL that runs when clearing state
808
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
809
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
810
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
811
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
812
- * @param note - Arbitrary data for sender to store
813
- * @param lease - Lease a transaction
814
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
815
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
504
+ *
505
+ * @param options - Application update transaction parameters
816
506
  */
817
- export function makeApplicationUpdateTxn(
818
- from: AppUpdateTxn['from'],
819
- suggestedParams: MustHaveSuggestedParams<AppUpdateTxn>['suggestedParams'],
820
- appIndex: AppUpdateTxn['appIndex'],
821
- approvalProgram: AppUpdateTxn['appApprovalProgram'],
822
- clearProgram: AppUpdateTxn['appClearProgram'],
823
- appArgs?: AppUpdateTxn['appArgs'],
824
- accounts?: AppUpdateTxn['appAccounts'],
825
- foreignApps?: AppUpdateTxn['appForeignApps'],
826
- foreignAssets?: AppUpdateTxn['appForeignAssets'],
827
- note?: AppUpdateTxn['note'],
828
- lease?: AppUpdateTxn['lease'],
829
- rekeyTo?: AppUpdateTxn['reKeyTo'],
830
- boxes?: AppUpdateTxn['boxes']
831
- ) {
832
- const o: AppUpdateTxn = {
833
- type: TransactionType.appl,
834
- from,
835
- suggestedParams,
507
+ export function makeApplicationUpdateTxnFromObject({
508
+ sender,
509
+ appIndex,
510
+ appArgs,
511
+ accounts,
512
+ foreignApps,
513
+ foreignAssets,
514
+ boxes,
515
+ approvalProgram,
516
+ clearProgram,
517
+ note,
518
+ lease,
519
+ rekeyTo,
520
+ suggestedParams,
521
+ }: Omit<
522
+ ApplicationCallTransactionParams,
523
+ | 'onComplete'
524
+ | 'numLocalInts'
525
+ | 'numLocalByteSlices'
526
+ | 'numGlobalInts'
527
+ | 'numGlobalByteSlices'
528
+ | 'extraPages'
529
+ | 'approvalProgram'
530
+ | 'clearProgram'
531
+ > &
532
+ Required<
533
+ Pick<ApplicationCallTransactionParams, 'approvalProgram' | 'clearProgram'>
534
+ > &
535
+ CommonTransactionParams): Transaction {
536
+ if (!appIndex) {
537
+ throw Error('appIndex must be provided');
538
+ }
539
+ if (!approvalProgram || !clearProgram) {
540
+ throw Error('approvalProgram and clearProgram must be provided');
541
+ }
542
+ return makeApplicationCallTxnFromObject({
543
+ sender,
836
544
  appIndex,
837
- appApprovalProgram: approvalProgram,
838
- appOnComplete: OnApplicationComplete.UpdateApplicationOC,
839
- appClearProgram: clearProgram,
545
+ onComplete: OnApplicationComplete.UpdateApplicationOC,
840
546
  appArgs,
841
- appAccounts: accounts,
842
- appForeignApps: foreignApps,
843
- appForeignAssets: foreignAssets,
547
+ accounts,
548
+ foreignApps,
549
+ foreignAssets,
844
550
  boxes,
551
+ approvalProgram,
552
+ clearProgram,
845
553
  note,
846
554
  lease,
847
- reKeyTo: rekeyTo,
848
- };
849
- return new txnBuilder.Transaction(o);
850
- }
851
-
852
- // helper for above makeApplicationUpdateTxn, instead accepting an arguments object
853
- export function makeApplicationUpdateTxnFromObject(
854
- o: Expand<
855
- Pick<
856
- RenameProperties<
857
- MustHaveSuggestedParams<AppUpdateTxn>,
858
- {
859
- appApprovalProgram: 'approvalProgram';
860
- appClearProgram: 'clearProgram';
861
- appAccounts: 'accounts';
862
- appForeignApps: 'foreignApps';
863
- appForeignAssets: 'foreignAssets';
864
- reKeyTo: 'rekeyTo';
865
- }
866
- >,
867
- | 'from'
868
- | 'suggestedParams'
869
- | 'appIndex'
870
- | 'approvalProgram'
871
- | 'clearProgram'
872
- | 'appArgs'
873
- | 'accounts'
874
- | 'foreignApps'
875
- | 'foreignAssets'
876
- | 'boxes'
877
- | 'note'
878
- | 'lease'
879
- | 'rekeyTo'
880
- >
881
- >
882
- ) {
883
- return makeApplicationUpdateTxn(
884
- o.from,
885
- o.suggestedParams,
886
- o.appIndex,
887
- o.approvalProgram,
888
- o.clearProgram,
889
- o.appArgs,
890
- o.accounts,
891
- o.foreignApps,
892
- o.foreignAssets,
893
- o.note,
894
- o.lease,
895
- o.rekeyTo,
896
- o.boxes
897
- );
555
+ rekeyTo,
556
+ suggestedParams,
557
+ });
898
558
  }
899
559
 
900
560
  /**
901
561
  * Make a transaction that deletes an application
902
- * @param from - address of sender
903
- * @param suggestedParams - a dict holding common-to-all-txns args:
904
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
905
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
906
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
907
- * firstRound - integer first protocol round on which this txn is valid
908
- * lastRound - integer last protocol round on which this txn is valid
909
- * genesisHash - string specifies hash genesis block of network in use
910
- * genesisID - string specifies genesis ID of network in use
911
- * @param appIndex - the ID of the app to be deleted
912
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
913
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
914
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
915
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
916
- * @param note - Arbitrary data for sender to store
917
- * @param lease - Lease a transaction
918
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
919
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
562
+ *
563
+ * @param options - Application deletion transaction parameters
920
564
  */
921
- export function makeApplicationDeleteTxn(
922
- from: AppDeleteTxn['from'],
923
- suggestedParams: MustHaveSuggestedParams<AppDeleteTxn>['suggestedParams'],
924
- appIndex: AppDeleteTxn['appIndex'],
925
- appArgs?: AppDeleteTxn['appArgs'],
926
- accounts?: AppDeleteTxn['appAccounts'],
927
- foreignApps?: AppDeleteTxn['appForeignApps'],
928
- foreignAssets?: AppDeleteTxn['appForeignAssets'],
929
- note?: AppDeleteTxn['note'],
930
- lease?: AppDeleteTxn['lease'],
931
- rekeyTo?: AppDeleteTxn['reKeyTo'],
932
- boxes?: AppDeleteTxn['boxes']
933
- ) {
934
- const o: AppDeleteTxn = {
935
- type: TransactionType.appl,
936
- from,
937
- suggestedParams,
565
+ export function makeApplicationDeleteTxnFromObject({
566
+ sender,
567
+ appIndex,
568
+ appArgs,
569
+ accounts,
570
+ foreignApps,
571
+ foreignAssets,
572
+ boxes,
573
+ note,
574
+ lease,
575
+ rekeyTo,
576
+ suggestedParams,
577
+ }: Omit<
578
+ ApplicationCallTransactionParams,
579
+ | 'onComplete'
580
+ | 'numLocalInts'
581
+ | 'numLocalByteSlices'
582
+ | 'numGlobalInts'
583
+ | 'numGlobalByteSlices'
584
+ | 'extraPages'
585
+ | 'approvalProgram'
586
+ | 'clearProgram'
587
+ > &
588
+ CommonTransactionParams): Transaction {
589
+ if (!appIndex) {
590
+ throw Error('appIndex must be provided');
591
+ }
592
+ return makeApplicationCallTxnFromObject({
593
+ sender,
938
594
  appIndex,
939
- appOnComplete: OnApplicationComplete.DeleteApplicationOC,
595
+ onComplete: OnApplicationComplete.DeleteApplicationOC,
940
596
  appArgs,
941
- appAccounts: accounts,
942
- appForeignApps: foreignApps,
943
- appForeignAssets: foreignAssets,
597
+ accounts,
598
+ foreignApps,
599
+ foreignAssets,
944
600
  boxes,
945
601
  note,
946
602
  lease,
947
- reKeyTo: rekeyTo,
948
- };
949
- return new txnBuilder.Transaction(o);
950
- }
951
-
952
- // helper for above makeApplicationDeleteTxn, instead accepting an arguments object
953
- export function makeApplicationDeleteTxnFromObject(
954
- o: Expand<
955
- Pick<
956
- RenameProperties<
957
- MustHaveSuggestedParams<AppDeleteTxn>,
958
- {
959
- appAccounts: 'accounts';
960
- appForeignApps: 'foreignApps';
961
- appForeignAssets: 'foreignAssets';
962
- reKeyTo: 'rekeyTo';
963
- }
964
- >,
965
- | 'from'
966
- | 'suggestedParams'
967
- | 'appIndex'
968
- | 'appArgs'
969
- | 'accounts'
970
- | 'foreignApps'
971
- | 'foreignAssets'
972
- | 'boxes'
973
- | 'note'
974
- | 'lease'
975
- | 'rekeyTo'
976
- >
977
- >
978
- ) {
979
- return makeApplicationDeleteTxn(
980
- o.from,
981
- o.suggestedParams,
982
- o.appIndex,
983
- o.appArgs,
984
- o.accounts,
985
- o.foreignApps,
986
- o.foreignAssets,
987
- o.note,
988
- o.lease,
989
- o.rekeyTo,
990
- o.boxes
991
- );
603
+ rekeyTo,
604
+ suggestedParams,
605
+ });
992
606
  }
993
607
 
994
608
  /**
995
609
  * Make a transaction that opts in to use an application
996
- * @param from - address of sender
997
- * @param suggestedParams - a dict holding common-to-all-txns args:
998
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
999
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
1000
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
1001
- * firstRound - integer first protocol round on which this txn is valid
1002
- * lastRound - integer last protocol round on which this txn is valid
1003
- * genesisHash - string specifies hash genesis block of network in use
1004
- * genesisID - string specifies genesis ID of network in use
1005
- * @param appIndex - the ID of the app to join
1006
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
1007
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
1008
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
1009
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
1010
- * @param note - Arbitrary data for sender to store
1011
- * @param lease - Lease a transaction
1012
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
1013
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
610
+ *
611
+ * @param options - Application opt-in transaction parameters
1014
612
  */
1015
- export function makeApplicationOptInTxn(
1016
- from: AppOptInTxn['from'],
1017
- suggestedParams: MustHaveSuggestedParams<AppOptInTxn>['suggestedParams'],
1018
- appIndex: AppOptInTxn['appIndex'],
1019
- appArgs?: AppOptInTxn['appArgs'],
1020
- accounts?: AppOptInTxn['appAccounts'],
1021
- foreignApps?: AppOptInTxn['appForeignApps'],
1022
- foreignAssets?: AppOptInTxn['appForeignAssets'],
1023
- note?: AppOptInTxn['note'],
1024
- lease?: AppOptInTxn['lease'],
1025
- rekeyTo?: AppOptInTxn['reKeyTo'],
1026
- boxes?: AppOptInTxn['boxes']
1027
- ) {
1028
- const o: AppOptInTxn = {
1029
- type: TransactionType.appl,
1030
- from,
1031
- suggestedParams,
613
+ export function makeApplicationOptInTxnFromObject({
614
+ sender,
615
+ appIndex,
616
+ appArgs,
617
+ accounts,
618
+ foreignApps,
619
+ foreignAssets,
620
+ boxes,
621
+ note,
622
+ lease,
623
+ rekeyTo,
624
+ suggestedParams,
625
+ }: Omit<
626
+ ApplicationCallTransactionParams,
627
+ | 'onComplete'
628
+ | 'numLocalInts'
629
+ | 'numLocalByteSlices'
630
+ | 'numGlobalInts'
631
+ | 'numGlobalByteSlices'
632
+ | 'extraPages'
633
+ | 'approvalProgram'
634
+ | 'clearProgram'
635
+ > &
636
+ CommonTransactionParams): Transaction {
637
+ if (!appIndex) {
638
+ throw Error('appIndex must be provided');
639
+ }
640
+ return makeApplicationCallTxnFromObject({
641
+ sender,
1032
642
  appIndex,
1033
- appOnComplete: OnApplicationComplete.OptInOC,
643
+ onComplete: OnApplicationComplete.OptInOC,
1034
644
  appArgs,
1035
- appAccounts: accounts,
1036
- appForeignApps: foreignApps,
1037
- appForeignAssets: foreignAssets,
645
+ accounts,
646
+ foreignApps,
647
+ foreignAssets,
1038
648
  boxes,
1039
649
  note,
1040
650
  lease,
1041
- reKeyTo: rekeyTo,
1042
- };
1043
- return new txnBuilder.Transaction(o);
1044
- }
1045
-
1046
- // helper for above makeApplicationOptInTxn, instead accepting an argument object
1047
- export function makeApplicationOptInTxnFromObject(
1048
- o: Expand<
1049
- Pick<
1050
- RenameProperties<
1051
- MustHaveSuggestedParams<AppOptInTxn>,
1052
- {
1053
- appAccounts: 'accounts';
1054
- appForeignApps: 'foreignApps';
1055
- appForeignAssets: 'foreignAssets';
1056
- reKeyTo: 'rekeyTo';
1057
- }
1058
- >,
1059
- | 'from'
1060
- | 'suggestedParams'
1061
- | 'appIndex'
1062
- | 'appArgs'
1063
- | 'accounts'
1064
- | 'foreignApps'
1065
- | 'foreignAssets'
1066
- | 'boxes'
1067
- | 'note'
1068
- | 'lease'
1069
- | 'rekeyTo'
1070
- >
1071
- >
1072
- ) {
1073
- return makeApplicationOptInTxn(
1074
- o.from,
1075
- o.suggestedParams,
1076
- o.appIndex,
1077
- o.appArgs,
1078
- o.accounts,
1079
- o.foreignApps,
1080
- o.foreignAssets,
1081
- o.note,
1082
- o.lease,
1083
- o.rekeyTo,
1084
- o.boxes
1085
- );
651
+ rekeyTo,
652
+ suggestedParams,
653
+ });
1086
654
  }
1087
655
 
1088
656
  /**
1089
657
  * Make a transaction that closes out a user's state in an application
1090
- * @param from - address of sender
1091
- * @param suggestedParams - a dict holding common-to-all-txns args:
1092
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
1093
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
1094
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
1095
- * firstRound - integer first protocol round on which this txn is valid
1096
- * lastRound - integer last protocol round on which this txn is valid
1097
- * genesisHash - string specifies hash genesis block of network in use
1098
- * genesisID - string specifies genesis ID of network in use
1099
- * @param appIndex - the ID of the app to use
1100
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
1101
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
1102
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
1103
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
1104
- * @param note - Arbitrary data for sender to store
1105
- * @param lease - Lease a transaction
1106
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
1107
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
658
+ *
659
+ * @param options - Application close-out transaction parameters
1108
660
  */
1109
- export function makeApplicationCloseOutTxn(
1110
- from: AppCloseOutTxn['from'],
1111
- suggestedParams: MustHaveSuggestedParams<AppCloseOutTxn>['suggestedParams'],
1112
- appIndex: AppCloseOutTxn['appIndex'],
1113
- appArgs?: AppCloseOutTxn['appArgs'],
1114
- accounts?: AppCloseOutTxn['appAccounts'],
1115
- foreignApps?: AppCloseOutTxn['appForeignApps'],
1116
- foreignAssets?: AppCloseOutTxn['appForeignAssets'],
1117
- note?: AppCloseOutTxn['note'],
1118
- lease?: AppCloseOutTxn['lease'],
1119
- rekeyTo?: AppCloseOutTxn['reKeyTo'],
1120
- boxes?: AppCloseOutTxn['boxes']
1121
- ) {
1122
- const o: AppCloseOutTxn = {
1123
- type: TransactionType.appl,
1124
- from,
1125
- suggestedParams,
661
+ export function makeApplicationCloseOutTxnFromObject({
662
+ sender,
663
+ appIndex,
664
+ appArgs,
665
+ accounts,
666
+ foreignApps,
667
+ foreignAssets,
668
+ boxes,
669
+ note,
670
+ lease,
671
+ rekeyTo,
672
+ suggestedParams,
673
+ }: Omit<
674
+ ApplicationCallTransactionParams,
675
+ | 'onComplete'
676
+ | 'numLocalInts'
677
+ | 'numLocalByteSlices'
678
+ | 'numGlobalInts'
679
+ | 'numGlobalByteSlices'
680
+ | 'extraPages'
681
+ | 'approvalProgram'
682
+ | 'clearProgram'
683
+ > &
684
+ CommonTransactionParams): Transaction {
685
+ if (!appIndex) {
686
+ throw Error('appIndex must be provided');
687
+ }
688
+ return makeApplicationCallTxnFromObject({
689
+ sender,
1126
690
  appIndex,
1127
- appOnComplete: OnApplicationComplete.CloseOutOC,
691
+ onComplete: OnApplicationComplete.CloseOutOC,
1128
692
  appArgs,
1129
- appAccounts: accounts,
1130
- appForeignApps: foreignApps,
1131
- appForeignAssets: foreignAssets,
693
+ accounts,
694
+ foreignApps,
695
+ foreignAssets,
1132
696
  boxes,
1133
697
  note,
1134
698
  lease,
1135
- reKeyTo: rekeyTo,
1136
- };
1137
- return new txnBuilder.Transaction(o);
1138
- }
1139
-
1140
- // helper for above makeApplicationCloseOutTxn, instead accepting an argument object
1141
- export function makeApplicationCloseOutTxnFromObject(
1142
- o: Expand<
1143
- Pick<
1144
- RenameProperties<
1145
- MustHaveSuggestedParams<AppOptInTxn>,
1146
- {
1147
- appAccounts: 'accounts';
1148
- appForeignApps: 'foreignApps';
1149
- appForeignAssets: 'foreignAssets';
1150
- reKeyTo: 'rekeyTo';
1151
- }
1152
- >,
1153
- | 'from'
1154
- | 'suggestedParams'
1155
- | 'appIndex'
1156
- | 'appArgs'
1157
- | 'accounts'
1158
- | 'foreignApps'
1159
- | 'foreignAssets'
1160
- | 'boxes'
1161
- | 'note'
1162
- | 'lease'
1163
- | 'rekeyTo'
1164
- >
1165
- >
1166
- ) {
1167
- return makeApplicationCloseOutTxn(
1168
- o.from,
1169
- o.suggestedParams,
1170
- o.appIndex,
1171
- o.appArgs,
1172
- o.accounts,
1173
- o.foreignApps,
1174
- o.foreignAssets,
1175
- o.note,
1176
- o.lease,
1177
- o.rekeyTo,
1178
- o.boxes
1179
- );
699
+ rekeyTo,
700
+ suggestedParams,
701
+ });
1180
702
  }
1181
703
 
1182
704
  /**
1183
705
  * Make a transaction that clears a user's state in an application
1184
- * @param from - address of sender
1185
- * @param suggestedParams - a dict holding common-to-all-txns args:
1186
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
1187
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
1188
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
1189
- * firstRound - integer first protocol round on which this txn is valid
1190
- * lastRound - integer last protocol round on which this txn is valid
1191
- * genesisHash - string specifies hash genesis block of network in use
1192
- * genesisID - string specifies genesis ID of network in use
1193
- * @param appIndex - the ID of the app to use
1194
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
1195
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
1196
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
1197
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
1198
- * @param note - Arbitrary data for sender to store
1199
- * @param lease - Lease a transaction
1200
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
1201
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
706
+ *
707
+ * @param options - Application clear state transaction parameters
1202
708
  */
1203
- export function makeApplicationClearStateTxn(
1204
- from: AppClearStateTxn['from'],
1205
- suggestedParams: MustHaveSuggestedParams<AppClearStateTxn>['suggestedParams'],
1206
- appIndex: AppClearStateTxn['appIndex'],
1207
- appArgs?: AppClearStateTxn['appArgs'],
1208
- accounts?: AppClearStateTxn['appAccounts'],
1209
- foreignApps?: AppClearStateTxn['appForeignApps'],
1210
- foreignAssets?: AppClearStateTxn['appForeignAssets'],
1211
- note?: AppClearStateTxn['note'],
1212
- lease?: AppClearStateTxn['lease'],
1213
- rekeyTo?: AppClearStateTxn['reKeyTo'],
1214
- boxes?: AppClearStateTxn['boxes']
1215
- ) {
1216
- const o: AppClearStateTxn = {
1217
- type: TransactionType.appl,
1218
- from,
1219
- suggestedParams,
709
+ export function makeApplicationClearStateTxnFromObject({
710
+ sender,
711
+ appIndex,
712
+ appArgs,
713
+ accounts,
714
+ foreignApps,
715
+ foreignAssets,
716
+ boxes,
717
+ note,
718
+ lease,
719
+ rekeyTo,
720
+ suggestedParams,
721
+ }: Omit<
722
+ ApplicationCallTransactionParams,
723
+ | 'onComplete'
724
+ | 'numLocalInts'
725
+ | 'numLocalByteSlices'
726
+ | 'numGlobalInts'
727
+ | 'numGlobalByteSlices'
728
+ | 'extraPages'
729
+ | 'approvalProgram'
730
+ | 'clearProgram'
731
+ > &
732
+ CommonTransactionParams): Transaction {
733
+ if (!appIndex) {
734
+ throw Error('appIndex must be provided');
735
+ }
736
+ return makeApplicationCallTxnFromObject({
737
+ sender,
1220
738
  appIndex,
1221
- appOnComplete: OnApplicationComplete.ClearStateOC,
739
+ onComplete: OnApplicationComplete.ClearStateOC,
1222
740
  appArgs,
1223
- appAccounts: accounts,
1224
- appForeignApps: foreignApps,
1225
- appForeignAssets: foreignAssets,
741
+ accounts,
742
+ foreignApps,
743
+ foreignAssets,
1226
744
  boxes,
1227
745
  note,
1228
746
  lease,
1229
- reKeyTo: rekeyTo,
1230
- };
1231
- return new txnBuilder.Transaction(o);
1232
- }
1233
-
1234
- // helper for above makeApplicationClearStateTxn, instead accepting an argument object
1235
- export function makeApplicationClearStateTxnFromObject(
1236
- o: Expand<
1237
- Pick<
1238
- RenameProperties<
1239
- MustHaveSuggestedParams<AppOptInTxn>,
1240
- {
1241
- appAccounts: 'accounts';
1242
- appForeignApps: 'foreignApps';
1243
- appForeignAssets: 'foreignAssets';
1244
- reKeyTo: 'rekeyTo';
1245
- }
1246
- >,
1247
- | 'from'
1248
- | 'suggestedParams'
1249
- | 'appIndex'
1250
- | 'appArgs'
1251
- | 'accounts'
1252
- | 'foreignApps'
1253
- | 'foreignAssets'
1254
- | 'boxes'
1255
- | 'note'
1256
- | 'lease'
1257
- | 'rekeyTo'
1258
- >
1259
- >
1260
- ) {
1261
- return makeApplicationClearStateTxn(
1262
- o.from,
1263
- o.suggestedParams,
1264
- o.appIndex,
1265
- o.appArgs,
1266
- o.accounts,
1267
- o.foreignApps,
1268
- o.foreignAssets,
1269
- o.note,
1270
- o.lease,
1271
- o.rekeyTo,
1272
- o.boxes
1273
- );
747
+ rekeyTo,
748
+ suggestedParams,
749
+ });
1274
750
  }
1275
751
 
1276
752
  /**
1277
753
  * Make a transaction that just calls an application, doing nothing on completion
1278
- * @param from - address of sender
1279
- * @param suggestedParams - a dict holding common-to-all-txns args:
1280
- * fee - integer fee per byte, in microAlgos. for a flat fee, set flatFee to true
1281
- * flatFee - bool optionally set this to true to specify fee as microalgos-per-txn
1282
- * If true, txn fee may fall below the ALGORAND_MIN_TX_FEE
1283
- * firstRound - integer first protocol round on which this txn is valid
1284
- * lastRound - integer last protocol round on which this txn is valid
1285
- * genesisHash - string specifies hash genesis block of network in use
1286
- * genesisID - string specifies genesis ID of network in use
1287
- * @param appIndex - the ID of the app to use
1288
- * @param appArgs - Array of Uint8Array, any additional arguments to the application
1289
- * @param accounts - Array of Address strings, any additional accounts to supply to the application
1290
- * @param foreignApps - Array of int, any other apps used by the application, identified by index
1291
- * @param foreignAssets - Array of int, any assets used by the application, identified by index
1292
- * @param note - Arbitrary data for sender to store
1293
- * @param lease - Lease a transaction
1294
- * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
1295
- * @param boxes - Array of BoxReference, app ID and name of box to be accessed
754
+ *
755
+ * @param options - Application no-op transaction parameters
1296
756
  */
1297
- export function makeApplicationNoOpTxn(
1298
- from: AppNoOpTxn['from'],
1299
- suggestedParams: MustHaveSuggestedParams<AppNoOpTxn>['suggestedParams'],
1300
- appIndex: AppNoOpTxn['appIndex'],
1301
- appArgs?: AppNoOpTxn['appArgs'],
1302
- accounts?: AppNoOpTxn['appAccounts'],
1303
- foreignApps?: AppNoOpTxn['appForeignApps'],
1304
- foreignAssets?: AppNoOpTxn['appForeignAssets'],
1305
- note?: AppNoOpTxn['note'],
1306
- lease?: AppNoOpTxn['lease'],
1307
- rekeyTo?: AppNoOpTxn['reKeyTo'],
1308
- boxes?: AppNoOpTxn['boxes']
1309
- ) {
1310
- const o: AppNoOpTxn = {
1311
- type: TransactionType.appl,
1312
- from,
1313
- suggestedParams,
757
+ export function makeApplicationNoOpTxnFromObject({
758
+ sender,
759
+ appIndex,
760
+ appArgs,
761
+ accounts,
762
+ foreignApps,
763
+ foreignAssets,
764
+ boxes,
765
+ note,
766
+ lease,
767
+ rekeyTo,
768
+ suggestedParams,
769
+ }: Omit<
770
+ ApplicationCallTransactionParams,
771
+ | 'onComplete'
772
+ | 'numLocalInts'
773
+ | 'numLocalByteSlices'
774
+ | 'numGlobalInts'
775
+ | 'numGlobalByteSlices'
776
+ | 'extraPages'
777
+ | 'approvalProgram'
778
+ | 'clearProgram'
779
+ > &
780
+ CommonTransactionParams): Transaction {
781
+ if (!appIndex) {
782
+ throw Error('appIndex must be provided');
783
+ }
784
+ return makeApplicationCallTxnFromObject({
785
+ sender,
1314
786
  appIndex,
1315
- appOnComplete: OnApplicationComplete.NoOpOC,
787
+ onComplete: OnApplicationComplete.NoOpOC,
1316
788
  appArgs,
1317
- appAccounts: accounts,
1318
- appForeignApps: foreignApps,
1319
- appForeignAssets: foreignAssets,
789
+ accounts,
790
+ foreignApps,
791
+ foreignAssets,
1320
792
  boxes,
1321
793
  note,
1322
794
  lease,
1323
- reKeyTo: rekeyTo,
1324
- };
1325
- return new txnBuilder.Transaction(o);
1326
- }
1327
-
1328
- // helper for above makeApplicationNoOpTxn, instead accepting an argument object
1329
- export function makeApplicationNoOpTxnFromObject(
1330
- o: Expand<
1331
- Pick<
1332
- RenameProperties<
1333
- MustHaveSuggestedParams<AppOptInTxn>,
1334
- {
1335
- appAccounts: 'accounts';
1336
- appForeignApps: 'foreignApps';
1337
- appForeignAssets: 'foreignAssets';
1338
- reKeyTo: 'rekeyTo';
1339
- }
1340
- >,
1341
- | 'from'
1342
- | 'suggestedParams'
1343
- | 'appIndex'
1344
- | 'appArgs'
1345
- | 'accounts'
1346
- | 'foreignApps'
1347
- | 'foreignAssets'
1348
- | 'boxes'
1349
- | 'note'
1350
- | 'lease'
1351
- | 'rekeyTo'
1352
- >
1353
- >
1354
- ) {
1355
- return makeApplicationNoOpTxn(
1356
- o.from,
1357
- o.suggestedParams,
1358
- o.appIndex,
1359
- o.appArgs,
1360
- o.accounts,
1361
- o.foreignApps,
1362
- o.foreignAssets,
1363
- o.note,
1364
- o.lease,
1365
- o.rekeyTo,
1366
- o.boxes
1367
- );
1368
- }
1369
-
1370
- export { OnApplicationComplete } from './types/transactions/base';
1371
-
1372
- /**
1373
- * Generic function for creating any application call transaction.
1374
- */
1375
- export function makeApplicationCallTxnFromObject(
1376
- options: Expand<
1377
- Pick<
1378
- RenameProperties<
1379
- MustHaveSuggestedParams<AppCreateTxn>,
1380
- {
1381
- appOnComplete: 'onComplete';
1382
- appAccounts: 'accounts';
1383
- appForeignApps: 'foreignApps';
1384
- appForeignAssets: 'foreignAssets';
1385
- reKeyTo: 'rekeyTo';
1386
- }
1387
- >,
1388
- | 'from'
1389
- | 'suggestedParams'
1390
- | 'appIndex'
1391
- | 'onComplete'
1392
- | 'appArgs'
1393
- | 'accounts'
1394
- | 'foreignApps'
1395
- | 'foreignAssets'
1396
- | 'boxes'
1397
- | 'note'
1398
- | 'lease'
1399
- | 'rekeyTo'
1400
- | 'extraPages'
1401
- > &
1402
- Partial<
1403
- Pick<
1404
- RenameProperties<
1405
- MustHaveSuggestedParams<AppCreateTxn>,
1406
- {
1407
- appApprovalProgram: 'approvalProgram';
1408
- appClearProgram: 'clearProgram';
1409
- appLocalInts: 'numLocalInts';
1410
- appLocalByteSlices: 'numLocalByteSlices';
1411
- appGlobalInts: 'numGlobalInts';
1412
- appGlobalByteSlices: 'numGlobalByteSlices';
1413
- }
1414
- >,
1415
- | 'approvalProgram'
1416
- | 'clearProgram'
1417
- | 'numLocalInts'
1418
- | 'numLocalByteSlices'
1419
- | 'numGlobalInts'
1420
- | 'numGlobalByteSlices'
1421
- >
1422
- >
1423
- >
1424
- ) {
1425
- const o: AppCreateTxn = {
1426
- type: TransactionType.appl,
1427
- from: options.from,
1428
- suggestedParams: options.suggestedParams,
1429
- appIndex: options.appIndex,
1430
- appOnComplete: options.onComplete,
1431
- appLocalInts: options.numLocalInts,
1432
- appLocalByteSlices: options.numLocalByteSlices,
1433
- appGlobalInts: options.numGlobalInts,
1434
- appGlobalByteSlices: options.numGlobalByteSlices,
1435
- appApprovalProgram: options.approvalProgram,
1436
- appClearProgram: options.clearProgram,
1437
- appArgs: options.appArgs,
1438
- appAccounts: options.accounts,
1439
- appForeignApps: options.foreignApps,
1440
- appForeignAssets: options.foreignAssets,
1441
- boxes: options.boxes,
1442
- note: options.note,
1443
- lease: options.lease,
1444
- reKeyTo: options.rekeyTo,
1445
- extraPages: options.extraPages,
1446
- };
1447
- return new txnBuilder.Transaction(o);
795
+ rekeyTo,
796
+ suggestedParams,
797
+ });
1448
798
  }