nano-sdk 1.0.0

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 (727) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +262 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +38 -0
  5. package/dist/nano/blocks/block.d.ts +39 -0
  6. package/dist/nano/blocks/block.js +11 -0
  7. package/dist/nano/blocks/index.d.ts +6 -0
  8. package/dist/nano/blocks/index.js +15 -0
  9. package/dist/nano/blocks/legacy-change-block.d.ts +9 -0
  10. package/dist/nano/blocks/legacy-change-block.js +17 -0
  11. package/dist/nano/blocks/legacy-open-block.d.ts +10 -0
  12. package/dist/nano/blocks/legacy-open-block.js +18 -0
  13. package/dist/nano/blocks/legacy-receive-block.d.ts +9 -0
  14. package/dist/nano/blocks/legacy-receive-block.js +16 -0
  15. package/dist/nano/blocks/legacy-send-block.d.ts +10 -0
  16. package/dist/nano/blocks/legacy-send-block.js +19 -0
  17. package/dist/nano/blocks/state-block.d.ts +13 -0
  18. package/dist/nano/blocks/state-block.js +23 -0
  19. package/dist/nano/crypto/conversion/account-converter.d.ts +17 -0
  20. package/dist/nano/crypto/conversion/account-converter.js +68 -0
  21. package/dist/nano/crypto/conversion/base32-converter.d.ts +16 -0
  22. package/dist/nano/crypto/conversion/base32-converter.js +98 -0
  23. package/dist/nano/crypto/conversion/hash-converter.d.ts +17 -0
  24. package/dist/nano/crypto/conversion/hash-converter.js +65 -0
  25. package/dist/nano/crypto/conversion/hex-converter.d.ts +17 -0
  26. package/dist/nano/crypto/conversion/hex-converter.js +82 -0
  27. package/dist/nano/crypto/conversion/private-key-converter.d.ts +17 -0
  28. package/dist/nano/crypto/conversion/private-key-converter.js +65 -0
  29. package/dist/nano/crypto/conversion/public-key-converter.d.ts +17 -0
  30. package/dist/nano/crypto/conversion/public-key-converter.js +65 -0
  31. package/dist/nano/crypto/conversion/seed-converter.d.ts +17 -0
  32. package/dist/nano/crypto/conversion/seed-converter.js +65 -0
  33. package/dist/nano/crypto/conversion/signature-converter.d.ts +17 -0
  34. package/dist/nano/crypto/conversion/signature-converter.js +65 -0
  35. package/dist/nano/crypto/conversion/work-converter.d.ts +17 -0
  36. package/dist/nano/crypto/conversion/work-converter.js +65 -0
  37. package/dist/nano/crypto/derive-account-from-link.d.ts +12 -0
  38. package/dist/nano/crypto/derive-account-from-link.js +34 -0
  39. package/dist/nano/crypto/derive-account-from-private-key.d.ts +12 -0
  40. package/dist/nano/crypto/derive-account-from-private-key.js +31 -0
  41. package/dist/nano/crypto/derive-account-from-public-key.d.ts +13 -0
  42. package/dist/nano/crypto/derive-account-from-public-key.js +56 -0
  43. package/dist/nano/crypto/derive-private-key-from-seed.d.ts +13 -0
  44. package/dist/nano/crypto/derive-private-key-from-seed.js +60 -0
  45. package/dist/nano/crypto/derive-public-key-from-account.d.ts +12 -0
  46. package/dist/nano/crypto/derive-public-key-from-account.js +41 -0
  47. package/dist/nano/crypto/derive-public-key-from-private-key.d.ts +12 -0
  48. package/dist/nano/crypto/derive-public-key-from-private-key.js +42 -0
  49. package/dist/nano/crypto/generate-private-key.d.ts +10 -0
  50. package/dist/nano/crypto/generate-private-key.js +34 -0
  51. package/dist/nano/crypto/generate-public-key.d.ts +10 -0
  52. package/dist/nano/crypto/generate-public-key.js +31 -0
  53. package/dist/nano/crypto/generate-random-bytes.d.ts +10 -0
  54. package/dist/nano/crypto/generate-random-bytes.js +57 -0
  55. package/dist/nano/crypto/generate-seed.d.ts +10 -0
  56. package/dist/nano/crypto/generate-seed.js +31 -0
  57. package/dist/nano/crypto/hash-block.d.ts +18 -0
  58. package/dist/nano/crypto/hash-block.js +81 -0
  59. package/dist/nano/crypto/index.d.ts +14 -0
  60. package/dist/nano/crypto/index.js +31 -0
  61. package/dist/nano/crypto/sign-hash.d.ts +14 -0
  62. package/dist/nano/crypto/sign-hash.js +40 -0
  63. package/dist/nano/crypto/verify-hash.d.ts +22 -0
  64. package/dist/nano/crypto/verify-hash.js +35 -0
  65. package/dist/nano/crypto/verify-signature.d.ts +15 -0
  66. package/dist/nano/crypto/verify-signature.js +40 -0
  67. package/dist/nano/crypto/verify-work.d.ts +14 -0
  68. package/dist/nano/crypto/verify-work.js +48 -0
  69. package/dist/nano/index.d.ts +7 -0
  70. package/dist/nano/index.js +51 -0
  71. package/dist/nano/math/comparison.d.ts +6 -0
  72. package/dist/nano/math/comparison.js +20 -0
  73. package/dist/nano/math/format-raw.d.ts +17 -0
  74. package/dist/nano/math/format-raw.js +94 -0
  75. package/dist/nano/math/index.d.ts +14 -0
  76. package/dist/nano/math/index.js +31 -0
  77. package/dist/nano/math/nano-to-raw.d.ts +11 -0
  78. package/dist/nano/math/nano-to-raw.js +38 -0
  79. package/dist/nano/math/raw-divide.d.ts +19 -0
  80. package/dist/nano/math/raw-divide.js +73 -0
  81. package/dist/nano/math/raw-is-equal-to.d.ts +9 -0
  82. package/dist/nano/math/raw-is-equal-to.js +29 -0
  83. package/dist/nano/math/raw-is-greater-than-or-equal-to.d.ts +9 -0
  84. package/dist/nano/math/raw-is-greater-than-or-equal-to.js +29 -0
  85. package/dist/nano/math/raw-is-greater-than.d.ts +9 -0
  86. package/dist/nano/math/raw-is-greater-than.js +29 -0
  87. package/dist/nano/math/raw-is-less-than-or-equal-to.d.ts +9 -0
  88. package/dist/nano/math/raw-is-less-than-or-equal-to.js +29 -0
  89. package/dist/nano/math/raw-is-less-than.d.ts +9 -0
  90. package/dist/nano/math/raw-is-less-than.js +29 -0
  91. package/dist/nano/math/raw-is-zero.d.ts +11 -0
  92. package/dist/nano/math/raw-is-zero.js +33 -0
  93. package/dist/nano/math/raw-minus.d.ts +19 -0
  94. package/dist/nano/math/raw-minus.js +66 -0
  95. package/dist/nano/math/raw-modulo.d.ts +19 -0
  96. package/dist/nano/math/raw-modulo.js +69 -0
  97. package/dist/nano/math/raw-multiply.d.ts +19 -0
  98. package/dist/nano/math/raw-multiply.js +66 -0
  99. package/dist/nano/math/raw-plus.d.ts +19 -0
  100. package/dist/nano/math/raw-plus.js +66 -0
  101. package/dist/nano/math/raw-to-nano.d.ts +15 -0
  102. package/dist/nano/math/raw-to-nano.js +32 -0
  103. package/dist/nano/rpc/http/http-client.d.ts +20 -0
  104. package/dist/nano/rpc/http/http-client.js +76 -0
  105. package/dist/nano/rpc/http/index.d.ts +5 -0
  106. package/dist/nano/rpc/http/index.js +20 -0
  107. package/dist/nano/rpc/http/post-error.d.ts +8 -0
  108. package/dist/nano/rpc/http/post-error.js +12 -0
  109. package/dist/nano/rpc/http/post-result.d.ts +15 -0
  110. package/dist/nano/rpc/http/post-result.js +2 -0
  111. package/dist/nano/rpc/http/post.d.ts +9 -0
  112. package/dist/nano/rpc/http/post.js +77 -0
  113. package/dist/nano/rpc/http/request-config.d.ts +13 -0
  114. package/dist/nano/rpc/http/request-config.js +2 -0
  115. package/dist/nano/rpc/index.d.ts +4 -0
  116. package/dist/nano/rpc/index.js +20 -0
  117. package/dist/nano/rpc/methods/account-balance.d.ts +20 -0
  118. package/dist/nano/rpc/methods/account-balance.js +7 -0
  119. package/dist/nano/rpc/methods/account-block-count.d.ts +14 -0
  120. package/dist/nano/rpc/methods/account-block-count.js +7 -0
  121. package/dist/nano/rpc/methods/account-get.d.ts +14 -0
  122. package/dist/nano/rpc/methods/account-get.js +7 -0
  123. package/dist/nano/rpc/methods/account-history.d.ts +15 -0
  124. package/dist/nano/rpc/methods/account-history.js +22 -0
  125. package/dist/nano/rpc/methods/account-info.d.ts +16 -0
  126. package/dist/nano/rpc/methods/account-info.js +24 -0
  127. package/dist/nano/rpc/methods/account-key.d.ts +14 -0
  128. package/dist/nano/rpc/methods/account-key.js +7 -0
  129. package/dist/nano/rpc/methods/account-representative.d.ts +14 -0
  130. package/dist/nano/rpc/methods/account-representative.js +7 -0
  131. package/dist/nano/rpc/methods/account-weight.d.ts +14 -0
  132. package/dist/nano/rpc/methods/account-weight.js +7 -0
  133. package/dist/nano/rpc/methods/accounts-balances.d.ts +26 -0
  134. package/dist/nano/rpc/methods/accounts-balances.js +7 -0
  135. package/dist/nano/rpc/methods/accounts-frontiers.d.ts +16 -0
  136. package/dist/nano/rpc/methods/accounts-frontiers.js +7 -0
  137. package/dist/nano/rpc/methods/accounts-receivable.d.ts +15 -0
  138. package/dist/nano/rpc/methods/accounts-receivable.js +20 -0
  139. package/dist/nano/rpc/methods/accounts-representatives.d.ts +16 -0
  140. package/dist/nano/rpc/methods/accounts-representatives.js +7 -0
  141. package/dist/nano/rpc/methods/available-supply.d.ts +12 -0
  142. package/dist/nano/rpc/methods/available-supply.js +7 -0
  143. package/dist/nano/rpc/methods/block-account.d.ts +14 -0
  144. package/dist/nano/rpc/methods/block-account.js +7 -0
  145. package/dist/nano/rpc/methods/block-confirm.d.ts +14 -0
  146. package/dist/nano/rpc/methods/block-confirm.js +7 -0
  147. package/dist/nano/rpc/methods/block-count.d.ts +16 -0
  148. package/dist/nano/rpc/methods/block-count.js +7 -0
  149. package/dist/nano/rpc/methods/block-create.d.ts +13 -0
  150. package/dist/nano/rpc/methods/block-create.js +18 -0
  151. package/dist/nano/rpc/methods/block-hash.d.ts +44 -0
  152. package/dist/nano/rpc/methods/block-hash.js +7 -0
  153. package/dist/nano/rpc/methods/block-info.d.ts +14 -0
  154. package/dist/nano/rpc/methods/block-info.js +20 -0
  155. package/dist/nano/rpc/methods/blocks-info.d.ts +18 -0
  156. package/dist/nano/rpc/methods/blocks-info.js +28 -0
  157. package/dist/nano/rpc/methods/blocks.d.ts +13 -0
  158. package/dist/nano/rpc/methods/blocks.js +18 -0
  159. package/dist/nano/rpc/methods/bootstrap-any.d.ts +10 -0
  160. package/dist/nano/rpc/methods/bootstrap-any.js +7 -0
  161. package/dist/nano/rpc/methods/bootstrap-lazy.d.ts +10 -0
  162. package/dist/nano/rpc/methods/bootstrap-lazy.js +7 -0
  163. package/dist/nano/rpc/methods/bootstrap-priorities.d.ts +28 -0
  164. package/dist/nano/rpc/methods/bootstrap-priorities.js +7 -0
  165. package/dist/nano/rpc/methods/bootstrap-reset.d.ts +12 -0
  166. package/dist/nano/rpc/methods/bootstrap-reset.js +7 -0
  167. package/dist/nano/rpc/methods/bootstrap-status.d.ts +14 -0
  168. package/dist/nano/rpc/methods/bootstrap-status.js +7 -0
  169. package/dist/nano/rpc/methods/bootstrap.d.ts +12 -0
  170. package/dist/nano/rpc/methods/bootstrap.js +7 -0
  171. package/dist/nano/rpc/methods/chain.d.ts +20 -0
  172. package/dist/nano/rpc/methods/chain.js +7 -0
  173. package/dist/nano/rpc/methods/conditional-types/bool-flag.d.ts +1 -0
  174. package/dist/nano/rpc/methods/conditional-types/bool-flag.js +2 -0
  175. package/dist/nano/rpc/methods/conditional-types/index.d.ts +6 -0
  176. package/dist/nano/rpc/methods/conditional-types/index.js +22 -0
  177. package/dist/nano/rpc/methods/conditional-types/not-undefined-flag.d.ts +1 -0
  178. package/dist/nano/rpc/methods/conditional-types/not-undefined-flag.js +2 -0
  179. package/dist/nano/rpc/methods/conditional-types/string-flag.d.ts +1 -0
  180. package/dist/nano/rpc/methods/conditional-types/string-flag.js +2 -0
  181. package/dist/nano/rpc/methods/conditional-types/string-or-number-flag.d.ts +1 -0
  182. package/dist/nano/rpc/methods/conditional-types/string-or-number-flag.js +2 -0
  183. package/dist/nano/rpc/methods/conditional-types/threshold-flag.d.ts +1 -0
  184. package/dist/nano/rpc/methods/conditional-types/threshold-flag.js +2 -0
  185. package/dist/nano/rpc/methods/conditional-types/with-default.d.ts +5 -0
  186. package/dist/nano/rpc/methods/conditional-types/with-default.js +2 -0
  187. package/dist/nano/rpc/methods/confirmation-active.d.ts +18 -0
  188. package/dist/nano/rpc/methods/confirmation-active.js +7 -0
  189. package/dist/nano/rpc/methods/confirmation-history.d.ts +40 -0
  190. package/dist/nano/rpc/methods/confirmation-history.js +7 -0
  191. package/dist/nano/rpc/methods/confirmation-info.d.ts +15 -0
  192. package/dist/nano/rpc/methods/confirmation-info.js +22 -0
  193. package/dist/nano/rpc/methods/confirmation-quorum.d.ts +13 -0
  194. package/dist/nano/rpc/methods/confirmation-quorum.js +18 -0
  195. package/dist/nano/rpc/methods/database-txn-tracker.d.ts +36 -0
  196. package/dist/nano/rpc/methods/database-txn-tracker.js +7 -0
  197. package/dist/nano/rpc/methods/delegators-count.d.ts +14 -0
  198. package/dist/nano/rpc/methods/delegators-count.js +7 -0
  199. package/dist/nano/rpc/methods/delegators.d.ts +20 -0
  200. package/dist/nano/rpc/methods/delegators.js +7 -0
  201. package/dist/nano/rpc/methods/deterministic-key.d.ts +20 -0
  202. package/dist/nano/rpc/methods/deterministic-key.js +7 -0
  203. package/dist/nano/rpc/methods/election-statistics.d.ts +26 -0
  204. package/dist/nano/rpc/methods/election-statistics.js +7 -0
  205. package/dist/nano/rpc/methods/epoch-upgrade.d.ts +20 -0
  206. package/dist/nano/rpc/methods/epoch-upgrade.js +7 -0
  207. package/dist/nano/rpc/methods/frontier-count.d.ts +12 -0
  208. package/dist/nano/rpc/methods/frontier-count.js +7 -0
  209. package/dist/nano/rpc/methods/frontiers.d.ts +16 -0
  210. package/dist/nano/rpc/methods/frontiers.js +7 -0
  211. package/dist/nano/rpc/methods/index.d.ts +75 -0
  212. package/dist/nano/rpc/methods/index.js +91 -0
  213. package/dist/nano/rpc/methods/keepalive.d.ts +16 -0
  214. package/dist/nano/rpc/methods/keepalive.js +7 -0
  215. package/dist/nano/rpc/methods/key-create.d.ts +16 -0
  216. package/dist/nano/rpc/methods/key-create.js +7 -0
  217. package/dist/nano/rpc/methods/key-expand.d.ts +18 -0
  218. package/dist/nano/rpc/methods/key-expand.js +7 -0
  219. package/dist/nano/rpc/methods/ledger.d.ts +15 -0
  220. package/dist/nano/rpc/methods/ledger.js +22 -0
  221. package/dist/nano/rpc/methods/nano-to-raw.d.ts +14 -0
  222. package/dist/nano/rpc/methods/nano-to-raw.js +7 -0
  223. package/dist/nano/rpc/methods/node-id.d.ts +16 -0
  224. package/dist/nano/rpc/methods/node-id.js +7 -0
  225. package/dist/nano/rpc/methods/peers.d.ts +13 -0
  226. package/dist/nano/rpc/methods/peers.js +18 -0
  227. package/dist/nano/rpc/methods/populate-backlog.d.ts +12 -0
  228. package/dist/nano/rpc/methods/populate-backlog.js +7 -0
  229. package/dist/nano/rpc/methods/process.d.ts +13 -0
  230. package/dist/nano/rpc/methods/process.js +18 -0
  231. package/dist/nano/rpc/methods/raw-to-nano.d.ts +14 -0
  232. package/dist/nano/rpc/methods/raw-to-nano.js +7 -0
  233. package/dist/nano/rpc/methods/receivable-exists.d.ts +18 -0
  234. package/dist/nano/rpc/methods/receivable-exists.js +7 -0
  235. package/dist/nano/rpc/methods/receivable.d.ts +16 -0
  236. package/dist/nano/rpc/methods/receivable.js +22 -0
  237. package/dist/nano/rpc/methods/representatives-online.d.ts +13 -0
  238. package/dist/nano/rpc/methods/representatives-online.js +18 -0
  239. package/dist/nano/rpc/methods/representatives.d.ts +16 -0
  240. package/dist/nano/rpc/methods/representatives.js +7 -0
  241. package/dist/nano/rpc/methods/republish.d.ts +22 -0
  242. package/dist/nano/rpc/methods/republish.js +7 -0
  243. package/dist/nano/rpc/methods/sign.d.ts +13 -0
  244. package/dist/nano/rpc/methods/sign.js +18 -0
  245. package/dist/nano/rpc/methods/stats-clear.d.ts +12 -0
  246. package/dist/nano/rpc/methods/stats-clear.js +7 -0
  247. package/dist/nano/rpc/methods/stats.d.ts +11 -0
  248. package/dist/nano/rpc/methods/stats.js +18 -0
  249. package/dist/nano/rpc/methods/stop.d.ts +12 -0
  250. package/dist/nano/rpc/methods/stop.js +7 -0
  251. package/dist/nano/rpc/methods/successors.d.ts +20 -0
  252. package/dist/nano/rpc/methods/successors.js +7 -0
  253. package/dist/nano/rpc/methods/telemetry.d.ts +17 -0
  254. package/dist/nano/rpc/methods/telemetry.js +22 -0
  255. package/dist/nano/rpc/methods/unchecked-clear.d.ts +12 -0
  256. package/dist/nano/rpc/methods/unchecked-clear.js +7 -0
  257. package/dist/nano/rpc/methods/unchecked-get.d.ts +13 -0
  258. package/dist/nano/rpc/methods/unchecked-get.js +18 -0
  259. package/dist/nano/rpc/methods/unchecked-keys.d.ts +13 -0
  260. package/dist/nano/rpc/methods/unchecked-keys.js +18 -0
  261. package/dist/nano/rpc/methods/unchecked.d.ts +13 -0
  262. package/dist/nano/rpc/methods/unchecked.js +18 -0
  263. package/dist/nano/rpc/methods/unopened.d.ts +18 -0
  264. package/dist/nano/rpc/methods/unopened.js +7 -0
  265. package/dist/nano/rpc/methods/uptime.d.ts +12 -0
  266. package/dist/nano/rpc/methods/uptime.js +7 -0
  267. package/dist/nano/rpc/methods/validate-account-number.d.ts +14 -0
  268. package/dist/nano/rpc/methods/validate-account-number.js +7 -0
  269. package/dist/nano/rpc/methods/version.d.ts +26 -0
  270. package/dist/nano/rpc/methods/version.js +7 -0
  271. package/dist/nano/rpc/methods/work-cancel.d.ts +14 -0
  272. package/dist/nano/rpc/methods/work-cancel.js +7 -0
  273. package/dist/nano/rpc/methods/work-generate.d.ts +82 -0
  274. package/dist/nano/rpc/methods/work-generate.js +7 -0
  275. package/dist/nano/rpc/methods/work-peer-add.d.ts +16 -0
  276. package/dist/nano/rpc/methods/work-peer-add.js +7 -0
  277. package/dist/nano/rpc/methods/work-peers-clear.d.ts +12 -0
  278. package/dist/nano/rpc/methods/work-peers-clear.js +7 -0
  279. package/dist/nano/rpc/methods/work-peers.d.ts +12 -0
  280. package/dist/nano/rpc/methods/work-peers.js +7 -0
  281. package/dist/nano/rpc/methods/work-validate.d.ts +26 -0
  282. package/dist/nano/rpc/methods/work-validate.js +7 -0
  283. package/dist/nano/rpc/requests/account-balance.d.ts +7 -0
  284. package/dist/nano/rpc/requests/account-balance.js +13 -0
  285. package/dist/nano/rpc/requests/account-block-count.d.ts +6 -0
  286. package/dist/nano/rpc/requests/account-block-count.js +11 -0
  287. package/dist/nano/rpc/requests/account-get.d.ts +6 -0
  288. package/dist/nano/rpc/requests/account-get.js +11 -0
  289. package/dist/nano/rpc/requests/account-history.d.ts +13 -0
  290. package/dist/nano/rpc/requests/account-history.js +21 -0
  291. package/dist/nano/rpc/requests/account-info.d.ts +10 -0
  292. package/dist/nano/rpc/requests/account-info.js +16 -0
  293. package/dist/nano/rpc/requests/account-key.d.ts +6 -0
  294. package/dist/nano/rpc/requests/account-key.js +11 -0
  295. package/dist/nano/rpc/requests/account-representative.d.ts +6 -0
  296. package/dist/nano/rpc/requests/account-representative.js +11 -0
  297. package/dist/nano/rpc/requests/account-weight.d.ts +6 -0
  298. package/dist/nano/rpc/requests/account-weight.js +11 -0
  299. package/dist/nano/rpc/requests/accounts-balances.d.ts +7 -0
  300. package/dist/nano/rpc/requests/accounts-balances.js +13 -0
  301. package/dist/nano/rpc/requests/accounts-frontiers.d.ts +6 -0
  302. package/dist/nano/rpc/requests/accounts-frontiers.js +11 -0
  303. package/dist/nano/rpc/requests/accounts-receivable.d.ts +12 -0
  304. package/dist/nano/rpc/requests/accounts-receivable.js +20 -0
  305. package/dist/nano/rpc/requests/accounts-representatives.d.ts +6 -0
  306. package/dist/nano/rpc/requests/accounts-representatives.js +11 -0
  307. package/dist/nano/rpc/requests/available-supply.d.ts +5 -0
  308. package/dist/nano/rpc/requests/available-supply.js +9 -0
  309. package/dist/nano/rpc/requests/block-account.d.ts +6 -0
  310. package/dist/nano/rpc/requests/block-account.js +11 -0
  311. package/dist/nano/rpc/requests/block-confirm.d.ts +6 -0
  312. package/dist/nano/rpc/requests/block-confirm.js +11 -0
  313. package/dist/nano/rpc/requests/block-count.d.ts +5 -0
  314. package/dist/nano/rpc/requests/block-count.js +9 -0
  315. package/dist/nano/rpc/requests/block-create.d.ts +19 -0
  316. package/dist/nano/rpc/requests/block-create.js +32 -0
  317. package/dist/nano/rpc/requests/block-hash.d.ts +21 -0
  318. package/dist/nano/rpc/requests/block-hash.js +19 -0
  319. package/dist/nano/rpc/requests/block-info.d.ts +8 -0
  320. package/dist/nano/rpc/requests/block-info.js +14 -0
  321. package/dist/nano/rpc/requests/blocks-info.d.ts +12 -0
  322. package/dist/nano/rpc/requests/blocks-info.js +18 -0
  323. package/dist/nano/rpc/requests/blocks.d.ts +7 -0
  324. package/dist/nano/rpc/requests/blocks.js +13 -0
  325. package/dist/nano/rpc/requests/bootstrap-any.d.ts +6 -0
  326. package/dist/nano/rpc/requests/bootstrap-any.js +11 -0
  327. package/dist/nano/rpc/requests/bootstrap-lazy.d.ts +6 -0
  328. package/dist/nano/rpc/requests/bootstrap-lazy.js +11 -0
  329. package/dist/nano/rpc/requests/bootstrap-priorities.d.ts +5 -0
  330. package/dist/nano/rpc/requests/bootstrap-priorities.js +9 -0
  331. package/dist/nano/rpc/requests/bootstrap-reset.d.ts +5 -0
  332. package/dist/nano/rpc/requests/bootstrap-reset.js +9 -0
  333. package/dist/nano/rpc/requests/bootstrap-status.d.ts +5 -0
  334. package/dist/nano/rpc/requests/bootstrap-status.js +9 -0
  335. package/dist/nano/rpc/requests/bootstrap.d.ts +7 -0
  336. package/dist/nano/rpc/requests/bootstrap.js +13 -0
  337. package/dist/nano/rpc/requests/chain.d.ts +9 -0
  338. package/dist/nano/rpc/requests/chain.js +16 -0
  339. package/dist/nano/rpc/requests/confirmation-active.d.ts +6 -0
  340. package/dist/nano/rpc/requests/confirmation-active.js +11 -0
  341. package/dist/nano/rpc/requests/confirmation-history.d.ts +6 -0
  342. package/dist/nano/rpc/requests/confirmation-history.js +11 -0
  343. package/dist/nano/rpc/requests/confirmation-info.d.ts +9 -0
  344. package/dist/nano/rpc/requests/confirmation-info.js +15 -0
  345. package/dist/nano/rpc/requests/confirmation-quorum.d.ts +6 -0
  346. package/dist/nano/rpc/requests/confirmation-quorum.js +11 -0
  347. package/dist/nano/rpc/requests/database-txn-tracker.d.ts +7 -0
  348. package/dist/nano/rpc/requests/database-txn-tracker.js +12 -0
  349. package/dist/nano/rpc/requests/delegators-count.d.ts +6 -0
  350. package/dist/nano/rpc/requests/delegators-count.js +11 -0
  351. package/dist/nano/rpc/requests/delegators.d.ts +9 -0
  352. package/dist/nano/rpc/requests/delegators.js +16 -0
  353. package/dist/nano/rpc/requests/deterministic-key.d.ts +7 -0
  354. package/dist/nano/rpc/requests/deterministic-key.js +12 -0
  355. package/dist/nano/rpc/requests/election-statistics.d.ts +5 -0
  356. package/dist/nano/rpc/requests/election-statistics.js +9 -0
  357. package/dist/nano/rpc/requests/epoch-upgrade.d.ts +9 -0
  358. package/dist/nano/rpc/requests/epoch-upgrade.js +15 -0
  359. package/dist/nano/rpc/requests/frontier-count.d.ts +5 -0
  360. package/dist/nano/rpc/requests/frontier-count.js +9 -0
  361. package/dist/nano/rpc/requests/frontiers.d.ts +7 -0
  362. package/dist/nano/rpc/requests/frontiers.js +13 -0
  363. package/dist/nano/rpc/requests/index.d.ts +75 -0
  364. package/dist/nano/rpc/requests/index.js +91 -0
  365. package/dist/nano/rpc/requests/keepalive.d.ts +7 -0
  366. package/dist/nano/rpc/requests/keepalive.js +13 -0
  367. package/dist/nano/rpc/requests/key-create.d.ts +5 -0
  368. package/dist/nano/rpc/requests/key-create.js +9 -0
  369. package/dist/nano/rpc/requests/key-expand.d.ts +6 -0
  370. package/dist/nano/rpc/requests/key-expand.js +11 -0
  371. package/dist/nano/rpc/requests/ledger.d.ts +13 -0
  372. package/dist/nano/rpc/requests/ledger.js +22 -0
  373. package/dist/nano/rpc/requests/nano-to-raw.d.ts +6 -0
  374. package/dist/nano/rpc/requests/nano-to-raw.js +11 -0
  375. package/dist/nano/rpc/requests/node-id.d.ts +5 -0
  376. package/dist/nano/rpc/requests/node-id.js +9 -0
  377. package/dist/nano/rpc/requests/peers.d.ts +6 -0
  378. package/dist/nano/rpc/requests/peers.js +11 -0
  379. package/dist/nano/rpc/requests/populate-backlog.d.ts +5 -0
  380. package/dist/nano/rpc/requests/populate-backlog.js +9 -0
  381. package/dist/nano/rpc/requests/process.d.ts +27 -0
  382. package/dist/nano/rpc/requests/process.js +27 -0
  383. package/dist/nano/rpc/requests/raw-to-nano.d.ts +6 -0
  384. package/dist/nano/rpc/requests/raw-to-nano.js +11 -0
  385. package/dist/nano/rpc/requests/receivable-exists.d.ts +8 -0
  386. package/dist/nano/rpc/requests/receivable-exists.js +14 -0
  387. package/dist/nano/rpc/requests/receivable.d.ts +14 -0
  388. package/dist/nano/rpc/requests/receivable.js +22 -0
  389. package/dist/nano/rpc/requests/representatives-online.d.ts +7 -0
  390. package/dist/nano/rpc/requests/representatives-online.js +13 -0
  391. package/dist/nano/rpc/requests/representatives.d.ts +7 -0
  392. package/dist/nano/rpc/requests/representatives.js +13 -0
  393. package/dist/nano/rpc/requests/republish.d.ts +9 -0
  394. package/dist/nano/rpc/requests/republish.js +15 -0
  395. package/dist/nano/rpc/requests/sign.d.ts +55 -0
  396. package/dist/nano/rpc/requests/sign.js +49 -0
  397. package/dist/nano/rpc/requests/stats-clear.d.ts +5 -0
  398. package/dist/nano/rpc/requests/stats-clear.js +9 -0
  399. package/dist/nano/rpc/requests/stats.d.ts +6 -0
  400. package/dist/nano/rpc/requests/stats.js +10 -0
  401. package/dist/nano/rpc/requests/stop.d.ts +5 -0
  402. package/dist/nano/rpc/requests/stop.js +9 -0
  403. package/dist/nano/rpc/requests/successors.d.ts +9 -0
  404. package/dist/nano/rpc/requests/successors.js +16 -0
  405. package/dist/nano/rpc/requests/telemetry.d.ts +8 -0
  406. package/dist/nano/rpc/requests/telemetry.js +15 -0
  407. package/dist/nano/rpc/requests/unchecked-clear.d.ts +5 -0
  408. package/dist/nano/rpc/requests/unchecked-clear.js +9 -0
  409. package/dist/nano/rpc/requests/unchecked-get.d.ts +7 -0
  410. package/dist/nano/rpc/requests/unchecked-get.js +13 -0
  411. package/dist/nano/rpc/requests/unchecked-keys.d.ts +8 -0
  412. package/dist/nano/rpc/requests/unchecked-keys.js +15 -0
  413. package/dist/nano/rpc/requests/unchecked.d.ts +7 -0
  414. package/dist/nano/rpc/requests/unchecked.js +13 -0
  415. package/dist/nano/rpc/requests/unopened.d.ts +8 -0
  416. package/dist/nano/rpc/requests/unopened.js +15 -0
  417. package/dist/nano/rpc/requests/uptime.d.ts +5 -0
  418. package/dist/nano/rpc/requests/uptime.js +9 -0
  419. package/dist/nano/rpc/requests/validate-account-number.d.ts +6 -0
  420. package/dist/nano/rpc/requests/validate-account-number.js +10 -0
  421. package/dist/nano/rpc/requests/version.d.ts +5 -0
  422. package/dist/nano/rpc/requests/version.js +9 -0
  423. package/dist/nano/rpc/requests/work-cancel.d.ts +6 -0
  424. package/dist/nano/rpc/requests/work-cancel.js +11 -0
  425. package/dist/nano/rpc/requests/work-generate.d.ts +37 -0
  426. package/dist/nano/rpc/requests/work-generate.js +39 -0
  427. package/dist/nano/rpc/requests/work-peer-add.d.ts +7 -0
  428. package/dist/nano/rpc/requests/work-peer-add.js +13 -0
  429. package/dist/nano/rpc/requests/work-peers-clear.d.ts +5 -0
  430. package/dist/nano/rpc/requests/work-peers-clear.js +9 -0
  431. package/dist/nano/rpc/requests/work-peers.d.ts +5 -0
  432. package/dist/nano/rpc/requests/work-peers.js +9 -0
  433. package/dist/nano/rpc/requests/work-validate.d.ts +8 -0
  434. package/dist/nano/rpc/requests/work-validate.js +14 -0
  435. package/dist/nano/rpc/responses/account-balance.d.ts +7 -0
  436. package/dist/nano/rpc/responses/account-balance.js +12 -0
  437. package/dist/nano/rpc/responses/account-block-count.d.ts +5 -0
  438. package/dist/nano/rpc/responses/account-block-count.js +10 -0
  439. package/dist/nano/rpc/responses/account-get.d.ts +5 -0
  440. package/dist/nano/rpc/responses/account-get.js +10 -0
  441. package/dist/nano/rpc/responses/account-history.d.ts +229 -0
  442. package/dist/nano/rpc/responses/account-history.js +143 -0
  443. package/dist/nano/rpc/responses/account-info.d.ts +124 -0
  444. package/dist/nano/rpc/responses/account-info.js +53 -0
  445. package/dist/nano/rpc/responses/account-key.d.ts +5 -0
  446. package/dist/nano/rpc/responses/account-key.js +10 -0
  447. package/dist/nano/rpc/responses/account-representative.d.ts +5 -0
  448. package/dist/nano/rpc/responses/account-representative.js +10 -0
  449. package/dist/nano/rpc/responses/account-weight.d.ts +5 -0
  450. package/dist/nano/rpc/responses/account-weight.js +10 -0
  451. package/dist/nano/rpc/responses/accounts-balances.d.ts +10 -0
  452. package/dist/nano/rpc/responses/accounts-balances.js +17 -0
  453. package/dist/nano/rpc/responses/accounts-frontiers.d.ts +6 -0
  454. package/dist/nano/rpc/responses/accounts-frontiers.js +12 -0
  455. package/dist/nano/rpc/responses/accounts-receivable.d.ts +25 -0
  456. package/dist/nano/rpc/responses/accounts-receivable.js +28 -0
  457. package/dist/nano/rpc/responses/accounts-representatives.d.ts +6 -0
  458. package/dist/nano/rpc/responses/accounts-representatives.js +11 -0
  459. package/dist/nano/rpc/responses/available-supply.d.ts +5 -0
  460. package/dist/nano/rpc/responses/available-supply.js +10 -0
  461. package/dist/nano/rpc/responses/block-account.d.ts +5 -0
  462. package/dist/nano/rpc/responses/block-account.js +10 -0
  463. package/dist/nano/rpc/responses/block-confirm.d.ts +5 -0
  464. package/dist/nano/rpc/responses/block-confirm.js +9 -0
  465. package/dist/nano/rpc/responses/block-count.d.ts +7 -0
  466. package/dist/nano/rpc/responses/block-count.js +12 -0
  467. package/dist/nano/rpc/responses/block-create.d.ts +21 -0
  468. package/dist/nano/rpc/responses/block-create.js +20 -0
  469. package/dist/nano/rpc/responses/block-hash.d.ts +5 -0
  470. package/dist/nano/rpc/responses/block-hash.js +10 -0
  471. package/dist/nano/rpc/responses/block-info.d.ts +249 -0
  472. package/dist/nano/rpc/responses/block-info.js +41 -0
  473. package/dist/nano/rpc/responses/blocks-info.d.ts +26 -0
  474. package/dist/nano/rpc/responses/blocks-info.js +21 -0
  475. package/dist/nano/rpc/responses/blocks.d.ts +16 -0
  476. package/dist/nano/rpc/responses/blocks.js +15 -0
  477. package/dist/nano/rpc/responses/bootstrap-any.d.ts +3 -0
  478. package/dist/nano/rpc/responses/bootstrap-any.js +7 -0
  479. package/dist/nano/rpc/responses/bootstrap-lazy.d.ts +3 -0
  480. package/dist/nano/rpc/responses/bootstrap-lazy.js +7 -0
  481. package/dist/nano/rpc/responses/bootstrap-priorities.d.ts +13 -0
  482. package/dist/nano/rpc/responses/bootstrap-priorities.js +26 -0
  483. package/dist/nano/rpc/responses/bootstrap-reset.d.ts +5 -0
  484. package/dist/nano/rpc/responses/bootstrap-reset.js +9 -0
  485. package/dist/nano/rpc/responses/bootstrap-status.d.ts +6 -0
  486. package/dist/nano/rpc/responses/bootstrap-status.js +64 -0
  487. package/dist/nano/rpc/responses/bootstrap.d.ts +3 -0
  488. package/dist/nano/rpc/responses/bootstrap.js +7 -0
  489. package/dist/nano/rpc/responses/chain.d.ts +5 -0
  490. package/dist/nano/rpc/responses/chain.js +10 -0
  491. package/dist/nano/rpc/responses/confirmation-active.d.ts +7 -0
  492. package/dist/nano/rpc/responses/confirmation-active.js +13 -0
  493. package/dist/nano/rpc/responses/confirmation-history.d.ts +18 -0
  494. package/dist/nano/rpc/responses/confirmation-history.js +30 -0
  495. package/dist/nano/rpc/responses/confirmation-info.d.ts +52 -0
  496. package/dist/nano/rpc/responses/confirmation-info.js +39 -0
  497. package/dist/nano/rpc/responses/confirmation-quorum.d.ts +27 -0
  498. package/dist/nano/rpc/responses/confirmation-quorum.js +25 -0
  499. package/dist/nano/rpc/responses/database-txn-tracker.d.ts +15 -0
  500. package/dist/nano/rpc/responses/database-txn-tracker.js +24 -0
  501. package/dist/nano/rpc/responses/delegators-count.d.ts +5 -0
  502. package/dist/nano/rpc/responses/delegators-count.js +10 -0
  503. package/dist/nano/rpc/responses/delegators.d.ts +5 -0
  504. package/dist/nano/rpc/responses/delegators.js +11 -0
  505. package/dist/nano/rpc/responses/deterministic-key.d.ts +7 -0
  506. package/dist/nano/rpc/responses/deterministic-key.js +14 -0
  507. package/dist/nano/rpc/responses/election-statistics.d.ts +12 -0
  508. package/dist/nano/rpc/responses/election-statistics.js +19 -0
  509. package/dist/nano/rpc/responses/epoch-upgrade.d.ts +5 -0
  510. package/dist/nano/rpc/responses/epoch-upgrade.js +10 -0
  511. package/dist/nano/rpc/responses/error-response.d.ts +5 -0
  512. package/dist/nano/rpc/responses/error-response.js +11 -0
  513. package/dist/nano/rpc/responses/frontier-count.d.ts +5 -0
  514. package/dist/nano/rpc/responses/frontier-count.js +10 -0
  515. package/dist/nano/rpc/responses/frontiers.d.ts +5 -0
  516. package/dist/nano/rpc/responses/frontiers.js +11 -0
  517. package/dist/nano/rpc/responses/index.d.ts +75 -0
  518. package/dist/nano/rpc/responses/index.js +91 -0
  519. package/dist/nano/rpc/responses/keepalive.d.ts +5 -0
  520. package/dist/nano/rpc/responses/keepalive.js +9 -0
  521. package/dist/nano/rpc/responses/key-create.d.ts +7 -0
  522. package/dist/nano/rpc/responses/key-create.js +14 -0
  523. package/dist/nano/rpc/responses/key-expand.d.ts +7 -0
  524. package/dist/nano/rpc/responses/key-expand.js +14 -0
  525. package/dist/nano/rpc/responses/ledger.d.ts +75 -0
  526. package/dist/nano/rpc/responses/ledger.js +37 -0
  527. package/dist/nano/rpc/responses/nano-to-raw.d.ts +5 -0
  528. package/dist/nano/rpc/responses/nano-to-raw.js +10 -0
  529. package/dist/nano/rpc/responses/node-id.d.ts +7 -0
  530. package/dist/nano/rpc/responses/node-id.js +14 -0
  531. package/dist/nano/rpc/responses/peers.d.ts +22 -0
  532. package/dist/nano/rpc/responses/peers.js +21 -0
  533. package/dist/nano/rpc/responses/populate-backlog.d.ts +5 -0
  534. package/dist/nano/rpc/responses/populate-backlog.js +9 -0
  535. package/dist/nano/rpc/responses/process.d.ts +15 -0
  536. package/dist/nano/rpc/responses/process.js +14 -0
  537. package/dist/nano/rpc/responses/raw-to-nano.d.ts +5 -0
  538. package/dist/nano/rpc/responses/raw-to-nano.js +10 -0
  539. package/dist/nano/rpc/responses/receivable-exists.d.ts +5 -0
  540. package/dist/nano/rpc/responses/receivable-exists.js +13 -0
  541. package/dist/nano/rpc/responses/receivable.d.ts +34 -0
  542. package/dist/nano/rpc/responses/receivable.js +42 -0
  543. package/dist/nano/rpc/responses/representatives-online.d.ts +21 -0
  544. package/dist/nano/rpc/responses/representatives-online.js +19 -0
  545. package/dist/nano/rpc/responses/representatives.d.ts +5 -0
  546. package/dist/nano/rpc/responses/representatives.js +11 -0
  547. package/dist/nano/rpc/responses/republish.d.ts +6 -0
  548. package/dist/nano/rpc/responses/republish.js +11 -0
  549. package/dist/nano/rpc/responses/sign.d.ts +17 -0
  550. package/dist/nano/rpc/responses/sign.js +16 -0
  551. package/dist/nano/rpc/responses/stats-clear.d.ts +5 -0
  552. package/dist/nano/rpc/responses/stats-clear.js +9 -0
  553. package/dist/nano/rpc/responses/stats.d.ts +71 -0
  554. package/dist/nano/rpc/responses/stats.js +61 -0
  555. package/dist/nano/rpc/responses/stop.d.ts +5 -0
  556. package/dist/nano/rpc/responses/stop.js +9 -0
  557. package/dist/nano/rpc/responses/successors.d.ts +5 -0
  558. package/dist/nano/rpc/responses/successors.js +10 -0
  559. package/dist/nano/rpc/responses/telemetry.d.ts +61 -0
  560. package/dist/nano/rpc/responses/telemetry.js +54 -0
  561. package/dist/nano/rpc/responses/unchecked-clear.d.ts +5 -0
  562. package/dist/nano/rpc/responses/unchecked-clear.js +9 -0
  563. package/dist/nano/rpc/responses/unchecked-get.d.ts +18 -0
  564. package/dist/nano/rpc/responses/unchecked-get.js +17 -0
  565. package/dist/nano/rpc/responses/unchecked-keys.d.ts +33 -0
  566. package/dist/nano/rpc/responses/unchecked-keys.js +30 -0
  567. package/dist/nano/rpc/responses/unchecked.d.ts +16 -0
  568. package/dist/nano/rpc/responses/unchecked.js +15 -0
  569. package/dist/nano/rpc/responses/unopened.d.ts +5 -0
  570. package/dist/nano/rpc/responses/unopened.js +11 -0
  571. package/dist/nano/rpc/responses/uptime.d.ts +5 -0
  572. package/dist/nano/rpc/responses/uptime.js +13 -0
  573. package/dist/nano/rpc/responses/validate-account-number.d.ts +5 -0
  574. package/dist/nano/rpc/responses/validate-account-number.js +10 -0
  575. package/dist/nano/rpc/responses/version.d.ts +12 -0
  576. package/dist/nano/rpc/responses/version.js +21 -0
  577. package/dist/nano/rpc/responses/work-cancel.d.ts +5 -0
  578. package/dist/nano/rpc/responses/work-cancel.js +9 -0
  579. package/dist/nano/rpc/responses/work-generate.d.ts +8 -0
  580. package/dist/nano/rpc/responses/work-generate.js +16 -0
  581. package/dist/nano/rpc/responses/work-peer-add.d.ts +5 -0
  582. package/dist/nano/rpc/responses/work-peer-add.js +9 -0
  583. package/dist/nano/rpc/responses/work-peers-clear.d.ts +5 -0
  584. package/dist/nano/rpc/responses/work-peers-clear.js +9 -0
  585. package/dist/nano/rpc/responses/work-peers.d.ts +5 -0
  586. package/dist/nano/rpc/responses/work-peers.js +9 -0
  587. package/dist/nano/rpc/responses/work-validate.d.ts +9 -0
  588. package/dist/nano/rpc/responses/work-validate.js +16 -0
  589. package/dist/nano/types/account.d.ts +10 -0
  590. package/dist/nano/types/account.js +49 -0
  591. package/dist/nano/types/amount.d.ts +25 -0
  592. package/dist/nano/types/amount.js +103 -0
  593. package/dist/nano/types/binary-boolean-string.d.ts +3 -0
  594. package/dist/nano/types/binary-boolean-string.js +6 -0
  595. package/dist/nano/types/boolean-distribution.d.ts +1 -0
  596. package/dist/nano/types/boolean-distribution.js +2 -0
  597. package/dist/nano/types/boolean-option.d.ts +1 -0
  598. package/dist/nano/types/boolean-option.js +2 -0
  599. package/dist/nano/types/boolean.d.ts +3 -0
  600. package/dist/nano/types/boolean.js +6 -0
  601. package/dist/nano/types/byte-array.d.ts +3 -0
  602. package/dist/nano/types/byte-array.js +9 -0
  603. package/dist/nano/types/endpoint.d.ts +3 -0
  604. package/dist/nano/types/endpoint.js +54 -0
  605. package/dist/nano/types/hash.d.ts +6 -0
  606. package/dist/nano/types/hash.js +9 -0
  607. package/dist/nano/types/height.d.ts +9 -0
  608. package/dist/nano/types/height.js +17 -0
  609. package/dist/nano/types/hex.d.ts +3 -0
  610. package/dist/nano/types/hex.js +6 -0
  611. package/dist/nano/types/index.d.ts +24 -0
  612. package/dist/nano/types/index.js +77 -0
  613. package/dist/nano/types/int.d.ts +9 -0
  614. package/dist/nano/types/int.js +20 -0
  615. package/dist/nano/types/link.d.ts +3 -0
  616. package/dist/nano/types/link.js +7 -0
  617. package/dist/nano/types/lowercase-keys.d.ts +3 -0
  618. package/dist/nano/types/lowercase-keys.js +2 -0
  619. package/dist/nano/types/nacl.d.ts +32 -0
  620. package/dist/nano/types/nacl.js +895 -0
  621. package/dist/nano/types/node-id.d.ts +3 -0
  622. package/dist/nano/types/node-id.js +6 -0
  623. package/dist/nano/types/non-throwing.d.ts +3 -0
  624. package/dist/nano/types/non-throwing.js +2 -0
  625. package/dist/nano/types/number.d.ts +3 -0
  626. package/dist/nano/types/number.js +18 -0
  627. package/dist/nano/types/port.d.ts +9 -0
  628. package/dist/nano/types/port.js +17 -0
  629. package/dist/nano/types/private-key.d.ts +6 -0
  630. package/dist/nano/types/private-key.js +9 -0
  631. package/dist/nano/types/public-key.d.ts +6 -0
  632. package/dist/nano/types/public-key.js +9 -0
  633. package/dist/nano/types/result.d.ts +16 -0
  634. package/dist/nano/types/result.js +2 -0
  635. package/dist/nano/types/root.d.ts +6 -0
  636. package/dist/nano/types/root.js +9 -0
  637. package/dist/nano/types/seed.d.ts +9 -0
  638. package/dist/nano/types/seed.js +13 -0
  639. package/dist/nano/types/signature.d.ts +6 -0
  640. package/dist/nano/types/signature.js +9 -0
  641. package/dist/nano/types/subtype.d.ts +5 -0
  642. package/dist/nano/types/subtype.js +8 -0
  643. package/dist/nano/types/throwing.d.ts +3 -0
  644. package/dist/nano/types/throwing.js +2 -0
  645. package/dist/nano/types/timestamp.d.ts +11 -0
  646. package/dist/nano/types/timestamp.js +19 -0
  647. package/dist/nano/types/type.d.ts +13 -0
  648. package/dist/nano/types/type.js +20 -0
  649. package/dist/nano/types/uint.d.ts +9 -0
  650. package/dist/nano/types/uint.js +20 -0
  651. package/dist/nano/types/uppercase-keys.d.ts +3 -0
  652. package/dist/nano/types/uppercase-keys.js +2 -0
  653. package/dist/nano/types/work-difficulty.d.ts +3 -0
  654. package/dist/nano/types/work-difficulty.js +6 -0
  655. package/dist/nano/types/work.d.ts +6 -0
  656. package/dist/nano/types/work.js +9 -0
  657. package/dist/nano/web-socket/client/index.d.ts +1 -0
  658. package/dist/nano/web-socket/client/index.js +17 -0
  659. package/dist/nano/web-socket/client/web-socket-client.d.ts +334 -0
  660. package/dist/nano/web-socket/client/web-socket-client.js +630 -0
  661. package/dist/nano/web-socket/index.d.ts +4 -0
  662. package/dist/nano/web-socket/index.js +20 -0
  663. package/dist/nano/web-socket/requests/ack.d.ts +7 -0
  664. package/dist/nano/web-socket/requests/ack.js +12 -0
  665. package/dist/nano/web-socket/requests/bootstrap.d.ts +8 -0
  666. package/dist/nano/web-socket/requests/bootstrap.js +11 -0
  667. package/dist/nano/web-socket/requests/confirmation.d.ts +20 -0
  668. package/dist/nano/web-socket/requests/confirmation.js +28 -0
  669. package/dist/nano/web-socket/requests/index.d.ts +10 -0
  670. package/dist/nano/web-socket/requests/index.js +26 -0
  671. package/dist/nano/web-socket/requests/new-unconfirmed-block.d.ts +8 -0
  672. package/dist/nano/web-socket/requests/new-unconfirmed-block.js +11 -0
  673. package/dist/nano/web-socket/requests/ping.d.ts +7 -0
  674. package/dist/nano/web-socket/requests/ping.js +9 -0
  675. package/dist/nano/web-socket/requests/started-election.d.ts +8 -0
  676. package/dist/nano/web-socket/requests/started-election.js +11 -0
  677. package/dist/nano/web-socket/requests/stopped-election.d.ts +8 -0
  678. package/dist/nano/web-socket/requests/stopped-election.js +11 -0
  679. package/dist/nano/web-socket/requests/telemetry.d.ts +8 -0
  680. package/dist/nano/web-socket/requests/telemetry.js +11 -0
  681. package/dist/nano/web-socket/requests/vote.d.ts +13 -0
  682. package/dist/nano/web-socket/requests/vote.js +20 -0
  683. package/dist/nano/web-socket/requests/work.d.ts +8 -0
  684. package/dist/nano/web-socket/requests/work.js +11 -0
  685. package/dist/nano/web-socket/responses/ack.d.ts +7 -0
  686. package/dist/nano/web-socket/responses/ack.js +12 -0
  687. package/dist/nano/web-socket/responses/bootstrap.d.ts +29 -0
  688. package/dist/nano/web-socket/responses/bootstrap.js +27 -0
  689. package/dist/nano/web-socket/responses/confirmation.d.ts +208 -0
  690. package/dist/nano/web-socket/responses/confirmation.js +72 -0
  691. package/dist/nano/web-socket/responses/index.d.ts +14 -0
  692. package/dist/nano/web-socket/responses/index.js +30 -0
  693. package/dist/nano/web-socket/responses/new-unconfirmed-block.d.ts +84 -0
  694. package/dist/nano/web-socket/responses/new-unconfirmed-block.js +29 -0
  695. package/dist/nano/web-socket/responses/pong-ack-response.d.ts +7 -0
  696. package/dist/nano/web-socket/responses/pong-ack-response.js +11 -0
  697. package/dist/nano/web-socket/responses/started-election.d.ts +13 -0
  698. package/dist/nano/web-socket/responses/started-election.js +16 -0
  699. package/dist/nano/web-socket/responses/stopped-election.d.ts +13 -0
  700. package/dist/nano/web-socket/responses/stopped-election.js +16 -0
  701. package/dist/nano/web-socket/responses/subscribe-ack-response.d.ts +7 -0
  702. package/dist/nano/web-socket/responses/subscribe-ack-response.js +11 -0
  703. package/dist/nano/web-socket/responses/telemetry.d.ts +51 -0
  704. package/dist/nano/web-socket/responses/telemetry.js +41 -0
  705. package/dist/nano/web-socket/responses/topic.d.ts +6 -0
  706. package/dist/nano/web-socket/responses/topic.js +11 -0
  707. package/dist/nano/web-socket/responses/unsubscribe-ack-response.d.ts +7 -0
  708. package/dist/nano/web-socket/responses/unsubscribe-ack-response.js +11 -0
  709. package/dist/nano/web-socket/responses/update-ack-response.d.ts +7 -0
  710. package/dist/nano/web-socket/responses/update-ack-response.js +11 -0
  711. package/dist/nano/web-socket/responses/vote.d.ts +25 -0
  712. package/dist/nano/web-socket/responses/vote.js +26 -0
  713. package/dist/nano/web-socket/responses/work.d.ts +43 -0
  714. package/dist/nano/web-socket/responses/work.js +38 -0
  715. package/dist/nano/web-socket/types/ack.d.ts +3 -0
  716. package/dist/nano/web-socket/types/ack.js +7 -0
  717. package/dist/nano/web-socket/types/action.d.ts +3 -0
  718. package/dist/nano/web-socket/types/action.js +6 -0
  719. package/dist/nano/web-socket/types/confirmation-type.d.ts +3 -0
  720. package/dist/nano/web-socket/types/confirmation-type.js +11 -0
  721. package/dist/nano/web-socket/types/index.d.ts +5 -0
  722. package/dist/nano/web-socket/types/index.js +21 -0
  723. package/dist/nano/web-socket/types/topic.d.ts +3 -0
  724. package/dist/nano/web-socket/types/topic.js +14 -0
  725. package/dist/nano/web-socket/types/vote-type.d.ts +3 -0
  726. package/dist/nano/web-socket/types/vote-type.js +13 -0
  727. package/package.json +84 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Andreas Lichnovsky
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,262 @@
1
+ <a name="nano-sdk"></a>
2
+ # nano-sdk
3
+
4
+ Production-grade TypeScript SDK for interacting with a **Nano** node, providing fully typed and runtime-validated RPC and WebSocket APIs, a built-in WebSocket client with typed ack and topic listeners, and utilities for blocks, cryptography, and safe raw amount arithmetic.
5
+
6
+ <a name="installation"></a>
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm i nano-sdk zod
11
+ ```
12
+
13
+ <a name="quick-start"></a>
14
+ ## Quick Start
15
+
16
+ ```ts
17
+ import { Nano } from "nano-sdk";
18
+
19
+ const nanoRpcUrl = "http://127.0.0.1:7076";
20
+
21
+ // Alias
22
+ type AccountString = Nano.Types.AccountString;
23
+ const AccountString = Nano.Types.AccountString();
24
+
25
+ async function fetchAccountBalance(account: AccountString) {
26
+ // 1) Validate user input
27
+ const validatedAccount = AccountString.parse(account);
28
+
29
+ // 2) Typed RPC call
30
+ const response = await Nano.RPC.account_balance(
31
+ nanoRpcUrl,
32
+ {
33
+ action: "account_balance",
34
+ account: validatedAccount,
35
+ include_only_confirmed: true,
36
+ },
37
+ { timeoutInMs: 2000 }
38
+ );
39
+
40
+ // 3) Convert and format raw balance
41
+ const balanceInNano = Nano.Math.rawToNano({ raw: response.balance, decimalPlaces: 6 });
42
+
43
+ // 4) Output balanceInNano
44
+ console.log("Balance (Nano):", balanceInNano);
45
+ }
46
+
47
+ fetchAccountBalance("nano_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3").catch((err) => console.error("Unexpected failure:", err));
48
+ ```
49
+
50
+ <a name="typed-rpc-example"></a>
51
+ ## Typed & Runtime-Validated RPC
52
+
53
+ RPC requests and responses are fully typed and validated at runtime. Response types are derived from the corresponding request parameters, meaning the shape of the response object adapts based on the options you provide.
54
+
55
+ ![Typed RPC Response IntelliSense](./images/rpc-response-intellisense.gif)
56
+
57
+ <a name="overview"></a>
58
+ ## Overview & Features
59
+
60
+ The SDK uses a single root namespace (**Nano**), organized into sub-namespaces, each focused on a specific responsibility:
61
+
62
+ - `Nano.Blocks`: Block schemas (**Zod**) for validating and composing **Nano** blocks
63
+ - `Nano.Crypto`: Key derivation, block hashing, signing, and verification utilities
64
+ - `Nano.Math`: Raw amount conversion, formatting, and safe raw arithmetic
65
+ - `Nano.RPC`: **Nano** node RPC methods (HTTP POST), with typed requests and typed responses
66
+ - `Nano.Types`: Runtime validators for common **Nano** primitives (account, hash, keys, raw amounts, etc.)
67
+ - `Nano.WebSocket`: Fully typed **Nano** node WebSocket request and response schemas, including acknowledgement and topic message definitions
68
+ - `Nano.WebSocketClient`: Instantiable WebSocket client providing fully typed acknowledgement and topic-based message handling using the `Nano.WebSocket` schemas
69
+
70
+ <a name="rpc"></a>
71
+ ## RPC Usage
72
+
73
+ All RPC methods:
74
+
75
+ - validate requests using **Zod**
76
+ - perform an HTTP POST (default: native `fetch`)
77
+ - detect and handle post errors
78
+ - validate responses using **Zod**
79
+
80
+ All RPC methods follow a consistent signature:
81
+
82
+ `Nano.RPC.<method>(rpcUrl, request, config?)`
83
+
84
+ - `rpcUrl` – **Nano** node RPC endpoint
85
+ - `request` – typed request object (including `action`)
86
+ - `config` *(optional)* – request behavior and transport options
87
+
88
+ ### Error Handling
89
+
90
+ By default, RPC calls throw `Nano.RPC.PostError` for:
91
+
92
+ - Invalid request payloads
93
+ - HTTP or transport errors
94
+ - **Nano** node error responses
95
+ - Invalid or unexpected response data
96
+
97
+ If `throwOnError` is set to false, the method instead returns a structured result object indicating success or failure.
98
+
99
+ ### Request config
100
+
101
+ The optional config supports:
102
+
103
+ - `throwOnError` – true (default) throws, false returns `{ success, data / error }`
104
+ - `timeoutInMs` – HTTP timeout
105
+ - `abortSignal` – cancellation via AbortController
106
+ - `httpClient` – custom HTTP transport
107
+
108
+ By default, errors throw `Nano.RPC.PostError`.
109
+
110
+ ### Custom HTTP client
111
+
112
+ RPC methods accept a custom `httpClient` via the request config. See the `axios` example in
113
+
114
+ - [`axios-http-client.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/rpc/axios-http-client.example.ts)
115
+
116
+ ### Examples
117
+
118
+ - [`account-info.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/rpc/account-info.example.ts)
119
+ - [`version.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/rpc/version.example.ts)
120
+
121
+ <a name="websocket"></a>
122
+ ## WebSocket Usage
123
+
124
+ `Nano.WebSocket` provides a complete, strongly typed implementation of all **Nano** node WebSocket request and response schemas and ships with a built-in `WebSocketClient`. By default, the client uses the globally available `WebSocket` implementation provided by the current runtime environment (browser or Node.js).
125
+
126
+ The `WebSocketClient` exposes **fully typed WebSocket interactions** through two complementary listener APIs:
127
+
128
+ - **Ack listeners** for handling typed acknowledgement messages returned by the node when a WebSocket action explicitly requests an acknowledgement (`subscribe`, `unsubscribe`, `update`, or `pong`)
129
+ - **Topic listeners** for typed streaming subscriptions, including `bootstrap`, `confirmation`, `new_unconfirmed_block`, `started_election`, `stopped_election`, `telemetry`, `work`, and `vote`
130
+
131
+ All incoming messages are validated and typed based on the corresponding WebSocket schemas, enabling safe, ergonomic access to response data without manual parsing or casting.
132
+
133
+ ![Typed WebSocket Response IntelliSense](./images/web-socket-response-intellisense.gif)
134
+
135
+ ### Available options
136
+
137
+ ```ts
138
+ const ws = new Nano.WebSocketClient(webSocketUrl, undefined, {
139
+ webSocketClass: undefined, // WebSocket constructor, if none provided, defaults to global WebSocket
140
+ connectionTimeout: 4000, // retry connect if not connected after this time, in ms
141
+ minUptime: 5000, // min time in ms to consider connection as stable
142
+ maxEnqueuedMessages: Infinity, // maximum number of messages to buffer until reconnection
143
+ maxReconnectionAttempts: Infinity, // maximum number of reconnection attempts
144
+ maxReconnectionDelay: 10000, // max delay in ms between reconnections
145
+ minReconnectionDelay: 1000 + Math.random() * 4000, // min delay in ms between reconnections
146
+ reconnectionDelayGrowFactor: 1.3, // how fast the reconnection delay grows
147
+ startClosed: false, // start websocket in CLOSED state, call `.reconnect()` to connect
148
+ });
149
+ ```
150
+
151
+ ### Examples
152
+
153
+ - [`typed-ack-and-topic-listeners.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/web-socket/typed-ack-and-topic-listeners.example.ts)
154
+ - [`custom-web-socket-client.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/web-socket/custom-web-socket-client.example.ts)
155
+
156
+ <a name="validation"></a>
157
+ ## Validation & Typing
158
+
159
+ `Nano.Types` provides a collection of **reusable Zod schemas** for common **Nano-specific primitives**. These schemas form the foundation for higher-level features such as cryptography and RPC validation. Use them to validate external input and to type values throughout your codebase:
160
+
161
+ - Prefer `.parse(...)` when invalid input should throw immediately
162
+ - Prefer `.safeParse(...)` when you want a typed success/failure result without throwing
163
+
164
+ The available schemas cover a wide range of Nano primitives, including but not limited to:
165
+
166
+ - `AccountString`, `RawAmountString`, `NanoAmountString`, `PrivateKeyString`, `PublicKeyString`, `SignatureString`, `HashString`, `HexString`, ...
167
+
168
+ ### Examples
169
+
170
+ - [`alias-and-safe-parse.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/types/alias-and-safe-parse.example.ts)
171
+
172
+ <a name="math"></a>
173
+ ## Math
174
+
175
+ `Nano.Math` provides safe arithmetic, comparison, and formatting utilities for **nano** and **raw** amounts.
176
+
177
+ **Raw** amounts can be represented as **strings** (`RawAmountString`, to remain JSON-serializable) and native `BigInt` values (`RawAmount`).
178
+
179
+ **Nano** amounts are represented as **strings** (`NanoAmountString`) to avoid precision issues and eliminate the need for a `BigNumber.js` dependency.
180
+
181
+ All raw functions support **mixed inputs** (`RawAmount` and `RawAmountString`).
182
+ The **type of the first parameter** of arithmetic functions determines the return type:
183
+ - If the first `raw` parameter is a `RawAmount` (`BigInt`), the result is returned as `BigInt`
184
+ - If the first `raw` parameter is a `RawAmountString` (`String`), the result is returned as `String`
185
+
186
+ Available utilities:
187
+
188
+ - Conversion: `nanoToRaw`, `rawToNano`
189
+ - Formatting: `formatRaw`
190
+ - Arithmetic (with bounds checking):
191
+ `rawPlus`, `rawMinus`, `rawMultiply`, `rawDivide`, `rawModulo`
192
+ - Comparisons:
193
+ `rawIsZero`, `rawIsGreaterThan`, `rawIsGreaterThanOrEqualTo`, `rawIsLessThan`, `rawIsLessThanOrEqualTo`, `rawIsEqualTo`
194
+
195
+ ### Examples
196
+
197
+ - [`format-raw.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/math/format-raw.example.ts)
198
+ - [`raw-arithmetic.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/math/raw-arithmetic.example.ts)
199
+ - [`raw-comparison.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/math/raw-comparison.example.ts)
200
+
201
+ <a name="crypto"></a>
202
+ ## Crypto
203
+
204
+ `Nano.Crypto` provides cryptographic utilities commonly needed when building **Nano**-related services:
205
+
206
+ - Key pair generation and deterministic key derivation
207
+ - Block hashing and hash verification
208
+ - Block signing and signature verification
209
+ - Proof-of-work hash verification
210
+
211
+ ### Examples
212
+
213
+ - [`derive-account-from-seed.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/crypto/derive-account-from-seed.example.ts)
214
+ - [`hash-and-verify-hash.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/crypto/hash-and-verify-hash.example.ts)
215
+ - [`sign-and-verify-signature.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/crypto/sign-and-verify-signature.example.ts)
216
+
217
+ ## Blocks
218
+
219
+ `Nano.Blocks` provides predefined Zod schemas for composing and validating **Nano** block variants. All schemas are provided as composable building blocks and can be used as a base to define extended schemas with additional custom fields.
220
+
221
+ Available block schemas:
222
+
223
+ - `StateBlock`
224
+ - `LegacySendBlock`, `LegacyReceiveBlock`, `LegacyOpenBlock`, `LegacyChangeBlock`
225
+ - `Block` as a union of all supported block variants
226
+
227
+ ### Examples
228
+
229
+ - [`state-block-with-hash.example.ts`](https://github.com/infinitybay/nano-sdk/blob/master/examples/blocks/state-block-with-hash.example.ts)
230
+
231
+ <a name="testing"></a>
232
+ ## Testing
233
+
234
+ - Unit tests (`test/unit`) cover schemas, math edge cases, crypto utilities, and parsing/validation flows (throwing and non-throwing).
235
+ - Integration tests (`test/integration`) verify both **RPC** and **WebSocket** functionality against a real **Nano** node, ensuring request and response schemas match live node behavior.
236
+
237
+ Unit tests are executed using:
238
+
239
+ ```bash
240
+ npm run test:unit
241
+ ```
242
+
243
+ Integration test requirements:
244
+
245
+ - A running **Nano** node is required.
246
+ - All public **Nano** RPC and WebSocket endpoints must be reachable. `enable_control=true` is **not** required for any currently enabled integration tests.
247
+ - The RPC endpoint URL can be configured via the `config.nanoRpcUrl` field in `package.json` or via the `NANO_RPC_URL` environment variable. The environment variable takes precedence if both are set.
248
+ - The WebSocket endpoint URL can be configured via the `config.nanoWebSocketUrl` field in `package.json` or via the `NANO_WEB_SOCKET_URL` environment variable. The environment variable takes precedence if both are set.
249
+
250
+ Integration tests for RPC and WebSocket are executed together using:
251
+
252
+ ```bash
253
+ npm run test:integration
254
+ ```
255
+
256
+ <a name="links"></a>
257
+ ## Links
258
+
259
+ - npm: https://www.npmjs.com/package/nano-sdk
260
+ - GitHub: https://github.com/infinitybay/nano-sdk
261
+ - Nano Node RPC Protocol: https://docs.nano.org/commands/rpc-protocol/
262
+ - Nano Node WebSockets Integration Guide: https://docs.nano.org/integration-guides/websockets/
@@ -0,0 +1,2 @@
1
+ import * as Nano from "./nano";
2
+ export { Nano };
package/dist/index.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Nano = void 0;
37
+ const Nano = __importStar(require("./nano"));
38
+ exports.Nano = Nano;
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ export type Block = z.infer<ReturnType<typeof Block>>;
3
+ export declare const Block: () => z.ZodUnion<readonly [z.ZodObject<{
4
+ type: z.ZodLiteral<"change">;
5
+ previous: z.ZodString;
6
+ representative: z.ZodString;
7
+ work: z.ZodString;
8
+ signature: z.ZodString;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ type: z.ZodLiteral<"open">;
11
+ source: z.ZodString;
12
+ representative: z.ZodString;
13
+ account: z.ZodString;
14
+ work: z.ZodString;
15
+ signature: z.ZodString;
16
+ }, z.core.$strip>, z.ZodObject<{
17
+ type: z.ZodLiteral<"receive">;
18
+ previous: z.ZodString;
19
+ source: z.ZodString;
20
+ work: z.ZodString;
21
+ signature: z.ZodString;
22
+ }, z.core.$strip>, z.ZodObject<{
23
+ type: z.ZodLiteral<"send">;
24
+ previous: z.ZodString;
25
+ destination: z.ZodString;
26
+ balance: z.ZodString;
27
+ work: z.ZodString;
28
+ signature: z.ZodString;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ type: z.ZodLiteral<"state">;
31
+ account: z.ZodString;
32
+ previous: z.ZodString;
33
+ representative: z.ZodString;
34
+ balance: z.ZodString;
35
+ link: z.ZodUnion<[z.ZodString, z.ZodString]>;
36
+ link_as_account: z.ZodString;
37
+ signature: z.ZodString;
38
+ work: z.ZodString;
39
+ }, z.core.$strip>]>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Block = void 0;
4
+ const zod_1 = require("zod");
5
+ const legacy_change_block_1 = require("./legacy-change-block");
6
+ const legacy_open_block_1 = require("./legacy-open-block");
7
+ const legacy_receive_block_1 = require("./legacy-receive-block");
8
+ const legacy_send_block_1 = require("./legacy-send-block");
9
+ const state_block_1 = require("./state-block");
10
+ const Block = () => zod_1.z.union([(0, legacy_change_block_1.LegacyChangeBlock)(), (0, legacy_open_block_1.LegacyOpenBlock)(), (0, legacy_receive_block_1.LegacyReceiveBlock)(), (0, legacy_send_block_1.LegacySendBlock)(), (0, state_block_1.StateBlock)()]);
11
+ exports.Block = Block;
@@ -0,0 +1,6 @@
1
+ export { Block } from "./block";
2
+ export { LegacyChangeBlock } from "./legacy-change-block";
3
+ export { LegacyOpenBlock } from "./legacy-open-block";
4
+ export { LegacyReceiveBlock } from "./legacy-receive-block";
5
+ export { LegacySendBlock } from "./legacy-send-block";
6
+ export { StateBlock } from "./state-block";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateBlock = exports.LegacySendBlock = exports.LegacyReceiveBlock = exports.LegacyOpenBlock = exports.LegacyChangeBlock = exports.Block = void 0;
4
+ var block_1 = require("./block");
5
+ Object.defineProperty(exports, "Block", { enumerable: true, get: function () { return block_1.Block; } });
6
+ var legacy_change_block_1 = require("./legacy-change-block");
7
+ Object.defineProperty(exports, "LegacyChangeBlock", { enumerable: true, get: function () { return legacy_change_block_1.LegacyChangeBlock; } });
8
+ var legacy_open_block_1 = require("./legacy-open-block");
9
+ Object.defineProperty(exports, "LegacyOpenBlock", { enumerable: true, get: function () { return legacy_open_block_1.LegacyOpenBlock; } });
10
+ var legacy_receive_block_1 = require("./legacy-receive-block");
11
+ Object.defineProperty(exports, "LegacyReceiveBlock", { enumerable: true, get: function () { return legacy_receive_block_1.LegacyReceiveBlock; } });
12
+ var legacy_send_block_1 = require("./legacy-send-block");
13
+ Object.defineProperty(exports, "LegacySendBlock", { enumerable: true, get: function () { return legacy_send_block_1.LegacySendBlock; } });
14
+ var state_block_1 = require("./state-block");
15
+ Object.defineProperty(exports, "StateBlock", { enumerable: true, get: function () { return state_block_1.StateBlock; } });
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export type LegacyChangeBlock = z.infer<ReturnType<typeof LegacyChangeBlock>>;
3
+ export declare const LegacyChangeBlock: () => z.ZodObject<{
4
+ type: z.ZodLiteral<"change">;
5
+ previous: z.ZodString;
6
+ representative: z.ZodString;
7
+ work: z.ZodString;
8
+ signature: z.ZodString;
9
+ }, z.core.$strip>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LegacyChangeBlock = void 0;
4
+ const zod_1 = require("zod");
5
+ const account_1 = require("../types/account");
6
+ const hash_1 = require("../types/hash");
7
+ const signature_1 = require("../types/signature");
8
+ const type_1 = require("../types/type");
9
+ const work_1 = require("../types/work");
10
+ const LegacyChangeBlock = () => zod_1.z.object({
11
+ type: (0, type_1.LegacyChangeTypeString)(),
12
+ previous: (0, hash_1.HashString)(),
13
+ representative: (0, account_1.AccountString)(),
14
+ work: (0, work_1.WorkString)(),
15
+ signature: (0, signature_1.SignatureString)(),
16
+ });
17
+ exports.LegacyChangeBlock = LegacyChangeBlock;
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export type LegacyOpenBlock = z.infer<ReturnType<typeof LegacyOpenBlock>>;
3
+ export declare const LegacyOpenBlock: () => z.ZodObject<{
4
+ type: z.ZodLiteral<"open">;
5
+ source: z.ZodString;
6
+ representative: z.ZodString;
7
+ account: z.ZodString;
8
+ work: z.ZodString;
9
+ signature: z.ZodString;
10
+ }, z.core.$strip>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LegacyOpenBlock = void 0;
4
+ const zod_1 = require("zod");
5
+ const account_1 = require("../types/account");
6
+ const hash_1 = require("../types/hash");
7
+ const signature_1 = require("../types/signature");
8
+ const type_1 = require("../types/type");
9
+ const work_1 = require("../types/work");
10
+ const LegacyOpenBlock = () => zod_1.z.object({
11
+ type: (0, type_1.LegacyOpenTypeString)(),
12
+ source: (0, hash_1.HashString)(),
13
+ representative: (0, account_1.AccountString)(),
14
+ account: (0, account_1.AccountString)(),
15
+ work: (0, work_1.WorkString)(),
16
+ signature: (0, signature_1.SignatureString)(),
17
+ });
18
+ exports.LegacyOpenBlock = LegacyOpenBlock;
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export type LegacyReceiveBlock = z.infer<ReturnType<typeof LegacyReceiveBlock>>;
3
+ export declare const LegacyReceiveBlock: () => z.ZodObject<{
4
+ type: z.ZodLiteral<"receive">;
5
+ previous: z.ZodString;
6
+ source: z.ZodString;
7
+ work: z.ZodString;
8
+ signature: z.ZodString;
9
+ }, z.core.$strip>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LegacyReceiveBlock = void 0;
4
+ const zod_1 = require("zod");
5
+ const hash_1 = require("../types/hash");
6
+ const signature_1 = require("../types/signature");
7
+ const type_1 = require("../types/type");
8
+ const work_1 = require("../types/work");
9
+ const LegacyReceiveBlock = () => zod_1.z.object({
10
+ type: (0, type_1.LegacyReceiveTypeString)(),
11
+ previous: (0, hash_1.HashString)(),
12
+ source: (0, hash_1.HashString)(),
13
+ work: (0, work_1.WorkString)(),
14
+ signature: (0, signature_1.SignatureString)(),
15
+ });
16
+ exports.LegacyReceiveBlock = LegacyReceiveBlock;
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export type LegacySendBlock = z.infer<ReturnType<typeof LegacySendBlock>>;
3
+ export declare const LegacySendBlock: () => z.ZodObject<{
4
+ type: z.ZodLiteral<"send">;
5
+ previous: z.ZodString;
6
+ destination: z.ZodString;
7
+ balance: z.ZodString;
8
+ work: z.ZodString;
9
+ signature: z.ZodString;
10
+ }, z.core.$strip>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LegacySendBlock = void 0;
4
+ const zod_1 = require("zod");
5
+ const account_1 = require("../types/account");
6
+ const amount_1 = require("../types/amount");
7
+ const hash_1 = require("../types/hash");
8
+ const signature_1 = require("../types/signature");
9
+ const type_1 = require("../types/type");
10
+ const work_1 = require("../types/work");
11
+ const LegacySendBlock = () => zod_1.z.object({
12
+ type: (0, type_1.LegacySendTypeString)(),
13
+ previous: (0, hash_1.HashString)(),
14
+ destination: (0, account_1.AccountString)(),
15
+ balance: (0, amount_1.RawAmountString)(),
16
+ work: (0, work_1.WorkString)(),
17
+ signature: (0, signature_1.SignatureString)(),
18
+ });
19
+ exports.LegacySendBlock = LegacySendBlock;
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export type StateBlock = z.infer<ReturnType<typeof StateBlock>>;
3
+ export declare const StateBlock: () => z.ZodObject<{
4
+ type: z.ZodLiteral<"state">;
5
+ account: z.ZodString;
6
+ previous: z.ZodString;
7
+ representative: z.ZodString;
8
+ balance: z.ZodString;
9
+ link: z.ZodUnion<[z.ZodString, z.ZodString]>;
10
+ link_as_account: z.ZodString;
11
+ signature: z.ZodString;
12
+ work: z.ZodString;
13
+ }, z.core.$strip>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateBlock = void 0;
4
+ const zod_1 = require("zod");
5
+ const account_1 = require("../types/account");
6
+ const amount_1 = require("../types/amount");
7
+ const hash_1 = require("../types/hash");
8
+ const link_1 = require("../types/link");
9
+ const signature_1 = require("../types/signature");
10
+ const type_1 = require("../types/type");
11
+ const work_1 = require("../types/work");
12
+ const StateBlock = () => zod_1.z.object({
13
+ type: (0, type_1.StateTypeString)(),
14
+ account: (0, account_1.AccountString)(),
15
+ previous: (0, hash_1.HashString)(),
16
+ representative: (0, account_1.AccountString)(),
17
+ balance: (0, amount_1.RawAmountString)(),
18
+ link: (0, link_1.LinkString)(),
19
+ link_as_account: (0, account_1.AccountString)(),
20
+ signature: (0, signature_1.SignatureString)(),
21
+ work: (0, work_1.WorkString)(),
22
+ });
23
+ exports.StateBlock = StateBlock;
@@ -0,0 +1,17 @@
1
+ import { AccountString } from "../../types/account";
2
+ import { NonThrowing } from "../../types/non-throwing";
3
+ import { Result } from "../../types/result";
4
+ import { Throwing } from "../../types/throwing";
5
+ type AccountToBytesParams = {
6
+ account: AccountString;
7
+ } & (Throwing | NonThrowing);
8
+ export declare function accountToBytes(params: AccountToBytesParams & NonThrowing): Result<Uint8Array>;
9
+ export declare function accountToBytes(params: AccountToBytesParams & Throwing): Uint8Array;
10
+ export declare function accountToBytes(params: AccountToBytesParams): Uint8Array | Result<Uint8Array>;
11
+ type BytesToAccountParams = {
12
+ publicKeyBytes: Uint8Array;
13
+ } & (Throwing | NonThrowing);
14
+ export declare function bytesToAccount(params: BytesToAccountParams & NonThrowing): Result<AccountString>;
15
+ export declare function bytesToAccount(params: BytesToAccountParams & Throwing): AccountString;
16
+ export declare function bytesToAccount(params: BytesToAccountParams): AccountString | Result<AccountString>;
17
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accountToBytes = accountToBytes;
4
+ exports.bytesToAccount = bytesToAccount;
5
+ const account_1 = require("../../types/account");
6
+ const derive_account_from_public_key_1 = require("../derive-account-from-public-key");
7
+ const base32_converter_1 = require("./base32-converter");
8
+ const public_key_converter_1 = require("./public-key-converter");
9
+ const encodedPublicKeyLength = 52;
10
+ const encodedChecksumLength = 8;
11
+ function accountToBytesThrowing(params) {
12
+ const validatedAccount = (0, account_1.AccountString)().safeParse(params.account);
13
+ if (!validatedAccount.success) {
14
+ throw new Error("Invalid account.");
15
+ }
16
+ const publicKeyStartIndex = validatedAccount.data.length - encodedPublicKeyLength - encodedChecksumLength;
17
+ const publicKeyEndIndex = validatedAccount.data.length - encodedChecksumLength;
18
+ const encodedPublicKey = validatedAccount.data.substring(publicKeyStartIndex, publicKeyEndIndex);
19
+ return (0, base32_converter_1.decodeBase32)({ encoded: encodedPublicKey, throwOnError: true });
20
+ }
21
+ function accountToBytesNonThrowing(params) {
22
+ try {
23
+ return {
24
+ success: true,
25
+ data: accountToBytesThrowing({ ...params, throwOnError: true }),
26
+ };
27
+ }
28
+ catch (e) {
29
+ return {
30
+ success: false,
31
+ error: e instanceof Error ? e : new Error("Unexpected error."),
32
+ };
33
+ }
34
+ }
35
+ function accountToBytes(params) {
36
+ if (params.throwOnError === false) {
37
+ return accountToBytesNonThrowing({ ...params, throwOnError: false });
38
+ }
39
+ else {
40
+ return accountToBytesThrowing({ ...params, throwOnError: true });
41
+ }
42
+ }
43
+ function bytesToAccountThrowing(params) {
44
+ const publicKey = (0, public_key_converter_1.bytesToPublicKey)({ publicKeyBytes: params.publicKeyBytes, throwOnError: true });
45
+ return (0, derive_account_from_public_key_1.deriveAccountFromPublicKey)({ publicKey, throwOnError: true });
46
+ }
47
+ function bytesToAccountNonThrowing(params) {
48
+ try {
49
+ return {
50
+ success: true,
51
+ data: bytesToAccountThrowing({ ...params, throwOnError: true }),
52
+ };
53
+ }
54
+ catch (e) {
55
+ return {
56
+ success: false,
57
+ error: e instanceof Error ? e : new Error("Unexpected error."),
58
+ };
59
+ }
60
+ }
61
+ function bytesToAccount(params) {
62
+ if (params.throwOnError === false) {
63
+ return bytesToAccountNonThrowing({ ...params, throwOnError: false });
64
+ }
65
+ else {
66
+ return bytesToAccountThrowing({ ...params, throwOnError: true });
67
+ }
68
+ }