algosdk 1.23.2 → 1.24.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 (909) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.map +1 -1
  4. package/dist/cjs/abi/abi_type.js +693 -0
  5. package/dist/cjs/abi/abi_type.js.map +1 -0
  6. package/dist/cjs/{src/abi → abi}/contract.js +0 -0
  7. package/dist/cjs/abi/contract.js.map +1 -0
  8. package/dist/cjs/{src/abi → abi}/index.js +0 -0
  9. package/dist/cjs/abi/index.js.map +1 -0
  10. package/dist/cjs/{src/abi → abi}/interface.js +0 -0
  11. package/dist/cjs/abi/interface.js.map +1 -0
  12. package/dist/cjs/{src/abi → abi}/method.js +0 -0
  13. package/dist/cjs/abi/method.js.map +1 -0
  14. package/dist/cjs/{src/abi → abi}/reference.js +0 -0
  15. package/dist/cjs/abi/reference.js.map +1 -0
  16. package/dist/cjs/{src/abi → abi}/transaction.js +0 -0
  17. package/dist/cjs/abi/transaction.js.map +1 -0
  18. package/dist/cjs/{src/account.js → account.js} +0 -0
  19. package/dist/cjs/account.js.map +1 -0
  20. package/dist/cjs/{src/bid.js → bid.js} +0 -0
  21. package/dist/cjs/bid.js.map +1 -0
  22. package/dist/cjs/{src/boxStorage.js → boxStorage.js} +0 -0
  23. package/dist/cjs/boxStorage.js.map +1 -0
  24. package/dist/cjs/{src/client → client}/algod.js +0 -0
  25. package/dist/cjs/client/algod.js.map +1 -0
  26. package/dist/cjs/{src/client → client}/baseHTTPClient.js +0 -0
  27. package/dist/cjs/client/baseHTTPClient.js.map +1 -0
  28. package/dist/cjs/{src/client → client}/client.js +0 -0
  29. package/dist/cjs/client/client.js.map +1 -0
  30. package/dist/cjs/{src/client → client}/kmd.js +0 -0
  31. package/dist/cjs/client/kmd.js.map +1 -0
  32. package/dist/cjs/{src/client → client}/urlTokenBaseHTTPClient.js +0 -0
  33. package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -0
  34. package/dist/cjs/{src/client → client}/v2/algod/accountApplicationInformation.js +0 -0
  35. package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -0
  36. package/dist/cjs/{src/client → client}/v2/algod/accountAssetInformation.js +0 -0
  37. package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -0
  38. package/dist/cjs/{src/client → client}/v2/algod/accountInformation.js +0 -0
  39. package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -0
  40. package/dist/cjs/{src/client → client}/v2/algod/algod.js +0 -0
  41. package/dist/cjs/client/v2/algod/algod.js.map +1 -0
  42. package/dist/cjs/{src/client → client}/v2/algod/block.js +0 -0
  43. package/dist/cjs/client/v2/algod/block.js.map +1 -0
  44. package/dist/cjs/{src/client → client}/v2/algod/compile.js +0 -0
  45. package/dist/cjs/client/v2/algod/compile.js.map +1 -0
  46. package/dist/cjs/{src/client → client}/v2/algod/dryrun.js +0 -0
  47. package/dist/cjs/client/v2/algod/dryrun.js.map +1 -0
  48. package/dist/cjs/{src/client → client}/v2/algod/genesis.js +0 -0
  49. package/dist/cjs/client/v2/algod/genesis.js.map +1 -0
  50. package/dist/cjs/{src/client → client}/v2/algod/getApplicationBoxByName.js +0 -0
  51. package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -0
  52. package/dist/cjs/{src/client → client}/v2/algod/getApplicationBoxes.js +0 -0
  53. package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -0
  54. package/dist/cjs/{src/client → client}/v2/algod/getApplicationByID.js +0 -0
  55. package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -0
  56. package/dist/cjs/{src/client → client}/v2/algod/getAssetByID.js +0 -0
  57. package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -0
  58. package/dist/cjs/{src/client → client}/v2/algod/getBlockHash.js +0 -0
  59. package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -0
  60. package/dist/cjs/{src/client → client}/v2/algod/getTransactionProof.js +0 -0
  61. package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -0
  62. package/dist/cjs/{src/client → client}/v2/algod/healthCheck.js +0 -0
  63. package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -0
  64. package/dist/cjs/{src/client → client}/v2/algod/lightBlockHeaderProof.js +0 -0
  65. package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -0
  66. package/dist/cjs/client/v2/algod/models/types.js +2047 -0
  67. package/dist/cjs/client/v2/algod/models/types.js.map +1 -0
  68. package/dist/cjs/{src/client → client}/v2/algod/pendingTransactionInformation.js +0 -0
  69. package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -0
  70. package/dist/cjs/{src/client → client}/v2/algod/pendingTransactions.js +0 -0
  71. package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -0
  72. package/dist/cjs/{src/client → client}/v2/algod/pendingTransactionsByAddress.js +0 -0
  73. package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -0
  74. package/dist/cjs/{src/client → client}/v2/algod/sendRawTransaction.js +0 -0
  75. package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -0
  76. package/dist/cjs/{src/client → client}/v2/algod/stateproof.js +0 -0
  77. package/dist/cjs/client/v2/algod/stateproof.js.map +1 -0
  78. package/dist/cjs/{src/client → client}/v2/algod/status.js +0 -0
  79. package/dist/cjs/client/v2/algod/status.js.map +1 -0
  80. package/dist/cjs/{src/client → client}/v2/algod/statusAfterBlock.js +0 -0
  81. package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -0
  82. package/dist/cjs/{src/client → client}/v2/algod/suggestedParams.js +0 -0
  83. package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -0
  84. package/dist/cjs/{src/client → client}/v2/algod/supply.js +0 -0
  85. package/dist/cjs/client/v2/algod/supply.js.map +1 -0
  86. package/dist/cjs/{src/client → client}/v2/algod/versions.js +0 -0
  87. package/dist/cjs/client/v2/algod/versions.js.map +1 -0
  88. package/dist/cjs/{src/client → client}/v2/basemodel.js +0 -0
  89. package/dist/cjs/client/v2/basemodel.js.map +1 -0
  90. package/dist/cjs/{src/client → client}/v2/indexer/indexer.js +0 -0
  91. package/dist/cjs/client/v2/indexer/indexer.js.map +1 -0
  92. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.js +0 -0
  93. package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -0
  94. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountAssets.js +0 -0
  95. package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -0
  96. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountByID.js +0 -0
  97. package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -0
  98. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.js +0 -0
  99. package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -0
  100. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.js +0 -0
  101. package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -0
  102. package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountTransactions.js +0 -0
  103. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -0
  104. package/dist/cjs/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.js +0 -0
  105. package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -0
  106. package/dist/cjs/{src/client → client}/v2/indexer/lookupApplicationLogs.js +0 -0
  107. package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -0
  108. package/dist/cjs/{src/client → client}/v2/indexer/lookupApplications.js +0 -0
  109. package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -0
  110. package/dist/cjs/{src/client → client}/v2/indexer/lookupAssetBalances.js +0 -0
  111. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -0
  112. package/dist/cjs/{src/client → client}/v2/indexer/lookupAssetByID.js +0 -0
  113. package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -0
  114. package/dist/cjs/{src/client → client}/v2/indexer/lookupAssetTransactions.js +0 -0
  115. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -0
  116. package/dist/cjs/{src/client → client}/v2/indexer/lookupBlock.js +0 -0
  117. package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -0
  118. package/dist/cjs/{src/client → client}/v2/indexer/lookupTransactionByID.js +0 -0
  119. package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -0
  120. package/dist/cjs/{src/client → client}/v2/indexer/makeHealthCheck.js +0 -0
  121. package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -0
  122. package/dist/cjs/{src/client → client}/v2/indexer/models/types.js +0 -0
  123. package/dist/cjs/client/v2/indexer/models/types.js.map +1 -0
  124. package/dist/cjs/{src/client → client}/v2/indexer/searchAccounts.js +0 -0
  125. package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -0
  126. package/dist/cjs/{src/client → client}/v2/indexer/searchForApplicationBoxes.js +0 -0
  127. package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -0
  128. package/dist/cjs/{src/client → client}/v2/indexer/searchForApplications.js +0 -0
  129. package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -0
  130. package/dist/cjs/{src/client → client}/v2/indexer/searchForAssets.js +0 -0
  131. package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -0
  132. package/dist/cjs/{src/client → client}/v2/indexer/searchForTransactions.js +0 -0
  133. package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -0
  134. package/dist/cjs/{src/client → client}/v2/jsonrequest.js +0 -0
  135. package/dist/cjs/client/v2/jsonrequest.js.map +1 -0
  136. package/dist/cjs/{src/client → client}/v2/serviceClient.js +0 -0
  137. package/dist/cjs/client/v2/serviceClient.js.map +1 -0
  138. package/dist/cjs/{src/composer.js → composer.js} +0 -0
  139. package/dist/cjs/composer.js.map +1 -0
  140. package/dist/cjs/{src/convert.js → convert.js} +0 -0
  141. package/dist/cjs/convert.js.map +1 -0
  142. package/dist/cjs/{src/dryrun.js → dryrun.js} +0 -0
  143. package/dist/cjs/dryrun.js.map +1 -0
  144. package/dist/cjs/{src/encoding → encoding}/address.js +0 -0
  145. package/dist/cjs/encoding/address.js.map +1 -0
  146. package/dist/cjs/{src/encoding → encoding}/bigint.js +0 -0
  147. package/dist/cjs/encoding/bigint.js.map +1 -0
  148. package/dist/cjs/{src/encoding → encoding}/encoding.js +0 -0
  149. package/dist/cjs/encoding/encoding.js.map +1 -0
  150. package/dist/cjs/{src/encoding → encoding}/uint64.js +0 -0
  151. package/dist/cjs/encoding/uint64.js.map +1 -0
  152. package/dist/cjs/{src/group.js → group.js} +0 -0
  153. package/dist/cjs/group.js.map +1 -0
  154. package/dist/cjs/index.js +2 -2
  155. package/dist/cjs/index.js.map +1 -1
  156. package/dist/cjs/{src/logic → logic}/langspec.json +0 -0
  157. package/dist/cjs/{src/logic → logic}/logic.js +0 -0
  158. package/dist/cjs/logic/logic.js.map +1 -0
  159. package/dist/cjs/{src/logic → logic}/sourcemap.js +0 -0
  160. package/dist/cjs/logic/sourcemap.js.map +1 -0
  161. package/dist/cjs/{src/logicTemplates → logicTemplates}/dynamicfee.js +0 -0
  162. package/dist/cjs/logicTemplates/dynamicfee.js.map +1 -0
  163. package/dist/cjs/{src/logicTemplates → logicTemplates}/htlc.js +0 -0
  164. package/dist/cjs/logicTemplates/htlc.js.map +1 -0
  165. package/dist/cjs/{src/logicTemplates → logicTemplates}/index.js +0 -0
  166. package/dist/cjs/logicTemplates/index.js.map +1 -0
  167. package/dist/cjs/{src/logicTemplates → logicTemplates}/limitorder.js +0 -0
  168. package/dist/cjs/logicTemplates/limitorder.js.map +1 -0
  169. package/dist/cjs/{src/logicTemplates → logicTemplates}/periodicpayment.js +0 -0
  170. package/dist/cjs/logicTemplates/periodicpayment.js.map +1 -0
  171. package/dist/cjs/{src/logicTemplates → logicTemplates}/split.js +0 -0
  172. package/dist/cjs/logicTemplates/split.js.map +1 -0
  173. package/dist/cjs/{src/logicTemplates → logicTemplates}/templates.js +0 -0
  174. package/dist/cjs/logicTemplates/templates.js.map +1 -0
  175. package/dist/cjs/{src/logicsig.js → logicsig.js} +0 -0
  176. package/dist/cjs/logicsig.js.map +1 -0
  177. package/dist/cjs/{src/main.js → main.js} +0 -0
  178. package/dist/cjs/main.js.map +1 -0
  179. package/dist/cjs/{src/makeTxn.js → makeTxn.js} +0 -0
  180. package/dist/cjs/makeTxn.js.map +1 -0
  181. package/dist/cjs/{src/mnemonic → mnemonic}/mnemonic.js +0 -0
  182. package/dist/cjs/mnemonic/mnemonic.js.map +1 -0
  183. package/dist/cjs/{src/mnemonic → mnemonic}/wordlists/english.js +0 -0
  184. package/dist/cjs/mnemonic/wordlists/english.js.map +1 -0
  185. package/dist/cjs/multisig.js +398 -0
  186. package/dist/cjs/multisig.js.map +1 -0
  187. package/dist/cjs/{src/nacl → nacl}/naclWrappers.js +0 -0
  188. package/dist/cjs/nacl/naclWrappers.js.map +1 -0
  189. package/dist/cjs/{src/signer.js → signer.js} +0 -0
  190. package/dist/cjs/signer.js.map +1 -0
  191. package/dist/cjs/{src/transaction.js → transaction.js} +0 -0
  192. package/dist/cjs/transaction.js.map +1 -0
  193. package/dist/cjs/{src/types → types}/account.js +0 -0
  194. package/dist/cjs/types/account.js.map +1 -0
  195. package/dist/cjs/{src/types → types}/address.js +0 -0
  196. package/dist/cjs/types/address.js.map +1 -0
  197. package/dist/cjs/{src/types → types}/blockHeader.js +0 -0
  198. package/dist/cjs/types/blockHeader.js.map +1 -0
  199. package/dist/cjs/{src/types → types}/index.js +0 -0
  200. package/dist/cjs/types/index.js.map +1 -0
  201. package/dist/cjs/{src/types → types}/intDecoding.js +0 -0
  202. package/dist/cjs/types/intDecoding.js.map +1 -0
  203. package/dist/cjs/{src/types → types}/multisig.js +0 -0
  204. package/dist/cjs/types/multisig.js.map +1 -0
  205. package/dist/cjs/{src/types → types}/transactions/application.js +0 -0
  206. package/dist/cjs/types/transactions/application.js.map +1 -0
  207. package/dist/cjs/{src/types → types}/transactions/asset.js +0 -0
  208. package/dist/cjs/types/transactions/asset.js.map +1 -0
  209. package/dist/cjs/{src/types → types}/transactions/base.js +0 -0
  210. package/dist/cjs/types/transactions/base.js.map +1 -0
  211. package/dist/cjs/{src/types → types}/transactions/builder.js +0 -0
  212. package/dist/cjs/types/transactions/builder.js.map +1 -0
  213. package/dist/cjs/{src/types → types}/transactions/encoded.js +0 -0
  214. package/dist/cjs/types/transactions/encoded.js.map +1 -0
  215. package/dist/cjs/{src/types → types}/transactions/index.js +0 -0
  216. package/dist/cjs/types/transactions/index.js.map +1 -0
  217. package/dist/cjs/{src/types → types}/transactions/keyreg.js +0 -0
  218. package/dist/cjs/types/transactions/keyreg.js.map +1 -0
  219. package/dist/cjs/{src/types → types}/transactions/payment.js +0 -0
  220. package/dist/cjs/types/transactions/payment.js.map +1 -0
  221. package/dist/cjs/{src/types → types}/transactions/stateproof.js +0 -0
  222. package/dist/cjs/types/transactions/stateproof.js.map +1 -0
  223. package/dist/cjs/{src/types → types}/utils.js +0 -0
  224. package/dist/cjs/types/utils.js.map +1 -0
  225. package/dist/cjs/{src/utils → utils}/utils.js +0 -0
  226. package/dist/cjs/utils/utils.js.map +1 -0
  227. package/dist/cjs/{src/wait.js → wait.js} +0 -0
  228. package/dist/cjs/wait.js.map +1 -0
  229. package/dist/esm/abi/abi_type.js +680 -0
  230. package/dist/esm/abi/abi_type.js.map +1 -0
  231. package/dist/esm/{src/abi → abi}/contract.js +0 -0
  232. package/dist/esm/abi/contract.js.map +1 -0
  233. package/dist/esm/{src/abi → abi}/index.js +0 -0
  234. package/dist/esm/abi/index.js.map +1 -0
  235. package/dist/esm/{src/abi → abi}/interface.js +0 -0
  236. package/dist/esm/abi/interface.js.map +1 -0
  237. package/dist/esm/{src/abi → abi}/method.js +0 -0
  238. package/dist/esm/abi/method.js.map +1 -0
  239. package/dist/esm/{src/abi → abi}/reference.js +0 -0
  240. package/dist/esm/abi/reference.js.map +1 -0
  241. package/dist/esm/{src/abi → abi}/transaction.js +0 -0
  242. package/dist/esm/abi/transaction.js.map +1 -0
  243. package/dist/esm/{src/account.js → account.js} +0 -0
  244. package/dist/esm/account.js.map +1 -0
  245. package/dist/esm/{src/bid.js → bid.js} +0 -0
  246. package/dist/esm/bid.js.map +1 -0
  247. package/dist/esm/{src/boxStorage.js → boxStorage.js} +0 -0
  248. package/dist/esm/boxStorage.js.map +1 -0
  249. package/dist/esm/{src/client → client}/algod.js +0 -0
  250. package/dist/esm/client/algod.js.map +1 -0
  251. package/dist/esm/{src/client → client}/baseHTTPClient.js +0 -0
  252. package/dist/esm/client/baseHTTPClient.js.map +1 -0
  253. package/dist/esm/{src/client → client}/client.js +0 -0
  254. package/dist/esm/client/client.js.map +1 -0
  255. package/dist/esm/{src/client → client}/kmd.js +0 -0
  256. package/dist/esm/client/kmd.js.map +1 -0
  257. package/dist/esm/{src/client → client}/urlTokenBaseHTTPClient.js +0 -0
  258. package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -0
  259. package/dist/esm/{src/client → client}/v2/algod/accountApplicationInformation.js +0 -0
  260. package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -0
  261. package/dist/esm/{src/client → client}/v2/algod/accountAssetInformation.js +0 -0
  262. package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -0
  263. package/dist/esm/{src/client → client}/v2/algod/accountInformation.js +0 -0
  264. package/dist/esm/client/v2/algod/accountInformation.js.map +1 -0
  265. package/dist/esm/{src/client → client}/v2/algod/algod.js +0 -0
  266. package/dist/esm/client/v2/algod/algod.js.map +1 -0
  267. package/dist/esm/{src/client → client}/v2/algod/block.js +0 -0
  268. package/dist/esm/client/v2/algod/block.js.map +1 -0
  269. package/dist/esm/{src/client → client}/v2/algod/compile.js +0 -0
  270. package/dist/esm/client/v2/algod/compile.js.map +1 -0
  271. package/dist/esm/{src/client → client}/v2/algod/dryrun.js +0 -0
  272. package/dist/esm/client/v2/algod/dryrun.js.map +1 -0
  273. package/dist/esm/{src/client → client}/v2/algod/genesis.js +0 -0
  274. package/dist/esm/client/v2/algod/genesis.js.map +1 -0
  275. package/dist/esm/{src/client → client}/v2/algod/getApplicationBoxByName.js +0 -0
  276. package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -0
  277. package/dist/esm/{src/client → client}/v2/algod/getApplicationBoxes.js +0 -0
  278. package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -0
  279. package/dist/esm/{src/client → client}/v2/algod/getApplicationByID.js +0 -0
  280. package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -0
  281. package/dist/esm/{src/client → client}/v2/algod/getAssetByID.js +0 -0
  282. package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -0
  283. package/dist/esm/{src/client → client}/v2/algod/getBlockHash.js +0 -0
  284. package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -0
  285. package/dist/esm/{src/client → client}/v2/algod/getTransactionProof.js +0 -0
  286. package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -0
  287. package/dist/esm/{src/client → client}/v2/algod/healthCheck.js +0 -0
  288. package/dist/esm/client/v2/algod/healthCheck.js.map +1 -0
  289. package/dist/esm/{src/client → client}/v2/algod/lightBlockHeaderProof.js +0 -0
  290. package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -0
  291. package/dist/esm/client/v2/algod/models/types.js +1998 -0
  292. package/dist/esm/client/v2/algod/models/types.js.map +1 -0
  293. package/dist/esm/{src/client → client}/v2/algod/pendingTransactionInformation.js +0 -0
  294. package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -0
  295. package/dist/esm/{src/client → client}/v2/algod/pendingTransactions.js +0 -0
  296. package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -0
  297. package/dist/esm/{src/client → client}/v2/algod/pendingTransactionsByAddress.js +0 -0
  298. package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -0
  299. package/dist/esm/{src/client → client}/v2/algod/sendRawTransaction.js +0 -0
  300. package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -0
  301. package/dist/esm/{src/client → client}/v2/algod/stateproof.js +0 -0
  302. package/dist/esm/client/v2/algod/stateproof.js.map +1 -0
  303. package/dist/esm/{src/client → client}/v2/algod/status.js +0 -0
  304. package/dist/esm/client/v2/algod/status.js.map +1 -0
  305. package/dist/esm/{src/client → client}/v2/algod/statusAfterBlock.js +0 -0
  306. package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -0
  307. package/dist/esm/{src/client → client}/v2/algod/suggestedParams.js +0 -0
  308. package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -0
  309. package/dist/esm/{src/client → client}/v2/algod/supply.js +0 -0
  310. package/dist/esm/client/v2/algod/supply.js.map +1 -0
  311. package/dist/esm/{src/client → client}/v2/algod/versions.js +0 -0
  312. package/dist/esm/client/v2/algod/versions.js.map +1 -0
  313. package/dist/esm/{src/client → client}/v2/basemodel.js +0 -0
  314. package/dist/esm/client/v2/basemodel.js.map +1 -0
  315. package/dist/esm/{src/client → client}/v2/indexer/indexer.js +0 -0
  316. package/dist/esm/client/v2/indexer/indexer.js.map +1 -0
  317. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.js +0 -0
  318. package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -0
  319. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountAssets.js +0 -0
  320. package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -0
  321. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountByID.js +0 -0
  322. package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -0
  323. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.js +0 -0
  324. package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -0
  325. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.js +0 -0
  326. package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -0
  327. package/dist/esm/{src/client → client}/v2/indexer/lookupAccountTransactions.js +0 -0
  328. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -0
  329. package/dist/esm/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.js +0 -0
  330. package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -0
  331. package/dist/esm/{src/client → client}/v2/indexer/lookupApplicationLogs.js +0 -0
  332. package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -0
  333. package/dist/esm/{src/client → client}/v2/indexer/lookupApplications.js +0 -0
  334. package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -0
  335. package/dist/esm/{src/client → client}/v2/indexer/lookupAssetBalances.js +0 -0
  336. package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -0
  337. package/dist/esm/{src/client → client}/v2/indexer/lookupAssetByID.js +0 -0
  338. package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -0
  339. package/dist/esm/{src/client → client}/v2/indexer/lookupAssetTransactions.js +0 -0
  340. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -0
  341. package/dist/esm/{src/client → client}/v2/indexer/lookupBlock.js +0 -0
  342. package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -0
  343. package/dist/esm/{src/client → client}/v2/indexer/lookupTransactionByID.js +0 -0
  344. package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -0
  345. package/dist/esm/{src/client → client}/v2/indexer/makeHealthCheck.js +0 -0
  346. package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -0
  347. package/dist/esm/{src/client → client}/v2/indexer/models/types.js +0 -0
  348. package/dist/esm/client/v2/indexer/models/types.js.map +1 -0
  349. package/dist/esm/{src/client → client}/v2/indexer/searchAccounts.js +0 -0
  350. package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -0
  351. package/dist/esm/{src/client → client}/v2/indexer/searchForApplicationBoxes.js +0 -0
  352. package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -0
  353. package/dist/esm/{src/client → client}/v2/indexer/searchForApplications.js +0 -0
  354. package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -0
  355. package/dist/esm/{src/client → client}/v2/indexer/searchForAssets.js +0 -0
  356. package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -0
  357. package/dist/esm/{src/client → client}/v2/indexer/searchForTransactions.js +0 -0
  358. package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -0
  359. package/dist/esm/{src/client → client}/v2/jsonrequest.js +0 -0
  360. package/dist/esm/client/v2/jsonrequest.js.map +1 -0
  361. package/dist/esm/{src/client → client}/v2/serviceClient.js +0 -0
  362. package/dist/esm/client/v2/serviceClient.js.map +1 -0
  363. package/dist/esm/{src/composer.js → composer.js} +0 -0
  364. package/dist/esm/composer.js.map +1 -0
  365. package/dist/esm/{src/convert.js → convert.js} +0 -0
  366. package/dist/esm/convert.js.map +1 -0
  367. package/dist/esm/{src/dryrun.js → dryrun.js} +0 -0
  368. package/dist/esm/dryrun.js.map +1 -0
  369. package/dist/esm/{src/encoding → encoding}/address.js +0 -0
  370. package/dist/esm/encoding/address.js.map +1 -0
  371. package/dist/esm/{src/encoding → encoding}/bigint.js +0 -0
  372. package/dist/esm/encoding/bigint.js.map +1 -0
  373. package/dist/esm/{src/encoding → encoding}/encoding.js +0 -0
  374. package/dist/esm/encoding/encoding.js.map +1 -0
  375. package/dist/esm/{src/encoding → encoding}/uint64.js +0 -0
  376. package/dist/esm/encoding/uint64.js.map +1 -0
  377. package/dist/esm/{src/group.js → group.js} +0 -0
  378. package/dist/esm/group.js.map +1 -0
  379. package/dist/esm/index.js +2 -2
  380. package/dist/esm/index.js.map +1 -1
  381. package/dist/esm/{src/logic → logic}/langspec.json +0 -0
  382. package/dist/esm/{src/logic → logic}/logic.js +0 -0
  383. package/dist/esm/logic/logic.js.map +1 -0
  384. package/dist/esm/{src/logic → logic}/sourcemap.js +0 -0
  385. package/dist/esm/logic/sourcemap.js.map +1 -0
  386. package/dist/esm/{src/logicTemplates → logicTemplates}/dynamicfee.js +0 -0
  387. package/dist/esm/logicTemplates/dynamicfee.js.map +1 -0
  388. package/dist/esm/{src/logicTemplates → logicTemplates}/htlc.js +0 -0
  389. package/dist/esm/logicTemplates/htlc.js.map +1 -0
  390. package/dist/esm/{src/logicTemplates → logicTemplates}/index.js +0 -0
  391. package/dist/esm/logicTemplates/index.js.map +1 -0
  392. package/dist/esm/{src/logicTemplates → logicTemplates}/limitorder.js +0 -0
  393. package/dist/esm/logicTemplates/limitorder.js.map +1 -0
  394. package/dist/esm/{src/logicTemplates → logicTemplates}/periodicpayment.js +0 -0
  395. package/dist/esm/logicTemplates/periodicpayment.js.map +1 -0
  396. package/dist/esm/{src/logicTemplates → logicTemplates}/split.js +0 -0
  397. package/dist/esm/logicTemplates/split.js.map +1 -0
  398. package/dist/esm/{src/logicTemplates → logicTemplates}/templates.js +0 -0
  399. package/dist/esm/logicTemplates/templates.js.map +1 -0
  400. package/dist/esm/{src/logicsig.js → logicsig.js} +0 -0
  401. package/dist/esm/logicsig.js.map +1 -0
  402. package/dist/esm/{src/main.js → main.js} +0 -0
  403. package/dist/esm/main.js.map +1 -0
  404. package/dist/esm/{src/makeTxn.js → makeTxn.js} +0 -0
  405. package/dist/esm/makeTxn.js.map +1 -0
  406. package/dist/esm/{src/mnemonic → mnemonic}/mnemonic.js +0 -0
  407. package/dist/esm/mnemonic/mnemonic.js.map +1 -0
  408. package/dist/esm/{src/mnemonic → mnemonic}/wordlists/english.js +0 -0
  409. package/dist/esm/mnemonic/wordlists/english.js.map +1 -0
  410. package/dist/esm/multisig.js +364 -0
  411. package/dist/esm/multisig.js.map +1 -0
  412. package/dist/esm/{src/nacl → nacl}/naclWrappers.js +0 -0
  413. package/dist/esm/nacl/naclWrappers.js.map +1 -0
  414. package/dist/esm/{src/signer.js → signer.js} +0 -0
  415. package/dist/esm/signer.js.map +1 -0
  416. package/dist/esm/{src/transaction.js → transaction.js} +0 -0
  417. package/dist/esm/transaction.js.map +1 -0
  418. package/dist/esm/{src/types → types}/account.js +0 -0
  419. package/dist/esm/types/account.js.map +1 -0
  420. package/dist/esm/{src/types → types}/address.js +0 -0
  421. package/dist/esm/types/address.js.map +1 -0
  422. package/dist/esm/{src/types → types}/blockHeader.js +0 -0
  423. package/dist/esm/types/blockHeader.js.map +1 -0
  424. package/dist/esm/{src/types → types}/index.js +0 -0
  425. package/dist/esm/types/index.js.map +1 -0
  426. package/dist/esm/{src/types → types}/intDecoding.js +0 -0
  427. package/dist/esm/types/intDecoding.js.map +1 -0
  428. package/dist/esm/{src/types → types}/multisig.js +0 -0
  429. package/dist/esm/types/multisig.js.map +1 -0
  430. package/dist/esm/{src/types → types}/transactions/application.js +0 -0
  431. package/dist/esm/types/transactions/application.js.map +1 -0
  432. package/dist/esm/{src/types → types}/transactions/asset.js +0 -0
  433. package/dist/esm/types/transactions/asset.js.map +1 -0
  434. package/dist/esm/{src/types → types}/transactions/base.js +0 -0
  435. package/dist/esm/types/transactions/base.js.map +1 -0
  436. package/dist/esm/{src/types → types}/transactions/builder.js +0 -0
  437. package/dist/esm/types/transactions/builder.js.map +1 -0
  438. package/dist/esm/{src/types → types}/transactions/encoded.js +0 -0
  439. package/dist/esm/types/transactions/encoded.js.map +1 -0
  440. package/dist/esm/{src/types → types}/transactions/index.js +0 -0
  441. package/dist/esm/types/transactions/index.js.map +1 -0
  442. package/dist/esm/{src/types → types}/transactions/keyreg.js +0 -0
  443. package/dist/esm/types/transactions/keyreg.js.map +1 -0
  444. package/dist/esm/{src/types → types}/transactions/payment.js +0 -0
  445. package/dist/esm/types/transactions/payment.js.map +1 -0
  446. package/dist/esm/{src/types → types}/transactions/stateproof.js +0 -0
  447. package/dist/esm/types/transactions/stateproof.js.map +1 -0
  448. package/dist/esm/{src/types → types}/utils.js +0 -0
  449. package/dist/esm/types/utils.js.map +1 -0
  450. package/dist/esm/{src/utils → utils}/utils.js +0 -0
  451. package/dist/esm/utils/utils.js.map +1 -0
  452. package/dist/esm/{src/wait.js → wait.js} +0 -0
  453. package/dist/esm/wait.js.map +1 -0
  454. package/dist/types/{src/abi → abi}/abi_type.d.ts +0 -0
  455. package/dist/types/{src/abi → abi}/contract.d.ts +0 -0
  456. package/dist/types/{src/abi → abi}/index.d.ts +0 -0
  457. package/dist/types/{src/abi → abi}/interface.d.ts +0 -0
  458. package/dist/types/{src/abi → abi}/method.d.ts +0 -0
  459. package/dist/types/{src/abi → abi}/reference.d.ts +0 -0
  460. package/dist/types/{src/abi → abi}/transaction.d.ts +0 -0
  461. package/dist/types/{src/account.d.ts → account.d.ts} +0 -0
  462. package/dist/types/{src/bid.d.ts → bid.d.ts} +0 -0
  463. package/dist/types/{src/boxStorage.d.ts → boxStorage.d.ts} +0 -0
  464. package/dist/types/{src/client → client}/algod.d.ts +0 -0
  465. package/dist/types/{src/client → client}/baseHTTPClient.d.ts +0 -0
  466. package/dist/types/{src/client → client}/client.d.ts +0 -0
  467. package/dist/types/{src/client → client}/kmd.d.ts +0 -0
  468. package/dist/types/{src/client → client}/urlTokenBaseHTTPClient.d.ts +0 -0
  469. package/dist/types/{src/client → client}/v2/algod/accountApplicationInformation.d.ts +0 -0
  470. package/dist/types/{src/client → client}/v2/algod/accountAssetInformation.d.ts +0 -0
  471. package/dist/types/{src/client → client}/v2/algod/accountInformation.d.ts +0 -0
  472. package/dist/types/{src/client → client}/v2/algod/algod.d.ts +0 -0
  473. package/dist/types/{src/client → client}/v2/algod/block.d.ts +0 -0
  474. package/dist/types/{src/client → client}/v2/algod/compile.d.ts +0 -0
  475. package/dist/types/{src/client → client}/v2/algod/dryrun.d.ts +0 -0
  476. package/dist/types/{src/client → client}/v2/algod/genesis.d.ts +0 -0
  477. package/dist/types/{src/client → client}/v2/algod/getApplicationBoxByName.d.ts +0 -0
  478. package/dist/types/{src/client → client}/v2/algod/getApplicationBoxes.d.ts +0 -0
  479. package/dist/types/{src/client → client}/v2/algod/getApplicationByID.d.ts +0 -0
  480. package/dist/types/{src/client → client}/v2/algod/getAssetByID.d.ts +0 -0
  481. package/dist/types/{src/client → client}/v2/algod/getBlockHash.d.ts +0 -0
  482. package/dist/types/{src/client → client}/v2/algod/getTransactionProof.d.ts +0 -0
  483. package/dist/types/{src/client → client}/v2/algod/healthCheck.d.ts +0 -0
  484. package/dist/types/{src/client → client}/v2/algod/lightBlockHeaderProof.d.ts +0 -0
  485. package/dist/types/client/v2/algod/models/types.d.ts +1634 -0
  486. package/dist/types/{src/client → client}/v2/algod/pendingTransactionInformation.d.ts +0 -0
  487. package/dist/types/{src/client → client}/v2/algod/pendingTransactions.d.ts +0 -0
  488. package/dist/types/{src/client → client}/v2/algod/pendingTransactionsByAddress.d.ts +0 -0
  489. package/dist/types/{src/client → client}/v2/algod/sendRawTransaction.d.ts +0 -0
  490. package/dist/types/{src/client → client}/v2/algod/stateproof.d.ts +0 -0
  491. package/dist/types/{src/client → client}/v2/algod/status.d.ts +0 -0
  492. package/dist/types/{src/client → client}/v2/algod/statusAfterBlock.d.ts +0 -0
  493. package/dist/types/{src/client → client}/v2/algod/suggestedParams.d.ts +0 -0
  494. package/dist/types/{src/client → client}/v2/algod/supply.d.ts +0 -0
  495. package/dist/types/{src/client → client}/v2/algod/versions.d.ts +0 -0
  496. package/dist/types/{src/client → client}/v2/basemodel.d.ts +0 -0
  497. package/dist/types/{src/client → client}/v2/indexer/indexer.d.ts +0 -0
  498. package/dist/types/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.d.ts +0 -0
  499. package/dist/types/{src/client → client}/v2/indexer/lookupAccountAssets.d.ts +0 -0
  500. package/dist/types/{src/client → client}/v2/indexer/lookupAccountByID.d.ts +0 -0
  501. package/dist/types/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.d.ts +0 -0
  502. package/dist/types/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.d.ts +0 -0
  503. package/dist/types/{src/client → client}/v2/indexer/lookupAccountTransactions.d.ts +0 -0
  504. package/dist/types/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.d.ts +0 -0
  505. package/dist/types/{src/client → client}/v2/indexer/lookupApplicationLogs.d.ts +0 -0
  506. package/dist/types/{src/client → client}/v2/indexer/lookupApplications.d.ts +0 -0
  507. package/dist/types/{src/client → client}/v2/indexer/lookupAssetBalances.d.ts +0 -0
  508. package/dist/types/{src/client → client}/v2/indexer/lookupAssetByID.d.ts +0 -0
  509. package/dist/types/{src/client → client}/v2/indexer/lookupAssetTransactions.d.ts +0 -0
  510. package/dist/types/{src/client → client}/v2/indexer/lookupBlock.d.ts +0 -0
  511. package/dist/types/{src/client → client}/v2/indexer/lookupTransactionByID.d.ts +0 -0
  512. package/dist/types/{src/client → client}/v2/indexer/makeHealthCheck.d.ts +0 -0
  513. package/dist/types/{src/client → client}/v2/indexer/models/types.d.ts +0 -0
  514. package/dist/types/{src/client → client}/v2/indexer/searchAccounts.d.ts +0 -0
  515. package/dist/types/{src/client → client}/v2/indexer/searchForApplicationBoxes.d.ts +0 -0
  516. package/dist/types/{src/client → client}/v2/indexer/searchForApplications.d.ts +0 -0
  517. package/dist/types/{src/client → client}/v2/indexer/searchForAssets.d.ts +0 -0
  518. package/dist/types/{src/client → client}/v2/indexer/searchForTransactions.d.ts +0 -0
  519. package/dist/types/{src/client → client}/v2/jsonrequest.d.ts +0 -0
  520. package/dist/types/{src/client → client}/v2/serviceClient.d.ts +0 -0
  521. package/dist/types/{src/composer.d.ts → composer.d.ts} +0 -0
  522. package/dist/types/{src/convert.d.ts → convert.d.ts} +0 -0
  523. package/dist/types/{src/dryrun.d.ts → dryrun.d.ts} +0 -0
  524. package/dist/types/{src/encoding → encoding}/address.d.ts +0 -0
  525. package/dist/types/{src/encoding → encoding}/bigint.d.ts +0 -0
  526. package/dist/types/{src/encoding → encoding}/encoding.d.ts +0 -0
  527. package/dist/types/{src/encoding → encoding}/uint64.d.ts +0 -0
  528. package/dist/types/{src/group.d.ts → group.d.ts} +0 -0
  529. package/dist/types/index.d.ts +2 -2
  530. package/dist/types/{src/logic → logic}/logic.d.ts +0 -0
  531. package/dist/types/{src/logic → logic}/sourcemap.d.ts +0 -0
  532. package/dist/types/{src/logicTemplates → logicTemplates}/dynamicfee.d.ts +0 -0
  533. package/dist/types/{src/logicTemplates → logicTemplates}/htlc.d.ts +0 -0
  534. package/dist/types/{src/logicTemplates → logicTemplates}/index.d.ts +0 -0
  535. package/dist/types/{src/logicTemplates → logicTemplates}/limitorder.d.ts +0 -0
  536. package/dist/types/{src/logicTemplates → logicTemplates}/periodicpayment.d.ts +0 -0
  537. package/dist/types/{src/logicTemplates → logicTemplates}/split.d.ts +0 -0
  538. package/dist/types/{src/logicTemplates → logicTemplates}/templates.d.ts +0 -0
  539. package/dist/types/{src/logicsig.d.ts → logicsig.d.ts} +0 -0
  540. package/dist/types/{src/main.d.ts → main.d.ts} +0 -0
  541. package/dist/types/{src/makeTxn.d.ts → makeTxn.d.ts} +0 -0
  542. package/dist/types/{src/mnemonic → mnemonic}/mnemonic.d.ts +0 -0
  543. package/dist/types/{src/mnemonic → mnemonic}/wordlists/english.d.ts +0 -0
  544. package/dist/types/multisig.d.ts +125 -0
  545. package/dist/types/{src/nacl → nacl}/naclWrappers.d.ts +0 -0
  546. package/dist/types/{src/signer.d.ts → signer.d.ts} +0 -0
  547. package/dist/types/{src/transaction.d.ts → transaction.d.ts} +0 -0
  548. package/dist/types/{src/types → types}/account.d.ts +0 -0
  549. package/dist/types/{src/types → types}/address.d.ts +0 -0
  550. package/dist/types/{src/types → types}/blockHeader.d.ts +0 -0
  551. package/dist/types/{src/types → types}/index.d.ts +0 -0
  552. package/dist/types/{src/types → types}/intDecoding.d.ts +0 -0
  553. package/dist/types/{src/types → types}/multisig.d.ts +0 -0
  554. package/dist/types/{src/types → types}/transactions/application.d.ts +0 -0
  555. package/dist/types/{src/types → types}/transactions/asset.d.ts +0 -0
  556. package/dist/types/{src/types → types}/transactions/base.d.ts +0 -0
  557. package/dist/types/{src/types → types}/transactions/builder.d.ts +0 -0
  558. package/dist/types/{src/types → types}/transactions/encoded.d.ts +0 -0
  559. package/dist/types/{src/types → types}/transactions/index.d.ts +0 -0
  560. package/dist/types/{src/types → types}/transactions/keyreg.d.ts +0 -0
  561. package/dist/types/{src/types → types}/transactions/payment.d.ts +0 -0
  562. package/dist/types/{src/types → types}/transactions/stateproof.d.ts +0 -0
  563. package/dist/types/{src/types → types}/utils.d.ts +0 -0
  564. package/dist/types/{src/utils → utils}/utils.d.ts +0 -0
  565. package/dist/types/{src/wait.d.ts → wait.d.ts} +0 -0
  566. package/package.json +10 -6
  567. package/src/abi/abi_type.ts +846 -0
  568. package/src/abi/contract.ts +51 -0
  569. package/src/abi/index.ts +6 -0
  570. package/src/abi/interface.ts +35 -0
  571. package/src/abi/method.ts +186 -0
  572. package/src/abi/reference.ts +24 -0
  573. package/src/abi/transaction.ts +61 -0
  574. package/src/account.ts +12 -0
  575. package/src/bid.ts +95 -0
  576. package/src/boxStorage.ts +42 -0
  577. package/src/client/algod.js +365 -0
  578. package/src/client/baseHTTPClient.ts +58 -0
  579. package/src/client/client.ts +306 -0
  580. package/src/client/kmd.ts +423 -0
  581. package/src/client/urlTokenBaseHTTPClient.ts +217 -0
  582. package/src/client/v2/algod/accountApplicationInformation.ts +20 -0
  583. package/src/client/v2/algod/accountAssetInformation.ts +20 -0
  584. package/src/client/v2/algod/accountInformation.ts +37 -0
  585. package/src/client/v2/algod/algod.ts +561 -0
  586. package/src/client/v2/algod/block.ts +30 -0
  587. package/src/client/v2/algod/compile.ts +50 -0
  588. package/src/client/v2/algod/dryrun.ts +33 -0
  589. package/src/client/v2/algod/genesis.ts +8 -0
  590. package/src/client/v2/algod/getApplicationBoxByName.ts +49 -0
  591. package/src/client/v2/algod/getApplicationBoxes.ts +61 -0
  592. package/src/client/v2/algod/getApplicationByID.ts +14 -0
  593. package/src/client/v2/algod/getAssetByID.ts +14 -0
  594. package/src/client/v2/algod/getBlockHash.ts +18 -0
  595. package/src/client/v2/algod/getTransactionProof.ts +43 -0
  596. package/src/client/v2/algod/healthCheck.ts +19 -0
  597. package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -0
  598. package/src/client/v2/algod/models/types.ts +3662 -0
  599. package/src/client/v2/algod/pendingTransactionInformation.ts +32 -0
  600. package/src/client/v2/algod/pendingTransactions.ts +32 -0
  601. package/src/client/v2/algod/pendingTransactionsByAddress.ts +32 -0
  602. package/src/client/v2/algod/sendRawTransaction.ts +59 -0
  603. package/src/client/v2/algod/stateproof.ts +15 -0
  604. package/src/client/v2/algod/status.ts +8 -0
  605. package/src/client/v2/algod/statusAfterBlock.ts +15 -0
  606. package/src/client/v2/algod/suggestedParams.ts +24 -0
  607. package/src/client/v2/algod/supply.ts +8 -0
  608. package/src/client/v2/algod/versions.ts +11 -0
  609. package/src/client/v2/basemodel.ts +79 -0
  610. package/src/client/v2/indexer/indexer.ts +432 -0
  611. package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +140 -0
  612. package/src/client/v2/indexer/lookupAccountAssets.ts +141 -0
  613. package/src/client/v2/indexer/lookupAccountByID.ts +109 -0
  614. package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +141 -0
  615. package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +142 -0
  616. package/src/client/v2/indexer/lookupAccountTransactions.ts +393 -0
  617. package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +50 -0
  618. package/src/client/v2/indexer/lookupApplicationLogs.ts +156 -0
  619. package/src/client/v2/indexer/lookupApplications.ts +59 -0
  620. package/src/client/v2/indexer/lookupAssetBalances.ts +146 -0
  621. package/src/client/v2/indexer/lookupAssetByID.ts +58 -0
  622. package/src/client/v2/indexer/lookupAssetTransactions.ts +406 -0
  623. package/src/client/v2/indexer/lookupBlock.ts +39 -0
  624. package/src/client/v2/indexer/lookupTransactionByID.ts +30 -0
  625. package/src/client/v2/indexer/makeHealthCheck.ts +23 -0
  626. package/src/client/v2/indexer/models/types.ts +5667 -0
  627. package/src/client/v2/indexer/searchAccounts.ts +268 -0
  628. package/src/client/v2/indexer/searchForApplicationBoxes.ts +101 -0
  629. package/src/client/v2/indexer/searchForApplications.ts +134 -0
  630. package/src/client/v2/indexer/searchForAssets.ts +175 -0
  631. package/src/client/v2/indexer/searchForTransactions.ts +435 -0
  632. package/src/client/v2/jsonrequest.ts +103 -0
  633. package/src/client/v2/serviceClient.ts +86 -0
  634. package/src/composer.ts +688 -0
  635. package/src/convert.ts +25 -0
  636. package/src/dryrun.ts +468 -0
  637. package/src/encoding/address.ts +191 -0
  638. package/src/encoding/bigint.ts +33 -0
  639. package/src/encoding/encoding.ts +56 -0
  640. package/src/encoding/uint64.ts +84 -0
  641. package/src/group.ts +97 -0
  642. package/src/index.ts +4 -0
  643. package/src/logic/langspec.json +2014 -0
  644. package/src/logic/logic.ts +316 -0
  645. package/src/logic/sourcemap.ts +67 -0
  646. package/src/logicTemplates/dynamicfee.js +219 -0
  647. package/src/logicTemplates/htlc.js +165 -0
  648. package/src/logicTemplates/index.js +20 -0
  649. package/src/logicTemplates/limitorder.js +227 -0
  650. package/src/logicTemplates/periodicpayment.js +208 -0
  651. package/src/logicTemplates/split.js +208 -0
  652. package/src/logicTemplates/templates.js +78 -0
  653. package/src/logicsig.ts +523 -0
  654. package/src/main.ts +185 -0
  655. package/src/makeTxn.ts +1871 -0
  656. package/src/mnemonic/mnemonic.ts +181 -0
  657. package/src/mnemonic/wordlists/english.ts +2052 -0
  658. package/src/multisig.ts +495 -0
  659. package/src/nacl/naclWrappers.ts +49 -0
  660. package/src/signer.ts +105 -0
  661. package/src/transaction.ts +1363 -0
  662. package/src/types/account.ts +16 -0
  663. package/src/types/address.ts +7 -0
  664. package/src/types/blockHeader.ts +81 -0
  665. package/src/types/index.ts +3 -0
  666. package/src/types/intDecoding.ts +29 -0
  667. package/src/types/multisig.ts +22 -0
  668. package/src/types/transactions/application.ts +111 -0
  669. package/src/types/transactions/asset.ts +108 -0
  670. package/src/types/transactions/base.ts +428 -0
  671. package/src/types/transactions/builder.ts +69 -0
  672. package/src/types/transactions/encoded.ts +423 -0
  673. package/src/types/transactions/index.ts +72 -0
  674. package/src/types/transactions/keyreg.ts +23 -0
  675. package/src/types/transactions/payment.ts +14 -0
  676. package/src/types/transactions/stateproof.ts +17 -0
  677. package/src/types/utils.ts +63 -0
  678. package/src/utils/utils.ts +121 -0
  679. package/src/wait.ts +58 -0
  680. package/dist/cjs/src/abi/abi_type.js +0 -693
  681. package/dist/cjs/src/abi/abi_type.js.map +0 -1
  682. package/dist/cjs/src/abi/contract.js.map +0 -1
  683. package/dist/cjs/src/abi/index.js.map +0 -1
  684. package/dist/cjs/src/abi/interface.js.map +0 -1
  685. package/dist/cjs/src/abi/method.js.map +0 -1
  686. package/dist/cjs/src/abi/reference.js.map +0 -1
  687. package/dist/cjs/src/abi/transaction.js.map +0 -1
  688. package/dist/cjs/src/account.js.map +0 -1
  689. package/dist/cjs/src/bid.js.map +0 -1
  690. package/dist/cjs/src/boxStorage.js.map +0 -1
  691. package/dist/cjs/src/client/algod.js.map +0 -1
  692. package/dist/cjs/src/client/baseHTTPClient.js.map +0 -1
  693. package/dist/cjs/src/client/client.js.map +0 -1
  694. package/dist/cjs/src/client/kmd.js.map +0 -1
  695. package/dist/cjs/src/client/urlTokenBaseHTTPClient.js.map +0 -1
  696. package/dist/cjs/src/client/v2/algod/accountApplicationInformation.js.map +0 -1
  697. package/dist/cjs/src/client/v2/algod/accountAssetInformation.js.map +0 -1
  698. package/dist/cjs/src/client/v2/algod/accountInformation.js.map +0 -1
  699. package/dist/cjs/src/client/v2/algod/algod.js.map +0 -1
  700. package/dist/cjs/src/client/v2/algod/block.js.map +0 -1
  701. package/dist/cjs/src/client/v2/algod/compile.js.map +0 -1
  702. package/dist/cjs/src/client/v2/algod/dryrun.js.map +0 -1
  703. package/dist/cjs/src/client/v2/algod/genesis.js.map +0 -1
  704. package/dist/cjs/src/client/v2/algod/getApplicationBoxByName.js.map +0 -1
  705. package/dist/cjs/src/client/v2/algod/getApplicationBoxes.js.map +0 -1
  706. package/dist/cjs/src/client/v2/algod/getApplicationByID.js.map +0 -1
  707. package/dist/cjs/src/client/v2/algod/getAssetByID.js.map +0 -1
  708. package/dist/cjs/src/client/v2/algod/getBlockHash.js.map +0 -1
  709. package/dist/cjs/src/client/v2/algod/getTransactionProof.js.map +0 -1
  710. package/dist/cjs/src/client/v2/algod/healthCheck.js.map +0 -1
  711. package/dist/cjs/src/client/v2/algod/lightBlockHeaderProof.js.map +0 -1
  712. package/dist/cjs/src/client/v2/algod/models/types.js +0 -2033
  713. package/dist/cjs/src/client/v2/algod/models/types.js.map +0 -1
  714. package/dist/cjs/src/client/v2/algod/pendingTransactionInformation.js.map +0 -1
  715. package/dist/cjs/src/client/v2/algod/pendingTransactions.js.map +0 -1
  716. package/dist/cjs/src/client/v2/algod/pendingTransactionsByAddress.js.map +0 -1
  717. package/dist/cjs/src/client/v2/algod/sendRawTransaction.js.map +0 -1
  718. package/dist/cjs/src/client/v2/algod/stateproof.js.map +0 -1
  719. package/dist/cjs/src/client/v2/algod/status.js.map +0 -1
  720. package/dist/cjs/src/client/v2/algod/statusAfterBlock.js.map +0 -1
  721. package/dist/cjs/src/client/v2/algod/suggestedParams.js.map +0 -1
  722. package/dist/cjs/src/client/v2/algod/supply.js.map +0 -1
  723. package/dist/cjs/src/client/v2/algod/versions.js.map +0 -1
  724. package/dist/cjs/src/client/v2/basemodel.js.map +0 -1
  725. package/dist/cjs/src/client/v2/indexer/indexer.js.map +0 -1
  726. package/dist/cjs/src/client/v2/indexer/lookupAccountAppLocalStates.js.map +0 -1
  727. package/dist/cjs/src/client/v2/indexer/lookupAccountAssets.js.map +0 -1
  728. package/dist/cjs/src/client/v2/indexer/lookupAccountByID.js.map +0 -1
  729. package/dist/cjs/src/client/v2/indexer/lookupAccountCreatedApplications.js.map +0 -1
  730. package/dist/cjs/src/client/v2/indexer/lookupAccountCreatedAssets.js.map +0 -1
  731. package/dist/cjs/src/client/v2/indexer/lookupAccountTransactions.js.map +0 -1
  732. package/dist/cjs/src/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +0 -1
  733. package/dist/cjs/src/client/v2/indexer/lookupApplicationLogs.js.map +0 -1
  734. package/dist/cjs/src/client/v2/indexer/lookupApplications.js.map +0 -1
  735. package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js.map +0 -1
  736. package/dist/cjs/src/client/v2/indexer/lookupAssetByID.js.map +0 -1
  737. package/dist/cjs/src/client/v2/indexer/lookupAssetTransactions.js.map +0 -1
  738. package/dist/cjs/src/client/v2/indexer/lookupBlock.js.map +0 -1
  739. package/dist/cjs/src/client/v2/indexer/lookupTransactionByID.js.map +0 -1
  740. package/dist/cjs/src/client/v2/indexer/makeHealthCheck.js.map +0 -1
  741. package/dist/cjs/src/client/v2/indexer/models/types.js.map +0 -1
  742. package/dist/cjs/src/client/v2/indexer/searchAccounts.js.map +0 -1
  743. package/dist/cjs/src/client/v2/indexer/searchForApplicationBoxes.js.map +0 -1
  744. package/dist/cjs/src/client/v2/indexer/searchForApplications.js.map +0 -1
  745. package/dist/cjs/src/client/v2/indexer/searchForAssets.js.map +0 -1
  746. package/dist/cjs/src/client/v2/indexer/searchForTransactions.js.map +0 -1
  747. package/dist/cjs/src/client/v2/jsonrequest.js.map +0 -1
  748. package/dist/cjs/src/client/v2/serviceClient.js.map +0 -1
  749. package/dist/cjs/src/composer.js.map +0 -1
  750. package/dist/cjs/src/convert.js.map +0 -1
  751. package/dist/cjs/src/dryrun.js.map +0 -1
  752. package/dist/cjs/src/encoding/address.js.map +0 -1
  753. package/dist/cjs/src/encoding/bigint.js.map +0 -1
  754. package/dist/cjs/src/encoding/encoding.js.map +0 -1
  755. package/dist/cjs/src/encoding/uint64.js.map +0 -1
  756. package/dist/cjs/src/group.js.map +0 -1
  757. package/dist/cjs/src/logic/logic.js.map +0 -1
  758. package/dist/cjs/src/logic/sourcemap.js.map +0 -1
  759. package/dist/cjs/src/logicTemplates/dynamicfee.js.map +0 -1
  760. package/dist/cjs/src/logicTemplates/htlc.js.map +0 -1
  761. package/dist/cjs/src/logicTemplates/index.js.map +0 -1
  762. package/dist/cjs/src/logicTemplates/limitorder.js.map +0 -1
  763. package/dist/cjs/src/logicTemplates/periodicpayment.js.map +0 -1
  764. package/dist/cjs/src/logicTemplates/split.js.map +0 -1
  765. package/dist/cjs/src/logicTemplates/templates.js.map +0 -1
  766. package/dist/cjs/src/logicsig.js.map +0 -1
  767. package/dist/cjs/src/main.js.map +0 -1
  768. package/dist/cjs/src/makeTxn.js.map +0 -1
  769. package/dist/cjs/src/mnemonic/mnemonic.js.map +0 -1
  770. package/dist/cjs/src/mnemonic/wordlists/english.js.map +0 -1
  771. package/dist/cjs/src/multisig.js +0 -398
  772. package/dist/cjs/src/multisig.js.map +0 -1
  773. package/dist/cjs/src/nacl/naclWrappers.js.map +0 -1
  774. package/dist/cjs/src/signer.js.map +0 -1
  775. package/dist/cjs/src/transaction.js.map +0 -1
  776. package/dist/cjs/src/types/account.js.map +0 -1
  777. package/dist/cjs/src/types/address.js.map +0 -1
  778. package/dist/cjs/src/types/blockHeader.js.map +0 -1
  779. package/dist/cjs/src/types/index.js.map +0 -1
  780. package/dist/cjs/src/types/intDecoding.js.map +0 -1
  781. package/dist/cjs/src/types/multisig.js.map +0 -1
  782. package/dist/cjs/src/types/transactions/application.js.map +0 -1
  783. package/dist/cjs/src/types/transactions/asset.js.map +0 -1
  784. package/dist/cjs/src/types/transactions/base.js.map +0 -1
  785. package/dist/cjs/src/types/transactions/builder.js.map +0 -1
  786. package/dist/cjs/src/types/transactions/encoded.js.map +0 -1
  787. package/dist/cjs/src/types/transactions/index.js.map +0 -1
  788. package/dist/cjs/src/types/transactions/keyreg.js.map +0 -1
  789. package/dist/cjs/src/types/transactions/payment.js.map +0 -1
  790. package/dist/cjs/src/types/transactions/stateproof.js.map +0 -1
  791. package/dist/cjs/src/types/utils.js.map +0 -1
  792. package/dist/cjs/src/utils/utils.js.map +0 -1
  793. package/dist/cjs/src/wait.js.map +0 -1
  794. package/dist/esm/src/abi/abi_type.js +0 -680
  795. package/dist/esm/src/abi/abi_type.js.map +0 -1
  796. package/dist/esm/src/abi/contract.js.map +0 -1
  797. package/dist/esm/src/abi/index.js.map +0 -1
  798. package/dist/esm/src/abi/interface.js.map +0 -1
  799. package/dist/esm/src/abi/method.js.map +0 -1
  800. package/dist/esm/src/abi/reference.js.map +0 -1
  801. package/dist/esm/src/abi/transaction.js.map +0 -1
  802. package/dist/esm/src/account.js.map +0 -1
  803. package/dist/esm/src/bid.js.map +0 -1
  804. package/dist/esm/src/boxStorage.js.map +0 -1
  805. package/dist/esm/src/client/algod.js.map +0 -1
  806. package/dist/esm/src/client/baseHTTPClient.js.map +0 -1
  807. package/dist/esm/src/client/client.js.map +0 -1
  808. package/dist/esm/src/client/kmd.js.map +0 -1
  809. package/dist/esm/src/client/urlTokenBaseHTTPClient.js.map +0 -1
  810. package/dist/esm/src/client/v2/algod/accountApplicationInformation.js.map +0 -1
  811. package/dist/esm/src/client/v2/algod/accountAssetInformation.js.map +0 -1
  812. package/dist/esm/src/client/v2/algod/accountInformation.js.map +0 -1
  813. package/dist/esm/src/client/v2/algod/algod.js.map +0 -1
  814. package/dist/esm/src/client/v2/algod/block.js.map +0 -1
  815. package/dist/esm/src/client/v2/algod/compile.js.map +0 -1
  816. package/dist/esm/src/client/v2/algod/dryrun.js.map +0 -1
  817. package/dist/esm/src/client/v2/algod/genesis.js.map +0 -1
  818. package/dist/esm/src/client/v2/algod/getApplicationBoxByName.js.map +0 -1
  819. package/dist/esm/src/client/v2/algod/getApplicationBoxes.js.map +0 -1
  820. package/dist/esm/src/client/v2/algod/getApplicationByID.js.map +0 -1
  821. package/dist/esm/src/client/v2/algod/getAssetByID.js.map +0 -1
  822. package/dist/esm/src/client/v2/algod/getBlockHash.js.map +0 -1
  823. package/dist/esm/src/client/v2/algod/getTransactionProof.js.map +0 -1
  824. package/dist/esm/src/client/v2/algod/healthCheck.js.map +0 -1
  825. package/dist/esm/src/client/v2/algod/lightBlockHeaderProof.js.map +0 -1
  826. package/dist/esm/src/client/v2/algod/models/types.js +0 -1984
  827. package/dist/esm/src/client/v2/algod/models/types.js.map +0 -1
  828. package/dist/esm/src/client/v2/algod/pendingTransactionInformation.js.map +0 -1
  829. package/dist/esm/src/client/v2/algod/pendingTransactions.js.map +0 -1
  830. package/dist/esm/src/client/v2/algod/pendingTransactionsByAddress.js.map +0 -1
  831. package/dist/esm/src/client/v2/algod/sendRawTransaction.js.map +0 -1
  832. package/dist/esm/src/client/v2/algod/stateproof.js.map +0 -1
  833. package/dist/esm/src/client/v2/algod/status.js.map +0 -1
  834. package/dist/esm/src/client/v2/algod/statusAfterBlock.js.map +0 -1
  835. package/dist/esm/src/client/v2/algod/suggestedParams.js.map +0 -1
  836. package/dist/esm/src/client/v2/algod/supply.js.map +0 -1
  837. package/dist/esm/src/client/v2/algod/versions.js.map +0 -1
  838. package/dist/esm/src/client/v2/basemodel.js.map +0 -1
  839. package/dist/esm/src/client/v2/indexer/indexer.js.map +0 -1
  840. package/dist/esm/src/client/v2/indexer/lookupAccountAppLocalStates.js.map +0 -1
  841. package/dist/esm/src/client/v2/indexer/lookupAccountAssets.js.map +0 -1
  842. package/dist/esm/src/client/v2/indexer/lookupAccountByID.js.map +0 -1
  843. package/dist/esm/src/client/v2/indexer/lookupAccountCreatedApplications.js.map +0 -1
  844. package/dist/esm/src/client/v2/indexer/lookupAccountCreatedAssets.js.map +0 -1
  845. package/dist/esm/src/client/v2/indexer/lookupAccountTransactions.js.map +0 -1
  846. package/dist/esm/src/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +0 -1
  847. package/dist/esm/src/client/v2/indexer/lookupApplicationLogs.js.map +0 -1
  848. package/dist/esm/src/client/v2/indexer/lookupApplications.js.map +0 -1
  849. package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js.map +0 -1
  850. package/dist/esm/src/client/v2/indexer/lookupAssetByID.js.map +0 -1
  851. package/dist/esm/src/client/v2/indexer/lookupAssetTransactions.js.map +0 -1
  852. package/dist/esm/src/client/v2/indexer/lookupBlock.js.map +0 -1
  853. package/dist/esm/src/client/v2/indexer/lookupTransactionByID.js.map +0 -1
  854. package/dist/esm/src/client/v2/indexer/makeHealthCheck.js.map +0 -1
  855. package/dist/esm/src/client/v2/indexer/models/types.js.map +0 -1
  856. package/dist/esm/src/client/v2/indexer/searchAccounts.js.map +0 -1
  857. package/dist/esm/src/client/v2/indexer/searchForApplicationBoxes.js.map +0 -1
  858. package/dist/esm/src/client/v2/indexer/searchForApplications.js.map +0 -1
  859. package/dist/esm/src/client/v2/indexer/searchForAssets.js.map +0 -1
  860. package/dist/esm/src/client/v2/indexer/searchForTransactions.js.map +0 -1
  861. package/dist/esm/src/client/v2/jsonrequest.js.map +0 -1
  862. package/dist/esm/src/client/v2/serviceClient.js.map +0 -1
  863. package/dist/esm/src/composer.js.map +0 -1
  864. package/dist/esm/src/convert.js.map +0 -1
  865. package/dist/esm/src/dryrun.js.map +0 -1
  866. package/dist/esm/src/encoding/address.js.map +0 -1
  867. package/dist/esm/src/encoding/bigint.js.map +0 -1
  868. package/dist/esm/src/encoding/encoding.js.map +0 -1
  869. package/dist/esm/src/encoding/uint64.js.map +0 -1
  870. package/dist/esm/src/group.js.map +0 -1
  871. package/dist/esm/src/logic/logic.js.map +0 -1
  872. package/dist/esm/src/logic/sourcemap.js.map +0 -1
  873. package/dist/esm/src/logicTemplates/dynamicfee.js.map +0 -1
  874. package/dist/esm/src/logicTemplates/htlc.js.map +0 -1
  875. package/dist/esm/src/logicTemplates/index.js.map +0 -1
  876. package/dist/esm/src/logicTemplates/limitorder.js.map +0 -1
  877. package/dist/esm/src/logicTemplates/periodicpayment.js.map +0 -1
  878. package/dist/esm/src/logicTemplates/split.js.map +0 -1
  879. package/dist/esm/src/logicTemplates/templates.js.map +0 -1
  880. package/dist/esm/src/logicsig.js.map +0 -1
  881. package/dist/esm/src/main.js.map +0 -1
  882. package/dist/esm/src/makeTxn.js.map +0 -1
  883. package/dist/esm/src/mnemonic/mnemonic.js.map +0 -1
  884. package/dist/esm/src/mnemonic/wordlists/english.js.map +0 -1
  885. package/dist/esm/src/multisig.js +0 -364
  886. package/dist/esm/src/multisig.js.map +0 -1
  887. package/dist/esm/src/nacl/naclWrappers.js.map +0 -1
  888. package/dist/esm/src/signer.js.map +0 -1
  889. package/dist/esm/src/transaction.js.map +0 -1
  890. package/dist/esm/src/types/account.js.map +0 -1
  891. package/dist/esm/src/types/address.js.map +0 -1
  892. package/dist/esm/src/types/blockHeader.js.map +0 -1
  893. package/dist/esm/src/types/index.js.map +0 -1
  894. package/dist/esm/src/types/intDecoding.js.map +0 -1
  895. package/dist/esm/src/types/multisig.js.map +0 -1
  896. package/dist/esm/src/types/transactions/application.js.map +0 -1
  897. package/dist/esm/src/types/transactions/asset.js.map +0 -1
  898. package/dist/esm/src/types/transactions/base.js.map +0 -1
  899. package/dist/esm/src/types/transactions/builder.js.map +0 -1
  900. package/dist/esm/src/types/transactions/encoded.js.map +0 -1
  901. package/dist/esm/src/types/transactions/index.js.map +0 -1
  902. package/dist/esm/src/types/transactions/keyreg.js.map +0 -1
  903. package/dist/esm/src/types/transactions/payment.js.map +0 -1
  904. package/dist/esm/src/types/transactions/stateproof.js.map +0 -1
  905. package/dist/esm/src/types/utils.js.map +0 -1
  906. package/dist/esm/src/utils/utils.js.map +0 -1
  907. package/dist/esm/src/wait.js.map +0 -1
  908. package/dist/types/src/client/v2/algod/models/types.d.ts +0 -1612
  909. package/dist/types/src/multisig.d.ts +0 -125
@@ -0,0 +1,165 @@
1
+ const sha256 = require('js-sha256');
2
+ const { keccak256 } = require('js-sha3');
3
+ const logic = require('../logic/logic');
4
+ const logicSig = require('../logicsig');
5
+ const templates = require('./templates');
6
+ const transaction = require('../transaction');
7
+
8
+ class HTLC {
9
+ /**
10
+ * HTLC allows a user to receive the Algo prior to a deadline (in terms of a round) by proving a knowledge
11
+ * of a special value or to forfeit the ability to claim, returning it to the payer.
12
+ * This contract is usually used to perform cross-chained atomic swaps
13
+ *
14
+ * More formally -
15
+ * Algos can be transferred under only two circumstances:
16
+ * 1. To receiver if hash_function(arg_0) = hash_value
17
+ * 2. To owner if txn.FirstValid > expiry_round
18
+ * ...
19
+ *
20
+ * @deprecated This feature will be removed in v2.
21
+ *
22
+ *Parameters
23
+ *----------
24
+ * @param {string} owner: an address that can receive the asset after the expiry round
25
+ * @param {string} receiver: address to receive Algos
26
+ * @param {string} hashFunction: the hash function to be used (must be either sha256 or keccak256)
27
+ * @param {string} hashImage: the hash image in base64
28
+ * @param {int} expiryRound: the round on which the assets can be transferred back to owner
29
+ * @param {int} maxFee: the maximum fee that can be paid to the network by the account
30
+ * @returns {HTLC}
31
+ */
32
+ constructor(owner, receiver, hashFunction, hashImage, expiryRound, maxFee) {
33
+ // don't need to validate owner, receiver - they'll be validated by template.insert
34
+ if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
35
+ throw Error(
36
+ 'expiryRound must be a positive number and smaller than 2^53-1'
37
+ );
38
+ if (!Number.isSafeInteger(maxFee) || maxFee < 0)
39
+ throw Error('maxFee must be a positive number and smaller than 2^53-1');
40
+
41
+ let referenceProgramB64 = '';
42
+ if (hashFunction === 'sha256') {
43
+ referenceProgramB64 =
44
+ 'ASAECAEACSYDIOaalh5vLV96yGYHkmVSvpgjXtMzY8qIkYu5yTipFbb5IH+DsWV/8fxTuS3BgUih1l38LUsfo9Z3KErd0gASbZBpIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMQEiDjEQIxIQMQcyAxIQMQgkEhAxCSgSLQEpEhAxCSoSMQIlDRAREA==';
45
+ } else if (hashFunction === 'keccak256') {
46
+ referenceProgramB64 =
47
+ 'ASAECAEACSYDIOaalh5vLV96yGYHkmVSvpgjXtMzY8qIkYu5yTipFbb5IH+DsWV/8fxTuS3BgUih1l38LUsfo9Z3KErd0gASbZBpIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMQEiDjEQIxIQMQcyAxIQMQgkEhAxCSgSLQIpEhAxCSoSMQIlDRAREA==';
48
+ } else {
49
+ throw Error('hash function unrecognized');
50
+ }
51
+ // validate hashImage length
52
+ const hashImageBytes = Buffer.from(hashImage, 'base64');
53
+ if (hashImageBytes.length !== 32)
54
+ throw Error('hash image must be 32 bytes');
55
+
56
+ const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
57
+ const referenceOffsets = [
58
+ 3 /* expiryRound */,
59
+ 6 /* receiver */,
60
+ 10 /* hashImage */,
61
+ 42 /* owner */,
62
+ 76,
63
+ ];
64
+ const injectionVector = [maxFee, expiryRound, receiver, hashImage, owner];
65
+ const injectionTypes = [
66
+ templates.valTypes.INT,
67
+ templates.valTypes.INT,
68
+ templates.valTypes.ADDRESS,
69
+ templates.valTypes.BASE64,
70
+ templates.valTypes.ADDRESS,
71
+ ];
72
+ const injectedBytes = templates.inject(
73
+ referenceProgramBytes,
74
+ referenceOffsets,
75
+ injectionVector,
76
+ injectionTypes
77
+ );
78
+ this.programBytes = injectedBytes;
79
+ const lsig = new logicSig.LogicSig(injectedBytes, undefined);
80
+ this.address = lsig.address();
81
+ }
82
+
83
+ /**
84
+ * returns the program bytes
85
+ * @returns {Uint8Array}
86
+ */
87
+ getProgram() {
88
+ return this.programBytes;
89
+ }
90
+
91
+ /**
92
+ * returns the string address of the contract
93
+ * @returns {string}
94
+ */
95
+ getAddress() {
96
+ return this.address;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * signTransactionWithHTLCUnlock accepts a transaction, such as a payment, and builds the HTLC-unlocking signature around that transaction
102
+ *
103
+ * @deprecated This feature will be removed in v2.
104
+ *
105
+ * @param {Uint8Array} contract : byte representation of the HTLC
106
+ * @param {Object} txn dictionary containing constructor arguments for a transaction
107
+ * @param {string} preImageAsBase64 : preimage of the hash as base64 string
108
+ *
109
+ * @returns {Object} Object containing txID and blob representing signed transaction.
110
+ * @throws error on validation failure
111
+ */
112
+ function signTransactionWithHTLCUnlock(contract, txn, preImageAsBase64) {
113
+ const preImageBytes = Buffer.from(preImageAsBase64, 'base64');
114
+
115
+ // hash validation
116
+ const readResult = logic.readProgram(contract, undefined);
117
+ const ints = readResult[0];
118
+ const byteArrays = readResult[1];
119
+ const expectedHashedOutput = byteArrays[1];
120
+ const hashFunction = contract[contract.length - 15];
121
+ if (hashFunction === 1) {
122
+ const hash = sha256.create();
123
+ hash.update(preImageBytes);
124
+ const actualHashedOutput = Buffer.from(hash.hex(), 'hex');
125
+ if (!actualHashedOutput.equals(expectedHashedOutput)) {
126
+ throw new Error(
127
+ 'sha256 hash of preimage did not match stored contract hash'
128
+ );
129
+ }
130
+ } else if (hashFunction === 2) {
131
+ const hash = keccak256.create();
132
+ hash.update(preImageBytes);
133
+ const actualHashedOutput = Buffer.from(hash.hex(), 'hex');
134
+ if (!actualHashedOutput.equals(expectedHashedOutput)) {
135
+ throw new Error(
136
+ 'keccak256 hash of preimage did not match stored contract hash'
137
+ );
138
+ }
139
+ } else {
140
+ throw new Error('hash function in contract unrecognized');
141
+ }
142
+
143
+ const args = [preImageBytes]; // array of one element, the Uint8Array preimage
144
+
145
+ const lsig = new logicSig.LogicSig(contract, args);
146
+ // clear out receiver just in case
147
+ // eslint-disable-next-line no-param-reassign
148
+ delete txn.to;
149
+
150
+ const maxFee = ints[0];
151
+ // check fee
152
+ const tempTxn = new transaction.Transaction(txn);
153
+ if (tempTxn.fee > maxFee) {
154
+ throw new Error(
155
+ `final fee of payment transaction${tempTxn.fee.toString()}greater than transaction max fee${maxFee.toString()}`
156
+ );
157
+ }
158
+
159
+ return logicSig.signLogicSigTransaction(txn, lsig);
160
+ }
161
+
162
+ module.exports = {
163
+ HTLC,
164
+ signTransactionWithHTLCUnlock,
165
+ };
@@ -0,0 +1,20 @@
1
+ const dynamicFeeTemplate = require('./dynamicfee');
2
+ const htlcTemplate = require('./htlc');
3
+ const limitOrderTemplate = require('./limitorder');
4
+ const splitTemplate = require('./split');
5
+ const periodicPayTemplate = require('./periodicpayment');
6
+
7
+ module.exports = {
8
+ DynamicFee: dynamicFeeTemplate.DynamicFee,
9
+ getDynamicFeeTransactions: dynamicFeeTemplate.getDynamicFeeTransactions,
10
+ signDynamicFee: dynamicFeeTemplate.signDynamicFee,
11
+ HTLC: htlcTemplate.HTLC,
12
+ signTransactionWithHTLCUnlock: htlcTemplate.signTransactionWithHTLCUnlock,
13
+ LimitOrder: limitOrderTemplate.LimitOrder,
14
+ getSwapAssetsTransaction: limitOrderTemplate.getSwapAssetsTransaction,
15
+ Split: splitTemplate.Split,
16
+ getSplitFundsTransaction: splitTemplate.getSplitFundsTransaction,
17
+ PeriodicPayment: periodicPayTemplate.PeriodicPayment,
18
+ getPeriodicPaymentWithdrawalTransaction:
19
+ periodicPayTemplate.getPeriodicPaymentWithdrawalTransaction,
20
+ };
@@ -0,0 +1,227 @@
1
+ const address = require('../encoding/address');
2
+ const makeTxn = require('../makeTxn');
3
+ const group = require('../group');
4
+ const logic = require('../logic/logic');
5
+ const logicSig = require('../logicsig');
6
+ const nacl = require('../nacl/naclWrappers');
7
+ const templates = require('./templates');
8
+ const utils = require('../utils/utils');
9
+
10
+ class LimitOrder {
11
+ /**
12
+ * MakeLimitOrder allows a user to exchange some number of assets for some number of algos.
13
+ * Fund the contract with some number of Algos to limit the maximum number of
14
+ * Algos you're willing to trade for some other asset.
15
+ *
16
+ * Works on two cases:
17
+ * * trading Algos for some other asset
18
+ * * closing out Algos back to the originator after a timeout
19
+ *
20
+ * trade case, a 2 transaction group:
21
+ * gtxn[0] (this txn) Algos from Me to Other
22
+ * gtxn[1] asset from Other to Me
23
+ *
24
+ * We want to get _at least_ some amount of the other asset per our Algos
25
+ * gtxn[1].AssetAmount / gtxn[0].Amount >= N / D
26
+ * ===
27
+ * gtxn[1].AssetAmount * D >= gtxn[0].Amount * N
28
+ *
29
+ * close-out case:
30
+ * txn alone, close out value after timeout
31
+ *
32
+ * @deprecated This class will be removed in v2.
33
+ *
34
+ * Constructor Parameters:
35
+ * @param {string} owner: the address to refund funds to on timeout
36
+ * @param {int} assetid: the ID of the transferred asset
37
+ * @param {int} ratn: exchange rate (N asset per D Algos, or better)
38
+ * @param {int} ratd: exchange rate (N asset per D Algos, or better)
39
+ * @param {int} expiryRound: the round at which the account expires
40
+ * @param {int} minTrade: the minimum amount (of Algos) to be traded away
41
+ * @param {int} maxFee: maximum fee used by the limit order transaction
42
+ * @returns {LimitOrder}
43
+ */
44
+ constructor(owner, assetid, ratn, ratd, expiryRound, minTrade, maxFee) {
45
+ // don't need to validate owner - it will be validated by template.insert
46
+ if (!Number.isSafeInteger(assetid) || assetid < 0)
47
+ throw Error('assetid must be a positive number and smaller than 2^53-1');
48
+ if (!Number.isSafeInteger(ratn) || ratn < 0)
49
+ throw Error('ratn must be a positive number and smaller than 2^53-1');
50
+ if (!Number.isSafeInteger(ratd) || ratd < 0)
51
+ throw Error('ratd must be a positive number and smaller than 2^53-1');
52
+ if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
53
+ throw Error(
54
+ 'expiryRound must be a positive number and smaller than 2^53-1'
55
+ );
56
+ if (!Number.isSafeInteger(minTrade) || minTrade < 0)
57
+ throw Error('minTrade must be a positive number and smaller than 2^53-1');
58
+ if (!Number.isSafeInteger(maxFee) || maxFee < 0)
59
+ throw Error('maxFee must be a positive number and smaller than 2^53-1');
60
+
61
+ const referenceProgramB64 =
62
+ 'ASAKAAEFAgYEBwgJCiYBIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMRYiEjEQIxIQMQEkDhAyBCMSQABVMgQlEjEIIQQNEDEJMgMSEDMBECEFEhAzAREhBhIQMwEUKBIQMwETMgMSEDMBEiEHHTUCNQExCCEIHTUENQM0ATQDDUAAJDQBNAMSNAI0BA8QQAAWADEJKBIxAiEJDRAxBzIDEhAxCCISEBA=';
63
+ const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
64
+ const referenceOffsets = [
65
+ 5 /* minTrade */,
66
+ 7 /* assetID */,
67
+ 9 /* ratd */,
68
+ 10 /* ratn */,
69
+ 11 /* expiryRound */,
70
+ 12 /* owner */,
71
+ 16,
72
+ ];
73
+ const injectionVector = [
74
+ maxFee,
75
+ minTrade,
76
+ assetid,
77
+ ratd,
78
+ ratn,
79
+ expiryRound,
80
+ owner,
81
+ ];
82
+ const injectionTypes = [
83
+ templates.valTypes.INT,
84
+ templates.valTypes.INT,
85
+ templates.valTypes.INT,
86
+ templates.valTypes.INT,
87
+ templates.valTypes.INT,
88
+ templates.valTypes.INT,
89
+ templates.valTypes.ADDRESS,
90
+ ];
91
+ const injectedBytes = templates.inject(
92
+ referenceProgramBytes,
93
+ referenceOffsets,
94
+ injectionVector,
95
+ injectionTypes
96
+ );
97
+ this.programBytes = injectedBytes;
98
+ const lsig = new logicSig.LogicSig(injectedBytes, undefined);
99
+ this.address = lsig.address();
100
+ this.owner = owner;
101
+ this.assetid = assetid;
102
+ }
103
+
104
+ /**
105
+ * returns the program bytes
106
+ * @returns {Uint8Array}
107
+ */
108
+ getProgram() {
109
+ return this.programBytes;
110
+ }
111
+
112
+ /**
113
+ * returns the string address of the contract
114
+ * @returns {string}
115
+ */
116
+ getAddress() {
117
+ return this.address;
118
+ }
119
+ }
120
+
121
+ /**
122
+ * returns a group transactions array which transfer funds according to the contract's ratio
123
+ *
124
+ * @deprecated This feature will be removed in v2.
125
+ *
126
+ * @param {Uint8Array} contract: byteform of the contract from the payer
127
+ * @param {int} assetAmount: the amount of assets to be sent
128
+ * @param {int} microAlgoAmount: number of microAlgos to transfer
129
+ * @param {Uint8Array} secretKey: secret key for signing transaction
130
+ * @param {int} fee: the fee per byte to pay in microAlgos
131
+ * @param {int} firstRound: the first round on which these txns will be valid
132
+ * @param {int} lastRound: the last round on which these txns will be valid
133
+ * @param {string} genesisHash: the b64-encoded genesis hash indicating the network for this transaction
134
+ * @returns {Uint8Array}
135
+ * the first payment sends money (Algos) from contract to the recipient (we'll call him Buyer), closing the rest of the account to Owner
136
+ * the second payment sends money (the asset) from Buyer to the Owner
137
+ * these transactions will be rejected if they do not meet the restrictions set by the contract
138
+ * @throws error if arguments fail contract validation
139
+ */
140
+ function getSwapAssetsTransaction(
141
+ contract,
142
+ assetAmount,
143
+ microAlgoAmount,
144
+ secretKey,
145
+ fee,
146
+ firstRound,
147
+ lastRound,
148
+ genesisHash
149
+ ) {
150
+ const buyerKeyPair = nacl.keyPairFromSecretKey(secretKey);
151
+ const buyerAddr = address.encodeAddress(buyerKeyPair.publicKey);
152
+ const programOutputs = logic.readProgram(contract, undefined);
153
+ const ints = programOutputs[0];
154
+ const byteArrays = programOutputs[1];
155
+
156
+ let noCloseRemainder;
157
+ let noAssetRevocationTarget;
158
+ const contractAssetID = ints[6];
159
+ const contractOwner = address.encodeAddress(byteArrays[0]);
160
+ const lsig = logicSig.makeLogicSig(contract, undefined);
161
+ const contractAddress = lsig.address();
162
+ const algosForAssets = makeTxn.makePaymentTxn(
163
+ contractAddress,
164
+ buyerAddr,
165
+ fee,
166
+ microAlgoAmount,
167
+ noCloseRemainder,
168
+ firstRound,
169
+ lastRound,
170
+ undefined,
171
+ genesisHash,
172
+ undefined
173
+ );
174
+ const assetsForAlgos = makeTxn.makeAssetTransferTxn(
175
+ buyerAddr,
176
+ contractOwner,
177
+ noCloseRemainder,
178
+ noAssetRevocationTarget,
179
+ fee,
180
+ assetAmount,
181
+ firstRound,
182
+ lastRound,
183
+ undefined,
184
+ genesisHash,
185
+ undefined,
186
+ contractAssetID
187
+ );
188
+ const txns = [algosForAssets, assetsForAlgos];
189
+ const txGroup = group.assignGroupID(txns);
190
+
191
+ const ratd = ints[7];
192
+ const ratn = ints[8];
193
+ if (assetAmount * ratd < microAlgoAmount * ratn) {
194
+ throw new Error(
195
+ `bad payment ratio, ${assetAmount.toString()}*${ratd.toString()} !>= ${microAlgoAmount.toString()}*${ratn.toString()}`
196
+ );
197
+ }
198
+ const minTrade = ints[4];
199
+ if (microAlgoAmount < minTrade) {
200
+ throw new Error(
201
+ `payment amount ${microAlgoAmount.toString()} less than minimum trade ${minTrade.toString()}`
202
+ );
203
+ }
204
+ const maxFee = ints[2];
205
+ if (txGroup[0].fee > maxFee) {
206
+ throw new Error(
207
+ `final fee of payment transaction ${txGroup[0].fee.toString()} greater than transaction max fee ${maxFee.toString()}`
208
+ );
209
+ }
210
+ if (txGroup[1].fee > maxFee) {
211
+ throw new Error(
212
+ `final fee of asset transaction ${txGroup[1].fee.toString()} greater than transaction max fee ${maxFee.toString()}`
213
+ );
214
+ }
215
+
216
+ const algosForAssetsSigned = logicSig.signLogicSigTransactionObject(
217
+ txGroup[0],
218
+ lsig
219
+ );
220
+ const assetsForAlgosSigned = txGroup[1].signTxn(secretKey);
221
+ return utils.concatArrays(algosForAssetsSigned.blob, assetsForAlgosSigned);
222
+ }
223
+
224
+ module.exports = {
225
+ LimitOrder,
226
+ getSwapAssetsTransaction,
227
+ };
@@ -0,0 +1,208 @@
1
+ const address = require('../encoding/address');
2
+ const makeTxn = require('../makeTxn');
3
+ const logic = require('../logic/logic');
4
+ const logicSig = require('../logicsig');
5
+ const nacl = require('../nacl/naclWrappers');
6
+ const templates = require('./templates');
7
+
8
+ class PeriodicPayment {
9
+ /**
10
+ * MakePeriodicPayment allows some account to execute periodic withdrawal of funds.
11
+ * This is a contract account.
12
+ *
13
+ * This allows receiver to withdraw amount every
14
+ * period rounds for withdrawWindow after every multiple
15
+ * of period.
16
+ *
17
+ * After expiryRound, all remaining funds in the escrow
18
+ * are available to receiver.
19
+ *
20
+ * @deprecated This class will be removed in v2.
21
+ *
22
+ * Constructor Parameters:
23
+ * @param {string} receiver: address which is authorized to receive withdrawals
24
+ * @param {int} amount: the amount to send each period
25
+ * @param {int} withdrawalWindow: the duration of a withdrawal period
26
+ * @param {int} period: the time between a pair of withdrawal periods
27
+ * @param {int} expiryRound: the round at which the account expires
28
+ * @param {int} maxFee: maximum fee used by the withdrawal transaction
29
+ * @param {string} lease: b64 representation of lease to use, or leave undefined to generate one
30
+ * @returns {PeriodicPayment}
31
+ */
32
+ constructor(
33
+ receiver,
34
+ amount,
35
+ withdrawalWindow,
36
+ period,
37
+ expiryRound,
38
+ maxFee,
39
+ lease
40
+ ) {
41
+ // don't need to validate receiver or lease, it's validated by template insert
42
+ this.receiver = receiver;
43
+ if (!Number.isSafeInteger(amount) || amount < 0)
44
+ throw Error('amount must be a positive number and smaller than 2^53-1');
45
+ this.amount = amount;
46
+ if (!Number.isSafeInteger(withdrawalWindow) || withdrawalWindow < 0)
47
+ throw Error(
48
+ 'withdrawalWindow must be a positive number and smaller than 2^53-1'
49
+ );
50
+ this.withdrawalWindow = withdrawalWindow;
51
+ if (!Number.isSafeInteger(period) || period < 0)
52
+ throw Error('period must be a positive number and smaller than 2^53-1');
53
+ this.period = period;
54
+ if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
55
+ throw Error(
56
+ 'expiryRound must be a positive number and smaller than 2^53-1'
57
+ );
58
+ this.expiryRound = expiryRound;
59
+ if (!Number.isSafeInteger(maxFee) || maxFee < 0)
60
+ throw Error('maxFee must be a positive number and smaller than 2^53-1');
61
+ this.maxFee = maxFee;
62
+
63
+ if (lease === undefined) {
64
+ const leaseBytes = nacl.randomBytes(32);
65
+ this.lease = Buffer.from(leaseBytes).toString('base64');
66
+ } else {
67
+ this.lease = lease;
68
+ }
69
+
70
+ this.programBytes = this.getProgram();
71
+ const lsig = new logicSig.LogicSig(this.programBytes, undefined);
72
+ this.address = lsig.address();
73
+ }
74
+
75
+ /**
76
+ * returns the program bytes
77
+ * @returns {Uint8Array}
78
+ */
79
+ getProgram() {
80
+ const referenceProgramB64 =
81
+ 'ASAHAQYFAAQDByYCIAECAwQFBgcIAQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIIJKvkYTkEzwJf2arzJOxERsSogG9nQzKPkpIoc4TzPTFMRAiEjEBIw4QMQIkGCUSEDEEIQQxAggSEDEGKBIQMQkyAxIxBykSEDEIIQUSEDEJKRIxBzIDEhAxAiEGDRAxCCUSEBEQ';
82
+ const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
83
+ const referenceOffsets = [
84
+ 4 /* period */,
85
+ 5 /* withdrawWindow */,
86
+ 7 /* amount */,
87
+ 8 /* expiryRound */,
88
+ 9 /* lease */,
89
+ 12 /* receiver */,
90
+ 46,
91
+ ];
92
+ const injectionVector = [
93
+ this.maxFee,
94
+ this.period,
95
+ this.withdrawalWindow,
96
+ this.amount,
97
+ this.expiryRound,
98
+ this.lease,
99
+ this.receiver,
100
+ ];
101
+ const injectionTypes = [
102
+ templates.valTypes.INT,
103
+ templates.valTypes.INT,
104
+ templates.valTypes.INT,
105
+ templates.valTypes.INT,
106
+ templates.valTypes.INT,
107
+ templates.valTypes.BASE64,
108
+ templates.valTypes.ADDRESS,
109
+ ];
110
+ return templates.inject(
111
+ referenceProgramBytes,
112
+ referenceOffsets,
113
+ injectionVector,
114
+ injectionTypes
115
+ );
116
+ }
117
+
118
+ /**
119
+ * returns the string address of the contract
120
+ * @returns {string}
121
+ */
122
+ getAddress() {
123
+ return this.address;
124
+ }
125
+ }
126
+
127
+ /**
128
+ * getPeriodicPaymentWithdrawalTransaction returns a signed transaction extracting funds form the contract
129
+ *
130
+ * @deprecated This feature will be removed in v2.
131
+ *
132
+ * @param {Uint8Array} contract: the bytearray defining the contract, received from the payer
133
+ * @param {int} fee: the fee per byte for the transaction
134
+ * @param {int} firstValid: the first round on which the txn will be valid
135
+ * @param {string} genesisHash: the hash representing the network for the txn
136
+ * @returns {Object} Object containing txID and blob representing signed transaction
137
+ * @throws error on failure
138
+ */
139
+ function getPeriodicPaymentWithdrawalTransaction(
140
+ contract,
141
+ fee,
142
+ firstValid,
143
+ genesisHash
144
+ ) {
145
+ const readResult = logic.readProgram(contract, undefined);
146
+ const ints = readResult[0];
147
+ const byteArrays = readResult[1];
148
+ const period = ints[2];
149
+ const duration = ints[4];
150
+ const amount = ints[5];
151
+ if (firstValid % period !== 0) {
152
+ throw new Error(
153
+ `firstValid round ${firstValid.toString()} was not a multiple of contract period ${period.toString()}`
154
+ );
155
+ }
156
+
157
+ // extract receiver and convert as needed
158
+ const receiverBytes = byteArrays[1];
159
+ const receiver = address.encodeAddress(receiverBytes);
160
+ // extract lease and convert
161
+ const leaseBuffer = byteArrays[0];
162
+ const lease = new Uint8Array(leaseBuffer);
163
+ const lastValid = firstValid + duration;
164
+ const to = receiver;
165
+ let noCloseRemainder;
166
+ let noNote;
167
+ const lsig = logicSig.makeLogicSig(contract, undefined);
168
+ const from = lsig.address();
169
+ const txn = {
170
+ from,
171
+ to,
172
+ fee,
173
+ amount,
174
+ closeRemainderTo: noCloseRemainder,
175
+ firstRound: firstValid,
176
+ lastRound: lastValid,
177
+ note: noNote,
178
+ genesisHash,
179
+ genesisID: '',
180
+ type: 'pay',
181
+ lease,
182
+ };
183
+
184
+ // check fee
185
+ const tempTxn = makeTxn.makePaymentTxn(
186
+ from,
187
+ to,
188
+ fee,
189
+ amount,
190
+ noCloseRemainder,
191
+ firstValid,
192
+ lastValid,
193
+ noNote,
194
+ genesisHash,
195
+ ''
196
+ );
197
+ if (tempTxn.fee > ints[1]) {
198
+ throw new Error(
199
+ `final fee of payment transaction${tempTxn.fee.toString()}greater than transaction max fee${ints[1].toString()}`
200
+ );
201
+ }
202
+
203
+ return logicSig.signLogicSigTransaction(txn, lsig);
204
+ }
205
+ module.exports = {
206
+ PeriodicPayment,
207
+ getPeriodicPaymentWithdrawalTransaction,
208
+ };