zerc20-client-sdk 0.1.13 → 0.1.14

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 (404) hide show
  1. package/README.md +261 -0
  2. package/dist/constants.d.ts +15 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +15 -0
  5. package/dist/constants.js.map +1 -1
  6. package/dist/decider/__tests__/prover.test.d.ts +2 -0
  7. package/dist/decider/__tests__/prover.test.d.ts.map +1 -0
  8. package/dist/decider/__tests__/prover.test.js +246 -0
  9. package/dist/decider/__tests__/prover.test.js.map +1 -0
  10. package/dist/decider/prover.d.ts +36 -4
  11. package/dist/decider/prover.d.ts.map +1 -1
  12. package/dist/decider/prover.js +48 -38
  13. package/dist/decider/prover.js.map +1 -1
  14. package/dist/ic/__tests__/candid.test.d.ts +2 -0
  15. package/dist/ic/__tests__/candid.test.d.ts.map +1 -0
  16. package/dist/ic/__tests__/candid.test.js +44 -0
  17. package/dist/ic/__tests__/candid.test.js.map +1 -0
  18. package/dist/ic/__tests__/client.test.d.ts +2 -0
  19. package/dist/ic/__tests__/client.test.d.ts.map +1 -0
  20. package/dist/ic/__tests__/client.test.js +522 -0
  21. package/dist/ic/__tests__/client.test.js.map +1 -0
  22. package/dist/ic/__tests__/config.test.d.ts +2 -0
  23. package/dist/ic/__tests__/config.test.d.ts.map +1 -0
  24. package/dist/ic/__tests__/config.test.js +72 -0
  25. package/dist/ic/__tests__/config.test.js.map +1 -0
  26. package/dist/ic/__tests__/connections.test.d.ts +2 -0
  27. package/dist/ic/__tests__/connections.test.d.ts.map +1 -0
  28. package/dist/ic/__tests__/connections.test.js +385 -0
  29. package/dist/ic/__tests__/connections.test.js.map +1 -0
  30. package/dist/ic/__tests__/invoice.test.d.ts +2 -0
  31. package/dist/ic/__tests__/invoice.test.d.ts.map +1 -0
  32. package/dist/ic/__tests__/invoice.test.js +95 -0
  33. package/dist/ic/__tests__/invoice.test.js.map +1 -0
  34. package/dist/ic/authorization.d.ts +28 -0
  35. package/dist/ic/authorization.d.ts.map +1 -1
  36. package/dist/ic/authorization.js +24 -0
  37. package/dist/ic/authorization.js.map +1 -1
  38. package/dist/ic/candid.d.ts +72 -0
  39. package/dist/ic/candid.d.ts.map +1 -0
  40. package/dist/ic/candid.js +35 -0
  41. package/dist/ic/candid.js.map +1 -0
  42. package/dist/ic/client.d.ts +57 -59
  43. package/dist/ic/client.d.ts.map +1 -1
  44. package/dist/ic/client.js +59 -81
  45. package/dist/ic/client.js.map +1 -1
  46. package/dist/ic/config.d.ts +27 -0
  47. package/dist/ic/config.d.ts.map +1 -1
  48. package/dist/ic/config.js +27 -0
  49. package/dist/ic/config.js.map +1 -1
  50. package/dist/ic/connections.d.ts +99 -4
  51. package/dist/ic/connections.d.ts.map +1 -1
  52. package/dist/ic/connections.js +222 -30
  53. package/dist/ic/connections.js.map +1 -1
  54. package/dist/ic/encryption.d.ts +33 -0
  55. package/dist/ic/encryption.d.ts.map +1 -1
  56. package/dist/ic/encryption.js +21 -0
  57. package/dist/ic/encryption.js.map +1 -1
  58. package/dist/ic/errors.d.ts +15 -0
  59. package/dist/ic/errors.d.ts.map +1 -1
  60. package/dist/ic/errors.js +15 -0
  61. package/dist/ic/errors.js.map +1 -1
  62. package/dist/ic/idl.d.ts +26 -0
  63. package/dist/ic/idl.d.ts.map +1 -0
  64. package/dist/ic/idl.js +84 -0
  65. package/dist/ic/idl.js.map +1 -0
  66. package/dist/ic/index.d.ts +1 -1
  67. package/dist/ic/index.d.ts.map +1 -1
  68. package/dist/ic/index.js +1 -1
  69. package/dist/ic/index.js.map +1 -1
  70. package/dist/ic/invoice.d.ts.map +1 -1
  71. package/dist/ic/invoice.js.map +1 -1
  72. package/dist/ic/types.d.ts +42 -0
  73. package/dist/ic/types.d.ts.map +1 -1
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +1 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/onchain/__tests__/contracts.test.d.ts +2 -0
  79. package/dist/onchain/__tests__/contracts.test.d.ts.map +1 -0
  80. package/dist/onchain/__tests__/contracts.test.js +42 -0
  81. package/dist/onchain/__tests__/contracts.test.js.map +1 -0
  82. package/dist/onchain/contracts.d.ts +22 -0
  83. package/dist/onchain/contracts.d.ts.map +1 -1
  84. package/dist/onchain/contracts.js +22 -0
  85. package/dist/onchain/contracts.js.map +1 -1
  86. package/dist/operations/__tests__/invoice.test.d.ts +2 -0
  87. package/dist/operations/__tests__/invoice.test.d.ts.map +1 -0
  88. package/dist/operations/__tests__/invoice.test.js +261 -0
  89. package/dist/operations/__tests__/invoice.test.js.map +1 -0
  90. package/dist/operations/__tests__/privateSend.test.d.ts +2 -0
  91. package/dist/operations/__tests__/privateSend.test.d.ts.map +1 -0
  92. package/dist/operations/__tests__/privateSend.test.js +135 -0
  93. package/dist/operations/__tests__/privateSend.test.js.map +1 -0
  94. package/dist/operations/__tests__/reexports.test.d.ts +2 -0
  95. package/dist/operations/__tests__/reexports.test.d.ts.map +1 -0
  96. package/dist/operations/__tests__/reexports.test.js +22 -0
  97. package/dist/operations/__tests__/reexports.test.js.map +1 -0
  98. package/dist/operations/__tests__/scanner.test.d.ts +2 -0
  99. package/dist/operations/__tests__/scanner.test.d.ts.map +1 -0
  100. package/dist/operations/__tests__/scanner.test.js +201 -0
  101. package/dist/operations/__tests__/scanner.test.js.map +1 -0
  102. package/dist/operations/__tests__/teleport.test.d.ts +2 -0
  103. package/dist/operations/__tests__/teleport.test.d.ts.map +1 -0
  104. package/dist/operations/__tests__/teleport.test.js +35 -0
  105. package/dist/operations/__tests__/teleport.test.js.map +1 -0
  106. package/dist/operations/__tests__/teleportProof.test.d.ts +2 -0
  107. package/dist/operations/__tests__/teleportProof.test.d.ts.map +1 -0
  108. package/dist/operations/__tests__/teleportProof.test.js +126 -0
  109. package/dist/operations/__tests__/teleportProof.test.js.map +1 -0
  110. package/dist/operations/invoice.d.ts +44 -0
  111. package/dist/operations/invoice.d.ts.map +1 -1
  112. package/dist/operations/invoice.js +30 -0
  113. package/dist/operations/invoice.js.map +1 -1
  114. package/dist/operations/liquidityManager/__tests__/balance.test.d.ts +2 -0
  115. package/dist/operations/liquidityManager/__tests__/balance.test.d.ts.map +1 -0
  116. package/dist/operations/liquidityManager/__tests__/balance.test.js +104 -0
  117. package/dist/operations/liquidityManager/__tests__/balance.test.js.map +1 -0
  118. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.d.ts +2 -0
  119. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.d.ts.map +1 -0
  120. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js +198 -0
  121. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js.map +1 -0
  122. package/dist/operations/liquidityManager/__tests__/helpers.test.d.ts +2 -0
  123. package/dist/operations/liquidityManager/__tests__/helpers.test.d.ts.map +1 -0
  124. package/dist/operations/liquidityManager/__tests__/helpers.test.js +126 -0
  125. package/dist/operations/liquidityManager/__tests__/helpers.test.js.map +1 -0
  126. package/dist/operations/liquidityManager/__tests__/unwrap.test.d.ts +2 -0
  127. package/dist/operations/liquidityManager/__tests__/unwrap.test.d.ts.map +1 -0
  128. package/dist/operations/liquidityManager/__tests__/unwrap.test.js +224 -0
  129. package/dist/operations/liquidityManager/__tests__/unwrap.test.js.map +1 -0
  130. package/dist/operations/liquidityManager/__tests__/wrap.test.d.ts +2 -0
  131. package/dist/operations/liquidityManager/__tests__/wrap.test.d.ts.map +1 -0
  132. package/dist/operations/liquidityManager/__tests__/wrap.test.js +144 -0
  133. package/dist/operations/liquidityManager/__tests__/wrap.test.js.map +1 -0
  134. package/dist/operations/liquidityManager/balance.d.ts +19 -0
  135. package/dist/operations/liquidityManager/balance.d.ts.map +1 -0
  136. package/dist/operations/liquidityManager/balance.js +62 -0
  137. package/dist/operations/liquidityManager/balance.js.map +1 -0
  138. package/dist/operations/liquidityManager/crossUnwrap.d.ts +73 -0
  139. package/dist/operations/liquidityManager/crossUnwrap.d.ts.map +1 -0
  140. package/dist/operations/liquidityManager/crossUnwrap.js +189 -0
  141. package/dist/operations/liquidityManager/crossUnwrap.js.map +1 -0
  142. package/dist/operations/liquidityManager/helpers.d.ts +15521 -0
  143. package/dist/operations/liquidityManager/helpers.d.ts.map +1 -0
  144. package/dist/operations/liquidityManager/helpers.js +81 -0
  145. package/dist/operations/liquidityManager/helpers.js.map +1 -0
  146. package/dist/operations/liquidityManager/index.d.ts +12 -0
  147. package/dist/operations/liquidityManager/index.d.ts.map +1 -0
  148. package/dist/operations/liquidityManager/index.js +9 -0
  149. package/dist/operations/liquidityManager/index.js.map +1 -0
  150. package/dist/operations/liquidityManager/types.d.ts +90 -0
  151. package/dist/operations/liquidityManager/types.d.ts.map +1 -0
  152. package/dist/operations/liquidityManager/types.js +5 -0
  153. package/dist/operations/liquidityManager/types.js.map +1 -0
  154. package/dist/operations/liquidityManager/unwrap.d.ts +54 -0
  155. package/dist/operations/liquidityManager/unwrap.d.ts.map +1 -0
  156. package/dist/operations/liquidityManager/unwrap.js +80 -0
  157. package/dist/operations/liquidityManager/unwrap.js.map +1 -0
  158. package/dist/operations/liquidityManager/wrap.d.ts +38 -0
  159. package/dist/operations/liquidityManager/wrap.d.ts.map +1 -0
  160. package/dist/operations/liquidityManager/wrap.js +53 -0
  161. package/dist/operations/liquidityManager/wrap.js.map +1 -0
  162. package/dist/operations/liquidityManager.d.ts +3 -104
  163. package/dist/operations/liquidityManager.d.ts.map +1 -1
  164. package/dist/operations/liquidityManager.js +3 -343
  165. package/dist/operations/liquidityManager.js.map +1 -1
  166. package/dist/operations/privateSend.d.ts +26 -0
  167. package/dist/operations/privateSend.d.ts.map +1 -1
  168. package/dist/operations/privateSend.js +11 -0
  169. package/dist/operations/privateSend.js.map +1 -1
  170. package/dist/operations/receive/__tests__/announcementStatus.test.d.ts +2 -0
  171. package/dist/operations/receive/__tests__/announcementStatus.test.d.ts.map +1 -0
  172. package/dist/operations/receive/__tests__/announcementStatus.test.js +223 -0
  173. package/dist/operations/receive/__tests__/announcementStatus.test.js.map +1 -0
  174. package/dist/operations/receive/__tests__/cache.test.d.ts +2 -0
  175. package/dist/operations/receive/__tests__/cache.test.d.ts.map +1 -0
  176. package/dist/operations/receive/__tests__/cache.test.js +339 -0
  177. package/dist/operations/receive/__tests__/cache.test.js.map +1 -0
  178. package/dist/operations/receive/__tests__/helpers.test.d.ts +2 -0
  179. package/dist/operations/receive/__tests__/helpers.test.d.ts.map +1 -0
  180. package/dist/operations/receive/__tests__/helpers.test.js +80 -0
  181. package/dist/operations/receive/__tests__/helpers.test.js.map +1 -0
  182. package/dist/operations/receive/__tests__/redeemContext.test.d.ts +2 -0
  183. package/dist/operations/receive/__tests__/redeemContext.test.d.ts.map +1 -0
  184. package/dist/operations/receive/__tests__/redeemContext.test.js +230 -0
  185. package/dist/operations/receive/__tests__/redeemContext.test.js.map +1 -0
  186. package/dist/operations/receive/announcementStatus.d.ts +12 -0
  187. package/dist/operations/receive/announcementStatus.d.ts.map +1 -0
  188. package/dist/operations/receive/announcementStatus.js +56 -0
  189. package/dist/operations/receive/announcementStatus.js.map +1 -0
  190. package/dist/operations/receive/cache.d.ts +69 -0
  191. package/dist/operations/receive/cache.d.ts.map +1 -0
  192. package/dist/operations/receive/cache.js +105 -0
  193. package/dist/operations/receive/cache.js.map +1 -0
  194. package/dist/operations/receive/helpers.d.ts +16 -0
  195. package/dist/operations/receive/helpers.d.ts.map +1 -0
  196. package/dist/operations/receive/helpers.js +33 -0
  197. package/dist/operations/receive/helpers.js.map +1 -0
  198. package/dist/operations/receive/index.d.ts +9 -0
  199. package/dist/operations/receive/index.d.ts.map +1 -0
  200. package/dist/operations/receive/index.js +9 -0
  201. package/dist/operations/receive/index.js.map +1 -0
  202. package/dist/operations/receive/redeemContext.d.ts +16 -0
  203. package/dist/operations/receive/redeemContext.d.ts.map +1 -0
  204. package/dist/operations/receive/redeemContext.js +107 -0
  205. package/dist/operations/receive/redeemContext.js.map +1 -0
  206. package/dist/operations/receive/types.d.ts +141 -0
  207. package/dist/operations/receive/types.d.ts.map +1 -0
  208. package/dist/operations/receive/types.js +5 -0
  209. package/dist/operations/receive/types.js.map +1 -0
  210. package/dist/operations/receive.d.ts +5 -66
  211. package/dist/operations/receive.d.ts.map +1 -1
  212. package/dist/operations/receive.js +5 -173
  213. package/dist/operations/receive.js.map +1 -1
  214. package/dist/operations/scanner.d.ts +37 -0
  215. package/dist/operations/scanner.d.ts.map +1 -1
  216. package/dist/operations/scanner.js +21 -0
  217. package/dist/operations/scanner.js.map +1 -1
  218. package/dist/operations/teleport.d.ts +5 -0
  219. package/dist/operations/teleport.d.ts.map +1 -1
  220. package/dist/operations/teleport.js +5 -0
  221. package/dist/operations/teleport.js.map +1 -1
  222. package/dist/operations/teleportProof.d.ts +34 -0
  223. package/dist/operations/teleportProof.d.ts.map +1 -1
  224. package/dist/operations/teleportProof.js +16 -0
  225. package/dist/operations/teleportProof.js.map +1 -1
  226. package/dist/registry/__tests__/helpers.test.d.ts +2 -0
  227. package/dist/registry/__tests__/helpers.test.d.ts.map +1 -0
  228. package/dist/registry/__tests__/helpers.test.js +98 -0
  229. package/dist/registry/__tests__/helpers.test.js.map +1 -0
  230. package/dist/registry/__tests__/loader.test.d.ts +2 -0
  231. package/dist/registry/__tests__/loader.test.d.ts.map +1 -0
  232. package/dist/registry/__tests__/loader.test.js +300 -0
  233. package/dist/registry/__tests__/loader.test.js.map +1 -0
  234. package/dist/registry/__tests__/normalize.test.d.ts +2 -0
  235. package/dist/registry/__tests__/normalize.test.d.ts.map +1 -0
  236. package/dist/registry/__tests__/normalize.test.js +180 -0
  237. package/dist/registry/__tests__/normalize.test.js.map +1 -0
  238. package/dist/registry/__tests__/parsing.test.d.ts +2 -0
  239. package/dist/registry/__tests__/parsing.test.d.ts.map +1 -0
  240. package/dist/registry/__tests__/parsing.test.js +188 -0
  241. package/dist/registry/__tests__/parsing.test.js.map +1 -0
  242. package/dist/registry/helpers.d.ts +14 -0
  243. package/dist/registry/helpers.d.ts.map +1 -0
  244. package/dist/registry/helpers.js +29 -0
  245. package/dist/registry/helpers.js.map +1 -0
  246. package/dist/registry/index.d.ts +13 -0
  247. package/dist/registry/index.d.ts.map +1 -0
  248. package/dist/registry/index.js +15 -0
  249. package/dist/registry/index.js.map +1 -0
  250. package/dist/registry/loader.d.ts +57 -0
  251. package/dist/registry/loader.d.ts.map +1 -0
  252. package/dist/registry/loader.js +188 -0
  253. package/dist/registry/loader.js.map +1 -0
  254. package/dist/registry/normalize.d.ts +29 -0
  255. package/dist/registry/normalize.d.ts.map +1 -0
  256. package/dist/registry/normalize.js +81 -0
  257. package/dist/registry/normalize.js.map +1 -0
  258. package/dist/registry/parsing.d.ts +55 -0
  259. package/dist/registry/parsing.d.ts.map +1 -0
  260. package/dist/registry/parsing.js +139 -0
  261. package/dist/registry/parsing.js.map +1 -0
  262. package/dist/registry/tokens.d.ts +6 -42
  263. package/dist/registry/tokens.d.ts.map +1 -1
  264. package/dist/registry/tokens.js +6 -231
  265. package/dist/registry/tokens.js.map +1 -1
  266. package/dist/registry/types.d.ts +81 -0
  267. package/dist/registry/types.d.ts.map +1 -0
  268. package/dist/registry/types.js +2 -0
  269. package/dist/registry/types.js.map +1 -0
  270. package/dist/sdk.d.ts +57 -0
  271. package/dist/sdk.d.ts.map +1 -1
  272. package/dist/sdk.js +21 -0
  273. package/dist/sdk.js.map +1 -1
  274. package/dist/sdk.publicApi.test.d.ts +2 -0
  275. package/dist/sdk.publicApi.test.d.ts.map +1 -0
  276. package/dist/sdk.publicApi.test.js +78 -0
  277. package/dist/sdk.publicApi.test.js.map +1 -0
  278. package/dist/types.d.ts +159 -0
  279. package/dist/types.d.ts.map +1 -1
  280. package/dist/utils/__tests__/branded.test.d.ts +2 -0
  281. package/dist/utils/__tests__/branded.test.d.ts.map +1 -0
  282. package/dist/utils/__tests__/branded.test.js +293 -0
  283. package/dist/utils/__tests__/branded.test.js.map +1 -0
  284. package/dist/utils/__tests__/fees.test.d.ts +2 -0
  285. package/dist/utils/__tests__/fees.test.d.ts.map +1 -0
  286. package/dist/utils/__tests__/fees.test.js +84 -0
  287. package/dist/utils/__tests__/fees.test.js.map +1 -0
  288. package/dist/utils/__tests__/hex.test.d.ts +2 -0
  289. package/dist/utils/__tests__/hex.test.d.ts.map +1 -0
  290. package/dist/utils/__tests__/hex.test.js +252 -0
  291. package/dist/utils/__tests__/hex.test.js.map +1 -0
  292. package/dist/utils/__tests__/http.test.d.ts +2 -0
  293. package/dist/utils/__tests__/http.test.d.ts.map +1 -0
  294. package/dist/utils/__tests__/http.test.js +295 -0
  295. package/dist/utils/__tests__/http.test.js.map +1 -0
  296. package/dist/utils/branded.d.ts +154 -0
  297. package/dist/utils/branded.d.ts.map +1 -0
  298. package/dist/utils/branded.js +177 -0
  299. package/dist/utils/branded.js.map +1 -0
  300. package/dist/utils/fees.d.ts +6 -0
  301. package/dist/utils/fees.d.ts.map +1 -1
  302. package/dist/utils/fees.js +4 -0
  303. package/dist/utils/fees.js.map +1 -1
  304. package/dist/utils/hex.d.ts +37 -0
  305. package/dist/utils/hex.d.ts.map +1 -1
  306. package/dist/utils/hex.js +30 -0
  307. package/dist/utils/hex.js.map +1 -1
  308. package/dist/utils/http.d.ts +100 -0
  309. package/dist/utils/http.d.ts.map +1 -1
  310. package/dist/utils/http.js +158 -0
  311. package/dist/utils/http.js.map +1 -1
  312. package/dist/utils/merkle.d.ts +26 -0
  313. package/dist/utils/merkle.d.ts.map +1 -1
  314. package/dist/utils/merkle.js +26 -0
  315. package/dist/utils/merkle.js.map +1 -1
  316. package/dist/wasm/__tests__/artifacts.test.d.ts +2 -0
  317. package/dist/wasm/__tests__/artifacts.test.d.ts.map +1 -0
  318. package/dist/wasm/__tests__/artifacts.test.js +437 -0
  319. package/dist/wasm/__tests__/artifacts.test.js.map +1 -0
  320. package/dist/wasm/__tests__/functions.test.d.ts +2 -0
  321. package/dist/wasm/__tests__/functions.test.d.ts.map +1 -0
  322. package/dist/wasm/__tests__/functions.test.js +34 -0
  323. package/dist/wasm/__tests__/functions.test.js.map +1 -0
  324. package/dist/wasm/__tests__/helpers.test.d.ts +2 -0
  325. package/dist/wasm/__tests__/helpers.test.d.ts.map +1 -0
  326. package/dist/wasm/__tests__/helpers.test.js +128 -0
  327. package/dist/wasm/__tests__/helpers.test.js.map +1 -0
  328. package/dist/wasm/__tests__/loader.test.d.ts +2 -0
  329. package/dist/wasm/__tests__/loader.test.d.ts.map +1 -0
  330. package/dist/wasm/__tests__/loader.test.js +201 -0
  331. package/dist/wasm/__tests__/loader.test.js.map +1 -0
  332. package/dist/wasm/__tests__/runtime.test.d.ts +2 -0
  333. package/dist/wasm/__tests__/runtime.test.d.ts.map +1 -0
  334. package/dist/wasm/__tests__/runtime.test.js +335 -0
  335. package/dist/wasm/__tests__/runtime.test.js.map +1 -0
  336. package/dist/wasm/__tests__/serialization.test.d.ts +2 -0
  337. package/dist/wasm/__tests__/serialization.test.d.ts.map +1 -0
  338. package/dist/wasm/__tests__/serialization.test.js +226 -0
  339. package/dist/wasm/__tests__/serialization.test.js.map +1 -0
  340. package/dist/wasm/__tests__/validation.test.js +15 -15
  341. package/dist/wasm/__tests__/validation.test.js.map +1 -1
  342. package/dist/wasm/artifacts.d.ts +121 -3
  343. package/dist/wasm/artifacts.d.ts.map +1 -1
  344. package/dist/wasm/artifacts.js +175 -50
  345. package/dist/wasm/artifacts.js.map +1 -1
  346. package/dist/wasm/functions.d.ts +77 -0
  347. package/dist/wasm/functions.d.ts.map +1 -0
  348. package/dist/wasm/functions.js +120 -0
  349. package/dist/wasm/functions.js.map +1 -0
  350. package/dist/wasm/helpers.d.ts +32 -0
  351. package/dist/wasm/helpers.d.ts.map +1 -0
  352. package/dist/wasm/helpers.js +79 -0
  353. package/dist/wasm/helpers.js.map +1 -0
  354. package/dist/wasm/index.d.ts +13 -68
  355. package/dist/wasm/index.d.ts.map +1 -1
  356. package/dist/wasm/index.js +14 -514
  357. package/dist/wasm/index.js.map +1 -1
  358. package/dist/wasm/loader.d.ts +76 -0
  359. package/dist/wasm/loader.d.ts.map +1 -0
  360. package/dist/wasm/loader.js +145 -0
  361. package/dist/wasm/loader.js.map +1 -0
  362. package/dist/wasm/runtime.d.ts +65 -0
  363. package/dist/wasm/runtime.d.ts.map +1 -0
  364. package/dist/wasm/runtime.js +227 -0
  365. package/dist/wasm/runtime.js.map +1 -0
  366. package/dist/wasm/serialization.d.ts +113 -0
  367. package/dist/wasm/serialization.d.ts.map +1 -0
  368. package/dist/wasm/serialization.js +188 -0
  369. package/dist/wasm/serialization.js.map +1 -0
  370. package/dist/wasm/types.d.ts +30 -0
  371. package/dist/wasm/types.d.ts.map +1 -0
  372. package/dist/wasm/types.js +2 -0
  373. package/dist/wasm/types.js.map +1 -0
  374. package/dist/zkp/__tests__/proofService.test.d.ts +2 -0
  375. package/dist/zkp/__tests__/proofService.test.d.ts.map +1 -0
  376. package/dist/zkp/__tests__/proofService.test.js +283 -0
  377. package/dist/zkp/__tests__/proofService.test.js.map +1 -0
  378. package/dist/zkp/__tests__/proofUtils.test.js +86 -0
  379. package/dist/zkp/__tests__/proofUtils.test.js.map +1 -1
  380. package/dist/zkp/__tests__/runNovaProver.test.js +13 -1
  381. package/dist/zkp/__tests__/runNovaProver.test.js.map +1 -1
  382. package/dist/zkp/__tests__/workerClient.test.d.ts +2 -0
  383. package/dist/zkp/__tests__/workerClient.test.d.ts.map +1 -0
  384. package/dist/zkp/__tests__/workerClient.test.js +415 -0
  385. package/dist/zkp/__tests__/workerClient.test.js.map +1 -0
  386. package/dist/zkp/index.d.ts +1 -1
  387. package/dist/zkp/index.d.ts.map +1 -1
  388. package/dist/zkp/index.js +1 -1
  389. package/dist/zkp/index.js.map +1 -1
  390. package/dist/zkp/proofService.d.ts +27 -0
  391. package/dist/zkp/proofService.d.ts.map +1 -1
  392. package/dist/zkp/proofService.js +29 -21
  393. package/dist/zkp/proofService.js.map +1 -1
  394. package/dist/zkp/proofUtils.d.ts +36 -0
  395. package/dist/zkp/proofUtils.d.ts.map +1 -1
  396. package/dist/zkp/proofUtils.js +50 -0
  397. package/dist/zkp/proofUtils.js.map +1 -1
  398. package/dist/zkp/workerClient.d.ts +65 -0
  399. package/dist/zkp/workerClient.d.ts.map +1 -1
  400. package/dist/zkp/workerClient.js +135 -61
  401. package/dist/zkp/workerClient.js.map +1 -1
  402. package/dist/zkp/workerTypes.d.ts +27 -0
  403. package/dist/zkp/workerTypes.d.ts.map +1 -1
  404. package/package.json +7 -3
@@ -0,0 +1,188 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { toHexAddress, parseBigInt, normalizeRpcUrls, expectRecord, getStringField, getOptionalStringField, getValueField, getOptionalBooleanField, getOptionalNumberField, } from "../parsing.js";
3
+ describe("toHexAddress", () => {
4
+ test("normalizes address", () => {
5
+ expect(toHexAddress("0x1234")).toBe("0x1234");
6
+ });
7
+ test("handles address without 0x prefix", () => {
8
+ const result = toHexAddress("1234");
9
+ expect(result).toMatch(/^0x/);
10
+ });
11
+ });
12
+ describe("parseBigInt", () => {
13
+ test("parses string number", () => {
14
+ expect(parseBigInt("123", "test")).toBe(123n);
15
+ });
16
+ test("parses number", () => {
17
+ expect(parseBigInt(123, "test")).toBe(123n);
18
+ });
19
+ test("parses bigint", () => {
20
+ expect(parseBigInt(123n, "test")).toBe(123n);
21
+ });
22
+ test("throws for invalid value", () => {
23
+ expect(() => parseBigInt("invalid", "test")).toThrow("test must be a bigint-compatible value");
24
+ });
25
+ });
26
+ describe("normalizeRpcUrls", () => {
27
+ test("normalizes valid urls", () => {
28
+ const urls = ["https://rpc1.example.com", " https://rpc2.example.com "];
29
+ expect(normalizeRpcUrls(urls, "test")).toEqual([
30
+ "https://rpc1.example.com",
31
+ "https://rpc2.example.com",
32
+ ]);
33
+ });
34
+ test("throws for non-array", () => {
35
+ expect(() => normalizeRpcUrls("not an array", "test")).toThrow("test must configure at least one rpc url");
36
+ });
37
+ test("throws for empty array", () => {
38
+ expect(() => normalizeRpcUrls([], "test")).toThrow("test must configure at least one rpc url");
39
+ });
40
+ test("throws for invalid url in array", () => {
41
+ expect(() => normalizeRpcUrls(["valid", 123], "test")).toThrow("test contains invalid rpc url");
42
+ });
43
+ test("throws for empty string url", () => {
44
+ expect(() => normalizeRpcUrls([" "], "test")).toThrow("test contains invalid rpc url");
45
+ });
46
+ });
47
+ describe("expectRecord", () => {
48
+ test("returns object as record", () => {
49
+ const obj = { key: "value" };
50
+ expect(expectRecord(obj, "test")).toBe(obj);
51
+ });
52
+ test("throws for null", () => {
53
+ expect(() => expectRecord(null, "test")).toThrow("test must be an object");
54
+ });
55
+ test("throws for undefined", () => {
56
+ expect(() => expectRecord(undefined, "test")).toThrow("test must be an object");
57
+ });
58
+ test("throws for primitive", () => {
59
+ expect(() => expectRecord("string", "test")).toThrow("test must be an object");
60
+ });
61
+ });
62
+ describe("getStringField", () => {
63
+ test("gets string from first matching key", () => {
64
+ const source = { key1: "value1" };
65
+ expect(getStringField(source, ["key1", "key2"], "test")).toBe("value1");
66
+ });
67
+ test("gets string from second matching key", () => {
68
+ const source = { key2: "value2" };
69
+ expect(getStringField(source, ["key1", "key2"], "test")).toBe("value2");
70
+ });
71
+ test("trims whitespace", () => {
72
+ const source = { key: " value " };
73
+ expect(getStringField(source, ["key"], "test")).toBe("value");
74
+ });
75
+ test("throws for missing key", () => {
76
+ const source = { other: "value" };
77
+ expect(() => getStringField(source, ["key"], "test")).toThrow("test must be a string");
78
+ });
79
+ test("throws for empty string", () => {
80
+ const source = { key: " " };
81
+ expect(() => getStringField(source, ["key"], "test")).toThrow("test must be a non-empty string");
82
+ });
83
+ test("throws for non-string", () => {
84
+ const source = { key: 123 };
85
+ expect(() => getStringField(source, ["key"], "test")).toThrow("test must be a string");
86
+ });
87
+ });
88
+ describe("getOptionalStringField", () => {
89
+ test("gets string when present", () => {
90
+ const source = { key: "value" };
91
+ expect(getOptionalStringField(source, ["key"], "test")).toBe("value");
92
+ });
93
+ test("returns undefined when key missing", () => {
94
+ const source = { other: "value" };
95
+ expect(getOptionalStringField(source, ["key"], "test")).toBeUndefined();
96
+ });
97
+ test("returns undefined for null value", () => {
98
+ const source = { key: null };
99
+ expect(getOptionalStringField(source, ["key"], "test")).toBeUndefined();
100
+ });
101
+ test("returns undefined for undefined value", () => {
102
+ const source = { key: undefined };
103
+ expect(getOptionalStringField(source, ["key"], "test")).toBeUndefined();
104
+ });
105
+ test("trims whitespace", () => {
106
+ const source = { key: " value " };
107
+ expect(getOptionalStringField(source, ["key"], "test")).toBe("value");
108
+ });
109
+ test("throws for non-string when present", () => {
110
+ const source = { key: 123 };
111
+ expect(() => getOptionalStringField(source, ["key"], "test")).toThrow("test must be a string when provided");
112
+ });
113
+ test("throws for empty string when present", () => {
114
+ const source = { key: " " };
115
+ expect(() => getOptionalStringField(source, ["key"], "test")).toThrow("test must be a non-empty string when provided");
116
+ });
117
+ });
118
+ describe("getValueField", () => {
119
+ test("gets value from first matching key", () => {
120
+ const source = { key1: "value1" };
121
+ expect(getValueField(source, ["key1", "key2"], "test")).toBe("value1");
122
+ });
123
+ test("gets value from second matching key", () => {
124
+ const source = { key2: "value2" };
125
+ expect(getValueField(source, ["key1", "key2"], "test")).toBe("value2");
126
+ });
127
+ test("throws for missing key", () => {
128
+ const source = { other: "value" };
129
+ expect(() => getValueField(source, ["key"], "test")).toThrow("test is required");
130
+ });
131
+ test("throws for null value", () => {
132
+ const source = { key: null };
133
+ expect(() => getValueField(source, ["key"], "test")).toThrow("test is required");
134
+ });
135
+ test("throws for undefined value", () => {
136
+ const source = { key: undefined };
137
+ expect(() => getValueField(source, ["key"], "test")).toThrow("test is required");
138
+ });
139
+ });
140
+ describe("getOptionalBooleanField", () => {
141
+ test("gets true when present", () => {
142
+ const source = { key: true };
143
+ expect(getOptionalBooleanField(source, ["key"], "test")).toBe(true);
144
+ });
145
+ test("gets false when present", () => {
146
+ const source = { key: false };
147
+ expect(getOptionalBooleanField(source, ["key"], "test")).toBe(false);
148
+ });
149
+ test("returns undefined when key missing", () => {
150
+ const source = { other: true };
151
+ expect(getOptionalBooleanField(source, ["key"], "test")).toBeUndefined();
152
+ });
153
+ test("throws for non-boolean", () => {
154
+ const source = { key: "true" };
155
+ expect(() => getOptionalBooleanField(source, ["key"], "test")).toThrow("test must be a boolean");
156
+ });
157
+ });
158
+ describe("getOptionalNumberField", () => {
159
+ test("gets number when present", () => {
160
+ const source = { key: 42 };
161
+ expect(getOptionalNumberField(source, ["key"], "test")).toBe(42);
162
+ });
163
+ test("parses string number", () => {
164
+ const source = { key: "42" };
165
+ expect(getOptionalNumberField(source, ["key"], "test")).toBe(42);
166
+ });
167
+ test("returns undefined when key missing", () => {
168
+ const source = { other: 42 };
169
+ expect(getOptionalNumberField(source, ["key"], "test")).toBeUndefined();
170
+ });
171
+ test("returns undefined for null value", () => {
172
+ const source = { key: null };
173
+ expect(getOptionalNumberField(source, ["key"], "test")).toBeUndefined();
174
+ });
175
+ test("returns undefined for undefined value", () => {
176
+ const source = { key: undefined };
177
+ expect(getOptionalNumberField(source, ["key"], "test")).toBeUndefined();
178
+ });
179
+ test("throws for NaN", () => {
180
+ const source = { key: "not a number" };
181
+ expect(() => getOptionalNumberField(source, ["key"], "test")).toThrow("test must be a number when provided");
182
+ });
183
+ test("throws for Infinity", () => {
184
+ const source = { key: Infinity };
185
+ expect(() => getOptionalNumberField(source, ["key"], "test")).toThrow("test must be a number when provided");
186
+ });
187
+ });
188
+ //# sourceMappingURL=parsing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing.test.js","sourceRoot":"","sources":["../../../src/registry/__tests__/parsing.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type PublicClient } from "viem";
2
+ import type { TokenEntry } from "./types.js";
3
+ /**
4
+ * Finds a token entry by chain ID.
5
+ * @throws Error if no token is found or multiple tokens match.
6
+ */
7
+ export declare function findTokenByChain(tokens: readonly TokenEntry[], chainId: bigint): TokenEntry;
8
+ /**
9
+ * Creates a viem PublicClient for the given token entry.
10
+ * Uses the first RPC URL from the token's rpcUrls array.
11
+ * @throws Error if the token has no RPC URLs configured.
12
+ */
13
+ export declare function createProviderForToken(entry: TokenEntry): PublicClient;
14
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/registry/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAS3F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAOtE"}
@@ -0,0 +1,29 @@
1
+ import { createPublicClient, http } from "viem";
2
+ /**
3
+ * Finds a token entry by chain ID.
4
+ * @throws Error if no token is found or multiple tokens match.
5
+ */
6
+ export function findTokenByChain(tokens, chainId) {
7
+ const matches = tokens.filter((token) => token.chainId === chainId);
8
+ if (matches.length === 0) {
9
+ throw new Error(`no tokens configured for chain id ${chainId}`);
10
+ }
11
+ if (matches.length > 1) {
12
+ throw new Error(`multiple tokens configured for chain id ${chainId}; disambiguate by label`);
13
+ }
14
+ return matches[0];
15
+ }
16
+ /**
17
+ * Creates a viem PublicClient for the given token entry.
18
+ * Uses the first RPC URL from the token's rpcUrls array.
19
+ * @throws Error if the token has no RPC URLs configured.
20
+ */
21
+ export function createProviderForToken(entry) {
22
+ if (entry.rpcUrls.length === 0) {
23
+ throw new Error(`token '${entry.label}' is missing rpc urls`);
24
+ }
25
+ return createPublicClient({
26
+ transport: http(entry.rpcUrls[0]),
27
+ });
28
+ }
29
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/registry/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAInE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA6B,EAAE,OAAe;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,yBAAyB,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiB;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,uBAAuB,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,kBAAkB,CAAC;QACxB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Token registry module for zERC20.
3
+ *
4
+ * This module provides:
5
+ * - Type definitions for token and hub entries
6
+ * - Functions for loading and normalizing tokens from compressed data
7
+ * - Utilities for finding tokens and creating providers
8
+ */
9
+ export type { TokenEntry, HubEntry, TokensFile, NormalizedTokens, LoadTokensOptions, } from "./types.js";
10
+ export { normalizeTokensFile, normalizeTokens } from "./normalize.js";
11
+ export { TokensCacheManager, clearTokensCache, resetTokensCache, getDefaultTokensCacheManager, loadTokensFromCompressed, loadTokens, } from "./loader.js";
12
+ export { findTokenByChain, createProviderForToken } from "./helpers.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Token registry module for zERC20.
3
+ *
4
+ * This module provides:
5
+ * - Type definitions for token and hub entries
6
+ * - Functions for loading and normalizing tokens from compressed data
7
+ * - Utilities for finding tokens and creating providers
8
+ */
9
+ // Normalization
10
+ export { normalizeTokensFile, normalizeTokens } from "./normalize.js";
11
+ // Loading
12
+ export { TokensCacheManager, clearTokensCache, resetTokensCache, getDefaultTokensCacheManager, loadTokensFromCompressed, loadTokens, } from "./loader.js";
13
+ // Helpers
14
+ export { findTokenByChain, createProviderForToken } from "./helpers.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { NormalizedTokens, LoadTokensOptions } from "./types.js";
2
+ /**
3
+ * Manager for caching loaded token data.
4
+ */
5
+ export declare class TokensCacheManager {
6
+ private readonly cache;
7
+ /**
8
+ * Loads tokens from compressed data, using cache if available.
9
+ * If loading fails, the failed promise is removed from the cache to allow retry.
10
+ * @remarks
11
+ * The default `cacheKey` is based on the full compressed string; consider providing a shorter stable key.
12
+ */
13
+ load(compressed: string, options?: LoadTokensOptions): Promise<NormalizedTokens>;
14
+ /**
15
+ * Clears a specific entry or all entries from the cache.
16
+ */
17
+ clear(key?: string): void;
18
+ /**
19
+ * Resets the cache to its initial empty state.
20
+ * Alias for clear() - useful for testing.
21
+ */
22
+ reset(): void;
23
+ /**
24
+ * Returns the number of cached entries.
25
+ */
26
+ size(): number;
27
+ /**
28
+ * Returns true if the cache contains an entry for the given key.
29
+ */
30
+ has(key: string): boolean;
31
+ }
32
+ /**
33
+ * Clears the tokens cache.
34
+ * @param cache Optional custom cache map. Uses global cache if not provided.
35
+ * @param key Optional key to clear. Clears entire cache if not provided.
36
+ */
37
+ export declare function clearTokensCache(cache?: Map<string, Promise<NormalizedTokens>>, key?: string): void;
38
+ /**
39
+ * Resets the default tokens cache to its initial state.
40
+ * Useful for testing.
41
+ */
42
+ export declare function resetTokensCache(): void;
43
+ /**
44
+ * Returns the default tokens cache manager.
45
+ */
46
+ export declare function getDefaultTokensCacheManager(): TokensCacheManager;
47
+ /**
48
+ * Loads tokens from a compressed (gzipped + base64) string.
49
+ * Results are cached based on the cacheKey option.
50
+ * If loading fails, the failed promise is removed from the cache to allow retry.
51
+ */
52
+ export declare function loadTokensFromCompressed(compressed: string, options?: LoadTokensOptions): Promise<NormalizedTokens>;
53
+ /**
54
+ * Alias for loadTokensFromCompressed.
55
+ */
56
+ export declare function loadTokens(compressed: string, options?: LoadTokensOptions): Promise<NormalizedTokens>;
57
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsElF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgD;IAEtE;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBpF;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAG1B;AAQD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAC9C,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAE3B"}
@@ -0,0 +1,188 @@
1
+ import { decode as decodeBase64 } from "base64-arraybuffer";
2
+ import { ungzip } from "pako";
3
+ import { asNormalizedTokens } from "./normalize.js";
4
+ /**
5
+ * Loader for "compressed tokens" payloads.
6
+ * @remarks
7
+ * The expected format for `compressed` is:
8
+ * - Base64-encoded gzip bytes
9
+ * - The gzip payload is UTF-8 JSON representing a {@link TokensFile}
10
+ *
11
+ * This module also provides a small in-memory cache so repeated loads of the same payload are cheap.
12
+ */
13
+ // ============================================================================
14
+ // Internal Utilities
15
+ // ============================================================================
16
+ /**
17
+ * Decodes a base64 string to bytes.
18
+ * @throws Error if the payload is empty or not valid base64.
19
+ */
20
+ function base64ToBytes(value) {
21
+ const normalized = value.replace(/\s+/g, "");
22
+ if (!normalized) {
23
+ throw new Error("Compressed tokens payload is empty");
24
+ }
25
+ try {
26
+ const buffer = decodeBase64(normalized);
27
+ return new Uint8Array(buffer);
28
+ }
29
+ catch {
30
+ throw new Error("Compressed tokens payload is not valid base64");
31
+ }
32
+ }
33
+ /**
34
+ * Decodes decompressed bytes to a TokensFile.
35
+ * @throws Error if the bytes are not valid JSON.
36
+ */
37
+ function decodeTokensPayload(bytes, decoder) {
38
+ const textDecoder = decoder ?? new TextDecoder();
39
+ const text = textDecoder.decode(bytes);
40
+ try {
41
+ return JSON.parse(text);
42
+ }
43
+ catch {
44
+ throw new Error("Decompressed tokens blob is not valid JSON");
45
+ }
46
+ }
47
+ /**
48
+ * Parses and normalizes compressed tokens data.
49
+ */
50
+ function parseCompressedTokens(compressed, options = {}) {
51
+ const gzippedBytes = base64ToBytes(compressed);
52
+ const decompress = options.decompress ?? ((data) => ungzip(data));
53
+ const decompressed = decompress(gzippedBytes);
54
+ const normalizedBytes = decompressed instanceof Uint8Array
55
+ ? decompressed
56
+ : new Uint8Array(decompressed);
57
+ const parsed = decodeTokensPayload(normalizedBytes, options.decoder);
58
+ return asNormalizedTokens(parsed);
59
+ }
60
+ // ============================================================================
61
+ // TokensCacheManager Class
62
+ // ============================================================================
63
+ /**
64
+ * Manager for caching loaded token data.
65
+ */
66
+ export class TokensCacheManager {
67
+ cache = new Map();
68
+ /**
69
+ * Loads tokens from compressed data, using cache if available.
70
+ * If loading fails, the failed promise is removed from the cache to allow retry.
71
+ * @remarks
72
+ * The default `cacheKey` is based on the full compressed string; consider providing a shorter stable key.
73
+ */
74
+ load(compressed, options = {}) {
75
+ const cacheKey = options.cacheKey ?? `compressed:${compressed}`;
76
+ if (!this.cache.has(cacheKey)) {
77
+ const promise = Promise.resolve()
78
+ .then(() => parseCompressedTokens(compressed, {
79
+ decompress: options.decompress,
80
+ decoder: options.decoder,
81
+ }))
82
+ .catch((error) => {
83
+ this.cache.delete(cacheKey);
84
+ throw error;
85
+ });
86
+ this.cache.set(cacheKey, promise);
87
+ }
88
+ return this.cache.get(cacheKey);
89
+ }
90
+ /**
91
+ * Clears a specific entry or all entries from the cache.
92
+ */
93
+ clear(key) {
94
+ if (key) {
95
+ this.cache.delete(key);
96
+ return;
97
+ }
98
+ this.cache.clear();
99
+ }
100
+ /**
101
+ * Resets the cache to its initial empty state.
102
+ * Alias for clear() - useful for testing.
103
+ */
104
+ reset() {
105
+ this.cache.clear();
106
+ }
107
+ /**
108
+ * Returns the number of cached entries.
109
+ */
110
+ size() {
111
+ return this.cache.size;
112
+ }
113
+ /**
114
+ * Returns true if the cache contains an entry for the given key.
115
+ */
116
+ has(key) {
117
+ return this.cache.has(key);
118
+ }
119
+ }
120
+ // ============================================================================
121
+ // Default Singleton & Backward-Compatible Functions
122
+ // ============================================================================
123
+ const defaultManager = new TokensCacheManager();
124
+ /**
125
+ * Clears the tokens cache.
126
+ * @param cache Optional custom cache map. Uses global cache if not provided.
127
+ * @param key Optional key to clear. Clears entire cache if not provided.
128
+ */
129
+ export function clearTokensCache(cache, key) {
130
+ // If custom cache is provided, use direct Map operations for backward compatibility
131
+ if (cache) {
132
+ if (key) {
133
+ cache.delete(key);
134
+ }
135
+ else {
136
+ cache.clear();
137
+ }
138
+ return;
139
+ }
140
+ defaultManager.clear(key);
141
+ }
142
+ /**
143
+ * Resets the default tokens cache to its initial state.
144
+ * Useful for testing.
145
+ */
146
+ export function resetTokensCache() {
147
+ defaultManager.reset();
148
+ }
149
+ /**
150
+ * Returns the default tokens cache manager.
151
+ */
152
+ export function getDefaultTokensCacheManager() {
153
+ return defaultManager;
154
+ }
155
+ /**
156
+ * Loads tokens from a compressed (gzipped + base64) string.
157
+ * Results are cached based on the cacheKey option.
158
+ * If loading fails, the failed promise is removed from the cache to allow retry.
159
+ */
160
+ export function loadTokensFromCompressed(compressed, options = {}) {
161
+ // If custom cache is provided, use direct Map operations for backward compatibility
162
+ if (options.cache) {
163
+ const cache = options.cache;
164
+ const cacheKey = options.cacheKey ?? `compressed:${compressed}`;
165
+ if (!cache.has(cacheKey)) {
166
+ const promise = Promise.resolve()
167
+ .then(() => parseCompressedTokens(compressed, {
168
+ decompress: options.decompress,
169
+ decoder: options.decoder,
170
+ }))
171
+ .catch((error) => {
172
+ cache.delete(cacheKey);
173
+ throw error;
174
+ });
175
+ cache.set(cacheKey, promise);
176
+ }
177
+ return cache.get(cacheKey);
178
+ }
179
+ // Use default manager
180
+ return defaultManager.load(compressed, options);
181
+ }
182
+ /**
183
+ * Alias for loadTokensFromCompressed.
184
+ */
185
+ export function loadTokens(compressed, options = {}) {
186
+ return loadTokensFromCompressed(compressed, options);
187
+ }
188
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { TokensFile, NormalizedTokens } from "./types.js";
2
+ /**
3
+ * Normalizes a tokens file by validating and transforming all entries.
4
+ * Handles both camelCase and snake_case field names.
5
+ * @throws Error if the file is invalid or missing required fields.
6
+ *
7
+ * @remarks
8
+ * This function is intended for untrusted external input (e.g. JSON loaded from disk/network).
9
+ * It performs:
10
+ * - Address normalization (`0x`-prefixed hex) for all address fields
11
+ * - Bigint parsing for `chainId` and `deployedBlockNumber`
12
+ * - RPC URL normalization and validation
13
+ */
14
+ export declare function normalizeTokensFile(file: TokensFile): TokensFile;
15
+ /**
16
+ * Creates a shallow clone of a tokens file.
17
+ * @remarks Used to ensure normalization does not mutate caller-owned objects.
18
+ */
19
+ export declare function cloneTokensFile(file: TokensFile): TokensFile;
20
+ /**
21
+ * Converts a TokensFile to NormalizedTokens, preserving the raw data.
22
+ * @remarks The returned `raw` is the original input reference.
23
+ */
24
+ export declare function asNormalizedTokens(file: TokensFile): NormalizedTokens;
25
+ /**
26
+ * Normalizes a tokens file and returns it with the raw data preserved.
27
+ */
28
+ export declare function normalizeTokens(file: TokensFile): NormalizedTokens;
29
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/registry/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc/D;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CA8EhE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAM5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAOrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAElE"}