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
@@ -13,10 +13,9 @@
13
13
  // | string
14
14
  // | (T1, ..., Tn)
15
15
  */
16
- import { Buffer } from 'buffer';
17
- import { encodeAddress, decodeAddress } from '../encoding/address';
18
- import { bigIntToBytes, bytesToBigInt } from '../encoding/bigint';
19
- import { concatArrays } from '../utils/utils';
16
+ import { encodeAddress, decodeAddress } from '../encoding/address.js';
17
+ import { bigIntToBytes, bytesToBigInt } from '../encoding/bigint.js';
18
+ import { concatArrays } from '../utils/utils.js';
20
19
 
21
20
  export const MAX_LEN = 2 ** 16 - 1;
22
21
  export const ADDR_BYTE_SIZE = 32;
@@ -62,7 +61,7 @@ export abstract class ABIType {
62
61
  if (str.endsWith(']')) {
63
62
  const stringMatches = str.match(staticArrayRegexp);
64
63
  // Match the string itself, array element type, then array length
65
- if (stringMatches.length !== 3) {
64
+ if (!stringMatches || stringMatches.length !== 3) {
66
65
  throw new Error(`malformed static array string: ${str}`);
67
66
  }
68
67
  // Parse static array using regex
@@ -77,8 +76,8 @@ export abstract class ABIType {
77
76
  }
78
77
  if (str.startsWith('uint')) {
79
78
  // Checks if the parsed number contains only digits, no whitespaces
80
- const digitsOnly = (string) =>
81
- [...string].every((c) => '0123456789'.includes(c));
79
+ const digitsOnly = (s: string) =>
80
+ [...s].every((c) => '0123456789'.includes(c));
82
81
  const typeSizeStr = str.slice(4, str.length);
83
82
  if (!digitsOnly(typeSizeStr)) {
84
83
  throw new Error(`malformed uint string: ${typeSizeStr}`);
@@ -94,7 +93,7 @@ export abstract class ABIType {
94
93
  }
95
94
  if (str.startsWith('ufixed')) {
96
95
  const stringMatches = str.match(ufixedRegexp);
97
- if (stringMatches.length !== 3) {
96
+ if (!stringMatches || stringMatches.length !== 3) {
98
97
  throw new Error(`malformed ufixed type: ${str}`);
99
98
  }
100
99
  const ufixedSize = parseInt(stringMatches[1], 10);
@@ -380,7 +379,12 @@ export class ABIStringType extends ABIType {
380
379
  if (typeof value !== 'string' && !(value instanceof Uint8Array)) {
381
380
  throw new Error(`Cannot encode value as string: ${value}`);
382
381
  }
383
- const encodedBytes = Buffer.from(value);
382
+ let encodedBytes: Uint8Array;
383
+ if (typeof value === 'string') {
384
+ encodedBytes = new TextEncoder().encode(value);
385
+ } else {
386
+ encodedBytes = value;
387
+ }
384
388
  const encodedLength = bigIntToBytes(
385
389
  encodedBytes.length,
386
390
  LENGTH_ENCODE_BYTE_SIZE
@@ -399,8 +403,12 @@ export class ABIStringType extends ABIType {
399
403
  `byte string is too short to be decoded. Actual length is ${byteString.length}, but expected at least ${LENGTH_ENCODE_BYTE_SIZE}`
400
404
  );
401
405
  }
402
- const buf = Buffer.from(byteString);
403
- const byteLength = buf.readUIntBE(0, LENGTH_ENCODE_BYTE_SIZE);
406
+ const view = new DataView(
407
+ byteString.buffer,
408
+ byteString.byteOffset,
409
+ LENGTH_ENCODE_BYTE_SIZE
410
+ );
411
+ const byteLength = view.getUint16(0);
404
412
  const byteValue = byteString.slice(
405
413
  LENGTH_ENCODE_BYTE_SIZE,
406
414
  byteString.length
@@ -410,7 +418,7 @@ export class ABIStringType extends ABIType {
410
418
  `string length bytes do not match the actual length of string. Expected ${byteLength}, got ${byteValue.length}`
411
419
  );
412
420
  }
413
- return Buffer.from(byteValue).toString('utf-8');
421
+ return new TextDecoder('utf-8').decode(byteValue);
414
422
  }
415
423
  }
416
424
 
@@ -517,8 +525,8 @@ export class ABIArrayDynamicType extends ABIType {
517
525
  }
518
526
 
519
527
  decode(byteString: Uint8Array): ABIValue[] {
520
- const buf = Buffer.from(byteString);
521
- const byteLength = buf.readUIntBE(0, LENGTH_ENCODE_BYTE_SIZE);
528
+ const view = new DataView(byteString.buffer, 0, LENGTH_ENCODE_BYTE_SIZE);
529
+ const byteLength = view.getUint16(0);
522
530
  const convertedTuple = this.toABITupleType(byteLength);
523
531
  return convertedTuple.decode(
524
532
  byteString.slice(LENGTH_ENCODE_BYTE_SIZE, byteString.length)
@@ -657,10 +665,10 @@ export class ABITupleType extends ABIType {
657
665
  decode(byteString: Uint8Array): ABIValue[] {
658
666
  const tupleTypes = this.childTypes;
659
667
  const dynamicSegments: Segment[] = [];
660
- const valuePartition: Uint8Array[] = [];
668
+ const valuePartition: Array<Uint8Array | null> = [];
661
669
  let i = 0;
662
670
  let iterIndex = 0;
663
- const buf = Buffer.from(byteString);
671
+ const view = new DataView(byteString.buffer);
664
672
 
665
673
  while (i < tupleTypes.length) {
666
674
  const tupleType = tupleTypes[i];
@@ -671,7 +679,9 @@ export class ABITupleType extends ABIType {
671
679
  ) {
672
680
  throw new Error('dynamic type in tuple is too short to be decoded');
673
681
  }
674
- const dynamicIndex = buf.readUIntBE(iterIndex, LENGTH_ENCODE_BYTE_SIZE);
682
+ // Since LENGTH_ENCODE_BYTE_SIZE is 2 and indices are at most 2 bytes,
683
+ // we can use getUint16 using the iterIndex offset.
684
+ const dynamicIndex = view.getUint16(iterIndex);
675
685
  if (dynamicSegments.length > 0) {
676
686
  dynamicSegments[dynamicSegments.length - 1].right = dynamicIndex;
677
687
  // Check that right side of segment is greater than the left side
@@ -761,7 +771,7 @@ export class ABITupleType extends ABIType {
761
771
  // Decode each tuple element
762
772
  const returnValues: ABIValue[] = [];
763
773
  for (let j = 0; j < tupleTypes.length; j++) {
764
- const valueTi = tupleTypes[j].decode(valuePartition[j]);
774
+ const valueTi = tupleTypes[j].decode(valuePartition[j]!);
765
775
  returnValues.push(valueTi);
766
776
  }
767
777
  return returnValues;
@@ -1,5 +1,5 @@
1
- import { ABIMethod, ABIMethodParams, getMethodByName } from './method';
2
- import { ARC28Event } from './event';
1
+ import { ABIMethod, ABIMethodParams, getMethodByName } from './method.js';
2
+ import { ARC28Event } from './event.js';
3
3
 
4
4
  export interface ABIContractNetworkInfo {
5
5
  appID: number;
package/src/abi/index.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from './abi_type';
2
- export * from './contract';
3
- export * from './interface';
4
- export * from './method';
5
- export * from './transaction';
6
- export * from './reference';
1
+ export * from './abi_type.js';
2
+ export * from './contract.js';
3
+ export * from './interface.js';
4
+ export * from './method.js';
5
+ export * from './transaction.js';
6
+ export * from './reference.js';
@@ -1,4 +1,4 @@
1
- import { ABIMethod, ABIMethodParams, getMethodByName } from './method';
1
+ import { ABIMethod, ABIMethodParams, getMethodByName } from './method.js';
2
2
 
3
3
  export interface ABIInterfaceParams {
4
4
  name: string;
package/src/abi/method.ts CHANGED
@@ -1,12 +1,14 @@
1
- import { genericHash } from '../nacl/naclWrappers';
2
- import { ABIType, ABITupleType } from './abi_type';
3
- import { ABITransactionType, abiTypeIsTransaction } from './transaction';
4
- import { ABIReferenceType, abiTypeIsReference } from './reference';
5
- import { ARC28Event } from './event';
6
-
7
- function parseMethodSignature(
8
- signature: string
9
- ): { name: string; args: string[]; returns: string } {
1
+ import { genericHash } from '../nacl/naclWrappers.js';
2
+ import { ABIType, ABITupleType } from './abi_type.js';
3
+ import { ABITransactionType, abiTypeIsTransaction } from './transaction.js';
4
+ import { ABIReferenceType, abiTypeIsReference } from './reference.js';
5
+ import { ARC28Event } from './event.js';
6
+
7
+ function parseMethodSignature(signature: string): {
8
+ name: string;
9
+ args: string[];
10
+ returns: string;
11
+ } {
10
12
  const argsStart = signature.indexOf('(');
11
13
  if (argsStart === -1) {
12
14
  throw new Error(`Invalid method signature: ${signature}`);
@@ -1,4 +1,4 @@
1
- import { Transaction } from '../transaction';
1
+ import { Transaction } from '../transaction.js';
2
2
 
3
3
  export enum ABITransactionType {
4
4
  /**
@@ -57,5 +57,5 @@ export function abiCheckTransactionType(
57
57
  return true;
58
58
  }
59
59
 
60
- return txn.type && txn.type.toString() === type.toString();
60
+ return txn.type ? txn.type.toString() === type.toString() : false;
61
61
  }
package/src/account.ts CHANGED
@@ -1,12 +1,12 @@
1
- import * as nacl from './nacl/naclWrappers';
2
- import * as address from './encoding/address';
3
- import Account from './types/account';
1
+ import * as nacl from './nacl/naclWrappers.js';
2
+ import { Address } from './encoding/address.js';
3
+ import Account from './types/account.js';
4
4
 
5
5
  /**
6
6
  * generateAccount returns a new Algorand address and its corresponding secret key
7
7
  */
8
8
  export default function generateAccount(): Account {
9
9
  const keys = nacl.keyPair();
10
- const encodedPk = address.encodeAddress(keys.publicKey);
11
- return { addr: encodedPk, sk: keys.secretKey };
10
+ const addr = new Address(keys.publicKey);
11
+ return { addr, sk: keys.secretKey };
12
12
  }
package/src/boxStorage.ts CHANGED
@@ -1,20 +1,17 @@
1
- import { EncodedBoxReference } from './types';
2
- import { BoxReference } from './types/transactions/base';
1
+ import { BoxReference } from './types/transactions/base.js';
3
2
 
4
- function translateBoxReference(
3
+ function boxReferenceToEncodingData(
5
4
  reference: BoxReference,
6
- foreignApps: number[],
7
- appIndex: number
8
- ): EncodedBoxReference {
9
- const referenceId = reference.appIndex;
5
+ foreignApps: bigint[],
6
+ appIndex: bigint
7
+ ): Map<string, unknown> {
8
+ const referenceId = BigInt(reference.appIndex);
10
9
  const referenceName = reference.name;
11
- const isOwnReference = referenceId === 0 || referenceId === appIndex;
12
- let index = 0;
10
+ const isOwnReference = referenceId === BigInt(0) || referenceId === appIndex;
11
+
12
+ // Foreign apps start from index 1; index 0 is its own app ID.
13
+ const index = foreignApps.indexOf(referenceId) + 1;
13
14
 
14
- if (foreignApps != null) {
15
- // Foreign apps start from index 1; index 0 is its own app ID.
16
- index = foreignApps.indexOf(referenceId) + 1;
17
- }
18
15
  // Check if the app referenced is itself after checking the foreign apps array.
19
16
  // If index is zero, then the app ID was not found in the foreign apps array
20
17
  // or the foreign apps array was null.
@@ -23,20 +20,25 @@ function translateBoxReference(
23
20
  // its own foreign apps array.
24
21
  throw new Error(`Box ref with appId ${referenceId} not in foreign-apps`);
25
22
  }
26
- return { i: index, n: referenceName };
23
+
24
+ return new Map<string, number | Uint8Array>([
25
+ ['i', index],
26
+ ['n', referenceName],
27
+ ]);
27
28
  }
28
29
 
29
30
  /**
30
- * translateBoxReferences translates an array of BoxReferences with app IDs
31
- * into an array of EncodedBoxReferences with foreign indices.
31
+ * boxReferencesToEncodingData translates an array of BoxReferences into an array of encoding data
32
+ * maps.
32
33
  */
33
- export function translateBoxReferences(
34
- references: BoxReference[] | undefined,
35
- foreignApps: number[],
36
- appIndex: number
37
- ): EncodedBoxReference[] {
38
- if (references == null) return [];
34
+ export function boxReferencesToEncodingData(
35
+ references: ReadonlyArray<BoxReference>,
36
+ foreignApps: ReadonlyArray<number | bigint>,
37
+ appIndex: number | bigint
38
+ ): Array<Map<string, unknown>> {
39
+ const appIndexBigInt = BigInt(appIndex);
40
+ const foreignAppsBigInt = foreignApps.map(BigInt);
39
41
  return references.map((bx) =>
40
- translateBoxReference(bx, foreignApps, appIndex)
42
+ boxReferenceToEncodingData(bx, foreignAppsBigInt, appIndexBigInt)
41
43
  );
42
44
  }
@@ -26,8 +26,11 @@ export interface BaseHTTPClientError {
26
26
  * wallets to provide access to paid API services without leaking
27
27
  * the secret tokens/URLs.
28
28
  *
29
- * Note that post and delete also have an optional query parameter
30
- * This is to allow future extension where post and delete may have queries
29
+ * The parameter `customOptions` is an object that can be used to configure
30
+ * individual requests with specific specific to the BaseHTTPClient implementation.
31
+ *
32
+ * Note that DELETE requests have an optional query parameter.
33
+ * This is to allow future extension where DELETE may have queries
31
34
  * Currently however HTTPClient does not make use of it
32
35
  *
33
36
  * Compared to HTTPClient, BaseHTTPClient does not deal with serialization/deserialization
@@ -41,18 +44,21 @@ export interface BaseHTTPClient {
41
44
  get(
42
45
  relativePath: string,
43
46
  query?: Query<string>,
44
- requestHeaders?: Record<string, string>
47
+ requestHeaders?: Record<string, string>,
48
+ customOptions?: Record<string, unknown>
45
49
  ): Promise<BaseHTTPClientResponse>;
46
50
  post(
47
51
  relativePath: string,
48
52
  data: Uint8Array,
49
53
  query?: Query<string>,
50
- requestHeaders?: Record<string, string>
54
+ requestHeaders?: Record<string, string>,
55
+ customOptions?: Record<string, unknown>
51
56
  ): Promise<BaseHTTPClientResponse>;
52
57
  delete(
53
58
  relativePath: string,
54
- data: Uint8Array,
59
+ data?: Uint8Array,
55
60
  query?: Query<string>,
56
- requestHeaders?: Record<string, string>
61
+ requestHeaders?: Record<string, string>,
62
+ customOptions?: Record<string, unknown>
57
63
  ): Promise<BaseHTTPClientResponse>;
58
64
  }
@@ -1,23 +1,73 @@
1
- import { Buffer } from 'buffer';
2
- import * as utils from '../utils/utils';
1
+ import * as utils from '../utils/utils.js';
3
2
  import {
4
3
  BaseHTTPClient,
5
4
  BaseHTTPClientResponse,
6
5
  Query,
7
- } from './baseHTTPClient';
8
- import { TokenHeader, URLTokenBaseHTTPClient } from './urlTokenBaseHTTPClient';
6
+ } from './baseHTTPClient.js';
7
+ import {
8
+ TokenHeader,
9
+ URLTokenBaseHTTPClient,
10
+ } from './urlTokenBaseHTTPClient.js';
9
11
 
10
12
  interface ErrorWithAdditionalInfo extends Error {
11
13
  rawResponse: string | null;
12
14
  statusCode: number;
13
15
  }
14
16
 
15
- export interface HTTPClientResponse {
16
- body: Uint8Array | any; // when content-type=JSON, body is a JSON object, otherwise it's a Uint8Array
17
+ export class HTTPClientResponse {
18
+ /**
19
+ * The raw response bytes
20
+ */
21
+ body: Uint8Array;
22
+ /**
23
+ * If the expected response type is JSON, this is the response bytes converted to a string.
24
+ */
17
25
  text?: string;
26
+ format: 'application/msgpack' | 'application/json';
18
27
  headers: Record<string, string>;
19
28
  status: number;
20
29
  ok: boolean;
30
+
31
+ constructor(options: {
32
+ body: Uint8Array;
33
+ text?: string;
34
+ format: 'application/msgpack' | 'application/json';
35
+ headers: Record<string, string>;
36
+ status: number;
37
+ ok: boolean;
38
+ }) {
39
+ this.body = options.body;
40
+ this.text = options.text;
41
+ this.format = options.format;
42
+ this.headers = options.headers;
43
+ this.status = options.status;
44
+ this.ok = options.ok;
45
+ }
46
+
47
+ /**
48
+ * Returns the response body as a string, ready to be parsed as JSON.
49
+ */
50
+ getJSONText(): string {
51
+ if (this.text === undefined) {
52
+ throw new Error(
53
+ `Response body does not contain JSON data. Format is ${this.format}`
54
+ );
55
+ }
56
+ return this.text;
57
+ }
58
+
59
+ /**
60
+ * Parses the response body as JSON with the given options.
61
+ */
62
+ parseBodyAsJSON(jsonOptions: utils.ParseJSONOptions) {
63
+ if (this.text === undefined) {
64
+ throw new Error(
65
+ `Response body does not contain JSON data. Format is ${this.format}`
66
+ );
67
+ }
68
+ // eslint-disable-next-line no-use-before-define
69
+ return HTTPClient.parseJSON(this.text, this.status, jsonOptions);
70
+ }
21
71
  }
22
72
 
23
73
  /**
@@ -38,9 +88,12 @@ function removeFalsyOrEmpty(obj: Record<string, any>) {
38
88
  * See https://codereview.stackexchange.com/a/162418
39
89
  * Used to ensure all headers are lower-case and to work more easily with them
40
90
  */
41
- function tolowerCaseKeys(o: object): object {
91
+ function tolowerCaseKeys(o: Record<string, any>): Record<string, any> {
42
92
  /* eslint-disable no-param-reassign,no-return-assign,no-sequences */
43
- return Object.keys(o).reduce((c, k) => ((c[k.toLowerCase()] = o[k]), c), {});
93
+ return Object.keys(o).reduce(
94
+ (c, k) => ((c[k.toLowerCase()] = o[k]), c),
95
+ {} as Record<string, any>
96
+ );
44
97
  /* eslint-enable no-param-reassign,no-return-assign,no-sequences */
45
98
  }
46
99
 
@@ -70,7 +123,7 @@ function getAcceptFormat(
70
123
  * It takes care of setting the proper "Accept" header and of
71
124
  * decoding the JSON outputs.
72
125
  */
73
- export default class HTTPClient {
126
+ export class HTTPClient {
74
127
  private bc: BaseHTTPClient;
75
128
 
76
129
  /**
@@ -107,8 +160,7 @@ export default class HTTPClient {
107
160
  }
108
161
 
109
162
  /**
110
- * Parse JSON using either the built-in JSON.parse or utils.parseJSON
111
- * depending on whether jsonOptions are provided or not
163
+ * Parse JSON using utils.parseJSON
112
164
  *
113
165
  * @param text - JSON data
114
166
  * @param status - Status of the response (used in case parseJSON fails)
@@ -118,15 +170,15 @@ export default class HTTPClient {
118
170
  public static parseJSON(
119
171
  text: string,
120
172
  status: number,
121
- jsonOptions: utils.JSONOptions = {}
173
+ jsonOptions: utils.ParseJSONOptions
122
174
  ) {
123
175
  try {
124
- if (Object.keys(jsonOptions).length === 0) {
125
- return text && JSON.parse(text);
176
+ if (!text) {
177
+ return null;
126
178
  }
127
- return text && utils.parseJSON(text, jsonOptions);
179
+ return utils.parseJSON(text, jsonOptions);
128
180
  } catch (err_) {
129
- const err: ErrorWithAdditionalInfo = err_;
181
+ const err = err_ as ErrorWithAdditionalInfo;
130
182
  // return the raw response if the response parsing fails
131
183
  err.rawResponse = text || null;
132
184
  // return the http status code if the response parsing fails
@@ -151,10 +203,10 @@ export default class HTTPClient {
151
203
  return new Uint8Array(0); // empty Uint8Array
152
204
  }
153
205
  if (requestHeaders['content-type'] === 'application/json') {
154
- return new Uint8Array(Buffer.from(JSON.stringify(data)));
206
+ return new TextEncoder().encode(utils.stringifyJSON(data));
155
207
  }
156
208
  if (typeof data === 'string') {
157
- return new Uint8Array(Buffer.from(data));
209
+ return new TextEncoder().encode(data);
158
210
  }
159
211
  if (data instanceof Uint8Array) {
160
212
  return data;
@@ -171,27 +223,21 @@ export default class HTTPClient {
171
223
  */
172
224
  private static prepareResponse(
173
225
  res: BaseHTTPClientResponse,
174
- format: 'application/msgpack' | 'application/json',
175
- parseBody: boolean,
176
- jsonOptions: utils.JSONOptions = {}
226
+ format: 'application/msgpack' | 'application/json'
177
227
  ): HTTPClientResponse {
178
- let { body } = res;
179
- let text;
228
+ const { body } = res;
229
+ let text: string | undefined;
180
230
 
181
231
  if (format !== 'application/msgpack') {
182
- text = (body && Buffer.from(body).toString()) || '';
183
- }
184
-
185
- if (parseBody && format === 'application/json') {
186
- body = HTTPClient.parseJSON(text, res.status, jsonOptions);
232
+ text = (body && new TextDecoder().decode(body)) || '';
187
233
  }
188
234
 
189
- return {
235
+ return new HTTPClientResponse({
190
236
  ...res,
191
- body,
237
+ format,
192
238
  text,
193
239
  ok: Math.trunc(res.status / 100) === 2,
194
- };
240
+ });
195
241
  }
196
242
 
197
243
  /**
@@ -200,13 +246,12 @@ export default class HTTPClient {
200
246
  * by adding the status and preparing the internal response
201
247
  * @private
202
248
  */
203
- private static prepareResponseError(err) {
249
+ private static prepareResponseError(err: any) {
204
250
  if (err.response) {
205
251
  // eslint-disable-next-line no-param-reassign
206
252
  err.response = HTTPClient.prepareResponse(
207
253
  err.response,
208
- 'application/json',
209
- true
254
+ 'application/json'
210
255
  );
211
256
  // eslint-disable-next-line no-param-reassign
212
257
  err.status = err.response.status;
@@ -216,33 +261,39 @@ export default class HTTPClient {
216
261
 
217
262
  /**
218
263
  * Send a GET request.
219
- * @param relativePath - The path of the request.
220
- * @param query - An object containing the query parameters of the request.
221
- * @param requestHeaders - An object containing additional request headers to use.
222
- * @param jsonOptions - Options object to use to decode JSON responses. See
223
- * utils.parseJSON for the options available.
224
- * @param parseBody - An optional boolean indicating whether the response body should be parsed
264
+ *
265
+ * @param options - The options to use for the request.
266
+ * @param options.relativePath - The path of the request.
267
+ * @param options.query - An object containing the query parameters of the request.
268
+ * @param options.requestHeaders - An object containing additional request headers to use.
225
269
  * or not.
270
+ * @param options.customOptions - An object containing additional options to pass to the
271
+ * underlying BaseHTTPClient instance.
226
272
  * @returns Response object.
227
273
  */
228
- async get(
229
- relativePath: string,
230
- query?: Query<any>,
231
- requestHeaders: Record<string, string> = {},
232
- jsonOptions: utils.JSONOptions = {},
233
- parseBody: boolean = true
234
- ): Promise<HTTPClientResponse> {
274
+ async get({
275
+ relativePath,
276
+ query,
277
+ requestHeaders,
278
+ customOptions,
279
+ }: {
280
+ relativePath: string;
281
+ query?: Query<any>;
282
+ requestHeaders?: Record<string, string>;
283
+ customOptions?: Record<string, unknown>;
284
+ }): Promise<HTTPClientResponse> {
235
285
  const format = getAcceptFormat(query);
236
- const fullHeaders = { ...requestHeaders, accept: format };
286
+ const fullHeaders = { ...(requestHeaders ?? {}), accept: format };
237
287
 
238
288
  try {
239
289
  const res = await this.bc.get(
240
290
  relativePath,
241
- removeFalsyOrEmpty(query),
242
- fullHeaders
291
+ query ? removeFalsyOrEmpty(query) : undefined,
292
+ fullHeaders,
293
+ customOptions
243
294
  );
244
295
 
245
- return HTTPClient.prepareResponse(res, format, parseBody, jsonOptions);
296
+ return HTTPClient.prepareResponse(res, format);
246
297
  } catch (err) {
247
298
  throw HTTPClient.prepareResponseError(err);
248
299
  }
@@ -252,17 +303,24 @@ export default class HTTPClient {
252
303
  * Send a POST request.
253
304
  * If no content-type present, adds the header "content-type: application/json"
254
305
  * and data is serialized in JSON (if not empty)
306
+ * @param options - The options to use for the request.
255
307
  */
256
- async post(
257
- relativePath: string,
258
- data: any,
259
- requestHeaders: Record<string, string> = {},
260
- query?: Query<any>,
261
- parseBody: boolean = true
262
- ): Promise<HTTPClientResponse> {
308
+ async post({
309
+ relativePath,
310
+ data,
311
+ query,
312
+ requestHeaders,
313
+ customOptions,
314
+ }: {
315
+ relativePath: string;
316
+ data: any;
317
+ query?: Query<any>;
318
+ requestHeaders?: Record<string, string>;
319
+ customOptions?: Record<string, unknown>;
320
+ }): Promise<HTTPClientResponse> {
263
321
  const fullHeaders = {
264
322
  'content-type': 'application/json',
265
- ...tolowerCaseKeys(requestHeaders),
323
+ ...tolowerCaseKeys(requestHeaders ?? {}),
266
324
  };
267
325
 
268
326
  try {
@@ -270,10 +328,11 @@ export default class HTTPClient {
270
328
  relativePath,
271
329
  HTTPClient.serializeData(data, fullHeaders),
272
330
  query,
273
- fullHeaders
331
+ fullHeaders,
332
+ customOptions
274
333
  );
275
334
 
276
- return HTTPClient.prepareResponse(res, 'application/json', parseBody);
335
+ return HTTPClient.prepareResponse(res, 'application/json');
277
336
  } catch (err) {
278
337
  throw HTTPClient.prepareResponseError(err);
279
338
  }
@@ -283,25 +342,38 @@ export default class HTTPClient {
283
342
  * Send a DELETE request.
284
343
  * If no content-type present, adds the header "content-type: application/json"
285
344
  * and data is serialized in JSON (if not empty)
345
+ * @param options - The options to use for the request.
286
346
  */
287
- async delete(
288
- relativePath: string,
289
- data: any,
290
- requestHeaders: Record<string, string> = {},
291
- parseBody: boolean = true
292
- ) {
347
+ async delete({
348
+ relativePath,
349
+ data,
350
+ requestHeaders,
351
+ customOptions,
352
+ }: {
353
+ relativePath: string;
354
+ data: any;
355
+ requestHeaders?: Record<string, string>;
356
+ customOptions?: Record<string, unknown>;
357
+ }) {
293
358
  const fullHeaders = {
294
359
  'content-type': 'application/json',
295
- ...tolowerCaseKeys(requestHeaders),
360
+ ...tolowerCaseKeys(requestHeaders ?? {}),
296
361
  };
297
362
 
298
- const res = await this.bc.delete(
299
- relativePath,
300
- HTTPClient.serializeData(data, fullHeaders),
301
- undefined,
302
- fullHeaders
303
- );
363
+ try {
364
+ const res = await this.bc.delete(
365
+ relativePath,
366
+ typeof data !== 'undefined'
367
+ ? HTTPClient.serializeData(data, fullHeaders)
368
+ : undefined,
369
+ undefined,
370
+ fullHeaders,
371
+ customOptions
372
+ );
304
373
 
305
- return HTTPClient.prepareResponse(res, 'application/json', parseBody);
374
+ return HTTPClient.prepareResponse(res, 'application/json');
375
+ } catch (err) {
376
+ throw HTTPClient.prepareResponseError(err);
377
+ }
306
378
  }
307
379
  }