@waku/rln 0.0.1 → 0.0.2-ce9a6ae.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 (405) hide show
  1. package/README.md +12 -108
  2. package/bundle/_virtual/__node-resolve_empty.js +6 -0
  3. package/bundle/_virtual/_assert.js +3 -0
  4. package/bundle/_virtual/_commonjs-dynamic-modules.js +5 -0
  5. package/bundle/_virtual/_commonjsHelpers.js +32 -0
  6. package/bundle/_virtual/_node-resolve_empty.js +3 -0
  7. package/bundle/_virtual/_sha2.js +3 -0
  8. package/bundle/_virtual/_u64.js +3 -0
  9. package/bundle/_virtual/aes.js +3 -0
  10. package/bundle/_virtual/bn.js +3 -0
  11. package/bundle/_virtual/browser.js +3 -0
  12. package/bundle/_virtual/checksum.js +3 -0
  13. package/bundle/_virtual/cipher.js +3 -0
  14. package/bundle/_virtual/class.js +3 -0
  15. package/bundle/_virtual/common.js +3 -0
  16. package/bundle/_virtual/common2.js +3 -0
  17. package/bundle/_virtual/cryptoBrowser.js +3 -0
  18. package/bundle/_virtual/functional.js +3 -0
  19. package/bundle/_virtual/hash.js +3 -0
  20. package/bundle/_virtual/hmac.js +3 -0
  21. package/bundle/_virtual/index.js +3 -0
  22. package/bundle/_virtual/index2.js +6 -0
  23. package/bundle/_virtual/inherits_browser.js +3 -0
  24. package/bundle/_virtual/kdf.js +3 -0
  25. package/bundle/_virtual/lodash.js +3 -0
  26. package/bundle/_virtual/password.js +3 -0
  27. package/bundle/_virtual/pbkdf2.js +3 -0
  28. package/bundle/_virtual/pbkdf22.js +3 -0
  29. package/bundle/_virtual/random.js +3 -0
  30. package/bundle/_virtual/ripemd.js +3 -0
  31. package/bundle/_virtual/schema-validation-generated.js +3 -0
  32. package/bundle/_virtual/schema-validation.js +3 -0
  33. package/bundle/_virtual/scrypt.js +3 -0
  34. package/bundle/_virtual/scrypt2.js +3 -0
  35. package/bundle/_virtual/sha.js +3 -0
  36. package/bundle/_virtual/sha256.js +3 -0
  37. package/bundle/_virtual/sha2562.js +3 -0
  38. package/bundle/_virtual/sha3.js +3 -0
  39. package/bundle/_virtual/sha512.js +3 -0
  40. package/bundle/_virtual/types.js +3 -0
  41. package/bundle/_virtual/utils.js +3 -0
  42. package/bundle/_virtual/utils2.js +3 -0
  43. package/bundle/_virtual/utils3.js +3 -0
  44. package/bundle/index.js +12 -10
  45. package/bundle/node_modules/@ethersproject/abi/lib.esm/_version.js +3 -0
  46. package/bundle/node_modules/@ethersproject/abi/lib.esm/abi-coder.js +96 -0
  47. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js +148 -0
  48. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/address.js +26 -0
  49. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js +20 -0
  50. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/array.js +210 -0
  51. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/boolean.js +18 -0
  52. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/bytes.js +30 -0
  53. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js +26 -0
  54. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/null.js +22 -0
  55. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/number.js +43 -0
  56. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/string.js +19 -0
  57. package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/tuple.js +58 -0
  58. package/bundle/node_modules/@ethersproject/abi/lib.esm/fragments.js +854 -0
  59. package/bundle/node_modules/@ethersproject/abi/lib.esm/interface.js +609 -0
  60. package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js +3 -0
  61. package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/index.js +66 -0
  62. package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js +3 -0
  63. package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/index.js +302 -0
  64. package/bundle/node_modules/@ethersproject/address/lib.esm/_version.js +3 -0
  65. package/bundle/node_modules/@ethersproject/address/lib.esm/index.js +110 -0
  66. package/bundle/node_modules/@ethersproject/base64/lib.esm/base64.js +20 -0
  67. package/bundle/node_modules/@ethersproject/basex/lib.esm/index.js +120 -0
  68. package/bundle/node_modules/@ethersproject/bignumber/lib.esm/_version.js +3 -0
  69. package/bundle/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js +287 -0
  70. package/bundle/node_modules/@ethersproject/bytes/lib.esm/_version.js +3 -0
  71. package/bundle/node_modules/@ethersproject/bytes/lib.esm/index.js +402 -0
  72. package/bundle/node_modules/@ethersproject/constants/lib.esm/addresses.js +3 -0
  73. package/bundle/node_modules/@ethersproject/constants/lib.esm/bignumbers.js +8 -0
  74. package/bundle/node_modules/@ethersproject/constants/lib.esm/hashes.js +3 -0
  75. package/bundle/node_modules/@ethersproject/contracts/lib.esm/_version.js +3 -0
  76. package/bundle/node_modules/@ethersproject/contracts/lib.esm/index.js +893 -0
  77. package/bundle/node_modules/@ethersproject/hash/lib.esm/_version.js +3 -0
  78. package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js +256 -0
  79. package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js +36 -0
  80. package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js +135 -0
  81. package/bundle/node_modules/@ethersproject/hash/lib.esm/id.js +8 -0
  82. package/bundle/node_modules/@ethersproject/hash/lib.esm/namehash.js +64 -0
  83. package/bundle/node_modules/@ethersproject/hash/lib.esm/typed-data.js +443 -0
  84. package/bundle/node_modules/@ethersproject/keccak256/lib.esm/index.js +8 -0
  85. package/bundle/node_modules/@ethersproject/keccak256/node_modules/js-sha3/src/sha3.js +660 -0
  86. package/bundle/node_modules/@ethersproject/logger/lib.esm/_version.js +3 -0
  87. package/bundle/node_modules/@ethersproject/logger/lib.esm/index.js +352 -0
  88. package/bundle/node_modules/@ethersproject/networks/lib.esm/_version.js +3 -0
  89. package/bundle/node_modules/@ethersproject/networks/lib.esm/index.js +248 -0
  90. package/bundle/node_modules/@ethersproject/properties/lib.esm/_version.js +3 -0
  91. package/bundle/node_modules/@ethersproject/properties/lib.esm/index.js +127 -0
  92. package/bundle/node_modules/@ethersproject/providers/lib.esm/_version.js +3 -0
  93. package/bundle/node_modules/@ethersproject/providers/lib.esm/base-provider.js +2007 -0
  94. package/bundle/node_modules/@ethersproject/providers/lib.esm/formatter.js +422 -0
  95. package/bundle/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js +674 -0
  96. package/bundle/node_modules/@ethersproject/providers/lib.esm/web3-provider.js +132 -0
  97. package/bundle/node_modules/@ethersproject/rlp/lib.esm/_version.js +3 -0
  98. package/bundle/node_modules/@ethersproject/rlp/lib.esm/index.js +120 -0
  99. package/bundle/node_modules/@ethersproject/sha2/lib.esm/sha2.js +8 -0
  100. package/bundle/node_modules/@ethersproject/signing-key/lib.esm/_version.js +3 -0
  101. package/bundle/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js +2430 -0
  102. package/bundle/node_modules/@ethersproject/signing-key/lib.esm/index.js +76 -0
  103. package/bundle/node_modules/@ethersproject/strings/lib.esm/_version.js +3 -0
  104. package/bundle/node_modules/@ethersproject/strings/lib.esm/utf8.js +219 -0
  105. package/bundle/node_modules/@ethersproject/transactions/lib.esm/_version.js +3 -0
  106. package/bundle/node_modules/@ethersproject/transactions/lib.esm/index.js +279 -0
  107. package/bundle/node_modules/@ethersproject/web/lib.esm/_version.js +3 -0
  108. package/bundle/node_modules/@ethersproject/web/lib.esm/geturl.js +69 -0
  109. package/bundle/node_modules/@ethersproject/web/lib.esm/index.js +404 -0
  110. package/bundle/node_modules/@iden3/js-crypto/dist/browser/esm/index.js +7 -0
  111. package/bundle/node_modules/@multiformats/multiaddr/dist/src/convert.js +15 -0
  112. package/bundle/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js +20 -0
  113. package/bundle/node_modules/@multiformats/multiaddr/dist/src/protocols-table.js +92 -0
  114. package/bundle/node_modules/@noble/hashes/esm/_assert.js +37 -0
  115. package/bundle/node_modules/@noble/hashes/esm/_md.js +132 -0
  116. package/bundle/node_modules/@noble/hashes/esm/_u64.js +29 -0
  117. package/bundle/node_modules/@noble/hashes/esm/sha256.js +113 -0
  118. package/bundle/node_modules/@noble/hashes/esm/sha3.js +210 -0
  119. package/bundle/node_modules/@noble/hashes/esm/utils.js +144 -0
  120. package/bundle/node_modules/@stablelib/binary/lib/binary.js +22 -0
  121. package/bundle/node_modules/@stablelib/chacha/lib/chacha.js +245 -0
  122. package/bundle/node_modules/@stablelib/wipe/lib/wipe.js +26 -0
  123. package/bundle/node_modules/@waku/zerokit-rln-wasm/rln_wasm.js +756 -0
  124. package/bundle/node_modules/bech32/index.js +187 -0
  125. package/bundle/node_modules/bn.js/lib/bn.js +3361 -0
  126. package/bundle/node_modules/debug/src/browser.js +283 -0
  127. package/bundle/node_modules/debug/src/common.js +295 -0
  128. package/bundle/node_modules/ethereum-cryptography/esm/keccak.js +10 -0
  129. package/bundle/node_modules/ethereum-cryptography/esm/sha256.js +6 -0
  130. package/bundle/node_modules/ethereum-cryptography/esm/utils.js +24 -0
  131. package/bundle/node_modules/hash.js/lib/hash/common.js +97 -0
  132. package/bundle/node_modules/hash.js/lib/hash/hmac.js +51 -0
  133. package/bundle/node_modules/hash.js/lib/hash/ripemd.js +152 -0
  134. package/bundle/node_modules/hash.js/lib/hash/sha/1.js +81 -0
  135. package/bundle/node_modules/hash.js/lib/hash/sha/224.js +33 -0
  136. package/bundle/node_modules/hash.js/lib/hash/sha/256.js +113 -0
  137. package/bundle/node_modules/hash.js/lib/hash/sha/384.js +39 -0
  138. package/bundle/node_modules/hash.js/lib/hash/sha/512.js +336 -0
  139. package/bundle/node_modules/hash.js/lib/hash/sha/common.js +53 -0
  140. package/bundle/node_modules/hash.js/lib/hash/sha.js +14 -0
  141. package/bundle/node_modules/hash.js/lib/hash/utils.js +282 -0
  142. package/bundle/node_modules/hash.js/lib/hash.js +33 -0
  143. package/bundle/node_modules/inherits/inherits_browser.js +33 -0
  144. package/bundle/node_modules/it-length-prefixed/dist/src/decode.js +6 -0
  145. package/bundle/node_modules/lodash/lodash.js +17207 -0
  146. package/bundle/node_modules/minimalistic-assert/index.js +13 -0
  147. package/bundle/node_modules/ms/index.js +172 -0
  148. package/bundle/node_modules/multiformats/dist/src/bases/base.js +205 -0
  149. package/bundle/node_modules/multiformats/dist/src/bases/base10.js +9 -0
  150. package/bundle/node_modules/multiformats/dist/src/bases/base16.js +16 -0
  151. package/bundle/node_modules/multiformats/dist/src/bases/base2.js +10 -0
  152. package/bundle/node_modules/multiformats/dist/src/bases/base256emoji.js +41 -0
  153. package/bundle/node_modules/multiformats/dist/src/bases/base32.js +58 -0
  154. package/bundle/node_modules/multiformats/dist/src/bases/base36.js +14 -0
  155. package/bundle/node_modules/multiformats/dist/src/bases/base58.js +14 -0
  156. package/bundle/node_modules/multiformats/dist/src/bases/base64.js +28 -0
  157. package/bundle/node_modules/multiformats/dist/src/bases/base8.js +10 -0
  158. package/bundle/node_modules/multiformats/dist/src/bases/identity.js +11 -0
  159. package/bundle/node_modules/multiformats/dist/src/basics.js +15 -0
  160. package/bundle/node_modules/multiformats/dist/src/bytes.js +18 -0
  161. package/bundle/node_modules/multiformats/dist/src/codecs/json.js +2 -0
  162. package/bundle/node_modules/multiformats/dist/src/vendor/base-x.js +170 -0
  163. package/bundle/node_modules/protons-runtime/dist/src/codec.js +20 -0
  164. package/bundle/node_modules/protons-runtime/dist/src/codecs/enum.js +24 -0
  165. package/bundle/node_modules/protons-runtime/dist/src/codecs/message.js +7 -0
  166. package/bundle/node_modules/protons-runtime/dist/src/decode.js +8 -0
  167. package/bundle/node_modules/protons-runtime/dist/src/encode.js +11 -0
  168. package/bundle/node_modules/protons-runtime/dist/src/index.js +30 -0
  169. package/bundle/node_modules/protons-runtime/dist/src/utils/float.js +54 -0
  170. package/bundle/node_modules/protons-runtime/dist/src/utils/longbits.js +175 -0
  171. package/bundle/node_modules/protons-runtime/dist/src/utils/pool.js +28 -0
  172. package/bundle/node_modules/protons-runtime/dist/src/utils/reader.js +367 -0
  173. package/bundle/node_modules/protons-runtime/dist/src/utils/utf8.js +99 -0
  174. package/bundle/node_modules/protons-runtime/dist/src/utils/writer.js +438 -0
  175. package/bundle/node_modules/uint8-varint/dist/src/index.js +124 -0
  176. package/bundle/node_modules/uint8arrays/dist/src/alloc.js +17 -0
  177. package/bundle/node_modules/uint8arrays/dist/src/from-string.js +19 -0
  178. package/bundle/node_modules/uint8arrays/dist/src/util/bases.js +49 -0
  179. package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +21 -0
  180. package/bundle/packages/core/dist/lib/connection_manager/keep_alive_manager.js +18 -0
  181. package/bundle/packages/core/dist/lib/filter/filter.js +27 -0
  182. package/bundle/packages/core/dist/lib/light_push/light_push.js +27 -0
  183. package/bundle/packages/core/dist/lib/message/version_0.js +154 -0
  184. package/bundle/packages/core/dist/lib/metadata/metadata.js +27 -0
  185. package/bundle/packages/core/dist/lib/store/store.js +27 -0
  186. package/bundle/packages/interfaces/dist/connection_manager.js +19 -0
  187. package/bundle/packages/interfaces/dist/constants.js +6 -0
  188. package/bundle/packages/interfaces/dist/health_indicator.js +12 -0
  189. package/bundle/packages/interfaces/dist/protocols.js +97 -0
  190. package/bundle/packages/proto/dist/generated/filter.js +445 -0
  191. package/bundle/packages/proto/dist/generated/filter_v2.js +424 -0
  192. package/bundle/packages/proto/dist/generated/light_push.js +389 -0
  193. package/bundle/packages/proto/dist/generated/message.js +213 -0
  194. package/bundle/packages/proto/dist/generated/metadata.js +130 -0
  195. package/bundle/packages/proto/dist/generated/peer_exchange.js +209 -0
  196. package/bundle/packages/proto/dist/generated/sds_message.js +105 -0
  197. package/bundle/packages/proto/dist/generated/store_v3.js +490 -0
  198. package/bundle/packages/proto/dist/generated/topic_only_message.js +61 -0
  199. package/bundle/packages/rln/dist/codec.js +93 -0
  200. package/bundle/packages/rln/dist/contract/abi/rlnv2.js +394 -0
  201. package/bundle/packages/rln/dist/contract/constants.js +33 -0
  202. package/bundle/packages/rln/dist/contract/rln_contract.js +427 -0
  203. package/bundle/packages/rln/dist/create.js +9 -0
  204. package/bundle/packages/rln/dist/identity.js +76 -0
  205. package/bundle/packages/rln/dist/keystore/cipher.js +31 -0
  206. package/bundle/packages/rln/dist/keystore/credential_validation_generated.js +119 -0
  207. package/bundle/packages/rln/dist/keystore/keystore.js +223 -0
  208. package/bundle/packages/rln/dist/keystore/keystore_validation_generated.js +74 -0
  209. package/bundle/packages/rln/dist/keystore/schema_validator.js +20 -0
  210. package/bundle/packages/rln/dist/message.js +51 -0
  211. package/bundle/packages/rln/dist/proof.js +54 -0
  212. package/bundle/packages/rln/dist/resources/verification_key.js +112 -0
  213. package/bundle/packages/rln/dist/resources/witness_calculator.js +330 -0
  214. package/bundle/packages/rln/dist/rln.js +204 -0
  215. package/bundle/packages/rln/dist/root_tracker.js +76 -0
  216. package/bundle/packages/rln/dist/utils/bytes.js +65 -0
  217. package/bundle/packages/rln/dist/utils/epoch.js +39 -0
  218. package/bundle/packages/rln/dist/utils/hash.js +10 -0
  219. package/bundle/packages/rln/dist/utils/metamask.js +14 -0
  220. package/bundle/packages/rln/dist/zerokit.js +122 -0
  221. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/checksum.js +52 -0
  222. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/cipher.js +65 -0
  223. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/class.js +99 -0
  224. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/functional.js +103 -0
  225. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/index.js +28 -0
  226. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/kdf.js +78 -0
  227. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/password.js +17 -0
  228. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1253 -0
  229. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation.js +40 -0
  230. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/types.js +5 -0
  231. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +103 -0
  232. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +41 -0
  233. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +17 -0
  234. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +23 -0
  235. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +12 -0
  236. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +77 -0
  237. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/index.js +9 -0
  238. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  239. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/nil.js +3 -0
  240. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  241. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/regex.js +3 -0
  242. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/rng.js +21 -0
  243. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  244. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/stringify.js +31 -0
  245. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v1.js +96 -0
  246. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v3.js +6 -0
  247. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v35.js +66 -0
  248. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  249. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v5.js +6 -0
  250. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  251. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/version.js +11 -0
  252. package/bundle/packages/rln/node_modules/@noble/hashes/_assert.js +52 -0
  253. package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +124 -0
  254. package/bundle/packages/rln/node_modules/@noble/hashes/_u64.js +71 -0
  255. package/bundle/packages/rln/node_modules/@noble/hashes/cryptoBrowser.js +10 -0
  256. package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +88 -0
  257. package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +99 -0
  258. package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +233 -0
  259. package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +133 -0
  260. package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +243 -0
  261. package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +167 -0
  262. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/native.js +4 -0
  263. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/rng.js +13 -0
  264. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/stringify.js +28 -0
  265. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/v4.js +19 -0
  266. package/bundle/packages/utils/dist/bytes/index.js +44 -0
  267. package/bundle/packages/utils/dist/common/sharding/index.js +91 -0
  268. package/bundle/packages/utils/dist/logger/index.js +31 -0
  269. package/bundle/resources/rln.wasm +0 -0
  270. package/bundle/resources/rln_final.zkey +0 -0
  271. package/bundle/resources/verification_key.d.ts +13 -0
  272. package/bundle/resources/verification_key.js +112 -0
  273. package/bundle/resources/witness_calculator.d.ts +11 -0
  274. package/bundle/resources/witness_calculator.js +328 -0
  275. package/dist/.tsbuildinfo +1 -1
  276. package/dist/__tests__/identity.test.d.ts +1 -0
  277. package/dist/__tests__/identity.test.js +40 -0
  278. package/dist/__tests__/identity.test.js.map +1 -0
  279. package/dist/codec.d.ts +39 -0
  280. package/dist/codec.js +77 -0
  281. package/dist/codec.js.map +1 -0
  282. package/dist/contract/abi/rlnv2.d.ts +42 -0
  283. package/dist/contract/abi/rlnv2.js +393 -0
  284. package/dist/contract/abi/rlnv2.js.map +1 -0
  285. package/dist/contract/constants.d.ts +68 -0
  286. package/dist/contract/constants.js +31 -0
  287. package/dist/contract/constants.js.map +1 -0
  288. package/dist/contract/index.d.ts +2 -0
  289. package/dist/contract/index.js +3 -0
  290. package/dist/contract/index.js.map +1 -0
  291. package/dist/contract/rln_contract.d.ts +119 -0
  292. package/dist/contract/rln_contract.js +421 -0
  293. package/dist/contract/rln_contract.js.map +1 -0
  294. package/dist/create.d.ts +2 -0
  295. package/dist/create.js +8 -0
  296. package/dist/create.js.map +1 -0
  297. package/dist/identity.d.ts +16 -0
  298. package/dist/identity.js +73 -0
  299. package/dist/identity.js.map +1 -0
  300. package/dist/index.d.ts +11 -2
  301. package/dist/index.js +11 -8
  302. package/dist/index.js.map +1 -1
  303. package/dist/keystore/cipher.d.ts +4 -0
  304. package/dist/keystore/cipher.js +28 -0
  305. package/dist/keystore/cipher.js.map +1 -0
  306. package/dist/keystore/credential_validation_generated.d.ts +8 -0
  307. package/dist/keystore/credential_validation_generated.js +121 -0
  308. package/dist/keystore/credential_validation_generated.js.map +1 -0
  309. package/dist/keystore/index.d.ts +4 -0
  310. package/dist/keystore/index.js +3 -0
  311. package/dist/keystore/index.js.map +1 -0
  312. package/dist/keystore/keystore.d.ts +50 -0
  313. package/dist/keystore/keystore.js +205 -0
  314. package/dist/keystore/keystore.js.map +1 -0
  315. package/dist/keystore/keystore_validation_generated.d.ts +8 -0
  316. package/dist/keystore/keystore_validation_generated.js +75 -0
  317. package/dist/keystore/keystore_validation_generated.js.map +1 -0
  318. package/dist/keystore/schema_validator.d.ts +2 -0
  319. package/dist/keystore/schema_validator.js +18 -0
  320. package/dist/keystore/schema_validator.js.map +1 -0
  321. package/dist/keystore/types.d.ts +29 -0
  322. package/dist/keystore/types.js +2 -0
  323. package/dist/keystore/types.js.map +1 -0
  324. package/dist/message.d.ts +18 -0
  325. package/dist/message.js +49 -0
  326. package/dist/message.js.map +1 -0
  327. package/dist/proof.d.ts +21 -0
  328. package/dist/proof.js +50 -0
  329. package/dist/proof.js.map +1 -0
  330. package/dist/resources/rln.wasm +0 -0
  331. package/dist/resources/rln_final.zkey +0 -0
  332. package/dist/resources/verification_key.d.ts +13 -0
  333. package/dist/resources/verification_key.js +112 -0
  334. package/dist/resources/witness_calculator.d.ts +11 -0
  335. package/dist/resources/witness_calculator.js +328 -0
  336. package/dist/rln.d.ts +59 -13
  337. package/dist/rln.js +164 -81
  338. package/dist/rln.js.map +1 -1
  339. package/dist/root_tracker.d.ts +10 -0
  340. package/dist/root_tracker.js +75 -0
  341. package/dist/root_tracker.js.map +1 -0
  342. package/dist/utils/bytes.d.ts +20 -0
  343. package/dist/utils/bytes.js +64 -0
  344. package/dist/utils/bytes.js.map +1 -0
  345. package/dist/utils/epoch.d.ts +3 -0
  346. package/dist/utils/epoch.js +23 -0
  347. package/dist/utils/epoch.js.map +1 -0
  348. package/dist/utils/hash.d.ts +2 -0
  349. package/dist/utils/hash.js +13 -0
  350. package/dist/utils/hash.js.map +1 -0
  351. package/dist/utils/index.d.ts +4 -0
  352. package/dist/utils/index.js +5 -0
  353. package/dist/utils/index.js.map +1 -0
  354. package/dist/utils/metamask.d.ts +2 -0
  355. package/dist/utils/metamask.js +12 -0
  356. package/dist/utils/metamask.js.map +1 -0
  357. package/dist/zerokit.d.ts +19 -0
  358. package/dist/zerokit.js +119 -0
  359. package/dist/zerokit.js.map +1 -0
  360. package/package.json +1 -126
  361. package/src/__tests__/identity.test.ts +50 -0
  362. package/src/codec.ts +134 -0
  363. package/src/contract/abi/rlnv2.ts +392 -0
  364. package/src/contract/constants.ts +35 -0
  365. package/src/contract/index.ts +2 -0
  366. package/src/contract/rln_contract.ts +673 -0
  367. package/src/create.ts +9 -0
  368. package/src/identity.ts +101 -0
  369. package/src/index.ts +24 -10
  370. package/src/keystore/cipher.ts +54 -0
  371. package/src/keystore/credential_validation_generated.ts +7 -0
  372. package/src/keystore/index.ts +5 -0
  373. package/src/keystore/keystore.ts +330 -0
  374. package/src/keystore/keystore_validation_generated.ts +7 -0
  375. package/src/keystore/schema_validator.ts +34 -0
  376. package/src/keystore/types.ts +36 -0
  377. package/src/message.ts +70 -0
  378. package/src/proof.ts +69 -0
  379. package/src/resources/verification_key.d.ts +13 -0
  380. package/src/resources/witness_calculator.d.ts +11 -0
  381. package/src/rln.ts +270 -106
  382. package/src/root_tracker.ts +92 -0
  383. package/src/utils/bytes.ts +84 -0
  384. package/src/utils/epoch.ts +30 -0
  385. package/src/utils/hash.ts +15 -0
  386. package/src/utils/index.ts +9 -0
  387. package/src/utils/metamask.ts +17 -0
  388. package/src/zerokit.ts +214 -0
  389. package/bundle/02bce7e5f3bcf834.wasm +0 -0
  390. package/bundle/rln-f87f6dbe.js +0 -563
  391. package/dist/resources.d.ts +0 -4
  392. package/dist/resources.js +0 -5
  393. package/dist/resources.js.map +0 -1
  394. package/dist/witness_calculator.d.ts +0 -16
  395. package/dist/witness_calculator.js +0 -291
  396. package/dist/witness_calculator.js.map +0 -1
  397. package/dist/zerokit/rln_wasm.d.ts +0 -1
  398. package/dist/zerokit/rln_wasm.js +0 -2
  399. package/dist/zerokit/rln_wasm.js.map +0 -1
  400. package/dist/zerokit/rln_wasm_bg.d.ts +0 -108
  401. package/dist/zerokit/rln_wasm_bg.js +0 -592
  402. package/dist/zerokit/rln_wasm_bg.js.map +0 -1
  403. package/dist/zerokit/rln_wasm_bg.wasm +0 -0
  404. package/src/resources.ts +0 -10
  405. package/src/witness_calculator.d.ts +0 -4
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Concatenate Uint8Arrays
3
+ * @param input
4
+ * @returns concatenation of all Uint8Array received as input
5
+ */
6
+ export function concatenate(...input: Uint8Array[]): Uint8Array {
7
+ let totalLength = 0;
8
+ for (const arr of input) {
9
+ totalLength += arr.length;
10
+ }
11
+ const result = new Uint8Array(totalLength);
12
+ let offset = 0;
13
+ for (const arr of input) {
14
+ result.set(arr, offset);
15
+ offset += arr.length;
16
+ }
17
+ return result;
18
+ }
19
+
20
+ // Adapted from https://github.com/feross/buffer
21
+ function checkInt(
22
+ buf: Uint8Array,
23
+ value: number,
24
+ offset: number,
25
+ ext: number,
26
+ max: number,
27
+ min: number
28
+ ): void {
29
+ if (value > max || value < min)
30
+ throw new RangeError('"value" argument is out of bounds');
31
+ if (offset + ext > buf.length) throw new RangeError("Index out of range");
32
+ }
33
+
34
+ export function writeUIntLE(
35
+ buf: Uint8Array,
36
+ value: number,
37
+ offset: number,
38
+ byteLength: number,
39
+ noAssert?: boolean
40
+ ): Uint8Array {
41
+ value = +value;
42
+ offset = offset >>> 0;
43
+ byteLength = byteLength >>> 0;
44
+ if (!noAssert) {
45
+ const maxBytes = Math.pow(2, 8 * byteLength) - 1;
46
+ checkInt(buf, value, offset, byteLength, maxBytes, 0);
47
+ }
48
+
49
+ let mul = 1;
50
+ let i = 0;
51
+ buf[offset] = value & 0xff;
52
+ while (++i < byteLength && (mul *= 0x100)) {
53
+ buf[offset + i] = (value / mul) & 0xff;
54
+ }
55
+
56
+ return buf;
57
+ }
58
+
59
+ /**
60
+ * Transforms Uint8Array into BigInt
61
+ * @param array: Uint8Array
62
+ * @returns BigInt
63
+ */
64
+ export function buildBigIntFromUint8Array(
65
+ array: Uint8Array,
66
+ byteOffset: number = 0
67
+ ): bigint {
68
+ const dataView = new DataView(array.buffer);
69
+ return dataView.getBigUint64(byteOffset, true);
70
+ }
71
+
72
+ /**
73
+ * Fills with zeros to set length
74
+ * @param array little endian Uint8Array
75
+ * @param length amount to pad
76
+ * @returns little endian Uint8Array padded with zeros to set length
77
+ */
78
+ export function zeroPadLE(array: Uint8Array, length: number): Uint8Array {
79
+ const result = new Uint8Array(length);
80
+ for (let i = 0; i < length; i++) {
81
+ result[i] = array[i] || 0;
82
+ }
83
+ return result;
84
+ }
@@ -0,0 +1,30 @@
1
+ import { Logger } from "@waku/utils";
2
+
3
+ const DefaultEpochUnitSeconds = 10; // the rln-relay epoch length in seconds
4
+
5
+ const log = new Logger("waku:rln:epoch");
6
+
7
+ export function dateToEpoch(
8
+ timestamp: Date,
9
+ epochUnitSeconds: number = DefaultEpochUnitSeconds
10
+ ): number {
11
+ const time = timestamp.getTime();
12
+ const epoch = Math.floor(time / 1000 / epochUnitSeconds);
13
+ log.info("generated epoch", epoch);
14
+ return epoch;
15
+ }
16
+
17
+ export function epochIntToBytes(epoch: number): Uint8Array {
18
+ const bytes = new Uint8Array(32);
19
+ const db = new DataView(bytes.buffer);
20
+ db.setUint32(0, epoch, true);
21
+ log.info("encoded epoch", epoch, bytes);
22
+ return bytes;
23
+ }
24
+
25
+ export function epochBytesToInt(bytes: Uint8Array): number {
26
+ const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
27
+ const epoch = dv.getUint32(0, true);
28
+ log.info("decoded epoch", epoch, bytes);
29
+ return epoch;
30
+ }
@@ -0,0 +1,15 @@
1
+ import * as zerokitRLN from "@waku/zerokit-rln-wasm";
2
+
3
+ import { concatenate, writeUIntLE } from "./bytes.js";
4
+
5
+ export function poseidonHash(...input: Array<Uint8Array>): Uint8Array {
6
+ const inputLen = writeUIntLE(new Uint8Array(8), input.length, 0, 8);
7
+ const lenPrefixedData = concatenate(inputLen, ...input);
8
+ return zerokitRLN.poseidonHash(lenPrefixedData);
9
+ }
10
+
11
+ export function sha256(input: Uint8Array): Uint8Array {
12
+ const inputLen = writeUIntLE(new Uint8Array(8), input.length, 0, 8);
13
+ const lenPrefixedData = concatenate(inputLen, input);
14
+ return zerokitRLN.hash(lenPrefixedData);
15
+ }
@@ -0,0 +1,9 @@
1
+ export { extractMetaMaskSigner } from "./metamask.js";
2
+ export {
3
+ concatenate,
4
+ writeUIntLE,
5
+ buildBigIntFromUint8Array,
6
+ zeroPadLE
7
+ } from "./bytes.js";
8
+ export { sha256, poseidonHash } from "./hash.js";
9
+ export { dateToEpoch, epochIntToBytes, epochBytesToInt } from "./epoch.js";
@@ -0,0 +1,17 @@
1
+ import { ethers } from "ethers";
2
+
3
+ export const extractMetaMaskSigner = async (): Promise<ethers.Signer> => {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ const ethereum = (window as any).ethereum;
6
+
7
+ if (!ethereum) {
8
+ throw Error(
9
+ "Missing or invalid Ethereum provider. Please install a Web3 wallet such as MetaMask."
10
+ );
11
+ }
12
+
13
+ await ethereum.request({ method: "eth_requestAccounts" });
14
+ const provider = new ethers.providers.Web3Provider(ethereum, "any");
15
+
16
+ return provider.getSigner();
17
+ };
package/src/zerokit.ts ADDED
@@ -0,0 +1,214 @@
1
+ import type { IRateLimitProof } from "@waku/interfaces";
2
+ import * as zerokitRLN from "@waku/zerokit-rln-wasm";
3
+
4
+ import { DEFAULT_RATE_LIMIT, RATE_LIMIT_PARAMS } from "./contract/constants.js";
5
+ import { IdentityCredential } from "./identity.js";
6
+ import { Proof, proofToBytes } from "./proof.js";
7
+ import { WitnessCalculator } from "./resources/witness_calculator";
8
+ import {
9
+ concatenate,
10
+ dateToEpoch,
11
+ epochIntToBytes,
12
+ writeUIntLE
13
+ } from "./utils/index.js";
14
+
15
+ export class Zerokit {
16
+ public constructor(
17
+ private readonly zkRLN: number,
18
+ private readonly witnessCalculator: WitnessCalculator
19
+ ) {}
20
+
21
+ public generateIdentityCredentials(): IdentityCredential {
22
+ const memKeys = zerokitRLN.generateExtendedMembershipKey(this.zkRLN); // TODO: rename this function in zerokit rln-wasm
23
+ return IdentityCredential.fromBytes(memKeys);
24
+ }
25
+
26
+ public generateSeededIdentityCredential(seed: string): IdentityCredential {
27
+ const stringEncoder = new TextEncoder();
28
+ const seedBytes = stringEncoder.encode(seed);
29
+ // TODO: rename this function in zerokit rln-wasm
30
+ const memKeys = zerokitRLN.generateSeededExtendedMembershipKey(
31
+ this.zkRLN,
32
+ seedBytes
33
+ );
34
+ return IdentityCredential.fromBytes(memKeys);
35
+ }
36
+
37
+ public insertMember(idCommitment: Uint8Array): void {
38
+ zerokitRLN.insertMember(this.zkRLN, idCommitment);
39
+ }
40
+
41
+ public insertMembers(
42
+ index: number,
43
+ ...idCommitments: Array<Uint8Array>
44
+ ): void {
45
+ // serializes a seq of IDCommitments to a byte seq
46
+ // the order of serialization is |id_commitment_len<8>|id_commitment<var>|
47
+ const idCommitmentLen = writeUIntLE(
48
+ new Uint8Array(8),
49
+ idCommitments.length,
50
+ 0,
51
+ 8
52
+ );
53
+ const idCommitmentBytes = concatenate(idCommitmentLen, ...idCommitments);
54
+ zerokitRLN.setLeavesFrom(this.zkRLN, index, idCommitmentBytes);
55
+ }
56
+
57
+ public deleteMember(index: number): void {
58
+ zerokitRLN.deleteLeaf(this.zkRLN, index);
59
+ }
60
+
61
+ public getMerkleRoot(): Uint8Array {
62
+ return zerokitRLN.getRoot(this.zkRLN);
63
+ }
64
+
65
+ public serializeMessage(
66
+ uint8Msg: Uint8Array,
67
+ memIndex: number,
68
+ epoch: Uint8Array,
69
+ idKey: Uint8Array,
70
+ rateLimit: number = DEFAULT_RATE_LIMIT
71
+ ): Uint8Array {
72
+ // calculate message length
73
+ const msgLen = writeUIntLE(new Uint8Array(8), uint8Msg.length, 0, 8);
74
+ const memIndexBytes = writeUIntLE(new Uint8Array(8), memIndex, 0, 8);
75
+ const rateLimitBytes = writeUIntLE(new Uint8Array(8), rateLimit, 0, 8);
76
+
77
+ // [ id_key<32> | id_index<8> | epoch<32> | signal_len<8> | signal<var> | rate_limit<8> ]
78
+ return concatenate(
79
+ idKey,
80
+ memIndexBytes,
81
+ epoch,
82
+ msgLen,
83
+ uint8Msg,
84
+ rateLimitBytes
85
+ );
86
+ }
87
+
88
+ public async generateRLNProof(
89
+ msg: Uint8Array,
90
+ index: number,
91
+ epoch: Uint8Array | Date | undefined,
92
+ idSecretHash: Uint8Array,
93
+ rateLimit: number = DEFAULT_RATE_LIMIT
94
+ ): Promise<IRateLimitProof> {
95
+ if (epoch === undefined) {
96
+ epoch = epochIntToBytes(dateToEpoch(new Date()));
97
+ } else if (epoch instanceof Date) {
98
+ epoch = epochIntToBytes(dateToEpoch(epoch));
99
+ }
100
+
101
+ if (epoch.length !== 32) throw new Error("invalid epoch");
102
+ if (idSecretHash.length !== 32) throw new Error("invalid id secret hash");
103
+ if (index < 0) throw new Error("index must be >= 0");
104
+ if (
105
+ rateLimit < RATE_LIMIT_PARAMS.MIN_RATE ||
106
+ rateLimit > RATE_LIMIT_PARAMS.MAX_RATE
107
+ ) {
108
+ throw new Error(
109
+ `Rate limit must be between ${RATE_LIMIT_PARAMS.MIN_RATE} and ${RATE_LIMIT_PARAMS.MAX_RATE}`
110
+ );
111
+ }
112
+
113
+ const serialized_msg = this.serializeMessage(
114
+ msg,
115
+ index,
116
+ epoch,
117
+ idSecretHash,
118
+ rateLimit
119
+ );
120
+ const rlnWitness = zerokitRLN.getSerializedRLNWitness(
121
+ this.zkRLN,
122
+ serialized_msg
123
+ );
124
+ const inputs = zerokitRLN.RLNWitnessToJson(this.zkRLN, rlnWitness);
125
+ const calculatedWitness = await this.witnessCalculator.calculateWitness(
126
+ inputs,
127
+ false
128
+ );
129
+
130
+ const proofBytes = zerokitRLN.generate_rln_proof_with_witness(
131
+ this.zkRLN,
132
+ calculatedWitness,
133
+ rlnWitness
134
+ );
135
+
136
+ return new Proof(proofBytes);
137
+ }
138
+
139
+ public verifyRLNProof(
140
+ proof: IRateLimitProof | Uint8Array,
141
+ msg: Uint8Array,
142
+ rateLimit?: number
143
+ ): boolean {
144
+ let pBytes: Uint8Array;
145
+ if (proof instanceof Uint8Array) {
146
+ pBytes = proof;
147
+ } else {
148
+ pBytes = proofToBytes(proof);
149
+ }
150
+
151
+ // calculate message length
152
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
153
+ const rateLimitBytes = rateLimit
154
+ ? writeUIntLE(new Uint8Array(8), rateLimit, 0, 8)
155
+ : new Uint8Array(8); // Zero if not specified
156
+
157
+ return zerokitRLN.verifyRLNProof(
158
+ this.zkRLN,
159
+ concatenate(pBytes, msgLen, msg, rateLimitBytes)
160
+ );
161
+ }
162
+
163
+ public verifyWithRoots(
164
+ proof: IRateLimitProof | Uint8Array,
165
+ msg: Uint8Array,
166
+ roots: Array<Uint8Array>,
167
+ rateLimit?: number
168
+ ): boolean {
169
+ let pBytes: Uint8Array;
170
+ if (proof instanceof Uint8Array) {
171
+ pBytes = proof;
172
+ } else {
173
+ pBytes = proofToBytes(proof);
174
+ }
175
+ // calculate message length
176
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
177
+ const rateLimitBytes = rateLimit
178
+ ? writeUIntLE(new Uint8Array(8), rateLimit, 0, 8)
179
+ : new Uint8Array(8); // Zero if not specified
180
+
181
+ const rootsBytes = concatenate(...roots);
182
+
183
+ return zerokitRLN.verifyWithRoots(
184
+ this.zkRLN,
185
+ concatenate(pBytes, msgLen, msg, rateLimitBytes),
186
+ rootsBytes
187
+ );
188
+ }
189
+
190
+ public verifyWithNoRoot(
191
+ proof: IRateLimitProof | Uint8Array,
192
+ msg: Uint8Array,
193
+ rateLimit?: number
194
+ ): boolean {
195
+ let pBytes: Uint8Array;
196
+ if (proof instanceof Uint8Array) {
197
+ pBytes = proof;
198
+ } else {
199
+ pBytes = proofToBytes(proof);
200
+ }
201
+
202
+ // calculate message length
203
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
204
+ const rateLimitBytes = rateLimit
205
+ ? writeUIntLE(new Uint8Array(8), rateLimit, 0, 8)
206
+ : new Uint8Array(8); // Zero if not specified
207
+
208
+ return zerokitRLN.verifyWithRoots(
209
+ this.zkRLN,
210
+ concatenate(pBytes, msgLen, msg, rateLimitBytes),
211
+ new Uint8Array()
212
+ );
213
+ }
214
+ }
Binary file