UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

45 lines (42 loc) 1.72 kB
import { fromString } from '../../../../node_modules/uint8arrays/dist/src/from-string.js'; import '../../../../node_modules/multiformats/dist/src/bases/base10.js'; import '../../../../node_modules/multiformats/dist/src/bases/base16.js'; import '../../../../node_modules/multiformats/dist/src/bases/base2.js'; import '../../../../node_modules/multiformats/dist/src/bases/base256emoji.js'; import '../../../../node_modules/multiformats/dist/src/bases/base32.js'; import '../../../../node_modules/multiformats/dist/src/bases/base36.js'; import '../../../../node_modules/multiformats/dist/src/bases/base58.js'; import '../../../../node_modules/multiformats/dist/src/bases/base64.js'; import '../../../../node_modules/multiformats/dist/src/bases/base8.js'; import '../../../../node_modules/multiformats/dist/src/bases/identity.js'; import '../../../../node_modules/multiformats/dist/src/codecs/json.js'; /** * Convert input to a byte array. * * Handles both `0x` prefixed and non-prefixed strings. */ function hexToBytes(hex) { if (typeof hex === "string") { const _hex = hex.replace(/^0x/i, ""); return fromString(_hex.toLowerCase(), "base16"); } return hex; } /** * Encode utf-8 string to byte array. */ const utf8ToBytes = (s) => fromString(s, "utf8"); /** * Concatenate using Uint8Arrays as `Buffer` has a different behavior with `DataView` */ function concat(byteArrays, totalLength) { const len = byteArrays.reduce((acc, curr) => acc + curr.length, 0); const res = new Uint8Array(len); let offset = 0; for (const bytes of byteArrays) { res.set(bytes, offset); offset += bytes.length; } return res; } export { concat, hexToBytes, utf8ToBytes };