@waku/rln 0.0.1 → 0.0.2-09108d9.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 (392) 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 +11 -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/@multiformats/multiaddr/dist/src/convert.js +15 -0
  111. package/bundle/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js +20 -0
  112. package/bundle/node_modules/@multiformats/multiaddr/dist/src/protocols-table.js +92 -0
  113. package/bundle/node_modules/@noble/hashes/esm/_assert.js +37 -0
  114. package/bundle/node_modules/@noble/hashes/esm/_md.js +132 -0
  115. package/bundle/node_modules/@noble/hashes/esm/_u64.js +29 -0
  116. package/bundle/node_modules/@noble/hashes/esm/sha256.js +113 -0
  117. package/bundle/node_modules/@noble/hashes/esm/sha3.js +210 -0
  118. package/bundle/node_modules/@noble/hashes/esm/utils.js +144 -0
  119. package/bundle/node_modules/@waku/zerokit-rln-wasm/rln_wasm.js +756 -0
  120. package/bundle/node_modules/bech32/index.js +187 -0
  121. package/bundle/node_modules/bn.js/lib/bn.js +3361 -0
  122. package/bundle/node_modules/debug/src/browser.js +283 -0
  123. package/bundle/node_modules/debug/src/common.js +295 -0
  124. package/bundle/node_modules/ethereum-cryptography/esm/keccak.js +10 -0
  125. package/bundle/node_modules/ethereum-cryptography/esm/sha256.js +6 -0
  126. package/bundle/node_modules/ethereum-cryptography/esm/utils.js +24 -0
  127. package/bundle/node_modules/hash.js/lib/hash/common.js +97 -0
  128. package/bundle/node_modules/hash.js/lib/hash/hmac.js +51 -0
  129. package/bundle/node_modules/hash.js/lib/hash/ripemd.js +152 -0
  130. package/bundle/node_modules/hash.js/lib/hash/sha/1.js +81 -0
  131. package/bundle/node_modules/hash.js/lib/hash/sha/224.js +33 -0
  132. package/bundle/node_modules/hash.js/lib/hash/sha/256.js +113 -0
  133. package/bundle/node_modules/hash.js/lib/hash/sha/384.js +39 -0
  134. package/bundle/node_modules/hash.js/lib/hash/sha/512.js +336 -0
  135. package/bundle/node_modules/hash.js/lib/hash/sha/common.js +53 -0
  136. package/bundle/node_modules/hash.js/lib/hash/sha.js +14 -0
  137. package/bundle/node_modules/hash.js/lib/hash/utils.js +282 -0
  138. package/bundle/node_modules/hash.js/lib/hash.js +33 -0
  139. package/bundle/node_modules/inherits/inherits_browser.js +33 -0
  140. package/bundle/node_modules/it-length-prefixed/dist/src/decode.js +6 -0
  141. package/bundle/node_modules/lodash/lodash.js +17207 -0
  142. package/bundle/node_modules/minimalistic-assert/index.js +13 -0
  143. package/bundle/node_modules/ms/index.js +172 -0
  144. package/bundle/node_modules/multiformats/dist/src/bases/base.js +205 -0
  145. package/bundle/node_modules/multiformats/dist/src/bases/base10.js +9 -0
  146. package/bundle/node_modules/multiformats/dist/src/bases/base16.js +16 -0
  147. package/bundle/node_modules/multiformats/dist/src/bases/base2.js +10 -0
  148. package/bundle/node_modules/multiformats/dist/src/bases/base256emoji.js +41 -0
  149. package/bundle/node_modules/multiformats/dist/src/bases/base32.js +58 -0
  150. package/bundle/node_modules/multiformats/dist/src/bases/base36.js +14 -0
  151. package/bundle/node_modules/multiformats/dist/src/bases/base58.js +14 -0
  152. package/bundle/node_modules/multiformats/dist/src/bases/base64.js +28 -0
  153. package/bundle/node_modules/multiformats/dist/src/bases/base8.js +10 -0
  154. package/bundle/node_modules/multiformats/dist/src/bases/identity.js +11 -0
  155. package/bundle/node_modules/multiformats/dist/src/basics.js +15 -0
  156. package/bundle/node_modules/multiformats/dist/src/bytes.js +18 -0
  157. package/bundle/node_modules/multiformats/dist/src/codecs/json.js +2 -0
  158. package/bundle/node_modules/multiformats/dist/src/vendor/base-x.js +170 -0
  159. package/bundle/node_modules/protons-runtime/dist/src/codec.js +20 -0
  160. package/bundle/node_modules/protons-runtime/dist/src/codecs/enum.js +24 -0
  161. package/bundle/node_modules/protons-runtime/dist/src/codecs/message.js +7 -0
  162. package/bundle/node_modules/protons-runtime/dist/src/decode.js +8 -0
  163. package/bundle/node_modules/protons-runtime/dist/src/encode.js +11 -0
  164. package/bundle/node_modules/protons-runtime/dist/src/index.js +30 -0
  165. package/bundle/node_modules/protons-runtime/dist/src/utils/float.js +54 -0
  166. package/bundle/node_modules/protons-runtime/dist/src/utils/longbits.js +175 -0
  167. package/bundle/node_modules/protons-runtime/dist/src/utils/pool.js +28 -0
  168. package/bundle/node_modules/protons-runtime/dist/src/utils/reader.js +367 -0
  169. package/bundle/node_modules/protons-runtime/dist/src/utils/utf8.js +99 -0
  170. package/bundle/node_modules/protons-runtime/dist/src/utils/writer.js +438 -0
  171. package/bundle/node_modules/uint8-varint/dist/src/index.js +124 -0
  172. package/bundle/node_modules/uint8arrays/dist/src/alloc.js +17 -0
  173. package/bundle/node_modules/uint8arrays/dist/src/from-string.js +19 -0
  174. package/bundle/node_modules/uint8arrays/dist/src/util/bases.js +49 -0
  175. package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +21 -0
  176. package/bundle/packages/core/dist/lib/connection_manager/keep_alive_manager.js +18 -0
  177. package/bundle/packages/core/dist/lib/filter/filter.js +27 -0
  178. package/bundle/packages/core/dist/lib/light_push/light_push.js +27 -0
  179. package/bundle/packages/core/dist/lib/message/version_0.js +154 -0
  180. package/bundle/packages/core/dist/lib/metadata/metadata.js +27 -0
  181. package/bundle/packages/core/dist/lib/store/store.js +27 -0
  182. package/bundle/packages/interfaces/dist/connection_manager.js +19 -0
  183. package/bundle/packages/interfaces/dist/constants.js +6 -0
  184. package/bundle/packages/interfaces/dist/health_indicator.js +12 -0
  185. package/bundle/packages/interfaces/dist/protocols.js +92 -0
  186. package/bundle/packages/proto/dist/generated/filter.js +445 -0
  187. package/bundle/packages/proto/dist/generated/filter_v2.js +424 -0
  188. package/bundle/packages/proto/dist/generated/light_push.js +389 -0
  189. package/bundle/packages/proto/dist/generated/message.js +213 -0
  190. package/bundle/packages/proto/dist/generated/metadata.js +130 -0
  191. package/bundle/packages/proto/dist/generated/peer_exchange.js +209 -0
  192. package/bundle/packages/proto/dist/generated/sds_message.js +105 -0
  193. package/bundle/packages/proto/dist/generated/store_v3.js +490 -0
  194. package/bundle/packages/proto/dist/generated/topic_only_message.js +61 -0
  195. package/bundle/packages/rln/dist/codec.js +93 -0
  196. package/bundle/packages/rln/dist/contract/constants.js +68 -0
  197. package/bundle/packages/rln/dist/contract/rln_contract.js +218 -0
  198. package/bundle/packages/rln/dist/create.js +9 -0
  199. package/bundle/packages/rln/dist/identity.js +30 -0
  200. package/bundle/packages/rln/dist/keystore/cipher.js +31 -0
  201. package/bundle/packages/rln/dist/keystore/credential_validation_generated.js +119 -0
  202. package/bundle/packages/rln/dist/keystore/keystore.js +223 -0
  203. package/bundle/packages/rln/dist/keystore/keystore_validation_generated.js +74 -0
  204. package/bundle/packages/rln/dist/keystore/schema_validator.js +20 -0
  205. package/bundle/packages/rln/dist/message.js +51 -0
  206. package/bundle/packages/rln/dist/proof.js +54 -0
  207. package/bundle/packages/rln/dist/resources/verification_key.js +112 -0
  208. package/bundle/packages/rln/dist/resources/witness_calculator.js +330 -0
  209. package/bundle/packages/rln/dist/rln.js +206 -0
  210. package/bundle/packages/rln/dist/root_tracker.js +76 -0
  211. package/bundle/packages/rln/dist/utils/bytes.js +65 -0
  212. package/bundle/packages/rln/dist/utils/epoch.js +39 -0
  213. package/bundle/packages/rln/dist/utils/hash.js +10 -0
  214. package/bundle/packages/rln/dist/utils/metamask.js +14 -0
  215. package/bundle/packages/rln/dist/zerokit.js +108 -0
  216. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/checksum.js +52 -0
  217. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/cipher.js +65 -0
  218. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/class.js +99 -0
  219. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/functional.js +103 -0
  220. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/index.js +28 -0
  221. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/kdf.js +78 -0
  222. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/password.js +17 -0
  223. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1253 -0
  224. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation.js +40 -0
  225. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/types.js +5 -0
  226. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +103 -0
  227. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +41 -0
  228. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +17 -0
  229. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +23 -0
  230. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +12 -0
  231. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +77 -0
  232. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/index.js +9 -0
  233. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  234. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/nil.js +3 -0
  235. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  236. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/regex.js +3 -0
  237. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/rng.js +21 -0
  238. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  239. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/stringify.js +31 -0
  240. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v1.js +96 -0
  241. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v3.js +6 -0
  242. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v35.js +66 -0
  243. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  244. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v5.js +6 -0
  245. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  246. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/version.js +11 -0
  247. package/bundle/packages/rln/node_modules/@noble/hashes/_assert.js +52 -0
  248. package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +124 -0
  249. package/bundle/packages/rln/node_modules/@noble/hashes/_u64.js +71 -0
  250. package/bundle/packages/rln/node_modules/@noble/hashes/cryptoBrowser.js +10 -0
  251. package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +88 -0
  252. package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +99 -0
  253. package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +233 -0
  254. package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +133 -0
  255. package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +243 -0
  256. package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +167 -0
  257. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/native.js +4 -0
  258. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/rng.js +13 -0
  259. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/stringify.js +28 -0
  260. package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/v4.js +19 -0
  261. package/bundle/packages/utils/dist/bytes/index.js +44 -0
  262. package/bundle/packages/utils/dist/common/sharding/index.js +91 -0
  263. package/bundle/packages/utils/dist/logger/index.js +31 -0
  264. package/bundle/resources/rln.wasm +0 -0
  265. package/bundle/resources/rln_final.zkey +0 -0
  266. package/bundle/resources/verification_key.d.ts +13 -0
  267. package/bundle/resources/verification_key.js +112 -0
  268. package/bundle/resources/witness_calculator.d.ts +11 -0
  269. package/bundle/resources/witness_calculator.js +328 -0
  270. package/dist/.tsbuildinfo +1 -1
  271. package/dist/codec.d.ts +39 -0
  272. package/dist/codec.js +77 -0
  273. package/dist/codec.js.map +1 -0
  274. package/dist/contract/constants.d.ts +7 -0
  275. package/dist/contract/constants.js +67 -0
  276. package/dist/contract/constants.js.map +1 -0
  277. package/dist/contract/index.d.ts +2 -0
  278. package/dist/contract/index.js +3 -0
  279. package/dist/contract/index.js.map +1 -0
  280. package/dist/contract/rln_contract.d.ts +46 -0
  281. package/dist/contract/rln_contract.js +211 -0
  282. package/dist/contract/rln_contract.js.map +1 -0
  283. package/dist/create.d.ts +2 -0
  284. package/dist/create.js +8 -0
  285. package/dist/create.js.map +1 -0
  286. package/dist/identity.d.ts +9 -0
  287. package/dist/identity.js +27 -0
  288. package/dist/identity.js.map +1 -0
  289. package/dist/index.d.ts +11 -2
  290. package/dist/index.js +11 -8
  291. package/dist/index.js.map +1 -1
  292. package/dist/keystore/cipher.d.ts +4 -0
  293. package/dist/keystore/cipher.js +28 -0
  294. package/dist/keystore/cipher.js.map +1 -0
  295. package/dist/keystore/credential_validation_generated.d.ts +8 -0
  296. package/dist/keystore/credential_validation_generated.js +121 -0
  297. package/dist/keystore/credential_validation_generated.js.map +1 -0
  298. package/dist/keystore/index.d.ts +4 -0
  299. package/dist/keystore/index.js +3 -0
  300. package/dist/keystore/index.js.map +1 -0
  301. package/dist/keystore/keystore.d.ts +50 -0
  302. package/dist/keystore/keystore.js +205 -0
  303. package/dist/keystore/keystore.js.map +1 -0
  304. package/dist/keystore/keystore_validation_generated.d.ts +8 -0
  305. package/dist/keystore/keystore_validation_generated.js +75 -0
  306. package/dist/keystore/keystore_validation_generated.js.map +1 -0
  307. package/dist/keystore/schema_validator.d.ts +2 -0
  308. package/dist/keystore/schema_validator.js +18 -0
  309. package/dist/keystore/schema_validator.js.map +1 -0
  310. package/dist/keystore/types.d.ts +29 -0
  311. package/dist/keystore/types.js +2 -0
  312. package/dist/keystore/types.js.map +1 -0
  313. package/dist/message.d.ts +18 -0
  314. package/dist/message.js +49 -0
  315. package/dist/message.js.map +1 -0
  316. package/dist/proof.d.ts +21 -0
  317. package/dist/proof.js +50 -0
  318. package/dist/proof.js.map +1 -0
  319. package/dist/resources/rln.wasm +0 -0
  320. package/dist/resources/rln_final.zkey +0 -0
  321. package/dist/resources/verification_key.d.ts +13 -0
  322. package/dist/resources/verification_key.js +112 -0
  323. package/dist/resources/witness_calculator.d.ts +11 -0
  324. package/dist/resources/witness_calculator.js +328 -0
  325. package/dist/rln.d.ts +55 -13
  326. package/dist/rln.js +164 -79
  327. package/dist/rln.js.map +1 -1
  328. package/dist/root_tracker.d.ts +10 -0
  329. package/dist/root_tracker.js +75 -0
  330. package/dist/root_tracker.js.map +1 -0
  331. package/dist/utils/bytes.d.ts +20 -0
  332. package/dist/utils/bytes.js +64 -0
  333. package/dist/utils/bytes.js.map +1 -0
  334. package/dist/utils/epoch.d.ts +3 -0
  335. package/dist/utils/epoch.js +23 -0
  336. package/dist/utils/epoch.js.map +1 -0
  337. package/dist/utils/hash.d.ts +2 -0
  338. package/dist/utils/hash.js +13 -0
  339. package/dist/utils/hash.js.map +1 -0
  340. package/dist/utils/index.d.ts +4 -0
  341. package/dist/utils/index.js +5 -0
  342. package/dist/utils/index.js.map +1 -0
  343. package/dist/utils/metamask.d.ts +2 -0
  344. package/dist/utils/metamask.js +12 -0
  345. package/dist/utils/metamask.js.map +1 -0
  346. package/dist/zerokit.d.ts +19 -0
  347. package/dist/zerokit.js +105 -0
  348. package/dist/zerokit.js.map +1 -0
  349. package/package.json +1 -126
  350. package/src/codec.ts +134 -0
  351. package/src/contract/constants.ts +68 -0
  352. package/src/contract/index.ts +2 -0
  353. package/src/contract/rln_contract.ts +353 -0
  354. package/src/create.ts +9 -0
  355. package/src/identity.ts +31 -0
  356. package/src/index.ts +29 -10
  357. package/src/keystore/cipher.ts +54 -0
  358. package/src/keystore/credential_validation_generated.ts +7 -0
  359. package/src/keystore/index.ts +5 -0
  360. package/src/keystore/keystore.ts +330 -0
  361. package/src/keystore/keystore_validation_generated.ts +7 -0
  362. package/src/keystore/schema_validator.ts +34 -0
  363. package/src/keystore/types.ts +36 -0
  364. package/src/message.ts +70 -0
  365. package/src/proof.ts +69 -0
  366. package/src/resources/verification_key.d.ts +13 -0
  367. package/src/resources/witness_calculator.d.ts +11 -0
  368. package/src/rln.ts +266 -104
  369. package/src/root_tracker.ts +92 -0
  370. package/src/utils/bytes.ts +84 -0
  371. package/src/utils/epoch.ts +30 -0
  372. package/src/utils/hash.ts +15 -0
  373. package/src/utils/index.ts +9 -0
  374. package/src/utils/metamask.ts +17 -0
  375. package/src/zerokit.ts +184 -0
  376. package/bundle/02bce7e5f3bcf834.wasm +0 -0
  377. package/bundle/rln-f87f6dbe.js +0 -563
  378. package/dist/resources.d.ts +0 -4
  379. package/dist/resources.js +0 -5
  380. package/dist/resources.js.map +0 -1
  381. package/dist/witness_calculator.d.ts +0 -16
  382. package/dist/witness_calculator.js +0 -291
  383. package/dist/witness_calculator.js.map +0 -1
  384. package/dist/zerokit/rln_wasm.d.ts +0 -1
  385. package/dist/zerokit/rln_wasm.js +0 -2
  386. package/dist/zerokit/rln_wasm.js.map +0 -1
  387. package/dist/zerokit/rln_wasm_bg.d.ts +0 -108
  388. package/dist/zerokit/rln_wasm_bg.js +0 -592
  389. package/dist/zerokit/rln_wasm_bg.js.map +0 -1
  390. package/dist/zerokit/rln_wasm_bg.wasm +0 -0
  391. package/src/resources.ts +0 -10
  392. package/src/witness_calculator.d.ts +0 -4
@@ -0,0 +1,68 @@
1
+ // ref https://github.com/waku-org/waku-rln-contract/blob/19fded82bca07e7b535b429dc507cfb83f10dfcf/deployments/sepolia/WakuRlnRegistry_Implementation.json#L3
2
+ const RLN_REGISTRY_ABI = [
3
+ "error IncompatibleStorage()",
4
+ "error IncompatibleStorageIndex()",
5
+ "error NoStorageContractAvailable()",
6
+ "error StorageAlreadyExists(address storageAddress)",
7
+ "event AdminChanged(address previousAdmin, address newAdmin)",
8
+ "event BeaconUpgraded(address indexed beacon)",
9
+ "event Initialized(uint8 version)",
10
+ "event NewStorageContract(uint16 index, address storageAddress)",
11
+ "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
12
+ "event Upgraded(address indexed implementation)",
13
+ "function forceProgress()",
14
+ "function initialize(address _poseidonHasher)",
15
+ "function newStorage()",
16
+ "function nextStorageIndex() view returns (uint16)",
17
+ "function owner() view returns (address)",
18
+ "function poseidonHasher() view returns (address)",
19
+ "function proxiableUUID() view returns (bytes32)",
20
+ "function register(uint16 storageIndex, uint256 commitment)",
21
+ "function register(uint256[] commitments)",
22
+ "function register(uint16 storageIndex, uint256[] commitments)",
23
+ "function registerStorage(address storageAddress)",
24
+ "function renounceOwnership()",
25
+ "function storages(uint16) view returns (address)",
26
+ "function transferOwnership(address newOwner)",
27
+ "function upgradeTo(address newImplementation)",
28
+ "function upgradeToAndCall(address newImplementation, bytes data) payable",
29
+ "function usingStorageIndex() view returns (uint16)"
30
+ ];
31
+ // ref https://github.com/waku-org/waku-rln-contract/blob/19fded82bca07e7b535b429dc507cfb83f10dfcf/deployments/sepolia/WakuRlnStorage_0.json#L3
32
+ const RLN_STORAGE_ABI = [
33
+ "constructor(address _poseidonHasher, uint16 _contractIndex)",
34
+ "error DuplicateIdCommitment()",
35
+ "error FullTree()",
36
+ "error InvalidIdCommitment(uint256 idCommitment)",
37
+ "error NotImplemented()",
38
+ "event MemberRegistered(uint256 idCommitment, uint256 index)",
39
+ "event MemberWithdrawn(uint256 idCommitment, uint256 index)",
40
+ "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
41
+ "function DEPTH() view returns (uint256)",
42
+ "function MEMBERSHIP_DEPOSIT() view returns (uint256)",
43
+ "function SET_SIZE() view returns (uint256)",
44
+ "function contractIndex() view returns (uint16)",
45
+ "function deployedBlockNumber() view returns (uint32)",
46
+ "function idCommitmentIndex() view returns (uint256)",
47
+ "function isValidCommitment(uint256 idCommitment) view returns (bool)",
48
+ "function memberExists(uint256) view returns (bool)",
49
+ "function members(uint256) view returns (uint256)",
50
+ "function owner() view returns (address)",
51
+ "function poseidonHasher() view returns (address)",
52
+ "function register(uint256[] idCommitments)",
53
+ "function register(uint256 idCommitment) payable",
54
+ "function renounceOwnership()",
55
+ "function slash(uint256 idCommitment, address receiver, uint256[8] proof) pure",
56
+ "function stakedAmounts(uint256) view returns (uint256)",
57
+ "function transferOwnership(address newOwner)",
58
+ "function verifier() view returns (address)",
59
+ "function withdraw() pure",
60
+ "function withdrawalBalance(address) view returns (uint256)"
61
+ ];
62
+ const SEPOLIA_CONTRACT = {
63
+ chainId: 11155111,
64
+ address: "0xF471d71E9b1455bBF4b85d475afb9BB0954A29c4",
65
+ abi: RLN_REGISTRY_ABI
66
+ };
67
+
68
+ export { RLN_REGISTRY_ABI, RLN_STORAGE_ABI, SEPOLIA_CONTRACT };
@@ -0,0 +1,218 @@
1
+ import '../../../interfaces/dist/protocols.js';
2
+ import '../../../interfaces/dist/connection_manager.js';
3
+ import '../../../interfaces/dist/health_indicator.js';
4
+ import { hexToBytes } from '../../../utils/dist/bytes/index.js';
5
+ import { Logger } from '../../../utils/dist/logger/index.js';
6
+ import { MerkleRootTracker } from '../root_tracker.js';
7
+ import { zeroPadLE } from '../utils/bytes.js';
8
+ import '../utils/epoch.js';
9
+ import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI } from './constants.js';
10
+ import { Contract } from '../../../../node_modules/@ethersproject/contracts/lib.esm/index.js';
11
+ import { AddressZero } from '../../../../node_modules/@ethersproject/constants/lib.esm/addresses.js';
12
+
13
+ const log = new Logger("waku:rln:contract");
14
+ class RLNContract {
15
+ registryContract;
16
+ merkleRootTracker;
17
+ deployBlock;
18
+ storageIndex;
19
+ storageContract;
20
+ _membersFilter;
21
+ _members = new Map();
22
+ static async init(rlnInstance, options) {
23
+ const rlnContract = new RLNContract(rlnInstance, options);
24
+ await rlnContract.initStorageContract(options.signer);
25
+ await rlnContract.fetchMembers(rlnInstance);
26
+ rlnContract.subscribeToMembers(rlnInstance);
27
+ return rlnContract;
28
+ }
29
+ constructor(rlnInstance, { registryAddress, signer }) {
30
+ const initialRoot = rlnInstance.zerokit.getMerkleRoot();
31
+ this.registryContract = new Contract(registryAddress, RLN_REGISTRY_ABI, signer);
32
+ this.merkleRootTracker = new MerkleRootTracker(5, initialRoot);
33
+ }
34
+ async initStorageContract(signer, options = {}) {
35
+ const storageIndex = options?.storageIndex
36
+ ? options.storageIndex
37
+ : await this.registryContract.usingStorageIndex();
38
+ const storageAddress = await this.registryContract.storages(storageIndex);
39
+ if (!storageAddress || storageAddress === AddressZero) {
40
+ throw Error("No RLN Storage initialized on registry contract.");
41
+ }
42
+ this.storageIndex = storageIndex;
43
+ this.storageContract = new Contract(storageAddress, RLN_STORAGE_ABI, signer);
44
+ this._membersFilter = this.storageContract.filters.MemberRegistered();
45
+ this.deployBlock = await this.storageContract.deployedBlockNumber();
46
+ }
47
+ get registry() {
48
+ if (!this.registryContract) {
49
+ throw Error("Registry contract was not initialized");
50
+ }
51
+ return this.registryContract;
52
+ }
53
+ get contract() {
54
+ if (!this.storageContract) {
55
+ throw Error("Storage contract was not initialized");
56
+ }
57
+ return this.storageContract;
58
+ }
59
+ get members() {
60
+ const sortedMembers = Array.from(this._members.values()).sort((left, right) => left.index.toNumber() - right.index.toNumber());
61
+ return sortedMembers;
62
+ }
63
+ get membersFilter() {
64
+ if (!this._membersFilter) {
65
+ throw Error("Members filter was not initialized.");
66
+ }
67
+ return this._membersFilter;
68
+ }
69
+ async fetchMembers(rlnInstance, options = {}) {
70
+ const registeredMemberEvents = await queryFilter(this.contract, {
71
+ fromBlock: this.deployBlock,
72
+ ...options,
73
+ membersFilter: this.membersFilter
74
+ });
75
+ this.processEvents(rlnInstance, registeredMemberEvents);
76
+ }
77
+ processEvents(rlnInstance, events) {
78
+ const toRemoveTable = new Map();
79
+ const toInsertTable = new Map();
80
+ events.forEach((evt) => {
81
+ if (!evt.args) {
82
+ return;
83
+ }
84
+ if (evt.removed) {
85
+ const index = evt.args.index;
86
+ const toRemoveVal = toRemoveTable.get(evt.blockNumber);
87
+ if (toRemoveVal != undefined) {
88
+ toRemoveVal.push(index.toNumber());
89
+ toRemoveTable.set(evt.blockNumber, toRemoveVal);
90
+ }
91
+ else {
92
+ toRemoveTable.set(evt.blockNumber, [index.toNumber()]);
93
+ }
94
+ }
95
+ else {
96
+ let eventsPerBlock = toInsertTable.get(evt.blockNumber);
97
+ if (eventsPerBlock == undefined) {
98
+ eventsPerBlock = [];
99
+ }
100
+ eventsPerBlock.push(evt);
101
+ toInsertTable.set(evt.blockNumber, eventsPerBlock);
102
+ }
103
+ });
104
+ this.removeMembers(rlnInstance, toRemoveTable);
105
+ this.insertMembers(rlnInstance, toInsertTable);
106
+ }
107
+ insertMembers(rlnInstance, toInsert) {
108
+ toInsert.forEach((events, blockNumber) => {
109
+ events.forEach((evt) => {
110
+ const _idCommitment = evt?.args?.idCommitment;
111
+ const index = evt?.args?.index;
112
+ if (!_idCommitment || !index) {
113
+ return;
114
+ }
115
+ const idCommitment = zeroPadLE(hexToBytes(_idCommitment?._hex), 32);
116
+ rlnInstance.zerokit.insertMember(idCommitment);
117
+ this._members.set(index.toNumber(), {
118
+ index,
119
+ idCommitment: _idCommitment?._hex
120
+ });
121
+ });
122
+ const currentRoot = rlnInstance.zerokit.getMerkleRoot();
123
+ this.merkleRootTracker.pushRoot(blockNumber, currentRoot);
124
+ });
125
+ }
126
+ removeMembers(rlnInstance, toRemove) {
127
+ const removeDescending = new Map([...toRemove].sort().reverse());
128
+ removeDescending.forEach((indexes, blockNumber) => {
129
+ indexes.forEach((index) => {
130
+ if (this._members.has(index)) {
131
+ this._members.delete(index);
132
+ rlnInstance.zerokit.deleteMember(index);
133
+ }
134
+ });
135
+ this.merkleRootTracker.backFill(blockNumber);
136
+ });
137
+ }
138
+ subscribeToMembers(rlnInstance) {
139
+ this.contract.on(this.membersFilter, (_pubkey, _index, event) => this.processEvents(rlnInstance, [event]));
140
+ }
141
+ async registerWithIdentity(identity) {
142
+ if (this.storageIndex === undefined) {
143
+ throw Error("Cannot register credential, no storage contract index found.");
144
+ }
145
+ const txRegisterResponse = await this.registryContract["register(uint16,uint256)"](this.storageIndex, identity.IDCommitmentBigInt, { gasLimit: 100000 });
146
+ const txRegisterReceipt = await txRegisterResponse.wait();
147
+ // assumption: register(uint16,uint256) emits one event
148
+ const memberRegistered = txRegisterReceipt?.events?.[0];
149
+ if (!memberRegistered) {
150
+ return undefined;
151
+ }
152
+ const decodedData = this.contract.interface.decodeEventLog("MemberRegistered", memberRegistered.data);
153
+ const network = await this.registryContract.provider.getNetwork();
154
+ const address = this.registryContract.address;
155
+ const membershipId = decodedData.index.toNumber();
156
+ return {
157
+ identity,
158
+ membership: {
159
+ address,
160
+ treeIndex: membershipId,
161
+ chainId: network.chainId
162
+ }
163
+ };
164
+ }
165
+ roots() {
166
+ return this.merkleRootTracker.roots();
167
+ }
168
+ }
169
+ // these value should be tested on other networks
170
+ const FETCH_CHUNK = 5;
171
+ const BLOCK_RANGE = 3000;
172
+ async function queryFilter(contract, options) {
173
+ const { fromBlock, membersFilter, fetchRange = BLOCK_RANGE, fetchChunks = FETCH_CHUNK } = options;
174
+ if (!fromBlock) {
175
+ return contract.queryFilter(membersFilter);
176
+ }
177
+ if (!contract.signer.provider) {
178
+ throw Error("No provider found on the contract's signer.");
179
+ }
180
+ const toBlock = await contract.signer.provider.getBlockNumber();
181
+ if (toBlock - fromBlock < fetchRange) {
182
+ return contract.queryFilter(membersFilter);
183
+ }
184
+ const events = [];
185
+ const chunks = splitToChunks(fromBlock, toBlock, fetchRange);
186
+ for (const portion of takeN(chunks, fetchChunks)) {
187
+ const promises = portion.map(([left, right]) => ignoreErrors(contract.queryFilter(membersFilter, left, right), []));
188
+ const fetchedEvents = await Promise.all(promises);
189
+ events.push(fetchedEvents.flatMap((v) => v));
190
+ }
191
+ return events.flatMap((v) => v);
192
+ }
193
+ function splitToChunks(from, to, step) {
194
+ const chunks = [];
195
+ let left = from;
196
+ while (left < to) {
197
+ const right = left + step < to ? left + step : to;
198
+ chunks.push([left, right]);
199
+ left = right;
200
+ }
201
+ return chunks;
202
+ }
203
+ function* takeN(array, size) {
204
+ let start = 0;
205
+ while (start < array.length) {
206
+ const portion = array.slice(start, start + size);
207
+ yield portion;
208
+ start += size;
209
+ }
210
+ }
211
+ function ignoreErrors(promise, defaultValue) {
212
+ return promise.catch((err) => {
213
+ log.info(`Ignoring an error during query: ${err?.message}`);
214
+ return defaultValue;
215
+ });
216
+ }
217
+
218
+ export { RLNContract };
@@ -0,0 +1,9 @@
1
+ async function createRLN() {
2
+ // A dependency graph that contains any wasm must all be imported
3
+ // asynchronously. This file does the single async import, so
4
+ // that no one else needs to worry about it again.
5
+ const rlnModule = await import('./rln.js');
6
+ return rlnModule.create();
7
+ }
8
+
9
+ export { createRLN };
@@ -0,0 +1,30 @@
1
+ import { buildBigIntFromUint8Array } from './utils/bytes.js';
2
+ import './utils/epoch.js';
3
+
4
+ class IdentityCredential {
5
+ IDTrapdoor;
6
+ IDNullifier;
7
+ IDSecretHash;
8
+ IDCommitment;
9
+ IDCommitmentBigInt;
10
+ constructor(IDTrapdoor, IDNullifier, IDSecretHash, IDCommitment, IDCommitmentBigInt) {
11
+ this.IDTrapdoor = IDTrapdoor;
12
+ this.IDNullifier = IDNullifier;
13
+ this.IDSecretHash = IDSecretHash;
14
+ this.IDCommitment = IDCommitment;
15
+ this.IDCommitmentBigInt = IDCommitmentBigInt;
16
+ }
17
+ static fromBytes(memKeys) {
18
+ if (memKeys.length < 128) {
19
+ throw new Error("Invalid memKeys length - must be at least 128 bytes");
20
+ }
21
+ const idTrapdoor = memKeys.subarray(0, 32);
22
+ const idNullifier = memKeys.subarray(32, 64);
23
+ const idSecretHash = memKeys.subarray(64, 96);
24
+ const idCommitment = memKeys.subarray(96, 128);
25
+ const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment, 32);
26
+ return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment, idCommitmentBigInt);
27
+ }
28
+ }
29
+
30
+ export { IdentityCredential };
@@ -0,0 +1,31 @@
1
+ import { cipherDecrypt as cipherDecrypt_1 } from '../../node_modules/@chainsafe/bls-keystore/lib/cipher.js';
2
+ import { kdf as kdf_2 } from '../../node_modules/@chainsafe/bls-keystore/lib/kdf.js';
3
+ import { normalizePassword as normalizePassword_1 } from '../../node_modules/@chainsafe/bls-keystore/lib/password.js';
4
+ import { keccak256 } from '../../../../node_modules/ethereum-cryptography/esm/keccak.js';
5
+ import { hexToBytes } from '../../../../node_modules/ethereum-cryptography/esm/utils.js';
6
+ import { concatBytes, bytesToHex } from '../../../../node_modules/@noble/hashes/esm/utils.js';
7
+
8
+ // eipKeystore supports only sha256 checksum so we just make an assumption it is keccak256
9
+ const validateChecksum = async (password, eipKeystore) => {
10
+ const computedChecksum = await keccak256Checksum(password, eipKeystore);
11
+ return computedChecksum === eipKeystore.crypto.checksum.message;
12
+ };
13
+ // decrypt from @chainsafe/bls-keystore supports only sha256
14
+ // but nwaku uses keccak256
15
+ // https://github.com/waku-org/nwaku/blob/25d6e52e3804d15f9b61bc4cc6dd448540c072a1/waku/waku_keystore/keyfile.nim#L367
16
+ const decryptEipKeystore = async (password, eipKeystore) => {
17
+ const decryptionKey = await kdf_2(eipKeystore.crypto.kdf, normalizePassword_1(password));
18
+ const isChecksumValid = await validateChecksum(password, eipKeystore);
19
+ if (!isChecksumValid) {
20
+ throw Error("Password is invalid.");
21
+ }
22
+ return cipherDecrypt_1(eipKeystore.crypto.cipher, decryptionKey.slice(0, 16));
23
+ };
24
+ const keccak256Checksum = async (password, eipKeystore) => {
25
+ const key = await kdf_2(eipKeystore.crypto.kdf, normalizePassword_1(password));
26
+ const payload = concatBytes(key.slice(16), hexToBytes(eipKeystore.crypto.cipher.message));
27
+ const ciphertext = keccak256(payload);
28
+ return bytesToHex(ciphertext);
29
+ };
30
+
31
+ export { decryptEipKeystore, keccak256Checksum };
@@ -0,0 +1,119 @@
1
+ /* eslint eslint-comments/no-unlimited-disable: "off" */
2
+ // This file was generated by /scripts/schema-validation-codegen.ts
3
+ // Do not modify this file by hand.
4
+ /* eslint-disable */
5
+ // @ts-ignore
6
+ const Credential = validate11;
7
+ function validate11(data, { instancePath = "", parentData, parentDataProperty, rootData = data } = {}) { let vErrors = null; let errors = 0; {
8
+ if (data && typeof data == "object" && !Array.isArray(data)) {
9
+ let missing0;
10
+ if ((data.crypto === undefined) && (missing0 = "crypto")) {
11
+ validate11.errors = [{ instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: missing0 }, message: "must have required property '" + missing0 + "'" }];
12
+ return false;
13
+ }
14
+ else {
15
+ if (data.crypto !== undefined) {
16
+ let data0 = data.crypto;
17
+ {
18
+ if (data0 && typeof data0 == "object" && !Array.isArray(data0)) {
19
+ let missing1;
20
+ if (((((((data0.cipher === undefined) && (missing1 = "cipher")) || ((data0.cipherparams === undefined) && (missing1 = "cipherparams"))) || ((data0.ciphertext === undefined) && (missing1 = "ciphertext"))) || ((data0.kdf === undefined) && (missing1 = "kdf"))) || ((data0.kdfparams === undefined) && (missing1 = "kdfparams"))) || ((data0.mac === undefined) && (missing1 = "mac"))) {
21
+ validate11.errors = [{ instancePath: instancePath + "/crypto", schemaPath: "#/properties/crypto/required", keyword: "required", params: { missingProperty: missing1 }, message: "must have required property '" + missing1 + "'" }];
22
+ return false;
23
+ }
24
+ else {
25
+ if (data0.cipher !== undefined) {
26
+ const _errs3 = errors;
27
+ if (typeof data0.cipher !== "string") {
28
+ validate11.errors = [{ instancePath: instancePath + "/crypto/cipher", schemaPath: "#/properties/crypto/properties/cipher/type", keyword: "type", params: { type: "string" }, message: "must be string" }];
29
+ return false;
30
+ }
31
+ var valid1 = _errs3 === errors;
32
+ }
33
+ else {
34
+ var valid1 = true;
35
+ }
36
+ if (valid1) {
37
+ if (data0.cipherparams !== undefined) {
38
+ let data2 = data0.cipherparams;
39
+ const _errs5 = errors;
40
+ if (!(data2 && typeof data2 == "object" && !Array.isArray(data2))) {
41
+ validate11.errors = [{ instancePath: instancePath + "/crypto/cipherparams", schemaPath: "#/properties/crypto/properties/cipherparams/type", keyword: "type", params: { type: "object" }, message: "must be object" }];
42
+ return false;
43
+ }
44
+ var valid1 = _errs5 === errors;
45
+ }
46
+ else {
47
+ var valid1 = true;
48
+ }
49
+ if (valid1) {
50
+ if (data0.ciphertext !== undefined) {
51
+ const _errs7 = errors;
52
+ if (typeof data0.ciphertext !== "string") {
53
+ validate11.errors = [{ instancePath: instancePath + "/crypto/ciphertext", schemaPath: "#/properties/crypto/properties/ciphertext/type", keyword: "type", params: { type: "string" }, message: "must be string" }];
54
+ return false;
55
+ }
56
+ var valid1 = _errs7 === errors;
57
+ }
58
+ else {
59
+ var valid1 = true;
60
+ }
61
+ if (valid1) {
62
+ if (data0.kdf !== undefined) {
63
+ const _errs9 = errors;
64
+ if (typeof data0.kdf !== "string") {
65
+ validate11.errors = [{ instancePath: instancePath + "/crypto/kdf", schemaPath: "#/properties/crypto/properties/kdf/type", keyword: "type", params: { type: "string" }, message: "must be string" }];
66
+ return false;
67
+ }
68
+ var valid1 = _errs9 === errors;
69
+ }
70
+ else {
71
+ var valid1 = true;
72
+ }
73
+ if (valid1) {
74
+ if (data0.kdfparams !== undefined) {
75
+ let data5 = data0.kdfparams;
76
+ const _errs11 = errors;
77
+ if (!(data5 && typeof data5 == "object" && !Array.isArray(data5))) {
78
+ validate11.errors = [{ instancePath: instancePath + "/crypto/kdfparams", schemaPath: "#/properties/crypto/properties/kdfparams/type", keyword: "type", params: { type: "object" }, message: "must be object" }];
79
+ return false;
80
+ }
81
+ var valid1 = _errs11 === errors;
82
+ }
83
+ else {
84
+ var valid1 = true;
85
+ }
86
+ if (valid1) {
87
+ if (data0.mac !== undefined) {
88
+ const _errs13 = errors;
89
+ if (typeof data0.mac !== "string") {
90
+ validate11.errors = [{ instancePath: instancePath + "/crypto/mac", schemaPath: "#/properties/crypto/properties/mac/type", keyword: "type", params: { type: "string" }, message: "must be string" }];
91
+ return false;
92
+ }
93
+ var valid1 = _errs13 === errors;
94
+ }
95
+ else {
96
+ var valid1 = true;
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ else {
106
+ validate11.errors = [{ instancePath: instancePath + "/crypto", schemaPath: "#/properties/crypto/type", keyword: "type", params: { type: "object" }, message: "must be object" }];
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ else {
114
+ validate11.errors = [{ instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" }];
115
+ return false;
116
+ }
117
+ } validate11.errors = vErrors; return errors === 0; }
118
+
119
+ export { Credential };