algosdk 2.8.0 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (810) hide show
  1. package/README.md +8 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.LICENSE.txt +0 -9
  4. package/dist/browser/algosdk.min.js.map +1 -1
  5. package/dist/cjs/abi/abi_type.js +34 -27
  6. package/dist/cjs/abi/abi_type.js.map +1 -1
  7. package/dist/cjs/abi/contract.js +5 -3
  8. package/dist/cjs/abi/contract.js.map +1 -1
  9. package/dist/cjs/{types/transactions/asset.js → abi/event.js} +1 -1
  10. package/dist/cjs/abi/event.js.map +1 -0
  11. package/dist/cjs/abi/index.js +6 -6
  12. package/dist/cjs/abi/index.js.map +1 -1
  13. package/dist/cjs/abi/interface.js +3 -3
  14. package/dist/cjs/abi/interface.js.map +1 -1
  15. package/dist/cjs/abi/method.js +14 -10
  16. package/dist/cjs/abi/method.js.map +1 -1
  17. package/dist/cjs/abi/reference.js +1 -1
  18. package/dist/cjs/abi/reference.js.map +1 -1
  19. package/dist/cjs/abi/transaction.js +2 -2
  20. package/dist/cjs/abi/transaction.js.map +1 -1
  21. package/dist/cjs/account.js +4 -4
  22. package/dist/cjs/account.js.map +1 -1
  23. package/dist/cjs/boxStorage.js +17 -17
  24. package/dist/cjs/boxStorage.js.map +1 -1
  25. package/dist/cjs/client/client.js +77 -41
  26. package/dist/cjs/client/client.js.map +1 -1
  27. package/dist/cjs/client/index.js +29 -0
  28. package/dist/cjs/client/index.js.map +1 -0
  29. package/dist/cjs/client/kmd.js +69 -86
  30. package/dist/cjs/client/kmd.js.map +1 -1
  31. package/dist/cjs/client/urlTokenBaseHTTPClient.js +16 -11
  32. package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
  33. package/dist/cjs/client/v2/algod/accountApplicationInformation.js +11 -7
  34. package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -1
  35. package/dist/cjs/client/v2/algod/accountAssetInformation.js +11 -7
  36. package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -1
  37. package/dist/cjs/client/v2/algod/accountInformation.js +11 -6
  38. package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -1
  39. package/dist/cjs/client/v2/algod/algod.js +85 -83
  40. package/dist/cjs/client/v2/algod/algod.js.map +1 -1
  41. package/dist/cjs/client/v2/algod/block.js +6 -33
  42. package/dist/cjs/client/v2/algod/block.js.map +1 -1
  43. package/dist/cjs/client/v2/algod/compile.js +17 -11
  44. package/dist/cjs/client/v2/algod/compile.js.map +1 -1
  45. package/dist/cjs/client/v2/algod/disassemble.js +17 -11
  46. package/dist/cjs/client/v2/algod/disassemble.js.map +1 -1
  47. package/dist/cjs/client/v2/algod/dryrun.js +18 -37
  48. package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
  49. package/dist/cjs/client/v2/algod/genesis.js +6 -2
  50. package/dist/cjs/client/v2/algod/genesis.js.map +1 -1
  51. package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +10 -10
  52. package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
  53. package/dist/cjs/client/v2/algod/getApplicationBoxes.js +8 -8
  54. package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -1
  55. package/dist/cjs/client/v2/algod/getApplicationByID.js +10 -5
  56. package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -1
  57. package/dist/cjs/client/v2/algod/getAssetByID.js +10 -5
  58. package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -1
  59. package/dist/cjs/client/v2/algod/getBlockHash.js +10 -6
  60. package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -1
  61. package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js +6 -5
  62. package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
  63. package/dist/cjs/client/v2/algod/getBlockTxids.js +10 -4
  64. package/dist/cjs/client/v2/algod/getBlockTxids.js.map +1 -1
  65. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js +11 -6
  66. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js.map +1 -1
  67. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +11 -6
  68. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
  69. package/dist/cjs/client/v2/algod/getSyncRound.js +6 -5
  70. package/dist/cjs/client/v2/algod/getSyncRound.js.map +1 -1
  71. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +9 -9
  72. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
  73. package/dist/cjs/client/v2/algod/getTransactionProof.js +10 -6
  74. package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -1
  75. package/dist/cjs/client/v2/algod/healthCheck.js +4 -9
  76. package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -1
  77. package/dist/cjs/{types → client/v2/algod}/index.js +5 -3
  78. package/dist/cjs/client/v2/algod/index.js.map +1 -0
  79. package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js +10 -5
  80. package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
  81. package/dist/cjs/client/v2/algod/models/types.js +3712 -1824
  82. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  83. package/dist/cjs/client/v2/algod/pendingTransactionInformation.js +6 -32
  84. package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -1
  85. package/dist/cjs/client/v2/algod/pendingTransactions.js +6 -31
  86. package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -1
  87. package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js +7 -33
  88. package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
  89. package/dist/cjs/client/v2/algod/ready.js +4 -2
  90. package/dist/cjs/client/v2/algod/ready.js.map +1 -1
  91. package/dist/cjs/client/v2/algod/sendRawTransaction.js +17 -8
  92. package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
  93. package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js +13 -8
  94. package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
  95. package/dist/cjs/client/v2/algod/setSyncRound.js +13 -8
  96. package/dist/cjs/client/v2/algod/setSyncRound.js.map +1 -1
  97. package/dist/cjs/client/v2/algod/simulateTransaction.js +15 -35
  98. package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -1
  99. package/dist/cjs/client/v2/algod/stateproof.js +10 -5
  100. package/dist/cjs/client/v2/algod/stateproof.js.map +1 -1
  101. package/dist/cjs/client/v2/algod/status.js +8 -2
  102. package/dist/cjs/client/v2/algod/status.js.map +1 -1
  103. package/dist/cjs/client/v2/algod/statusAfterBlock.js +10 -5
  104. package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -1
  105. package/dist/cjs/client/v2/algod/suggestedParams.js +13 -9
  106. package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -1
  107. package/dist/cjs/client/v2/algod/supply.js +8 -2
  108. package/dist/cjs/client/v2/algod/supply.js.map +1 -1
  109. package/dist/cjs/client/v2/algod/unsetSyncRound.js +11 -5
  110. package/dist/cjs/client/v2/algod/unsetSyncRound.js.map +1 -1
  111. package/dist/cjs/client/v2/algod/versions.js +8 -2
  112. package/dist/cjs/client/v2/algod/versions.js.map +1 -1
  113. package/dist/cjs/client/v2/indexer/index.js +22 -0
  114. package/dist/cjs/client/v2/indexer/index.js.map +1 -0
  115. package/dist/cjs/client/v2/indexer/indexer.js +44 -43
  116. package/dist/cjs/client/v2/indexer/indexer.js.map +1 -1
  117. package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js +11 -6
  118. package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
  119. package/dist/cjs/client/v2/indexer/lookupAccountAssets.js +11 -6
  120. package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -1
  121. package/dist/cjs/client/v2/indexer/lookupAccountByID.js +11 -6
  122. package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -1
  123. package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js +11 -6
  124. package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
  125. package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js +11 -6
  126. package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
  127. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +19 -12
  128. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  129. package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +10 -10
  130. package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
  131. package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js +10 -5
  132. package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
  133. package/dist/cjs/client/v2/indexer/lookupApplications.js +10 -5
  134. package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -1
  135. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js +10 -5
  136. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  137. package/dist/cjs/client/v2/indexer/lookupAssetByID.js +10 -5
  138. package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -1
  139. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +19 -12
  140. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  141. package/dist/cjs/client/v2/indexer/lookupBlock.js +10 -5
  142. package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -1
  143. package/dist/cjs/client/v2/indexer/lookupTransactionByID.js +10 -5
  144. package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -1
  145. package/dist/cjs/client/v2/indexer/makeHealthCheck.js +8 -2
  146. package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -1
  147. package/dist/cjs/client/v2/indexer/models/types.js +3591 -1651
  148. package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
  149. package/dist/cjs/client/v2/indexer/searchAccounts.js +9 -3
  150. package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -1
  151. package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js +8 -8
  152. package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
  153. package/dist/cjs/client/v2/indexer/searchForApplications.js +9 -3
  154. package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -1
  155. package/dist/cjs/client/v2/indexer/searchForAssets.js +9 -3
  156. package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -1
  157. package/dist/cjs/client/v2/indexer/searchForTransactions.js +17 -9
  158. package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -1
  159. package/dist/cjs/client/v2/jsonrequest.js +22 -54
  160. package/dist/cjs/client/v2/jsonrequest.js.map +1 -1
  161. package/dist/cjs/client/v2/serviceClient.js +5 -25
  162. package/dist/cjs/client/v2/serviceClient.js.map +1 -1
  163. package/dist/cjs/client/v2/untypedmodel.js +22 -0
  164. package/dist/cjs/client/v2/untypedmodel.js.map +1 -0
  165. package/dist/cjs/composer.js +64 -58
  166. package/dist/cjs/composer.js.map +1 -1
  167. package/dist/cjs/convert.js.map +1 -1
  168. package/dist/cjs/dryrun.js +107 -203
  169. package/dist/cjs/dryrun.js.map +1 -1
  170. package/dist/cjs/encoding/address.js +88 -104
  171. package/dist/cjs/encoding/address.js.map +1 -1
  172. package/dist/cjs/encoding/bigint.js +2 -3
  173. package/dist/cjs/encoding/bigint.js.map +1 -1
  174. package/dist/cjs/encoding/binarydata.js +82 -0
  175. package/dist/cjs/encoding/binarydata.js.map +1 -0
  176. package/dist/cjs/encoding/encoding.js +353 -38
  177. package/dist/cjs/encoding/encoding.js.map +1 -1
  178. package/dist/cjs/encoding/schema/address.js +41 -0
  179. package/dist/cjs/encoding/schema/address.js.map +1 -0
  180. package/dist/cjs/encoding/schema/array.js +43 -0
  181. package/dist/cjs/encoding/schema/array.js.map +1 -0
  182. package/dist/cjs/encoding/schema/binarystring.js +55 -0
  183. package/dist/cjs/encoding/schema/binarystring.js.map +1 -0
  184. package/dist/cjs/encoding/schema/blockhash.js +67 -0
  185. package/dist/cjs/encoding/schema/blockhash.js.map +1 -0
  186. package/dist/cjs/encoding/schema/boolean.js +42 -0
  187. package/dist/cjs/encoding/schema/boolean.js.map +1 -0
  188. package/dist/cjs/encoding/schema/bytearray.js +98 -0
  189. package/dist/cjs/encoding/schema/bytearray.js.map +1 -0
  190. package/dist/cjs/encoding/schema/index.js +34 -0
  191. package/dist/cjs/encoding/schema/index.js.map +1 -0
  192. package/dist/cjs/encoding/schema/map.js +528 -0
  193. package/dist/cjs/encoding/schema/map.js.map +1 -0
  194. package/dist/cjs/encoding/schema/optional.js +58 -0
  195. package/dist/cjs/encoding/schema/optional.js.map +1 -0
  196. package/dist/cjs/encoding/schema/string.js +43 -0
  197. package/dist/cjs/encoding/schema/string.js.map +1 -0
  198. package/dist/cjs/encoding/schema/uint64.js +36 -0
  199. package/dist/cjs/encoding/schema/uint64.js.map +1 -0
  200. package/dist/cjs/encoding/schema/untyped.js +33 -0
  201. package/dist/cjs/encoding/schema/untyped.js.map +1 -0
  202. package/dist/cjs/encoding/uint64.js +2 -2
  203. package/dist/cjs/encoding/uint64.js.map +1 -1
  204. package/dist/cjs/group.js +23 -60
  205. package/dist/cjs/group.js.map +1 -1
  206. package/dist/cjs/index.js +2 -2
  207. package/dist/cjs/index.js.map +1 -1
  208. package/dist/cjs/logic/sourcemap.js +56 -25
  209. package/dist/cjs/logic/sourcemap.js.map +1 -1
  210. package/dist/cjs/logicsig.js +113 -146
  211. package/dist/cjs/logicsig.js.map +1 -1
  212. package/dist/cjs/main.js +113 -122
  213. package/dist/cjs/main.js.map +1 -1
  214. package/dist/cjs/makeTxn.js +320 -554
  215. package/dist/cjs/makeTxn.js.map +1 -1
  216. package/dist/cjs/mnemonic/mnemonic.js +8 -8
  217. package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
  218. package/dist/cjs/multisig.js +60 -312
  219. package/dist/cjs/multisig.js.map +1 -1
  220. package/dist/cjs/multisigSigning.js +285 -0
  221. package/dist/cjs/multisigSigning.js.map +1 -0
  222. package/dist/cjs/nacl/naclWrappers.js +2 -2
  223. package/dist/cjs/nacl/naclWrappers.js.map +1 -1
  224. package/dist/cjs/signedTransaction.js +106 -0
  225. package/dist/cjs/signedTransaction.js.map +1 -0
  226. package/dist/cjs/signer.js +7 -7
  227. package/dist/cjs/signer.js.map +1 -1
  228. package/dist/cjs/signing.js +105 -0
  229. package/dist/cjs/signing.js.map +1 -0
  230. package/dist/cjs/stateproof.js +421 -0
  231. package/dist/cjs/stateproof.js.map +1 -0
  232. package/dist/cjs/transaction.js +724 -1009
  233. package/dist/cjs/transaction.js.map +1 -1
  234. package/dist/cjs/types/block.js +813 -0
  235. package/dist/cjs/types/block.js.map +1 -0
  236. package/dist/cjs/types/intDecoding.js +1 -1
  237. package/dist/cjs/types/intDecoding.js.map +1 -1
  238. package/dist/cjs/types/statedelta.js +1155 -0
  239. package/dist/cjs/types/statedelta.js.map +1 -0
  240. package/dist/cjs/types/transactions/base.js +22 -5
  241. package/dist/cjs/types/transactions/base.js.map +1 -1
  242. package/dist/cjs/types/transactions/encoded.js +67 -0
  243. package/dist/cjs/types/transactions/encoded.js.map +1 -1
  244. package/dist/cjs/types/transactions/index.js +2 -5
  245. package/dist/cjs/types/transactions/index.js.map +1 -1
  246. package/dist/cjs/utils/utils.js +86 -22
  247. package/dist/cjs/utils/utils.js.map +1 -1
  248. package/dist/cjs/wait.js +4 -4
  249. package/dist/cjs/wait.js.map +1 -1
  250. package/dist/esm/abi/abi_type.js +22 -15
  251. package/dist/esm/abi/abi_type.js.map +1 -1
  252. package/dist/esm/abi/contract.js +3 -1
  253. package/dist/esm/abi/contract.js.map +1 -1
  254. package/dist/esm/abi/event.js +2 -0
  255. package/dist/esm/abi/event.js.map +1 -0
  256. package/dist/esm/abi/index.js +6 -6
  257. package/dist/esm/abi/index.js.map +1 -1
  258. package/dist/esm/abi/interface.js +1 -1
  259. package/dist/esm/abi/interface.js.map +1 -1
  260. package/dist/esm/abi/method.js +8 -4
  261. package/dist/esm/abi/method.js.map +1 -1
  262. package/dist/esm/abi/transaction.js +1 -1
  263. package/dist/esm/abi/transaction.js.map +1 -1
  264. package/dist/esm/account.js +4 -4
  265. package/dist/esm/account.js.map +1 -1
  266. package/dist/esm/boxStorage.js +15 -15
  267. package/dist/esm/boxStorage.js.map +1 -1
  268. package/dist/esm/client/client.js +74 -40
  269. package/dist/esm/client/client.js.map +1 -1
  270. package/dist/esm/client/index.js +7 -0
  271. package/dist/esm/client/index.js.map +1 -0
  272. package/dist/esm/client/kmd.js +67 -62
  273. package/dist/esm/client/kmd.js.map +1 -1
  274. package/dist/esm/client/urlTokenBaseHTTPClient.js +16 -11
  275. package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
  276. package/dist/esm/client/v2/algod/accountApplicationInformation.js +10 -6
  277. package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -1
  278. package/dist/esm/client/v2/algod/accountAssetInformation.js +10 -6
  279. package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -1
  280. package/dist/esm/client/v2/algod/accountInformation.js +10 -5
  281. package/dist/esm/client/v2/algod/accountInformation.js.map +1 -1
  282. package/dist/esm/client/v2/algod/algod.js +71 -70
  283. package/dist/esm/client/v2/algod/algod.js.map +1 -1
  284. package/dist/esm/client/v2/algod/block.js +5 -9
  285. package/dist/esm/client/v2/algod/block.js.map +1 -1
  286. package/dist/esm/client/v2/algod/compile.js +16 -10
  287. package/dist/esm/client/v2/algod/compile.js.map +1 -1
  288. package/dist/esm/client/v2/algod/disassemble.js +16 -10
  289. package/dist/esm/client/v2/algod/disassemble.js.map +1 -1
  290. package/dist/esm/client/v2/algod/dryrun.js +16 -12
  291. package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
  292. package/dist/esm/client/v2/algod/genesis.js +5 -1
  293. package/dist/esm/client/v2/algod/genesis.js.map +1 -1
  294. package/dist/esm/client/v2/algod/getApplicationBoxByName.js +9 -9
  295. package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
  296. package/dist/esm/client/v2/algod/getApplicationBoxes.js +7 -7
  297. package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -1
  298. package/dist/esm/client/v2/algod/getApplicationByID.js +9 -4
  299. package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -1
  300. package/dist/esm/client/v2/algod/getAssetByID.js +9 -4
  301. package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -1
  302. package/dist/esm/client/v2/algod/getBlockHash.js +9 -5
  303. package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -1
  304. package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js +5 -4
  305. package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
  306. package/dist/esm/client/v2/algod/getBlockTxids.js +9 -3
  307. package/dist/esm/client/v2/algod/getBlockTxids.js.map +1 -1
  308. package/dist/esm/client/v2/algod/getLedgerStateDelta.js +10 -5
  309. package/dist/esm/client/v2/algod/getLedgerStateDelta.js.map +1 -1
  310. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +10 -5
  311. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
  312. package/dist/esm/client/v2/algod/getSyncRound.js +5 -4
  313. package/dist/esm/client/v2/algod/getSyncRound.js.map +1 -1
  314. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +8 -8
  315. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
  316. package/dist/esm/client/v2/algod/getTransactionProof.js +9 -5
  317. package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -1
  318. package/dist/esm/client/v2/algod/healthCheck.js +3 -8
  319. package/dist/esm/client/v2/algod/healthCheck.js.map +1 -1
  320. package/dist/esm/client/v2/algod/index.js +4 -0
  321. package/dist/esm/client/v2/algod/index.js.map +1 -0
  322. package/dist/esm/client/v2/algod/lightBlockHeaderProof.js +9 -4
  323. package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
  324. package/dist/esm/client/v2/algod/models/types.js +3712 -1821
  325. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  326. package/dist/esm/client/v2/algod/pendingTransactionInformation.js +5 -8
  327. package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -1
  328. package/dist/esm/client/v2/algod/pendingTransactions.js +5 -7
  329. package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -1
  330. package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js +6 -9
  331. package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
  332. package/dist/esm/client/v2/algod/ready.js +3 -1
  333. package/dist/esm/client/v2/algod/ready.js.map +1 -1
  334. package/dist/esm/client/v2/algod/sendRawTransaction.js +15 -6
  335. package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
  336. package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js +12 -7
  337. package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
  338. package/dist/esm/client/v2/algod/setSyncRound.js +12 -7
  339. package/dist/esm/client/v2/algod/setSyncRound.js.map +1 -1
  340. package/dist/esm/client/v2/algod/simulateTransaction.js +14 -11
  341. package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -1
  342. package/dist/esm/client/v2/algod/stateproof.js +9 -4
  343. package/dist/esm/client/v2/algod/stateproof.js.map +1 -1
  344. package/dist/esm/client/v2/algod/status.js +7 -1
  345. package/dist/esm/client/v2/algod/status.js.map +1 -1
  346. package/dist/esm/client/v2/algod/statusAfterBlock.js +9 -4
  347. package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -1
  348. package/dist/esm/client/v2/algod/suggestedParams.js +12 -8
  349. package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -1
  350. package/dist/esm/client/v2/algod/supply.js +7 -1
  351. package/dist/esm/client/v2/algod/supply.js.map +1 -1
  352. package/dist/esm/client/v2/algod/unsetSyncRound.js +10 -4
  353. package/dist/esm/client/v2/algod/unsetSyncRound.js.map +1 -1
  354. package/dist/esm/client/v2/algod/versions.js +7 -1
  355. package/dist/esm/client/v2/algod/versions.js.map +1 -1
  356. package/dist/esm/client/v2/indexer/index.js +4 -0
  357. package/dist/esm/client/v2/indexer/index.js.map +1 -0
  358. package/dist/esm/client/v2/indexer/indexer.js +42 -42
  359. package/dist/esm/client/v2/indexer/indexer.js.map +1 -1
  360. package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js +10 -5
  361. package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
  362. package/dist/esm/client/v2/indexer/lookupAccountAssets.js +10 -5
  363. package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -1
  364. package/dist/esm/client/v2/indexer/lookupAccountByID.js +10 -5
  365. package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -1
  366. package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js +10 -5
  367. package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
  368. package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js +10 -5
  369. package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
  370. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +18 -11
  371. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  372. package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +9 -9
  373. package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
  374. package/dist/esm/client/v2/indexer/lookupApplicationLogs.js +9 -4
  375. package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
  376. package/dist/esm/client/v2/indexer/lookupApplications.js +9 -4
  377. package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -1
  378. package/dist/esm/client/v2/indexer/lookupAssetBalances.js +9 -4
  379. package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  380. package/dist/esm/client/v2/indexer/lookupAssetByID.js +9 -4
  381. package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -1
  382. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +17 -10
  383. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  384. package/dist/esm/client/v2/indexer/lookupBlock.js +9 -4
  385. package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -1
  386. package/dist/esm/client/v2/indexer/lookupTransactionByID.js +9 -4
  387. package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -1
  388. package/dist/esm/client/v2/indexer/makeHealthCheck.js +7 -1
  389. package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -1
  390. package/dist/esm/client/v2/indexer/models/types.js +3591 -1648
  391. package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
  392. package/dist/esm/client/v2/indexer/searchAccounts.js +8 -2
  393. package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -1
  394. package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js +7 -7
  395. package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
  396. package/dist/esm/client/v2/indexer/searchForApplications.js +8 -2
  397. package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -1
  398. package/dist/esm/client/v2/indexer/searchForAssets.js +8 -2
  399. package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -1
  400. package/dist/esm/client/v2/indexer/searchForTransactions.js +15 -7
  401. package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -1
  402. package/dist/esm/client/v2/jsonrequest.js +22 -51
  403. package/dist/esm/client/v2/jsonrequest.js.map +1 -1
  404. package/dist/esm/client/v2/serviceClient.js +3 -20
  405. package/dist/esm/client/v2/serviceClient.js.map +1 -1
  406. package/dist/esm/client/v2/untypedmodel.js +18 -0
  407. package/dist/esm/client/v2/untypedmodel.js.map +1 -0
  408. package/dist/esm/composer.js +43 -37
  409. package/dist/esm/composer.js.map +1 -1
  410. package/dist/esm/convert.js.map +1 -1
  411. package/dist/esm/dryrun.js +98 -195
  412. package/dist/esm/dryrun.js.map +1 -1
  413. package/dist/esm/encoding/address.js +85 -100
  414. package/dist/esm/encoding/address.js.map +1 -1
  415. package/dist/esm/encoding/bigint.js +2 -3
  416. package/dist/esm/encoding/bigint.js.map +1 -1
  417. package/dist/esm/encoding/binarydata.js +73 -0
  418. package/dist/esm/encoding/binarydata.js.map +1 -0
  419. package/dist/esm/encoding/encoding.js +337 -12
  420. package/dist/esm/encoding/encoding.js.map +1 -1
  421. package/dist/esm/encoding/schema/address.js +37 -0
  422. package/dist/esm/encoding/schema/address.js.map +1 -0
  423. package/dist/esm/encoding/schema/array.js +39 -0
  424. package/dist/esm/encoding/schema/array.js.map +1 -0
  425. package/dist/esm/encoding/schema/binarystring.js +51 -0
  426. package/dist/esm/encoding/schema/binarystring.js.map +1 -0
  427. package/dist/esm/encoding/schema/blockhash.js +60 -0
  428. package/dist/esm/encoding/schema/blockhash.js.map +1 -0
  429. package/dist/esm/encoding/schema/boolean.js +38 -0
  430. package/dist/esm/encoding/schema/boolean.js.map +1 -0
  431. package/dist/esm/encoding/schema/bytearray.js +93 -0
  432. package/dist/esm/encoding/schema/bytearray.js.map +1 -0
  433. package/dist/esm/encoding/schema/index.js +12 -0
  434. package/dist/esm/encoding/schema/index.js.map +1 -0
  435. package/dist/esm/encoding/schema/map.js +517 -0
  436. package/dist/esm/encoding/schema/map.js.map +1 -0
  437. package/dist/esm/encoding/schema/optional.js +54 -0
  438. package/dist/esm/encoding/schema/optional.js.map +1 -0
  439. package/dist/esm/encoding/schema/string.js +39 -0
  440. package/dist/esm/encoding/schema/string.js.map +1 -0
  441. package/dist/esm/encoding/schema/uint64.js +32 -0
  442. package/dist/esm/encoding/schema/uint64.js.map +1 -0
  443. package/dist/esm/encoding/schema/untyped.js +29 -0
  444. package/dist/esm/encoding/schema/untyped.js.map +1 -0
  445. package/dist/esm/encoding/uint64.js +1 -1
  446. package/dist/esm/encoding/uint64.js.map +1 -1
  447. package/dist/esm/group.js +22 -58
  448. package/dist/esm/group.js.map +1 -1
  449. package/dist/esm/index.js +2 -2
  450. package/dist/esm/index.js.map +1 -1
  451. package/dist/esm/logic/sourcemap.js +54 -23
  452. package/dist/esm/logic/sourcemap.js.map +1 -1
  453. package/dist/esm/logicsig.js +110 -141
  454. package/dist/esm/logicsig.js.map +1 -1
  455. package/dist/esm/main.js +47 -76
  456. package/dist/esm/main.js.map +1 -1
  457. package/dist/esm/makeTxn.js +314 -513
  458. package/dist/esm/makeTxn.js.map +1 -1
  459. package/dist/esm/mnemonic/mnemonic.js +5 -5
  460. package/dist/esm/mnemonic/mnemonic.js.map +1 -1
  461. package/dist/esm/multisig.js +56 -305
  462. package/dist/esm/multisig.js.map +1 -1
  463. package/dist/esm/multisigSigning.js +254 -0
  464. package/dist/esm/multisigSigning.js.map +1 -0
  465. package/dist/esm/nacl/naclWrappers.js +1 -1
  466. package/dist/esm/nacl/naclWrappers.js.map +1 -1
  467. package/dist/esm/package.json +1 -0
  468. package/dist/esm/signedTransaction.js +100 -0
  469. package/dist/esm/signedTransaction.js.map +1 -0
  470. package/dist/esm/signer.js +3 -3
  471. package/dist/esm/signer.js.map +1 -1
  472. package/dist/esm/signing.js +77 -0
  473. package/dist/esm/signing.js.map +1 -0
  474. package/dist/esm/stateproof.js +408 -0
  475. package/dist/esm/stateproof.js.map +1 -0
  476. package/dist/esm/transaction.js +723 -1005
  477. package/dist/esm/transaction.js.map +1 -1
  478. package/dist/esm/types/block.js +797 -0
  479. package/dist/esm/types/block.js.map +1 -0
  480. package/dist/esm/types/intDecoding.js +1 -1
  481. package/dist/esm/types/intDecoding.js.map +1 -1
  482. package/dist/esm/types/statedelta.js +1129 -0
  483. package/dist/esm/types/statedelta.js.map +1 -0
  484. package/dist/esm/types/transactions/base.js +18 -2
  485. package/dist/esm/types/transactions/base.js.map +1 -1
  486. package/dist/esm/types/transactions/encoded.js +62 -1
  487. package/dist/esm/types/transactions/encoded.js.map +1 -1
  488. package/dist/esm/types/transactions/index.js +2 -3
  489. package/dist/esm/types/transactions/index.js.map +1 -1
  490. package/dist/esm/utils/utils.js +80 -21
  491. package/dist/esm/utils/utils.js.map +1 -1
  492. package/dist/esm/wait.js +4 -4
  493. package/dist/esm/wait.js.map +1 -1
  494. package/dist/types/abi/abi_type.d.ts +1 -1
  495. package/dist/types/abi/contract.d.ts +5 -1
  496. package/dist/types/abi/event.d.ts +16 -0
  497. package/dist/types/abi/index.d.ts +6 -6
  498. package/dist/types/abi/interface.d.ts +1 -1
  499. package/dist/types/abi/method.d.ts +12 -5
  500. package/dist/types/abi/transaction.d.ts +1 -1
  501. package/dist/types/account.d.ts +1 -1
  502. package/dist/types/boxStorage.d.ts +4 -5
  503. package/dist/types/client/baseHTTPClient.d.ts +9 -6
  504. package/dist/types/client/client.d.ts +59 -18
  505. package/dist/types/client/index.d.ts +5 -0
  506. package/dist/types/client/kmd.d.ts +12 -10
  507. package/dist/types/client/urlTokenBaseHTTPClient.d.ts +8 -5
  508. package/dist/types/client/v2/algod/accountApplicationInformation.d.ts +8 -6
  509. package/dist/types/client/v2/algod/accountAssetInformation.d.ts +8 -6
  510. package/dist/types/client/v2/algod/accountInformation.d.ts +7 -5
  511. package/dist/types/client/v2/algod/algod.d.ts +53 -52
  512. package/dist/types/client/v2/algod/block.d.ts +5 -4
  513. package/dist/types/client/v2/algod/compile.d.ts +7 -9
  514. package/dist/types/client/v2/algod/disassemble.d.ts +7 -9
  515. package/dist/types/client/v2/algod/dryrun.d.ts +7 -9
  516. package/dist/types/client/v2/algod/genesis.d.ts +4 -2
  517. package/dist/types/client/v2/algod/getApplicationBoxByName.d.ts +6 -7
  518. package/dist/types/client/v2/algod/getApplicationBoxes.d.ts +6 -7
  519. package/dist/types/client/v2/algod/getApplicationByID.d.ts +6 -5
  520. package/dist/types/client/v2/algod/getAssetByID.d.ts +6 -5
  521. package/dist/types/client/v2/algod/getBlockHash.d.ts +7 -6
  522. package/dist/types/client/v2/algod/getBlockOffsetTimestamp.d.ts +5 -4
  523. package/dist/types/client/v2/algod/getBlockTxids.d.ts +6 -5
  524. package/dist/types/client/v2/algod/getLedgerStateDelta.d.ts +6 -5
  525. package/dist/types/client/v2/algod/getLedgerStateDeltaForTransactionGroup.d.ts +6 -5
  526. package/dist/types/client/v2/algod/getSyncRound.d.ts +5 -4
  527. package/dist/types/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.d.ts +6 -7
  528. package/dist/types/client/v2/algod/getTransactionProof.d.ts +6 -5
  529. package/dist/types/client/v2/algod/healthCheck.d.ts +4 -3
  530. package/dist/types/client/v2/algod/index.d.ts +2 -0
  531. package/dist/types/client/v2/algod/lightBlockHeaderProof.d.ts +6 -5
  532. package/dist/types/client/v2/algod/models/types.d.ts +629 -318
  533. package/dist/types/client/v2/algod/pendingTransactionInformation.d.ts +5 -4
  534. package/dist/types/client/v2/algod/pendingTransactions.d.ts +5 -4
  535. package/dist/types/client/v2/algod/pendingTransactionsByAddress.d.ts +7 -5
  536. package/dist/types/client/v2/algod/ready.d.ts +4 -2
  537. package/dist/types/client/v2/algod/sendRawTransaction.d.ts +7 -5
  538. package/dist/types/client/v2/algod/setBlockOffsetTimestamp.d.ts +6 -6
  539. package/dist/types/client/v2/algod/setSyncRound.d.ts +6 -6
  540. package/dist/types/client/v2/algod/simulateTransaction.d.ts +7 -7
  541. package/dist/types/client/v2/algod/stateproof.d.ts +6 -5
  542. package/dist/types/client/v2/algod/status.d.ts +5 -2
  543. package/dist/types/client/v2/algod/statusAfterBlock.d.ts +6 -5
  544. package/dist/types/client/v2/algod/suggestedParams.d.ts +25 -4
  545. package/dist/types/client/v2/algod/supply.d.ts +5 -2
  546. package/dist/types/client/v2/algod/unsetSyncRound.d.ts +5 -3
  547. package/dist/types/client/v2/algod/versions.d.ts +5 -2
  548. package/dist/types/client/v2/indexer/index.d.ts +2 -0
  549. package/dist/types/client/v2/indexer/indexer.d.ts +31 -30
  550. package/dist/types/client/v2/indexer/lookupAccountAppLocalStates.d.ts +7 -5
  551. package/dist/types/client/v2/indexer/lookupAccountAssets.d.ts +7 -5
  552. package/dist/types/client/v2/indexer/lookupAccountByID.d.ts +7 -5
  553. package/dist/types/client/v2/indexer/lookupAccountCreatedApplications.d.ts +7 -5
  554. package/dist/types/client/v2/indexer/lookupAccountCreatedAssets.d.ts +7 -5
  555. package/dist/types/client/v2/indexer/lookupAccountTransactions.d.ts +11 -9
  556. package/dist/types/client/v2/indexer/lookupApplicationBoxByIDandName.d.ts +6 -7
  557. package/dist/types/client/v2/indexer/lookupApplicationLogs.d.ts +6 -5
  558. package/dist/types/client/v2/indexer/lookupApplications.d.ts +6 -5
  559. package/dist/types/client/v2/indexer/lookupAssetBalances.d.ts +6 -5
  560. package/dist/types/client/v2/indexer/lookupAssetByID.d.ts +6 -5
  561. package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +12 -10
  562. package/dist/types/client/v2/indexer/lookupBlock.d.ts +6 -5
  563. package/dist/types/client/v2/indexer/lookupTransactionByID.d.ts +6 -5
  564. package/dist/types/client/v2/indexer/makeHealthCheck.d.ts +5 -2
  565. package/dist/types/client/v2/indexer/models/types.d.ts +513 -267
  566. package/dist/types/client/v2/indexer/searchAccounts.d.ts +7 -3
  567. package/dist/types/client/v2/indexer/searchForApplicationBoxes.d.ts +6 -7
  568. package/dist/types/client/v2/indexer/searchForApplications.d.ts +7 -3
  569. package/dist/types/client/v2/indexer/searchForAssets.d.ts +7 -3
  570. package/dist/types/client/v2/indexer/searchForTransactions.d.ts +11 -7
  571. package/dist/types/client/v2/jsonrequest.d.ts +20 -33
  572. package/dist/types/client/v2/serviceClient.d.ts +4 -18
  573. package/dist/types/client/v2/untypedmodel.d.ts +10 -0
  574. package/dist/types/composer.d.ts +18 -17
  575. package/dist/types/dryrun.d.ts +8 -80
  576. package/dist/types/encoding/address.d.ts +40 -31
  577. package/dist/types/encoding/binarydata.d.ts +30 -0
  578. package/dist/types/encoding/encoding.d.ts +219 -7
  579. package/dist/types/encoding/schema/address.d.ts +10 -0
  580. package/dist/types/encoding/schema/array.d.ts +11 -0
  581. package/dist/types/encoding/schema/binarystring.d.ts +18 -0
  582. package/dist/types/encoding/schema/blockhash.d.ts +16 -0
  583. package/dist/types/encoding/schema/boolean.d.ts +10 -0
  584. package/dist/types/encoding/schema/bytearray.d.ts +19 -0
  585. package/dist/types/encoding/schema/index.d.ts +11 -0
  586. package/dist/types/encoding/schema/map.d.ts +125 -0
  587. package/dist/types/encoding/schema/optional.d.ts +24 -0
  588. package/dist/types/encoding/schema/string.d.ts +9 -0
  589. package/dist/types/encoding/schema/uint64.d.ts +9 -0
  590. package/dist/types/encoding/schema/untyped.d.ts +9 -0
  591. package/dist/types/encoding/uint64.d.ts +1 -0
  592. package/dist/types/group.d.ts +6 -25
  593. package/dist/types/index.d.ts +2 -2
  594. package/dist/types/logic/sourcemap.d.ts +39 -13
  595. package/dist/types/logicsig.d.ts +27 -57
  596. package/dist/types/main.d.ts +43 -54
  597. package/dist/types/makeTxn.d.ts +129 -388
  598. package/dist/types/mnemonic/mnemonic.d.ts +1 -1
  599. package/dist/types/multisig.d.ts +28 -99
  600. package/dist/types/multisigSigning.d.ts +72 -0
  601. package/dist/types/signedTransaction.d.ts +55 -0
  602. package/dist/types/signer.d.ts +5 -5
  603. package/dist/types/signing.d.ts +29 -0
  604. package/dist/types/stateproof.d.ts +194 -0
  605. package/dist/types/transaction.d.ts +103 -182
  606. package/dist/types/types/account.d.ts +2 -1
  607. package/dist/types/types/block.d.ts +407 -0
  608. package/dist/types/types/intDecoding.d.ts +1 -1
  609. package/dist/types/types/statedelta.d.ts +575 -0
  610. package/dist/types/types/transactions/base.d.ts +206 -118
  611. package/dist/types/types/transactions/encoded.d.ts +7 -301
  612. package/dist/types/types/transactions/index.d.ts +2 -15
  613. package/dist/types/types/utils.d.ts +7 -7
  614. package/dist/types/utils/utils.d.ts +21 -16
  615. package/dist/types/wait.d.ts +3 -2
  616. package/package.json +48 -20
  617. package/src/abi/abi_type.ts +28 -18
  618. package/src/abi/contract.ts +7 -1
  619. package/src/abi/event.ts +16 -0
  620. package/src/abi/index.ts +6 -6
  621. package/src/abi/interface.ts +1 -1
  622. package/src/abi/method.ts +22 -8
  623. package/src/abi/transaction.ts +2 -2
  624. package/src/account.ts +5 -5
  625. package/src/boxStorage.ts +25 -23
  626. package/src/client/baseHTTPClient.ts +12 -6
  627. package/src/client/client.ts +147 -75
  628. package/src/client/index.ts +6 -0
  629. package/src/client/kmd.ts +79 -72
  630. package/src/client/urlTokenBaseHTTPClient.ts +25 -14
  631. package/src/client/v2/algod/accountApplicationInformation.ts +16 -9
  632. package/src/client/v2/algod/accountAssetInformation.ts +16 -9
  633. package/src/client/v2/algod/accountInformation.ts +16 -11
  634. package/src/client/v2/algod/algod.ts +83 -105
  635. package/src/client/v2/algod/block.ts +7 -11
  636. package/src/client/v2/algod/compile.ts +27 -19
  637. package/src/client/v2/algod/disassemble.ts +27 -19
  638. package/src/client/v2/algod/dryrun.ts +23 -19
  639. package/src/client/v2/algod/genesis.ts +8 -2
  640. package/src/client/v2/algod/getApplicationBoxByName.ts +10 -15
  641. package/src/client/v2/algod/getApplicationBoxes.ts +12 -13
  642. package/src/client/v2/algod/getApplicationByID.ts +15 -7
  643. package/src/client/v2/algod/getAssetByID.ts +15 -7
  644. package/src/client/v2/algod/getBlockHash.ts +13 -9
  645. package/src/client/v2/algod/getBlockOffsetTimestamp.ts +7 -8
  646. package/src/client/v2/algod/getBlockTxids.ts +12 -6
  647. package/src/client/v2/algod/getLedgerStateDelta.ts +16 -8
  648. package/src/client/v2/algod/getLedgerStateDeltaForTransactionGroup.ts +16 -8
  649. package/src/client/v2/algod/getSyncRound.ts +7 -8
  650. package/src/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.ts +15 -15
  651. package/src/client/v2/algod/getTransactionProof.ts +11 -9
  652. package/src/client/v2/algod/healthCheck.ts +5 -9
  653. package/src/client/v2/algod/index.ts +3 -0
  654. package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -8
  655. package/src/client/v2/algod/models/types.ts +4729 -2254
  656. package/src/client/v2/algod/pendingTransactionInformation.ts +11 -11
  657. package/src/client/v2/algod/pendingTransactions.ts +7 -9
  658. package/src/client/v2/algod/pendingTransactionsByAddress.ts +12 -11
  659. package/src/client/v2/algod/ready.ts +6 -2
  660. package/src/client/v2/algod/sendRawTransaction.ts +24 -13
  661. package/src/client/v2/algod/setBlockOffsetTimestamp.ts +21 -11
  662. package/src/client/v2/algod/setSyncRound.ts +21 -11
  663. package/src/client/v2/algod/simulateTransaction.ts +22 -23
  664. package/src/client/v2/algod/stateproof.ts +15 -8
  665. package/src/client/v2/algod/status.ts +10 -2
  666. package/src/client/v2/algod/statusAfterBlock.ts +15 -7
  667. package/src/client/v2/algod/suggestedParams.ts +40 -10
  668. package/src/client/v2/algod/supply.ts +10 -2
  669. package/src/client/v2/algod/unsetSyncRound.ts +16 -5
  670. package/src/client/v2/algod/versions.ts +10 -2
  671. package/src/client/v2/indexer/index.ts +3 -0
  672. package/src/client/v2/indexer/indexer.ts +51 -59
  673. package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +16 -11
  674. package/src/client/v2/indexer/lookupAccountAssets.ts +16 -11
  675. package/src/client/v2/indexer/lookupAccountByID.ts +16 -11
  676. package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +16 -11
  677. package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +16 -11
  678. package/src/client/v2/indexer/lookupAccountTransactions.ts +26 -19
  679. package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +10 -15
  680. package/src/client/v2/indexer/lookupApplicationLogs.ts +15 -7
  681. package/src/client/v2/indexer/lookupApplications.ts +15 -7
  682. package/src/client/v2/indexer/lookupAssetBalances.ts +15 -7
  683. package/src/client/v2/indexer/lookupAssetByID.ts +15 -7
  684. package/src/client/v2/indexer/lookupAssetTransactions.ts +27 -16
  685. package/src/client/v2/indexer/lookupBlock.ts +15 -7
  686. package/src/client/v2/indexer/lookupTransactionByID.ts +15 -7
  687. package/src/client/v2/indexer/makeHealthCheck.ts +10 -2
  688. package/src/client/v2/indexer/models/types.ts +4454 -1988
  689. package/src/client/v2/indexer/searchAccounts.ts +13 -4
  690. package/src/client/v2/indexer/searchForApplicationBoxes.ts +12 -13
  691. package/src/client/v2/indexer/searchForApplications.ts +13 -4
  692. package/src/client/v2/indexer/searchForAssets.ts +13 -4
  693. package/src/client/v2/indexer/searchForTransactions.ts +22 -11
  694. package/src/client/v2/jsonrequest.ts +39 -57
  695. package/src/client/v2/serviceClient.ts +9 -31
  696. package/src/client/v2/untypedmodel.ts +25 -0
  697. package/src/composer.ts +83 -60
  698. package/src/dryrun.ts +129 -306
  699. package/src/encoding/address.ts +134 -146
  700. package/src/encoding/bigint.ts +2 -4
  701. package/src/encoding/binarydata.ts +80 -0
  702. package/src/encoding/encoding.ts +558 -13
  703. package/src/encoding/schema/address.ts +53 -0
  704. package/src/encoding/schema/array.ts +66 -0
  705. package/src/encoding/schema/binarystring.ts +73 -0
  706. package/src/encoding/schema/blockhash.ts +84 -0
  707. package/src/encoding/schema/boolean.ts +54 -0
  708. package/src/encoding/schema/bytearray.ts +127 -0
  709. package/src/encoding/schema/index.ts +26 -0
  710. package/src/encoding/schema/map.ts +713 -0
  711. package/src/encoding/schema/optional.ts +72 -0
  712. package/src/encoding/schema/string.ts +55 -0
  713. package/src/encoding/schema/uint64.ts +46 -0
  714. package/src/encoding/schema/untyped.ts +47 -0
  715. package/src/encoding/uint64.ts +2 -1
  716. package/src/group.ts +27 -75
  717. package/src/index.ts +2 -2
  718. package/src/logic/sourcemap.ts +94 -29
  719. package/src/logicsig.ts +154 -202
  720. package/src/main.ts +91 -94
  721. package/src/makeTxn.ts +670 -1320
  722. package/src/mnemonic/mnemonic.ts +14 -14
  723. package/src/multisig.ts +89 -403
  724. package/src/multisigSigning.ts +359 -0
  725. package/src/nacl/naclWrappers.ts +1 -1
  726. package/src/signedTransaction.ts +163 -0
  727. package/src/signer.ts +10 -5
  728. package/src/signing.ts +95 -0
  729. package/src/stateproof.ts +595 -0
  730. package/src/transaction.ts +986 -1242
  731. package/src/types/account.ts +3 -1
  732. package/src/types/block.ts +1278 -0
  733. package/src/types/intDecoding.ts +1 -1
  734. package/src/types/statedelta.ts +1717 -0
  735. package/src/types/transactions/base.ts +230 -122
  736. package/src/types/transactions/encoded.ts +81 -371
  737. package/src/types/transactions/index.ts +2 -72
  738. package/src/types/utils.ts +3 -3
  739. package/src/utils/utils.ts +96 -25
  740. package/src/wait.ts +8 -7
  741. package/dist/cjs/bid.js +0 -83
  742. package/dist/cjs/bid.js.map +0 -1
  743. package/dist/cjs/client/v2/basemodel.js +0 -67
  744. package/dist/cjs/client/v2/basemodel.js.map +0 -1
  745. package/dist/cjs/types/address.js +0 -3
  746. package/dist/cjs/types/address.js.map +0 -1
  747. package/dist/cjs/types/blockHeader.js +0 -3
  748. package/dist/cjs/types/blockHeader.js.map +0 -1
  749. package/dist/cjs/types/index.js.map +0 -1
  750. package/dist/cjs/types/multisig.js +0 -3
  751. package/dist/cjs/types/multisig.js.map +0 -1
  752. package/dist/cjs/types/transactions/application.js +0 -3
  753. package/dist/cjs/types/transactions/application.js.map +0 -1
  754. package/dist/cjs/types/transactions/asset.js.map +0 -1
  755. package/dist/cjs/types/transactions/builder.js +0 -3
  756. package/dist/cjs/types/transactions/builder.js.map +0 -1
  757. package/dist/cjs/types/transactions/keyreg.js +0 -3
  758. package/dist/cjs/types/transactions/keyreg.js.map +0 -1
  759. package/dist/cjs/types/transactions/payment.js +0 -3
  760. package/dist/cjs/types/transactions/payment.js.map +0 -1
  761. package/dist/cjs/types/transactions/stateproof.js +0 -3
  762. package/dist/cjs/types/transactions/stateproof.js.map +0 -1
  763. package/dist/esm/bid.js +0 -57
  764. package/dist/esm/bid.js.map +0 -1
  765. package/dist/esm/client/v2/basemodel.js +0 -64
  766. package/dist/esm/client/v2/basemodel.js.map +0 -1
  767. package/dist/esm/types/address.js +0 -2
  768. package/dist/esm/types/address.js.map +0 -1
  769. package/dist/esm/types/blockHeader.js +0 -2
  770. package/dist/esm/types/blockHeader.js.map +0 -1
  771. package/dist/esm/types/index.js +0 -4
  772. package/dist/esm/types/index.js.map +0 -1
  773. package/dist/esm/types/multisig.js +0 -2
  774. package/dist/esm/types/multisig.js.map +0 -1
  775. package/dist/esm/types/transactions/application.js +0 -2
  776. package/dist/esm/types/transactions/application.js.map +0 -1
  777. package/dist/esm/types/transactions/asset.js +0 -2
  778. package/dist/esm/types/transactions/asset.js.map +0 -1
  779. package/dist/esm/types/transactions/builder.js +0 -2
  780. package/dist/esm/types/transactions/builder.js.map +0 -1
  781. package/dist/esm/types/transactions/keyreg.js +0 -2
  782. package/dist/esm/types/transactions/keyreg.js.map +0 -1
  783. package/dist/esm/types/transactions/payment.js +0 -2
  784. package/dist/esm/types/transactions/payment.js.map +0 -1
  785. package/dist/esm/types/transactions/stateproof.js +0 -2
  786. package/dist/esm/types/transactions/stateproof.js.map +0 -1
  787. package/dist/types/bid.d.ts +0 -38
  788. package/dist/types/client/v2/basemodel.d.ts +0 -11
  789. package/dist/types/types/address.d.ts +0 -7
  790. package/dist/types/types/blockHeader.d.ts +0 -67
  791. package/dist/types/types/index.d.ts +0 -3
  792. package/dist/types/types/multisig.d.ts +0 -20
  793. package/dist/types/types/transactions/application.d.ts +0 -22
  794. package/dist/types/types/transactions/asset.d.ts +0 -28
  795. package/dist/types/types/transactions/builder.d.ts +0 -36
  796. package/dist/types/types/transactions/keyreg.d.ts +0 -8
  797. package/dist/types/types/transactions/payment.d.ts +0 -8
  798. package/dist/types/types/transactions/stateproof.d.ts +0 -8
  799. package/src/bid.ts +0 -96
  800. package/src/client/v2/basemodel.ts +0 -81
  801. package/src/types/address.ts +0 -7
  802. package/src/types/blockHeader.ts +0 -81
  803. package/src/types/index.ts +0 -3
  804. package/src/types/multisig.ts +0 -22
  805. package/src/types/transactions/application.ts +0 -111
  806. package/src/types/transactions/asset.ts +0 -108
  807. package/src/types/transactions/builder.ts +0 -69
  808. package/src/types/transactions/keyreg.ts +0 -23
  809. package/src/types/transactions/payment.ts +0 -14
  810. package/src/types/transactions/stateproof.ts +0 -17
@@ -0,0 +1,1717 @@
1
+ import { Encodable, Schema } from '../encoding/encoding.js';
2
+ import {
3
+ NamedMapSchema,
4
+ Uint64MapSchema,
5
+ ByteArrayMapSchema,
6
+ SpecialCaseBinaryStringMapSchema,
7
+ SpecialCaseBinaryStringSchema,
8
+ ArraySchema,
9
+ BooleanSchema,
10
+ Uint64Schema,
11
+ AddressSchema,
12
+ ByteArraySchema,
13
+ FixedLengthByteArraySchema,
14
+ OptionalSchema,
15
+ UntypedSchema,
16
+ allOmitEmpty,
17
+ convertMap,
18
+ combineMaps,
19
+ } from '../encoding/schema/index.js';
20
+ import { Address } from '../encoding/address.js';
21
+ import { BlockHeader } from './block.js';
22
+ import { UntypedValue } from '../client/v2/untypedmodel.js';
23
+
24
+ // TealValue contains type information and a value, representing a value in a TEAL program
25
+ export class TealValue implements Encodable {
26
+ public static readonly encodingSchema = new NamedMapSchema(
27
+ allOmitEmpty([
28
+ { key: 'tt', valueSchema: new Uint64Schema() }, // type
29
+ {
30
+ key: 'tb', // bytes
31
+ valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
32
+ },
33
+ { key: 'ui', valueSchema: new OptionalSchema(new Uint64Schema()) }, // uint
34
+ ])
35
+ );
36
+
37
+ /**
38
+ * Type determines the type of the value.
39
+ * * 1 represents the type of a byte slice in a TEAL program
40
+ * * 2 represents the type of an unsigned integer in a TEAL program
41
+ */
42
+ public type: number;
43
+ public bytes?: Uint8Array;
44
+ public uint?: bigint;
45
+
46
+ constructor(params: { type: number; bytes?: Uint8Array; uint?: bigint }) {
47
+ this.type = params.type;
48
+ this.bytes = params.bytes;
49
+ this.uint = params.uint;
50
+ }
51
+
52
+ // eslint-disable-next-line class-methods-use-this
53
+ public getEncodingSchema(): Schema {
54
+ return TealValue.encodingSchema;
55
+ }
56
+
57
+ public toEncodingData(): Map<string, unknown> {
58
+ return new Map<string, unknown>([
59
+ ['tt', this.type],
60
+ ['tb', this.bytes],
61
+ ['ui', this.uint],
62
+ ]);
63
+ }
64
+
65
+ public static fromEncodingData(data: unknown): TealValue {
66
+ if (!(data instanceof Map)) {
67
+ throw new Error(`Invalid decoded TealValue: ${data}`);
68
+ }
69
+ return new TealValue({
70
+ type: Number(data.get('tt')),
71
+ bytes: data.get('tb'),
72
+ uint: data.get('ui'),
73
+ });
74
+ }
75
+ }
76
+
77
+ /**
78
+ * StateSchema sets maximums on the number of each type that may be stored
79
+ */
80
+ export class StateSchema implements Encodable {
81
+ public static readonly encodingSchema = new NamedMapSchema(
82
+ allOmitEmpty([
83
+ {
84
+ key: 'nui', // numUints
85
+ valueSchema: new Uint64Schema(),
86
+ },
87
+ {
88
+ key: 'nbs', // numByteSlices
89
+ valueSchema: new Uint64Schema(),
90
+ },
91
+ ])
92
+ );
93
+
94
+ public numUints: number;
95
+ public numByteSlices: number;
96
+
97
+ public constructor(params: { numUints: number; numByteSlices: number }) {
98
+ this.numUints = params.numUints;
99
+ this.numByteSlices = params.numByteSlices;
100
+ }
101
+
102
+ // eslint-disable-next-line class-methods-use-this
103
+ public getEncodingSchema(): Schema {
104
+ return StateSchema.encodingSchema;
105
+ }
106
+
107
+ public toEncodingData(): Map<string, unknown> {
108
+ return new Map<string, unknown>([
109
+ ['nui', this.numUints],
110
+ ['nbs', this.numByteSlices],
111
+ ]);
112
+ }
113
+
114
+ public static fromEncodingData(data: unknown): StateSchema {
115
+ if (!(data instanceof Map)) {
116
+ throw new Error(`Invalid decoded StateSchema: ${data}`);
117
+ }
118
+ return new StateSchema({
119
+ numUints: Number(data.get('nui')),
120
+ numByteSlices: Number(data.get('nbs')),
121
+ });
122
+ }
123
+ }
124
+
125
+ /**
126
+ * AppParams stores the global information associated with an application
127
+ */
128
+ export class AppParams implements Encodable {
129
+ public static readonly encodingSchema = new NamedMapSchema(
130
+ allOmitEmpty([
131
+ { key: 'approv', valueSchema: new ByteArraySchema() }, // approvalProgram
132
+ { key: 'clearp', valueSchema: new ByteArraySchema() }, // alearStateProgram
133
+ {
134
+ key: 'gs',
135
+ valueSchema: new SpecialCaseBinaryStringMapSchema(
136
+ TealValue.encodingSchema
137
+ ),
138
+ }, // globalState
139
+ { key: 'lsch', valueSchema: StateSchema.encodingSchema }, // localStateSchema
140
+ { key: 'gsch', valueSchema: StateSchema.encodingSchema }, // globalStateSchema
141
+ { key: 'epp', valueSchema: new Uint64Schema() }, // extraProgramPages
142
+ ])
143
+ );
144
+
145
+ public approvalProgram: Uint8Array;
146
+ public clearStateProgram: Uint8Array;
147
+ public globalState: Map<Uint8Array, TealValue>;
148
+ public localStateSchema: StateSchema;
149
+ public globalStateSchema: StateSchema;
150
+ public extraProgramPages: number;
151
+
152
+ constructor(params: {
153
+ approvalProgram: Uint8Array;
154
+ clearStateProgram: Uint8Array;
155
+ globalState: Map<Uint8Array, TealValue>;
156
+ localStateSchema: StateSchema;
157
+ globalStateSchema: StateSchema;
158
+ extraProgramPages: number;
159
+ }) {
160
+ this.approvalProgram = params.approvalProgram;
161
+ this.clearStateProgram = params.clearStateProgram;
162
+ this.globalState = params.globalState;
163
+ this.localStateSchema = params.localStateSchema;
164
+ this.globalStateSchema = params.globalStateSchema;
165
+ this.extraProgramPages = params.extraProgramPages;
166
+ }
167
+
168
+ // eslint-disable-next-line class-methods-use-this
169
+ public getEncodingSchema(): Schema {
170
+ return AppParams.encodingSchema;
171
+ }
172
+
173
+ public toEncodingData(): Map<string, unknown> {
174
+ return new Map<string, unknown>([
175
+ ['approv', this.approvalProgram],
176
+ ['clearp', this.clearStateProgram],
177
+ ['gs', convertMap(this.globalState, (k, v) => [k, v.toEncodingData()])],
178
+ ['lsch', this.localStateSchema.toEncodingData()],
179
+ ['gsch', this.globalStateSchema.toEncodingData()],
180
+ ['epp', this.extraProgramPages],
181
+ ]);
182
+ }
183
+
184
+ public static fromEncodingData(data: unknown) {
185
+ if (!(data instanceof Map)) {
186
+ throw new Error(`Invalid decoded AppParams: ${data}`);
187
+ }
188
+ return new AppParams({
189
+ approvalProgram: data.get('approv'),
190
+ clearStateProgram: data.get('clearp'),
191
+ globalState: convertMap(
192
+ data.get('gs') as Map<Uint8Array, unknown>,
193
+ (k, v) => [k, TealValue.fromEncodingData(v)]
194
+ ),
195
+ localStateSchema: StateSchema.fromEncodingData(data.get('lsch')),
196
+ globalStateSchema: StateSchema.fromEncodingData(data.get('gsch')),
197
+ extraProgramPages: Number(data.get('epp')),
198
+ });
199
+ }
200
+ }
201
+
202
+ /**
203
+ * AppLocalState stores the LocalState associated with an application.
204
+ */
205
+ export class AppLocalState implements Encodable {
206
+ public static readonly encodingSchema = new NamedMapSchema(
207
+ allOmitEmpty([
208
+ { key: 'hsch', valueSchema: StateSchema.encodingSchema }, // schema
209
+ {
210
+ key: 'tkv', // keyValue
211
+ valueSchema: new SpecialCaseBinaryStringMapSchema(
212
+ TealValue.encodingSchema
213
+ ),
214
+ },
215
+ ])
216
+ );
217
+
218
+ public schema: StateSchema;
219
+ public keyValue: Map<Uint8Array, TealValue>;
220
+
221
+ constructor(params: {
222
+ schema: StateSchema;
223
+ keyValue: Map<Uint8Array, TealValue>;
224
+ }) {
225
+ this.schema = params.schema;
226
+ this.keyValue = params.keyValue;
227
+ }
228
+
229
+ // eslint-disable-next-line class-methods-use-this
230
+ public getEncodingSchema(): Schema {
231
+ return AppLocalState.encodingSchema;
232
+ }
233
+
234
+ public toEncodingData(): Map<string, unknown> {
235
+ return new Map<string, unknown>([
236
+ ['hsch', this.schema.toEncodingData()],
237
+ ['tkv', convertMap(this.keyValue, (k, v) => [k, v.toEncodingData()])],
238
+ ]);
239
+ }
240
+
241
+ public static fromEncodingData(data: unknown): AppLocalState {
242
+ if (!(data instanceof Map)) {
243
+ throw new Error(`Invalid decoded AppLocalState: ${data}`);
244
+ }
245
+ return new AppLocalState({
246
+ schema: StateSchema.fromEncodingData(data.get('hsch')),
247
+ keyValue: convertMap(
248
+ data.get('tkv') as Map<Uint8Array, unknown>,
249
+ (k, v) => [k, TealValue.fromEncodingData(v)]
250
+ ),
251
+ });
252
+ }
253
+ }
254
+
255
+ /**
256
+ * AppLocalStateDelta tracks a changed AppLocalState, and whether it was deleted
257
+ */
258
+ export class AppLocalStateDelta implements Encodable {
259
+ public static readonly encodingSchema = new NamedMapSchema(
260
+ allOmitEmpty([
261
+ {
262
+ key: 'LocalState', // localState
263
+ valueSchema: new OptionalSchema(AppLocalState.encodingSchema),
264
+ },
265
+ { key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
266
+ ])
267
+ );
268
+
269
+ public localState?: AppLocalState;
270
+ public deleted: boolean;
271
+
272
+ constructor(params: { localState?: AppLocalState; deleted: boolean }) {
273
+ this.localState = params.localState;
274
+ this.deleted = params.deleted;
275
+ }
276
+
277
+ // eslint-disable-next-line class-methods-use-this
278
+ public getEncodingSchema(): Schema {
279
+ return AppLocalStateDelta.encodingSchema;
280
+ }
281
+
282
+ public toEncodingData(): Map<string, unknown> {
283
+ return new Map<string, unknown>([
284
+ [
285
+ 'LocalState',
286
+ this.localState ? this.localState.toEncodingData() : undefined,
287
+ ],
288
+ ['Deleted', this.deleted],
289
+ ]);
290
+ }
291
+
292
+ public static fromEncodingData(data: unknown): AppLocalStateDelta {
293
+ if (!(data instanceof Map)) {
294
+ throw new Error(`Invalid decoded AppLocalStateDelta: ${data}`);
295
+ }
296
+ return new AppLocalStateDelta({
297
+ localState: data.get('LocalState')
298
+ ? AppLocalState.fromEncodingData(data.get('LocalState'))
299
+ : undefined,
300
+ deleted: data.get('Deleted'),
301
+ });
302
+ }
303
+ }
304
+
305
+ /**
306
+ * AppParamsDelta tracks a changed AppParams, and whether it was deleted
307
+ */
308
+ export class AppParamsDelta implements Encodable {
309
+ public static readonly encodingSchema = new NamedMapSchema(
310
+ allOmitEmpty([
311
+ {
312
+ key: 'Params', // params
313
+ valueSchema: new OptionalSchema(AppParams.encodingSchema),
314
+ },
315
+ { key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
316
+ ])
317
+ );
318
+
319
+ public params?: AppParams;
320
+ public deleted: boolean;
321
+
322
+ constructor(params: { params?: AppParams; deleted: boolean }) {
323
+ this.params = params.params;
324
+ this.deleted = params.deleted;
325
+ }
326
+
327
+ // eslint-disable-next-line class-methods-use-this
328
+ public getEncodingSchema(): Schema {
329
+ return AppParamsDelta.encodingSchema;
330
+ }
331
+
332
+ public toEncodingData(): Map<string, unknown> {
333
+ return new Map<string, unknown>([
334
+ ['Params', this.params ? this.params.toEncodingData() : undefined],
335
+ ['Deleted', this.deleted],
336
+ ]);
337
+ }
338
+
339
+ public static fromEncodingData(data: unknown): AppParamsDelta {
340
+ if (!(data instanceof Map)) {
341
+ throw new Error(`Invalid decoded AppParamsDelta: ${data}`);
342
+ }
343
+ return new AppParamsDelta({
344
+ params: data.get('Params')
345
+ ? AppParams.fromEncodingData(data.get('Params'))
346
+ : undefined,
347
+ deleted: data.get('Deleted'),
348
+ });
349
+ }
350
+ }
351
+
352
+ /**
353
+ * AppResourceRecord represents AppParams and AppLocalState in deltas
354
+ */
355
+ export class AppResourceRecord implements Encodable {
356
+ public static readonly encodingSchema = new NamedMapSchema(
357
+ allOmitEmpty([
358
+ { key: 'Aidx', valueSchema: new Uint64Schema() }, // id
359
+ { key: 'Addr', valueSchema: new AddressSchema() }, // address
360
+ {
361
+ key: 'Params', // params
362
+ valueSchema: AppParamsDelta.encodingSchema,
363
+ },
364
+ {
365
+ key: 'State', // state
366
+ valueSchema: AppLocalStateDelta.encodingSchema,
367
+ },
368
+ ])
369
+ );
370
+
371
+ public id: bigint;
372
+ public address: Address;
373
+ public params: AppParamsDelta;
374
+ public state: AppLocalStateDelta;
375
+
376
+ constructor(params: {
377
+ id: bigint;
378
+ address: Address;
379
+ params: AppParamsDelta;
380
+ state: AppLocalStateDelta;
381
+ }) {
382
+ this.id = params.id;
383
+ this.address = params.address;
384
+ this.params = params.params;
385
+ this.state = params.state;
386
+ }
387
+
388
+ // eslint-disable-next-line class-methods-use-this
389
+ public getEncodingSchema(): Schema {
390
+ return AppResourceRecord.encodingSchema;
391
+ }
392
+
393
+ public toEncodingData(): Map<string, unknown> {
394
+ return new Map<string, unknown>([
395
+ ['Aidx', this.id],
396
+ ['Addr', this.address],
397
+ ['Params', this.params.toEncodingData()],
398
+ ['State', this.state.toEncodingData()],
399
+ ]);
400
+ }
401
+
402
+ public static fromEncodingData(data: unknown): AppResourceRecord {
403
+ if (!(data instanceof Map)) {
404
+ throw new Error(`Invalid decoded AppResourceRecord: ${data}`);
405
+ }
406
+ return new AppResourceRecord({
407
+ id: data.get('Aidx'),
408
+ address: data.get('Addr'),
409
+ params: AppParamsDelta.fromEncodingData(data.get('Params')),
410
+ state: AppLocalStateDelta.fromEncodingData(data.get('State')),
411
+ });
412
+ }
413
+ }
414
+
415
+ /**
416
+ * AssetHolding describes an asset held by an account.
417
+ */
418
+ export class AssetHolding implements Encodable {
419
+ public static readonly encodingSchema = new NamedMapSchema(
420
+ allOmitEmpty([
421
+ { key: 'a', valueSchema: new Uint64Schema() }, // amount
422
+ { key: 'f', valueSchema: new BooleanSchema() }, // frozen
423
+ ])
424
+ );
425
+
426
+ public amount: bigint;
427
+ public frozen: boolean;
428
+
429
+ constructor(params: { amount: bigint; frozen: boolean }) {
430
+ this.amount = params.amount;
431
+ this.frozen = params.frozen;
432
+ }
433
+
434
+ // eslint-disable-next-line class-methods-use-this
435
+ public getEncodingSchema(): Schema {
436
+ return AssetHolding.encodingSchema;
437
+ }
438
+
439
+ public toEncodingData(): Map<string, unknown> {
440
+ return new Map<string, unknown>([
441
+ ['a', this.amount],
442
+ ['f', this.frozen],
443
+ ]);
444
+ }
445
+
446
+ public static fromEncodingData(data: unknown): AssetHolding {
447
+ if (!(data instanceof Map)) {
448
+ throw new Error(`Invalid decoded AssetHolding: ${data}`);
449
+ }
450
+ return new AssetHolding({
451
+ amount: data.get('a'),
452
+ frozen: data.get('f'),
453
+ });
454
+ }
455
+ }
456
+
457
+ /**
458
+ * AssetHoldingDelta records a changed AssetHolding, and whether it was deleted
459
+ */
460
+ export class AssetHoldingDelta implements Encodable {
461
+ public static readonly encodingSchema = new NamedMapSchema(
462
+ allOmitEmpty([
463
+ {
464
+ key: 'Holding', // holding
465
+ valueSchema: new OptionalSchema(AssetHolding.encodingSchema),
466
+ },
467
+ { key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
468
+ ])
469
+ );
470
+
471
+ public holding?: AssetHolding;
472
+ public deleted: boolean;
473
+
474
+ constructor(params: { holding?: AssetHolding; deleted: boolean }) {
475
+ this.holding = params.holding;
476
+ this.deleted = params.deleted;
477
+ }
478
+
479
+ // eslint-disable-next-line class-methods-use-this
480
+ public getEncodingSchema(): Schema {
481
+ return AssetHoldingDelta.encodingSchema;
482
+ }
483
+
484
+ public toEncodingData(): Map<string, unknown> {
485
+ return new Map<string, unknown>([
486
+ ['Holding', this.holding ? this.holding.toEncodingData() : undefined],
487
+ ['Deleted', this.deleted],
488
+ ]);
489
+ }
490
+
491
+ public static fromEncodingData(data: unknown): AssetHoldingDelta {
492
+ if (!(data instanceof Map)) {
493
+ throw new Error(`Invalid decoded AssetHoldingDelta: ${data}`);
494
+ }
495
+ return new AssetHoldingDelta({
496
+ holding: data.get('Holding')
497
+ ? AssetHolding.fromEncodingData(data.get('Holding'))
498
+ : undefined,
499
+ deleted: data.get('Deleted'),
500
+ });
501
+ }
502
+ }
503
+
504
+ /**
505
+ * AssetParams describes the parameters of an asset.
506
+ */
507
+ export class AssetParams implements Encodable {
508
+ public static readonly encodingSchema = new NamedMapSchema(
509
+ allOmitEmpty([
510
+ { key: 't', valueSchema: new Uint64Schema() }, // total
511
+ { key: 'dc', valueSchema: new Uint64Schema() }, // decimals
512
+ { key: 'df', valueSchema: new BooleanSchema() }, // defaultFrozen
513
+ {
514
+ key: 'un', // unitName
515
+ valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
516
+ },
517
+ {
518
+ key: 'an', // assetName
519
+ valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
520
+ },
521
+ {
522
+ key: 'au', // url
523
+ valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
524
+ },
525
+ { key: 'am', valueSchema: new FixedLengthByteArraySchema(32) }, // metadataHash
526
+ { key: 'm', valueSchema: new OptionalSchema(new AddressSchema()) }, // manager
527
+ { key: 'r', valueSchema: new OptionalSchema(new AddressSchema()) }, // reserve
528
+ { key: 'f', valueSchema: new OptionalSchema(new AddressSchema()) }, // freeze
529
+ { key: 'c', valueSchema: new OptionalSchema(new AddressSchema()) }, // clawback
530
+ ])
531
+ );
532
+
533
+ /**
534
+ * Total specifies the total number of units of this asset created.
535
+ */
536
+ public total: bigint;
537
+
538
+ /**
539
+ * Decimals specifies the number of digits to display after the decimal place when displaying this asset.
540
+ * A value of 0 represents an asset that is not divisible, a value of 1 represents an asset divisible into tenths, and so on.
541
+ * This value must be between 0 and 19 (inclusive).
542
+ */
543
+ public decimals: number;
544
+
545
+ /**
546
+ * DefaultFrozen specifies whether slots for this asset in user accounts are frozen by default or not.
547
+ */
548
+ public defaultFrozen: boolean;
549
+
550
+ /**
551
+ * UnitName specifies a hint for the name of a unit of this asset.
552
+ */
553
+ public unitName?: Uint8Array;
554
+
555
+ /**
556
+ * AssetName specifies a hint for the name of the asset.
557
+ */
558
+ public assetName?: Uint8Array;
559
+
560
+ /**
561
+ * URL specifies a URL where more information about the asset can be retrieved.
562
+ */
563
+ public url?: Uint8Array;
564
+
565
+ /**
566
+ * MetadataHash specifies a commitment to some unspecified asset metadata. The format of this
567
+ * metadata is up to the application.
568
+ */
569
+ public metadataHash?: Uint8Array;
570
+
571
+ /**
572
+ * Manager specifies an account that is allowed to change the non-zero addresses in this AssetParams.
573
+ */
574
+ public manager?: Address;
575
+
576
+ /**
577
+ * Reserve specifies an account whose holdings of this asset should be reported as "not minted".
578
+ */
579
+ public reserve?: Address;
580
+
581
+ /**
582
+ * Freeze specifies an account that is allowed to change the frozen state of holdings of this asset.
583
+ */
584
+ public freeze?: Address;
585
+
586
+ /**
587
+ * Clawback specifies an account that is allowed to take units of this asset from any account.
588
+ */
589
+ public clawback?: Address;
590
+
591
+ public constructor(params: {
592
+ total: bigint;
593
+ decimals: number;
594
+ defaultFrozen: boolean;
595
+ unitName?: Uint8Array;
596
+ assetName?: Uint8Array;
597
+ url?: Uint8Array;
598
+ metadataHash?: Uint8Array;
599
+ manager?: Address;
600
+ reserve?: Address;
601
+ freeze?: Address;
602
+ clawback?: Address;
603
+ }) {
604
+ this.total = params.total;
605
+ this.decimals = params.decimals;
606
+ this.defaultFrozen = params.defaultFrozen;
607
+ this.unitName = params.unitName;
608
+ this.assetName = params.assetName;
609
+ this.url = params.url;
610
+ this.metadataHash = params.metadataHash;
611
+ this.manager = params.manager;
612
+ this.reserve = params.reserve;
613
+ this.freeze = params.freeze;
614
+ this.clawback = params.clawback;
615
+ }
616
+
617
+ // eslint-disable-next-line class-methods-use-this
618
+ public getEncodingSchema(): Schema {
619
+ return AssetParams.encodingSchema;
620
+ }
621
+
622
+ public toEncodingData(): Map<string, unknown> {
623
+ return new Map<string, unknown>([
624
+ ['t', this.total],
625
+ ['dc', this.decimals],
626
+ ['df', this.defaultFrozen],
627
+ ['un', this.unitName],
628
+ ['an', this.assetName],
629
+ ['au', this.url],
630
+ ['am', this.metadataHash],
631
+ ['m', this.manager],
632
+ ['r', this.reserve],
633
+ ['f', this.freeze],
634
+ ['c', this.clawback],
635
+ ]);
636
+ }
637
+
638
+ public static fromEncodingData(data: unknown): AssetParams {
639
+ if (!(data instanceof Map)) {
640
+ throw new Error(`Invalid decoded AssetParams: ${data}`);
641
+ }
642
+ return new AssetParams({
643
+ total: data.get('t'),
644
+ decimals: data.get('dc'),
645
+ defaultFrozen: data.get('df'),
646
+ unitName: data.get('un'),
647
+ assetName: data.get('an'),
648
+ url: data.get('au'),
649
+ metadataHash: data.get('am'),
650
+ manager: data.get('m'),
651
+ reserve: data.get('r'),
652
+ freeze: data.get('f'),
653
+ clawback: data.get('c'),
654
+ });
655
+ }
656
+ }
657
+
658
+ /**
659
+ * AssetParamsDelta tracks a changed AssetParams, and whether it was deleted
660
+ */
661
+ export class AssetParamsDelta implements Encodable {
662
+ public static readonly encodingSchema = new NamedMapSchema(
663
+ allOmitEmpty([
664
+ {
665
+ key: 'Params', // params
666
+ valueSchema: new OptionalSchema(AssetParams.encodingSchema),
667
+ },
668
+ { key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
669
+ ])
670
+ );
671
+
672
+ public params?: AssetParams;
673
+ public deleted: boolean;
674
+
675
+ constructor(params: { params?: AssetParams; deleted: boolean }) {
676
+ this.params = params.params;
677
+ this.deleted = params.deleted;
678
+ }
679
+
680
+ // eslint-disable-next-line class-methods-use-this
681
+ public getEncodingSchema(): Schema {
682
+ return AssetParamsDelta.encodingSchema;
683
+ }
684
+
685
+ public toEncodingData(): Map<string, unknown> {
686
+ return new Map<string, unknown>([
687
+ ['Params', this.params ? this.params.toEncodingData() : undefined],
688
+ ['Deleted', this.deleted],
689
+ ]);
690
+ }
691
+
692
+ public static fromEncodingData(data: unknown): AssetParamsDelta {
693
+ if (!(data instanceof Map)) {
694
+ throw new Error(`Invalid decoded AssetParamsDelta: ${data}`);
695
+ }
696
+ return new AssetParamsDelta({
697
+ params: data.get('Params')
698
+ ? AssetParams.fromEncodingData(data.get('Params'))
699
+ : undefined,
700
+ deleted: data.get('Deleted'),
701
+ });
702
+ }
703
+ }
704
+
705
+ /**
706
+ * AssetResourceRecord represents AssetParams and AssetHolding in deltas
707
+ */
708
+ export class AssetResourceRecord implements Encodable {
709
+ public static readonly encodingSchema = new NamedMapSchema(
710
+ allOmitEmpty([
711
+ { key: 'Aidx', valueSchema: new Uint64Schema() }, // id
712
+ { key: 'Addr', valueSchema: new AddressSchema() }, // address
713
+ {
714
+ key: 'Params', // params
715
+ valueSchema: AssetParamsDelta.encodingSchema,
716
+ },
717
+ {
718
+ key: 'Holding', // holding
719
+ valueSchema: AssetHoldingDelta.encodingSchema,
720
+ },
721
+ ])
722
+ );
723
+
724
+ public id: bigint;
725
+ public address: Address;
726
+ public params: AssetParamsDelta;
727
+ public holding: AssetHoldingDelta;
728
+
729
+ constructor(params: {
730
+ id: bigint;
731
+ address: Address;
732
+ params: AssetParamsDelta;
733
+ holding: AssetHoldingDelta;
734
+ }) {
735
+ this.id = params.id;
736
+ this.address = params.address;
737
+ this.params = params.params;
738
+ this.holding = params.holding;
739
+ }
740
+
741
+ // eslint-disable-next-line class-methods-use-this
742
+ public getEncodingSchema(): Schema {
743
+ return AssetResourceRecord.encodingSchema;
744
+ }
745
+
746
+ public toEncodingData(): Map<string, unknown> {
747
+ return new Map<string, unknown>([
748
+ ['Aidx', this.id],
749
+ ['Addr', this.address],
750
+ ['Params', this.params.toEncodingData()],
751
+ ['Holding', this.holding.toEncodingData()],
752
+ ]);
753
+ }
754
+
755
+ public static fromEncodingData(data: unknown): AssetResourceRecord {
756
+ if (!(data instanceof Map)) {
757
+ throw new Error(`Invalid decoded AssetResourceRecord: ${data}`);
758
+ }
759
+ return new AssetResourceRecord({
760
+ id: data.get('Aidx'),
761
+ address: data.get('Addr'),
762
+ params: AssetParamsDelta.fromEncodingData(data.get('Params')),
763
+ holding: AssetHoldingDelta.fromEncodingData(data.get('Holding')),
764
+ });
765
+ }
766
+ }
767
+
768
+ /**
769
+ * VotingData holds participation information
770
+ */
771
+ export class VotingData implements Encodable {
772
+ public static readonly encodingSchema = new NamedMapSchema(
773
+ allOmitEmpty([
774
+ {
775
+ key: 'VoteID', // voteID
776
+ valueSchema: new FixedLengthByteArraySchema(32),
777
+ },
778
+ {
779
+ key: 'SelectionID', // selectionID
780
+ valueSchema: new FixedLengthByteArraySchema(32),
781
+ },
782
+ {
783
+ key: 'StateProofID', // stateProofID
784
+ valueSchema: new FixedLengthByteArraySchema(64),
785
+ },
786
+ {
787
+ key: 'VoteFirstValid', // voteFirstValid
788
+ valueSchema: new Uint64Schema(),
789
+ },
790
+ {
791
+ key: 'VoteLastValid', // voteLastValid
792
+ valueSchema: new Uint64Schema(),
793
+ },
794
+ {
795
+ key: 'VoteKeyDilution', // voteKeyDilution
796
+ valueSchema: new Uint64Schema(),
797
+ },
798
+ ])
799
+ );
800
+
801
+ public voteID: Uint8Array;
802
+ public selectionID: Uint8Array;
803
+ public stateProofID: Uint8Array;
804
+
805
+ public voteFirstValid: bigint;
806
+ public voteLastValid: bigint;
807
+ public voteKeyDilution: bigint;
808
+
809
+ constructor(params: {
810
+ voteID: Uint8Array;
811
+ selectionID: Uint8Array;
812
+ stateProofID: Uint8Array;
813
+ voteFirstValid: bigint;
814
+ voteLastValid: bigint;
815
+ voteKeyDilution: bigint;
816
+ }) {
817
+ this.voteID = params.voteID;
818
+ this.selectionID = params.selectionID;
819
+ this.stateProofID = params.stateProofID;
820
+ this.voteFirstValid = params.voteFirstValid;
821
+ this.voteLastValid = params.voteLastValid;
822
+ this.voteKeyDilution = params.voteKeyDilution;
823
+ }
824
+
825
+ // eslint-disable-next-line class-methods-use-this
826
+ public getEncodingSchema(): Schema {
827
+ return VotingData.encodingSchema;
828
+ }
829
+
830
+ public toEncodingData(): Map<string, unknown> {
831
+ return new Map<string, unknown>([
832
+ ['VoteID', this.voteID],
833
+ ['SelectionID', this.selectionID],
834
+ ['StateProofID', this.stateProofID],
835
+ ['VoteFirstValid', this.voteFirstValid],
836
+ ['VoteLastValid', this.voteLastValid],
837
+ ['VoteKeyDilution', this.voteKeyDilution],
838
+ ]);
839
+ }
840
+
841
+ public static fromEncodingData(data: unknown): VotingData {
842
+ if (!(data instanceof Map)) {
843
+ throw new Error(`Invalid decoded VotingData: ${data}`);
844
+ }
845
+ return new VotingData({
846
+ voteID: data.get('VoteID'),
847
+ selectionID: data.get('SelectionID'),
848
+ stateProofID: data.get('StateProofID'),
849
+ voteFirstValid: data.get('VoteFirstValid'),
850
+ voteLastValid: data.get('VoteLastValid'),
851
+ voteKeyDilution: data.get('VoteKeyDilution'),
852
+ });
853
+ }
854
+ }
855
+
856
+ /**
857
+ * AccountBaseData contains base account info like balance, status and total number of resources
858
+ */
859
+ export class AccountBaseData implements Encodable {
860
+ public static readonly encodingSchema = new NamedMapSchema(
861
+ allOmitEmpty([
862
+ { key: 'Status', valueSchema: new Uint64Schema() }, // status
863
+ { key: 'MicroAlgos', valueSchema: new Uint64Schema() }, // microAlgos
864
+ { key: 'RewardsBase', valueSchema: new Uint64Schema() }, // rewardsBase
865
+ {
866
+ key: 'RewardedMicroAlgos', // rewardedMicroAlgos
867
+ valueSchema: new Uint64Schema(),
868
+ },
869
+ { key: 'AuthAddr', valueSchema: new AddressSchema() }, // authAddr
870
+ {
871
+ key: 'IncentiveEligible', // incentiveEligible
872
+ valueSchema: new BooleanSchema(),
873
+ },
874
+ {
875
+ key: 'TotalAppSchema', // totalAppSchema
876
+ valueSchema: StateSchema.encodingSchema,
877
+ },
878
+ {
879
+ key: 'TotalExtraAppPages', // totalExtraAppPages
880
+ valueSchema: new Uint64Schema(),
881
+ },
882
+ {
883
+ key: 'TotalAppParams', // totalAppParams
884
+ valueSchema: new Uint64Schema(),
885
+ },
886
+ {
887
+ key: 'TotalAppLocalStates', // totalAppLocalStates
888
+ valueSchema: new Uint64Schema(),
889
+ },
890
+ {
891
+ key: 'TotalAssetParams', // totalAssetParams
892
+ valueSchema: new Uint64Schema(),
893
+ },
894
+ { key: 'TotalAssets', valueSchema: new Uint64Schema() }, // totalAssets
895
+ { key: 'TotalBoxes', valueSchema: new Uint64Schema() }, // totalBoxes
896
+ {
897
+ key: 'TotalBoxBytes', // totalBoxBytes
898
+ valueSchema: new Uint64Schema(),
899
+ },
900
+ { key: 'LastProposed', valueSchema: new Uint64Schema() }, // lastProposed
901
+ {
902
+ key: 'LastHeartbeat', // lastHeartbeat
903
+ valueSchema: new Uint64Schema(),
904
+ },
905
+ ])
906
+ );
907
+
908
+ /**
909
+ * Account status. Values are:
910
+ * * 0: Offline
911
+ * * 1: Online
912
+ * * 2: NotParticipating
913
+ */
914
+ public status: number;
915
+ public microAlgos: bigint;
916
+ public rewardsBase: bigint;
917
+ public rewardedMicroAlgos: bigint;
918
+ public authAddr: Address;
919
+ public incentiveEligible: boolean;
920
+
921
+ /**
922
+ * Totals across created globals, and opted in locals.
923
+ */
924
+ public totalAppSchema: StateSchema;
925
+ /**
926
+ * Total number of extra pages across all created apps
927
+ */
928
+ public totalExtraAppPages: number;
929
+ /**
930
+ * Total number of apps this account has created
931
+ */
932
+ public totalAppParams: bigint;
933
+ /**
934
+ * Total number of apps this account is opted into.
935
+ */
936
+ public totalAppLocalStates: bigint;
937
+ /**
938
+ * Total number of assets created by this account
939
+ */
940
+ public totalAssetParams: bigint;
941
+ /**
942
+ * Total of asset creations and optins (i.e. number of holdings)
943
+ */
944
+ public totalAssets: bigint;
945
+ /**
946
+ * Total number of boxes associated to this account
947
+ */
948
+ public totalBoxes: bigint;
949
+ /**
950
+ * Total bytes for this account's boxes. keys _and_ values count
951
+ */
952
+ public totalBoxBytes: bigint;
953
+
954
+ /**
955
+ * The last round that this account proposed the winning block.
956
+ */
957
+ public lastProposed: bigint;
958
+ /**
959
+ * The last round that this account sent a heartbeat to show it was online.
960
+ */
961
+ public lastHeartbeat: bigint;
962
+
963
+ public constructor(params: {
964
+ status: number;
965
+ microAlgos: bigint;
966
+ rewardsBase: bigint;
967
+ rewardedMicroAlgos: bigint;
968
+ authAddr: Address;
969
+ incentiveEligible: boolean;
970
+ totalAppSchema: StateSchema;
971
+ totalExtraAppPages: number;
972
+ totalAppParams: bigint;
973
+ totalAppLocalStates: bigint;
974
+ totalAssetParams: bigint;
975
+ totalAssets: bigint;
976
+ totalBoxes: bigint;
977
+ totalBoxBytes: bigint;
978
+ lastProposed: bigint;
979
+ lastHeartbeat: bigint;
980
+ }) {
981
+ this.status = params.status;
982
+ this.microAlgos = params.microAlgos;
983
+ this.rewardsBase = params.rewardsBase;
984
+ this.rewardedMicroAlgos = params.rewardedMicroAlgos;
985
+ this.authAddr = params.authAddr;
986
+ this.incentiveEligible = params.incentiveEligible;
987
+ this.totalAppSchema = params.totalAppSchema;
988
+ this.totalExtraAppPages = params.totalExtraAppPages;
989
+ this.totalAppParams = params.totalAppParams;
990
+ this.totalAppLocalStates = params.totalAppLocalStates;
991
+ this.totalAssetParams = params.totalAssetParams;
992
+ this.totalAssets = params.totalAssets;
993
+ this.totalBoxes = params.totalBoxes;
994
+ this.totalBoxBytes = params.totalBoxBytes;
995
+ this.lastProposed = params.lastProposed;
996
+ this.lastHeartbeat = params.lastHeartbeat;
997
+ }
998
+
999
+ // eslint-disable-next-line class-methods-use-this
1000
+ public getEncodingSchema(): Schema {
1001
+ return AccountBaseData.encodingSchema;
1002
+ }
1003
+
1004
+ public toEncodingData(): Map<string, unknown> {
1005
+ return new Map<string, unknown>([
1006
+ ['Status', this.status],
1007
+ ['MicroAlgos', this.microAlgos],
1008
+ ['RewardsBase', this.rewardsBase],
1009
+ ['RewardedMicroAlgos', this.rewardedMicroAlgos],
1010
+ ['AuthAddr', this.authAddr],
1011
+ ['IncentiveEligible', this.incentiveEligible],
1012
+ ['TotalAppSchema', this.totalAppSchema.toEncodingData()],
1013
+ ['TotalExtraAppPages', this.totalExtraAppPages],
1014
+ ['TotalAppParams', this.totalAppParams],
1015
+ ['TotalAppLocalStates', this.totalAppLocalStates],
1016
+ ['TotalAssetParams', this.totalAssetParams],
1017
+ ['TotalAssets', this.totalAssets],
1018
+ ['TotalBoxes', this.totalBoxes],
1019
+ ['TotalBoxBytes', this.totalBoxBytes],
1020
+ ['LastProposed', this.lastProposed],
1021
+ ['LastHeartbeat', this.lastHeartbeat],
1022
+ ]);
1023
+ }
1024
+
1025
+ public static fromEncodingData(data: unknown): AccountBaseData {
1026
+ if (!(data instanceof Map)) {
1027
+ throw new Error(`Invalid decoded AccountBaseData: ${data}`);
1028
+ }
1029
+ return new AccountBaseData({
1030
+ status: Number(data.get('Status')),
1031
+ microAlgos: data.get('MicroAlgos'),
1032
+ rewardsBase: data.get('RewardsBase'),
1033
+ rewardedMicroAlgos: data.get('RewardedMicroAlgos'),
1034
+ authAddr: data.get('AuthAddr'),
1035
+ incentiveEligible: data.get('IncentiveEligible'),
1036
+ totalAppSchema: StateSchema.fromEncodingData(data.get('TotalAppSchema')),
1037
+ totalExtraAppPages: Number(data.get('TotalExtraAppPages')),
1038
+ totalAppParams: data.get('TotalAppParams'),
1039
+ totalAppLocalStates: data.get('TotalAppLocalStates'),
1040
+ totalAssetParams: data.get('TotalAssetParams'),
1041
+ totalAssets: data.get('TotalAssets'),
1042
+ totalBoxes: data.get('TotalBoxes'),
1043
+ totalBoxBytes: data.get('TotalBoxBytes'),
1044
+ lastProposed: data.get('LastProposed'),
1045
+ lastHeartbeat: data.get('LastHeartbeat'),
1046
+ });
1047
+ }
1048
+ }
1049
+
1050
+ /**
1051
+ * AccountData provides per-account data
1052
+ */
1053
+ export class AccountData implements Encodable {
1054
+ public static readonly encodingSchema = new NamedMapSchema(
1055
+ allOmitEmpty([
1056
+ {
1057
+ key: '',
1058
+ valueSchema: AccountBaseData.encodingSchema,
1059
+ embedded: true,
1060
+ },
1061
+ {
1062
+ key: '',
1063
+ valueSchema: VotingData.encodingSchema,
1064
+ embedded: true,
1065
+ },
1066
+ ])
1067
+ );
1068
+
1069
+ public accountBaseData: AccountBaseData;
1070
+ public votingData: VotingData;
1071
+
1072
+ constructor(params: {
1073
+ accountBaseData: AccountBaseData;
1074
+ votingData: VotingData;
1075
+ }) {
1076
+ this.accountBaseData = params.accountBaseData;
1077
+ this.votingData = params.votingData;
1078
+ }
1079
+
1080
+ // eslint-disable-next-line class-methods-use-this
1081
+ public getEncodingSchema(): Schema {
1082
+ return AccountData.encodingSchema;
1083
+ }
1084
+
1085
+ public toEncodingData(): Map<string, unknown> {
1086
+ return combineMaps(
1087
+ this.accountBaseData.toEncodingData(),
1088
+ this.votingData.toEncodingData()
1089
+ );
1090
+ }
1091
+
1092
+ public static fromEncodingData(data: unknown): AccountData {
1093
+ if (!(data instanceof Map)) {
1094
+ throw new Error(`Invalid decoded AccountData: ${data}`);
1095
+ }
1096
+ return new AccountData({
1097
+ accountBaseData: AccountBaseData.fromEncodingData(data),
1098
+ votingData: VotingData.fromEncodingData(data),
1099
+ });
1100
+ }
1101
+ }
1102
+
1103
+ export class BalanceRecord implements Encodable {
1104
+ public static readonly encodingSchema = new NamedMapSchema(
1105
+ allOmitEmpty([
1106
+ {
1107
+ key: 'Addr',
1108
+ valueSchema: new AddressSchema(),
1109
+ },
1110
+ {
1111
+ key: '',
1112
+ valueSchema: AccountData.encodingSchema,
1113
+ embedded: true,
1114
+ },
1115
+ ])
1116
+ );
1117
+
1118
+ public addr: Address;
1119
+ public accountData: AccountData;
1120
+
1121
+ constructor(params: { addr: Address; accountData: AccountData }) {
1122
+ this.addr = params.addr;
1123
+ this.accountData = params.accountData;
1124
+ }
1125
+
1126
+ // eslint-disable-next-line class-methods-use-this
1127
+ public getEncodingSchema(): Schema {
1128
+ return BalanceRecord.encodingSchema;
1129
+ }
1130
+
1131
+ public toEncodingData(): Map<string, unknown> {
1132
+ return combineMaps(
1133
+ new Map<string, unknown>([['Addr', this.addr]]),
1134
+ this.accountData.toEncodingData()
1135
+ );
1136
+ }
1137
+
1138
+ public static fromEncodingData(data: unknown): BalanceRecord {
1139
+ if (!(data instanceof Map)) {
1140
+ throw new Error(`Invalid decoded BalanceRecord: ${data}`);
1141
+ }
1142
+ return new BalanceRecord({
1143
+ addr: data.get('Addr'),
1144
+ accountData: AccountData.fromEncodingData(data),
1145
+ });
1146
+ }
1147
+ }
1148
+
1149
+ export class AccountDeltas implements Encodable {
1150
+ public static readonly encodingSchema = new NamedMapSchema(
1151
+ allOmitEmpty([
1152
+ {
1153
+ key: 'Accts', // accounts
1154
+ valueSchema: new ArraySchema(BalanceRecord.encodingSchema),
1155
+ },
1156
+ {
1157
+ key: 'AppResources', // appResources
1158
+ valueSchema: new OptionalSchema(
1159
+ new ArraySchema(AppResourceRecord.encodingSchema)
1160
+ ),
1161
+ },
1162
+ {
1163
+ key: 'AssetResources', // assetResources
1164
+ valueSchema: new OptionalSchema(
1165
+ new ArraySchema(AssetResourceRecord.encodingSchema)
1166
+ ),
1167
+ },
1168
+ ])
1169
+ );
1170
+
1171
+ public accounts: BalanceRecord[];
1172
+ public appResources: AppResourceRecord[];
1173
+ public assetResources: AssetResourceRecord[];
1174
+
1175
+ constructor(params: {
1176
+ accounts: BalanceRecord[];
1177
+ appResources: AppResourceRecord[];
1178
+ assetResources: AssetResourceRecord[];
1179
+ }) {
1180
+ this.accounts = params.accounts;
1181
+ this.appResources = params.appResources;
1182
+ this.assetResources = params.assetResources;
1183
+ }
1184
+
1185
+ // eslint-disable-next-line class-methods-use-this
1186
+ public getEncodingSchema(): Schema {
1187
+ return AccountDeltas.encodingSchema;
1188
+ }
1189
+
1190
+ public toEncodingData(): Map<string, unknown> {
1191
+ return new Map<string, unknown>([
1192
+ ['Accts', this.accounts.map((account) => account.toEncodingData())],
1193
+ [
1194
+ 'AppResources',
1195
+ this.appResources.length === 0
1196
+ ? undefined
1197
+ : this.appResources.map((appResource) =>
1198
+ appResource.toEncodingData()
1199
+ ),
1200
+ ],
1201
+ [
1202
+ 'AssetResources',
1203
+ this.assetResources.length === 0
1204
+ ? undefined
1205
+ : this.assetResources.map((assetResource) =>
1206
+ assetResource.toEncodingData()
1207
+ ),
1208
+ ],
1209
+ ]);
1210
+ }
1211
+
1212
+ public static fromEncodingData(data: unknown): AccountDeltas {
1213
+ if (!(data instanceof Map)) {
1214
+ throw new Error(`Invalid decoded AccountDeltas: ${data}`);
1215
+ }
1216
+ return new AccountDeltas({
1217
+ accounts: (data.get('Accts') ?? []).map(BalanceRecord.fromEncodingData),
1218
+ appResources: (data.get('AppResources') ?? []).map(
1219
+ AppResourceRecord.fromEncodingData
1220
+ ),
1221
+ assetResources: (data.get('AssetResources') ?? []).map(
1222
+ AssetResourceRecord.fromEncodingData
1223
+ ),
1224
+ });
1225
+ }
1226
+ }
1227
+
1228
+ /**
1229
+ * A KvValueDelta shows how the Data associated with a key in the kvstore has changed.
1230
+ */
1231
+ export class KvValueDelta implements Encodable {
1232
+ public static readonly encodingSchema = new NamedMapSchema(
1233
+ allOmitEmpty([
1234
+ {
1235
+ key: 'Data',
1236
+ valueSchema: new OptionalSchema(new ByteArraySchema()),
1237
+ },
1238
+ {
1239
+ key: 'OldData',
1240
+ valueSchema: new OptionalSchema(new ByteArraySchema()),
1241
+ },
1242
+ ])
1243
+ );
1244
+
1245
+ /**
1246
+ * Data stores the most recent value (undefined means deleted)
1247
+ */
1248
+ public data?: Uint8Array;
1249
+
1250
+ /**
1251
+ * OldData stores the previous value (undefined means didn't exist)
1252
+ */
1253
+ public oldData?: Uint8Array;
1254
+
1255
+ constructor(params: { data?: Uint8Array; oldData?: Uint8Array }) {
1256
+ this.data = params.data;
1257
+ this.oldData = params.oldData;
1258
+ }
1259
+
1260
+ // eslint-disable-next-line class-methods-use-this
1261
+ public getEncodingSchema(): Schema {
1262
+ return KvValueDelta.encodingSchema;
1263
+ }
1264
+
1265
+ public toEncodingData(): Map<string, unknown> {
1266
+ return new Map<string, unknown>([
1267
+ ['Data', this.data],
1268
+ ['OldData', this.oldData],
1269
+ ]);
1270
+ }
1271
+
1272
+ public static fromEncodingData(data: unknown): KvValueDelta {
1273
+ if (!(data instanceof Map)) {
1274
+ throw new Error(`Invalid decoded KvValueDelta: ${data}`);
1275
+ }
1276
+ return new KvValueDelta({
1277
+ data: data.get('Data'),
1278
+ oldData: data.get('OldData'),
1279
+ });
1280
+ }
1281
+ }
1282
+
1283
+ /**
1284
+ * IncludedTransactions defines the transactions included in a block, their index and last valid round.
1285
+ */
1286
+ export class IncludedTransactions implements Encodable {
1287
+ public static readonly encodingSchema = new NamedMapSchema(
1288
+ allOmitEmpty([
1289
+ {
1290
+ key: 'LastValid',
1291
+ valueSchema: new Uint64Schema(),
1292
+ },
1293
+ {
1294
+ key: 'Intra',
1295
+ valueSchema: new Uint64Schema(),
1296
+ },
1297
+ ])
1298
+ );
1299
+
1300
+ public lastValid: bigint;
1301
+ /**
1302
+ * The index of the transaction in the block
1303
+ */
1304
+ public intra: number;
1305
+
1306
+ constructor(params: { lastValid: bigint; intra: number }) {
1307
+ this.lastValid = params.lastValid;
1308
+ this.intra = params.intra;
1309
+ }
1310
+
1311
+ // eslint-disable-next-line class-methods-use-this
1312
+ public getEncodingSchema(): Schema {
1313
+ return IncludedTransactions.encodingSchema;
1314
+ }
1315
+
1316
+ public toEncodingData(): Map<string, unknown> {
1317
+ return new Map<string, unknown>([
1318
+ ['LastValid', this.lastValid],
1319
+ ['Intra', this.intra],
1320
+ ]);
1321
+ }
1322
+
1323
+ public static fromEncodingData(data: unknown): IncludedTransactions {
1324
+ if (!(data instanceof Map)) {
1325
+ throw new Error(`Invalid decoded IncludedTransactions: ${data}`);
1326
+ }
1327
+ return new IncludedTransactions({
1328
+ lastValid: data.get('LastValid'),
1329
+ intra: Number(data.get('Intra')),
1330
+ });
1331
+ }
1332
+ }
1333
+
1334
+ /**
1335
+ * ModifiedCreatable represents a change to a single creatable state
1336
+ */
1337
+ export class ModifiedCreatable implements Encodable {
1338
+ public static readonly encodingSchema = new NamedMapSchema(
1339
+ allOmitEmpty([
1340
+ {
1341
+ key: 'Ctype', // creatableType
1342
+ valueSchema: new Uint64Schema(),
1343
+ },
1344
+ {
1345
+ key: 'Created', // created
1346
+ valueSchema: new BooleanSchema(),
1347
+ },
1348
+ {
1349
+ key: 'Creator', // creator
1350
+ valueSchema: new AddressSchema(),
1351
+ },
1352
+ {
1353
+ key: 'Ndeltas', // ndeltas
1354
+ valueSchema: new Uint64Schema(),
1355
+ },
1356
+ ])
1357
+ );
1358
+
1359
+ /**
1360
+ * Type of the creatable. The values are:
1361
+ * * 0: Asset
1362
+ * * 1: Application
1363
+ */
1364
+ public creatableType: number;
1365
+
1366
+ /**
1367
+ * Created if true, deleted if false
1368
+ */
1369
+ public created: boolean;
1370
+
1371
+ /**
1372
+ * creator of the app/asset
1373
+ */
1374
+ public creator: Address;
1375
+
1376
+ /**
1377
+ * Keeps track of how many times this app/asset appears in accountUpdates.creatableDeltas
1378
+ */
1379
+ public ndeltas: number;
1380
+
1381
+ public constructor(params: {
1382
+ creatableType: number;
1383
+ created: boolean;
1384
+ creator: Address;
1385
+ ndeltas: number;
1386
+ }) {
1387
+ this.creatableType = params.creatableType;
1388
+ this.created = params.created;
1389
+ this.creator = params.creator;
1390
+ this.ndeltas = params.ndeltas;
1391
+ }
1392
+
1393
+ // eslint-disable-next-line class-methods-use-this
1394
+ public getEncodingSchema(): Schema {
1395
+ return ModifiedCreatable.encodingSchema;
1396
+ }
1397
+
1398
+ public toEncodingData(): Map<string, unknown> {
1399
+ return new Map<string, unknown>([
1400
+ ['Ctype', this.creatableType],
1401
+ ['Created', this.created],
1402
+ ['Creator', this.creator],
1403
+ ['Ndeltas', this.ndeltas],
1404
+ ]);
1405
+ }
1406
+
1407
+ public static fromEncodingData(data: unknown): ModifiedCreatable {
1408
+ if (!(data instanceof Map)) {
1409
+ throw new Error(`Invalid decoded ModifiedCreatable: ${data}`);
1410
+ }
1411
+ return new ModifiedCreatable({
1412
+ creatableType: Number(data.get('Ctype')),
1413
+ created: data.get('Created'),
1414
+ creator: data.get('Creator'),
1415
+ ndeltas: Number(data.get('Ndeltas')),
1416
+ });
1417
+ }
1418
+ }
1419
+
1420
+ /**
1421
+ * AlgoCount represents a total of algos of a certain class of accounts (split up by their Status value).
1422
+ */
1423
+ export class AlgoCount implements Encodable {
1424
+ public static readonly encodingSchema = new NamedMapSchema(
1425
+ allOmitEmpty([
1426
+ { key: 'mon', valueSchema: new Uint64Schema() }, // money
1427
+ { key: 'rwd', valueSchema: new Uint64Schema() }, // rewardUnits
1428
+ ])
1429
+ );
1430
+
1431
+ /**
1432
+ * Sum of algos of all accounts in this class.
1433
+ */
1434
+ public money: bigint;
1435
+
1436
+ /**
1437
+ * Total number of whole reward units in accounts.
1438
+ */
1439
+ public rewardUnits: bigint;
1440
+
1441
+ constructor(params: { money: bigint; rewardUnits: bigint }) {
1442
+ this.money = params.money;
1443
+ this.rewardUnits = params.rewardUnits;
1444
+ }
1445
+
1446
+ // eslint-disable-next-line class-methods-use-this
1447
+ public getEncodingSchema(): Schema {
1448
+ return AlgoCount.encodingSchema;
1449
+ }
1450
+
1451
+ public toEncodingData(): Map<string, unknown> {
1452
+ return new Map<string, unknown>([
1453
+ ['mon', this.money],
1454
+ ['rwd', this.rewardUnits],
1455
+ ]);
1456
+ }
1457
+
1458
+ public static fromEncodingData(data: unknown): AlgoCount {
1459
+ if (!(data instanceof Map)) {
1460
+ throw new Error(`Invalid decoded AlgoCount: ${data}`);
1461
+ }
1462
+ return new AlgoCount({
1463
+ money: data.get('mon'),
1464
+ rewardUnits: data.get('rwd'),
1465
+ });
1466
+ }
1467
+ }
1468
+
1469
+ /**
1470
+ * AccountTotals represents the totals of algos in the system grouped by different account status values.
1471
+ */
1472
+ export class AccountTotals implements Encodable {
1473
+ public static readonly encodingSchema = new NamedMapSchema(
1474
+ allOmitEmpty([
1475
+ { key: 'online', valueSchema: AlgoCount.encodingSchema }, // online
1476
+ { key: 'offline', valueSchema: AlgoCount.encodingSchema }, // offline
1477
+ { key: 'notpart', valueSchema: AlgoCount.encodingSchema }, // notParticipating
1478
+ { key: 'rwdlvl', valueSchema: new Uint64Schema() }, // rewardsLevel
1479
+ ])
1480
+ );
1481
+
1482
+ public online: AlgoCount;
1483
+ public offline: AlgoCount;
1484
+ public notParticipating: AlgoCount;
1485
+
1486
+ /**
1487
+ * Total number of algos received per reward unit since genesis
1488
+ */
1489
+ public rewardsLevel: bigint;
1490
+
1491
+ constructor(params: {
1492
+ online: AlgoCount;
1493
+ offline: AlgoCount;
1494
+ notParticipating: AlgoCount;
1495
+ rewardsLevel: bigint;
1496
+ }) {
1497
+ this.online = params.online;
1498
+ this.offline = params.offline;
1499
+ this.notParticipating = params.notParticipating;
1500
+ this.rewardsLevel = params.rewardsLevel;
1501
+ }
1502
+
1503
+ // eslint-disable-next-line class-methods-use-this
1504
+ public getEncodingSchema(): Schema {
1505
+ return AccountTotals.encodingSchema;
1506
+ }
1507
+
1508
+ public toEncodingData(): Map<string, unknown> {
1509
+ return new Map<string, unknown>([
1510
+ ['online', this.online.toEncodingData()],
1511
+ ['offline', this.offline.toEncodingData()],
1512
+ ['notpart', this.notParticipating.toEncodingData()],
1513
+ ['rwdlvl', this.rewardsLevel],
1514
+ ]);
1515
+ }
1516
+
1517
+ public static fromEncodingData(data: unknown): AccountTotals {
1518
+ if (!(data instanceof Map)) {
1519
+ throw new Error(`Invalid decoded AccountTotals: ${data}`);
1520
+ }
1521
+ return new AccountTotals({
1522
+ online: AlgoCount.fromEncodingData(data.get('online')),
1523
+ offline: AlgoCount.fromEncodingData(data.get('offline')),
1524
+ notParticipating: AlgoCount.fromEncodingData(data.get('notpart')),
1525
+ rewardsLevel: data.get('rwdlvl'),
1526
+ });
1527
+ }
1528
+ }
1529
+
1530
+ /**
1531
+ * LedgerStateDelta describes the delta between a given round to the previous round
1532
+ */
1533
+ export class LedgerStateDelta implements Encodable {
1534
+ public static readonly encodingSchema = new NamedMapSchema(
1535
+ allOmitEmpty([
1536
+ {
1537
+ key: 'Accts', // accounts
1538
+ valueSchema: AccountDeltas.encodingSchema,
1539
+ },
1540
+ {
1541
+ key: 'KvMods', // kvMods
1542
+ valueSchema: new OptionalSchema(
1543
+ new SpecialCaseBinaryStringMapSchema(KvValueDelta.encodingSchema)
1544
+ ),
1545
+ },
1546
+ {
1547
+ key: 'Txids', // txids
1548
+ valueSchema: new ByteArrayMapSchema(
1549
+ IncludedTransactions.encodingSchema
1550
+ ),
1551
+ },
1552
+ {
1553
+ key: 'Txleases', // txleases
1554
+ // Note: because txleases is currently just an UntypedSchema and we are expected to decode
1555
+ // null values for this field, we use OptionalSchema to coerce null values to undefined so
1556
+ // that the values can be properly omitted during encoding.
1557
+ valueSchema: new OptionalSchema(new UntypedSchema()),
1558
+ },
1559
+ {
1560
+ key: 'Creatables', // creatables
1561
+ valueSchema: new OptionalSchema(
1562
+ new Uint64MapSchema(ModifiedCreatable.encodingSchema)
1563
+ ),
1564
+ },
1565
+ {
1566
+ key: 'Hdr', // blockHeader
1567
+ valueSchema: BlockHeader.encodingSchema,
1568
+ },
1569
+ {
1570
+ key: 'StateProofNext', // stateProofNext
1571
+ valueSchema: new Uint64Schema(),
1572
+ },
1573
+ {
1574
+ key: 'PrevTimestamp', // prevTimestamp
1575
+ valueSchema: new Uint64Schema(),
1576
+ },
1577
+ {
1578
+ key: 'Totals', // totals
1579
+ valueSchema: AccountTotals.encodingSchema,
1580
+ },
1581
+ ])
1582
+ );
1583
+
1584
+ /**
1585
+ * modified new accounts
1586
+ */
1587
+ public accounts: AccountDeltas;
1588
+
1589
+ /**
1590
+ * modified kv pairs (nil == delete)
1591
+ */
1592
+ public kvMods: Map<Uint8Array, KvValueDelta>;
1593
+
1594
+ /**
1595
+ * new Txids for the txtail and TxnCounter, mapped to txn.LastValid
1596
+ */
1597
+ public txids: Map<Uint8Array, IncludedTransactions>;
1598
+
1599
+ // TODO: properly support txleases once we are able to decode msgpack maps with object keys.
1600
+ /**
1601
+ * new txleases for the txtail mapped to expiration
1602
+ */
1603
+ public txleases: UntypedValue;
1604
+
1605
+ /**
1606
+ * new creatables creator lookup table
1607
+ */
1608
+ public creatables: Map<bigint, ModifiedCreatable>;
1609
+
1610
+ /**
1611
+ * new block header
1612
+ */
1613
+ public blockHeader: BlockHeader;
1614
+
1615
+ /**
1616
+ * StateProofNext represents modification on StateProofNextRound field in the block header. If the block contains
1617
+ * a valid state proof transaction, this field will contain the next round for state proof.
1618
+ * otherwise it will be set to 0.
1619
+ */
1620
+ public stateProofNext: bigint;
1621
+
1622
+ /**
1623
+ * previous block timestamp
1624
+ */
1625
+ public prevTimestamp: bigint;
1626
+
1627
+ /**
1628
+ * The account totals reflecting the changes in this StateDelta object.
1629
+ */
1630
+ public totals: AccountTotals;
1631
+
1632
+ public constructor(params: {
1633
+ accounts: AccountDeltas;
1634
+ kvMods: Map<Uint8Array, KvValueDelta>;
1635
+ txids: Map<Uint8Array, IncludedTransactions>;
1636
+ txleases: UntypedValue;
1637
+ creatables: Map<bigint, ModifiedCreatable>;
1638
+ blockHeader: BlockHeader;
1639
+ stateProofNext: bigint;
1640
+ prevTimestamp: bigint;
1641
+ totals: AccountTotals;
1642
+ }) {
1643
+ this.accounts = params.accounts;
1644
+ this.kvMods = params.kvMods;
1645
+ this.txids = params.txids;
1646
+ this.txleases = params.txleases;
1647
+ this.creatables = params.creatables;
1648
+ this.blockHeader = params.blockHeader;
1649
+ this.stateProofNext = params.stateProofNext;
1650
+ this.prevTimestamp = params.prevTimestamp;
1651
+ this.totals = params.totals;
1652
+ }
1653
+
1654
+ // eslint-disable-next-line class-methods-use-this
1655
+ public getEncodingSchema(): Schema {
1656
+ return LedgerStateDelta.encodingSchema;
1657
+ }
1658
+
1659
+ public toEncodingData(): Map<string, unknown> {
1660
+ return new Map<string, unknown>([
1661
+ ['Accts', this.accounts.toEncodingData()],
1662
+ [
1663
+ 'KvMods',
1664
+ this.kvMods.size === 0
1665
+ ? undefined
1666
+ : convertMap(this.kvMods, (key, value) => [
1667
+ key,
1668
+ value.toEncodingData(),
1669
+ ]),
1670
+ ],
1671
+ [
1672
+ 'Txids',
1673
+ convertMap(this.txids, (key, value) => [key, value.toEncodingData()]),
1674
+ ],
1675
+ ['Txleases', this.txleases.toEncodingData()],
1676
+ [
1677
+ 'Creatables',
1678
+ this.creatables.size === 0
1679
+ ? undefined
1680
+ : convertMap(this.creatables, (key, value) => [
1681
+ key,
1682
+ value.toEncodingData(),
1683
+ ]),
1684
+ ],
1685
+ ['Hdr', this.blockHeader.toEncodingData()],
1686
+ ['StateProofNext', this.stateProofNext],
1687
+ ['PrevTimestamp', this.prevTimestamp],
1688
+ ['Totals', this.totals.toEncodingData()],
1689
+ ]);
1690
+ }
1691
+
1692
+ public static fromEncodingData(data: unknown): LedgerStateDelta {
1693
+ if (!(data instanceof Map)) {
1694
+ throw new Error(`Invalid decoded LedgerStateDelta: ${data}`);
1695
+ }
1696
+ return new LedgerStateDelta({
1697
+ accounts: AccountDeltas.fromEncodingData(data.get('Accts')),
1698
+ kvMods: convertMap(
1699
+ (data.get('KvMods') ?? new Map()) as Map<Uint8Array, unknown>,
1700
+ (key, value) => [key, KvValueDelta.fromEncodingData(value)]
1701
+ ),
1702
+ txids: convertMap(
1703
+ data.get('Txids') as Map<Uint8Array, unknown>,
1704
+ (key, value) => [key, IncludedTransactions.fromEncodingData(value)]
1705
+ ),
1706
+ txleases: UntypedValue.fromEncodingData(data.get('Txleases')),
1707
+ creatables: convertMap(
1708
+ (data.get('Creatables') ?? new Map()) as Map<bigint, unknown>,
1709
+ (key, value) => [key, ModifiedCreatable.fromEncodingData(value)]
1710
+ ),
1711
+ blockHeader: BlockHeader.fromEncodingData(data.get('Hdr')),
1712
+ stateProofNext: data.get('StateProofNext'),
1713
+ prevTimestamp: data.get('PrevTimestamp'),
1714
+ totals: AccountTotals.fromEncodingData(data.get('Totals')),
1715
+ });
1716
+ }
1717
+ }