@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.
- package/README.md +12 -108
- package/bundle/_virtual/__node-resolve_empty.js +6 -0
- package/bundle/_virtual/_assert.js +3 -0
- package/bundle/_virtual/_commonjs-dynamic-modules.js +5 -0
- package/bundle/_virtual/_commonjsHelpers.js +32 -0
- package/bundle/_virtual/_node-resolve_empty.js +3 -0
- package/bundle/_virtual/_sha2.js +3 -0
- package/bundle/_virtual/_u64.js +3 -0
- package/bundle/_virtual/aes.js +3 -0
- package/bundle/_virtual/bn.js +3 -0
- package/bundle/_virtual/browser.js +3 -0
- package/bundle/_virtual/checksum.js +3 -0
- package/bundle/_virtual/cipher.js +3 -0
- package/bundle/_virtual/class.js +3 -0
- package/bundle/_virtual/common.js +3 -0
- package/bundle/_virtual/common2.js +3 -0
- package/bundle/_virtual/cryptoBrowser.js +3 -0
- package/bundle/_virtual/functional.js +3 -0
- package/bundle/_virtual/hash.js +3 -0
- package/bundle/_virtual/hmac.js +3 -0
- package/bundle/_virtual/index.js +3 -0
- package/bundle/_virtual/index2.js +6 -0
- package/bundle/_virtual/inherits_browser.js +3 -0
- package/bundle/_virtual/kdf.js +3 -0
- package/bundle/_virtual/lodash.js +3 -0
- package/bundle/_virtual/password.js +3 -0
- package/bundle/_virtual/pbkdf2.js +3 -0
- package/bundle/_virtual/pbkdf22.js +3 -0
- package/bundle/_virtual/random.js +3 -0
- package/bundle/_virtual/ripemd.js +3 -0
- package/bundle/_virtual/schema-validation-generated.js +3 -0
- package/bundle/_virtual/schema-validation.js +3 -0
- package/bundle/_virtual/scrypt.js +3 -0
- package/bundle/_virtual/scrypt2.js +3 -0
- package/bundle/_virtual/sha.js +3 -0
- package/bundle/_virtual/sha256.js +3 -0
- package/bundle/_virtual/sha2562.js +3 -0
- package/bundle/_virtual/sha3.js +3 -0
- package/bundle/_virtual/sha512.js +3 -0
- package/bundle/_virtual/types.js +3 -0
- package/bundle/_virtual/utils.js +3 -0
- package/bundle/_virtual/utils2.js +3 -0
- package/bundle/_virtual/utils3.js +3 -0
- package/bundle/index.js +12 -10
- package/bundle/node_modules/@ethersproject/abi/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/abi-coder.js +96 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js +148 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/address.js +26 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js +20 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/array.js +210 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/boolean.js +18 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/bytes.js +30 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js +26 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/null.js +22 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/number.js +43 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/string.js +19 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/tuple.js +58 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/fragments.js +854 -0
- package/bundle/node_modules/@ethersproject/abi/lib.esm/interface.js +609 -0
- package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/index.js +66 -0
- package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/index.js +302 -0
- package/bundle/node_modules/@ethersproject/address/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/address/lib.esm/index.js +110 -0
- package/bundle/node_modules/@ethersproject/base64/lib.esm/base64.js +20 -0
- package/bundle/node_modules/@ethersproject/basex/lib.esm/index.js +120 -0
- package/bundle/node_modules/@ethersproject/bignumber/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js +287 -0
- package/bundle/node_modules/@ethersproject/bytes/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/bytes/lib.esm/index.js +402 -0
- package/bundle/node_modules/@ethersproject/constants/lib.esm/addresses.js +3 -0
- package/bundle/node_modules/@ethersproject/constants/lib.esm/bignumbers.js +8 -0
- package/bundle/node_modules/@ethersproject/constants/lib.esm/hashes.js +3 -0
- package/bundle/node_modules/@ethersproject/contracts/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/contracts/lib.esm/index.js +893 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js +256 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js +36 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js +135 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/id.js +8 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/namehash.js +64 -0
- package/bundle/node_modules/@ethersproject/hash/lib.esm/typed-data.js +443 -0
- package/bundle/node_modules/@ethersproject/keccak256/lib.esm/index.js +8 -0
- package/bundle/node_modules/@ethersproject/keccak256/node_modules/js-sha3/src/sha3.js +660 -0
- package/bundle/node_modules/@ethersproject/logger/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/logger/lib.esm/index.js +352 -0
- package/bundle/node_modules/@ethersproject/networks/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/networks/lib.esm/index.js +248 -0
- package/bundle/node_modules/@ethersproject/properties/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/properties/lib.esm/index.js +127 -0
- package/bundle/node_modules/@ethersproject/providers/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/providers/lib.esm/base-provider.js +2007 -0
- package/bundle/node_modules/@ethersproject/providers/lib.esm/formatter.js +422 -0
- package/bundle/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js +674 -0
- package/bundle/node_modules/@ethersproject/providers/lib.esm/web3-provider.js +132 -0
- package/bundle/node_modules/@ethersproject/rlp/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/rlp/lib.esm/index.js +120 -0
- package/bundle/node_modules/@ethersproject/sha2/lib.esm/sha2.js +8 -0
- package/bundle/node_modules/@ethersproject/signing-key/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js +2430 -0
- package/bundle/node_modules/@ethersproject/signing-key/lib.esm/index.js +76 -0
- package/bundle/node_modules/@ethersproject/strings/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/strings/lib.esm/utf8.js +219 -0
- package/bundle/node_modules/@ethersproject/transactions/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/transactions/lib.esm/index.js +279 -0
- package/bundle/node_modules/@ethersproject/web/lib.esm/_version.js +3 -0
- package/bundle/node_modules/@ethersproject/web/lib.esm/geturl.js +69 -0
- package/bundle/node_modules/@ethersproject/web/lib.esm/index.js +404 -0
- package/bundle/node_modules/@iden3/js-crypto/dist/browser/esm/index.js +7 -0
- package/bundle/node_modules/@multiformats/multiaddr/dist/src/convert.js +15 -0
- package/bundle/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js +20 -0
- package/bundle/node_modules/@multiformats/multiaddr/dist/src/protocols-table.js +92 -0
- package/bundle/node_modules/@noble/hashes/esm/_assert.js +37 -0
- package/bundle/node_modules/@noble/hashes/esm/_md.js +132 -0
- package/bundle/node_modules/@noble/hashes/esm/_u64.js +29 -0
- package/bundle/node_modules/@noble/hashes/esm/sha256.js +113 -0
- package/bundle/node_modules/@noble/hashes/esm/sha3.js +210 -0
- package/bundle/node_modules/@noble/hashes/esm/utils.js +144 -0
- package/bundle/node_modules/@stablelib/binary/lib/binary.js +22 -0
- package/bundle/node_modules/@stablelib/chacha/lib/chacha.js +245 -0
- package/bundle/node_modules/@stablelib/wipe/lib/wipe.js +26 -0
- package/bundle/node_modules/@waku/zerokit-rln-wasm/rln_wasm.js +756 -0
- package/bundle/node_modules/bech32/index.js +187 -0
- package/bundle/node_modules/bn.js/lib/bn.js +3361 -0
- package/bundle/node_modules/debug/src/browser.js +283 -0
- package/bundle/node_modules/debug/src/common.js +295 -0
- package/bundle/node_modules/ethereum-cryptography/esm/keccak.js +10 -0
- package/bundle/node_modules/ethereum-cryptography/esm/sha256.js +6 -0
- package/bundle/node_modules/ethereum-cryptography/esm/utils.js +24 -0
- package/bundle/node_modules/hash.js/lib/hash/common.js +97 -0
- package/bundle/node_modules/hash.js/lib/hash/hmac.js +51 -0
- package/bundle/node_modules/hash.js/lib/hash/ripemd.js +152 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/1.js +81 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/224.js +33 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/256.js +113 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/384.js +39 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/512.js +336 -0
- package/bundle/node_modules/hash.js/lib/hash/sha/common.js +53 -0
- package/bundle/node_modules/hash.js/lib/hash/sha.js +14 -0
- package/bundle/node_modules/hash.js/lib/hash/utils.js +282 -0
- package/bundle/node_modules/hash.js/lib/hash.js +33 -0
- package/bundle/node_modules/inherits/inherits_browser.js +33 -0
- package/bundle/node_modules/it-length-prefixed/dist/src/decode.js +6 -0
- package/bundle/node_modules/lodash/lodash.js +17207 -0
- package/bundle/node_modules/minimalistic-assert/index.js +13 -0
- package/bundle/node_modules/ms/index.js +172 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base.js +205 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base10.js +9 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base16.js +16 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base2.js +10 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base256emoji.js +41 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base32.js +58 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base36.js +14 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base58.js +14 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base64.js +28 -0
- package/bundle/node_modules/multiformats/dist/src/bases/base8.js +10 -0
- package/bundle/node_modules/multiformats/dist/src/bases/identity.js +11 -0
- package/bundle/node_modules/multiformats/dist/src/basics.js +15 -0
- package/bundle/node_modules/multiformats/dist/src/bytes.js +18 -0
- package/bundle/node_modules/multiformats/dist/src/codecs/json.js +2 -0
- package/bundle/node_modules/multiformats/dist/src/vendor/base-x.js +170 -0
- package/bundle/node_modules/protons-runtime/dist/src/codec.js +20 -0
- package/bundle/node_modules/protons-runtime/dist/src/codecs/enum.js +24 -0
- package/bundle/node_modules/protons-runtime/dist/src/codecs/message.js +7 -0
- package/bundle/node_modules/protons-runtime/dist/src/decode.js +8 -0
- package/bundle/node_modules/protons-runtime/dist/src/encode.js +11 -0
- package/bundle/node_modules/protons-runtime/dist/src/index.js +30 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/float.js +54 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/longbits.js +175 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/pool.js +28 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/reader.js +367 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/utf8.js +99 -0
- package/bundle/node_modules/protons-runtime/dist/src/utils/writer.js +438 -0
- package/bundle/node_modules/uint8-varint/dist/src/index.js +124 -0
- package/bundle/node_modules/uint8arrays/dist/src/alloc.js +17 -0
- package/bundle/node_modules/uint8arrays/dist/src/from-string.js +19 -0
- package/bundle/node_modules/uint8arrays/dist/src/util/bases.js +49 -0
- package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +21 -0
- package/bundle/packages/core/dist/lib/connection_manager/keep_alive_manager.js +18 -0
- package/bundle/packages/core/dist/lib/filter/filter.js +27 -0
- package/bundle/packages/core/dist/lib/light_push/light_push.js +27 -0
- package/bundle/packages/core/dist/lib/message/version_0.js +154 -0
- package/bundle/packages/core/dist/lib/metadata/metadata.js +27 -0
- package/bundle/packages/core/dist/lib/store/store.js +27 -0
- package/bundle/packages/interfaces/dist/connection_manager.js +19 -0
- package/bundle/packages/interfaces/dist/constants.js +6 -0
- package/bundle/packages/interfaces/dist/health_indicator.js +12 -0
- package/bundle/packages/interfaces/dist/protocols.js +97 -0
- package/bundle/packages/proto/dist/generated/filter.js +445 -0
- package/bundle/packages/proto/dist/generated/filter_v2.js +424 -0
- package/bundle/packages/proto/dist/generated/light_push.js +389 -0
- package/bundle/packages/proto/dist/generated/message.js +213 -0
- package/bundle/packages/proto/dist/generated/metadata.js +130 -0
- package/bundle/packages/proto/dist/generated/peer_exchange.js +209 -0
- package/bundle/packages/proto/dist/generated/sds_message.js +105 -0
- package/bundle/packages/proto/dist/generated/store_v3.js +490 -0
- package/bundle/packages/proto/dist/generated/topic_only_message.js +61 -0
- package/bundle/packages/rln/dist/codec.js +93 -0
- package/bundle/packages/rln/dist/contract/abi/rlnv2.js +394 -0
- package/bundle/packages/rln/dist/contract/constants.js +33 -0
- package/bundle/packages/rln/dist/contract/rln_contract.js +427 -0
- package/bundle/packages/rln/dist/create.js +9 -0
- package/bundle/packages/rln/dist/identity.js +76 -0
- package/bundle/packages/rln/dist/keystore/cipher.js +31 -0
- package/bundle/packages/rln/dist/keystore/credential_validation_generated.js +119 -0
- package/bundle/packages/rln/dist/keystore/keystore.js +223 -0
- package/bundle/packages/rln/dist/keystore/keystore_validation_generated.js +74 -0
- package/bundle/packages/rln/dist/keystore/schema_validator.js +20 -0
- package/bundle/packages/rln/dist/message.js +51 -0
- package/bundle/packages/rln/dist/proof.js +54 -0
- package/bundle/packages/rln/dist/resources/verification_key.js +112 -0
- package/bundle/packages/rln/dist/resources/witness_calculator.js +330 -0
- package/bundle/packages/rln/dist/rln.js +204 -0
- package/bundle/packages/rln/dist/root_tracker.js +76 -0
- package/bundle/packages/rln/dist/utils/bytes.js +65 -0
- package/bundle/packages/rln/dist/utils/epoch.js +39 -0
- package/bundle/packages/rln/dist/utils/hash.js +10 -0
- package/bundle/packages/rln/dist/utils/metamask.js +14 -0
- package/bundle/packages/rln/dist/zerokit.js +122 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/checksum.js +52 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/cipher.js +65 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/class.js +99 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/functional.js +103 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/index.js +28 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/kdf.js +78 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/password.js +17 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1253 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation.js +40 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/types.js +5 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +103 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +41 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +17 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +23 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +12 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +77 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/index.js +9 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/md5.js +215 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/nil.js +3 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/parse.js +35 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/regex.js +3 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/rng.js +21 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/stringify.js +31 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v1.js +96 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v3.js +6 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v35.js +66 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v4.js +24 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v5.js +6 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/validate.js +7 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/version.js +11 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/_assert.js +52 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +124 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/_u64.js +71 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/cryptoBrowser.js +10 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +88 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +99 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +233 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +133 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +243 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +167 -0
- package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/native.js +4 -0
- package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/rng.js +13 -0
- package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/stringify.js +28 -0
- package/bundle/packages/rln/node_modules/uuid/dist/esm-browser/v4.js +19 -0
- package/bundle/packages/utils/dist/bytes/index.js +44 -0
- package/bundle/packages/utils/dist/common/sharding/index.js +91 -0
- package/bundle/packages/utils/dist/logger/index.js +31 -0
- package/bundle/resources/rln.wasm +0 -0
- package/bundle/resources/rln_final.zkey +0 -0
- package/bundle/resources/verification_key.d.ts +13 -0
- package/bundle/resources/verification_key.js +112 -0
- package/bundle/resources/witness_calculator.d.ts +11 -0
- package/bundle/resources/witness_calculator.js +328 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/identity.test.d.ts +1 -0
- package/dist/__tests__/identity.test.js +40 -0
- package/dist/__tests__/identity.test.js.map +1 -0
- package/dist/codec.d.ts +39 -0
- package/dist/codec.js +77 -0
- package/dist/codec.js.map +1 -0
- package/dist/contract/abi/rlnv2.d.ts +42 -0
- package/dist/contract/abi/rlnv2.js +393 -0
- package/dist/contract/abi/rlnv2.js.map +1 -0
- package/dist/contract/constants.d.ts +68 -0
- package/dist/contract/constants.js +31 -0
- package/dist/contract/constants.js.map +1 -0
- package/dist/contract/index.d.ts +2 -0
- package/dist/contract/index.js +3 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/rln_contract.d.ts +119 -0
- package/dist/contract/rln_contract.js +421 -0
- package/dist/contract/rln_contract.js.map +1 -0
- package/dist/create.d.ts +2 -0
- package/dist/create.js +8 -0
- package/dist/create.js.map +1 -0
- package/dist/identity.d.ts +16 -0
- package/dist/identity.js +73 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/keystore/cipher.d.ts +4 -0
- package/dist/keystore/cipher.js +28 -0
- package/dist/keystore/cipher.js.map +1 -0
- package/dist/keystore/credential_validation_generated.d.ts +8 -0
- package/dist/keystore/credential_validation_generated.js +121 -0
- package/dist/keystore/credential_validation_generated.js.map +1 -0
- package/dist/keystore/index.d.ts +4 -0
- package/dist/keystore/index.js +3 -0
- package/dist/keystore/index.js.map +1 -0
- package/dist/keystore/keystore.d.ts +50 -0
- package/dist/keystore/keystore.js +205 -0
- package/dist/keystore/keystore.js.map +1 -0
- package/dist/keystore/keystore_validation_generated.d.ts +8 -0
- package/dist/keystore/keystore_validation_generated.js +75 -0
- package/dist/keystore/keystore_validation_generated.js.map +1 -0
- package/dist/keystore/schema_validator.d.ts +2 -0
- package/dist/keystore/schema_validator.js +18 -0
- package/dist/keystore/schema_validator.js.map +1 -0
- package/dist/keystore/types.d.ts +29 -0
- package/dist/keystore/types.js +2 -0
- package/dist/keystore/types.js.map +1 -0
- package/dist/message.d.ts +18 -0
- package/dist/message.js +49 -0
- package/dist/message.js.map +1 -0
- package/dist/proof.d.ts +21 -0
- package/dist/proof.js +50 -0
- package/dist/proof.js.map +1 -0
- package/dist/resources/rln.wasm +0 -0
- package/dist/resources/rln_final.zkey +0 -0
- package/dist/resources/verification_key.d.ts +13 -0
- package/dist/resources/verification_key.js +112 -0
- package/dist/resources/witness_calculator.d.ts +11 -0
- package/dist/resources/witness_calculator.js +328 -0
- package/dist/rln.d.ts +59 -13
- package/dist/rln.js +164 -81
- package/dist/rln.js.map +1 -1
- package/dist/root_tracker.d.ts +10 -0
- package/dist/root_tracker.js +75 -0
- package/dist/root_tracker.js.map +1 -0
- package/dist/utils/bytes.d.ts +20 -0
- package/dist/utils/bytes.js +64 -0
- package/dist/utils/bytes.js.map +1 -0
- package/dist/utils/epoch.d.ts +3 -0
- package/dist/utils/epoch.js +23 -0
- package/dist/utils/epoch.js.map +1 -0
- package/dist/utils/hash.d.ts +2 -0
- package/dist/utils/hash.js +13 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/metamask.d.ts +2 -0
- package/dist/utils/metamask.js +12 -0
- package/dist/utils/metamask.js.map +1 -0
- package/dist/zerokit.d.ts +19 -0
- package/dist/zerokit.js +119 -0
- package/dist/zerokit.js.map +1 -0
- package/package.json +1 -126
- package/src/__tests__/identity.test.ts +50 -0
- package/src/codec.ts +134 -0
- package/src/contract/abi/rlnv2.ts +392 -0
- package/src/contract/constants.ts +35 -0
- package/src/contract/index.ts +2 -0
- package/src/contract/rln_contract.ts +673 -0
- package/src/create.ts +9 -0
- package/src/identity.ts +101 -0
- package/src/index.ts +24 -10
- package/src/keystore/cipher.ts +54 -0
- package/src/keystore/credential_validation_generated.ts +7 -0
- package/src/keystore/index.ts +5 -0
- package/src/keystore/keystore.ts +330 -0
- package/src/keystore/keystore_validation_generated.ts +7 -0
- package/src/keystore/schema_validator.ts +34 -0
- package/src/keystore/types.ts +36 -0
- package/src/message.ts +70 -0
- package/src/proof.ts +69 -0
- package/src/resources/verification_key.d.ts +13 -0
- package/src/resources/witness_calculator.d.ts +11 -0
- package/src/rln.ts +270 -106
- package/src/root_tracker.ts +92 -0
- package/src/utils/bytes.ts +84 -0
- package/src/utils/epoch.ts +30 -0
- package/src/utils/hash.ts +15 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/metamask.ts +17 -0
- package/src/zerokit.ts +214 -0
- package/bundle/02bce7e5f3bcf834.wasm +0 -0
- package/bundle/rln-f87f6dbe.js +0 -563
- package/dist/resources.d.ts +0 -4
- package/dist/resources.js +0 -5
- package/dist/resources.js.map +0 -1
- package/dist/witness_calculator.d.ts +0 -16
- package/dist/witness_calculator.js +0 -291
- package/dist/witness_calculator.js.map +0 -1
- package/dist/zerokit/rln_wasm.d.ts +0 -1
- package/dist/zerokit/rln_wasm.js +0 -2
- package/dist/zerokit/rln_wasm.js.map +0 -1
- package/dist/zerokit/rln_wasm_bg.d.ts +0 -108
- package/dist/zerokit/rln_wasm_bg.js +0 -592
- package/dist/zerokit/rln_wasm_bg.js.map +0 -1
- package/dist/zerokit/rln_wasm_bg.wasm +0 -0
- package/src/resources.ts +0 -10
- 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
|