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