@waku/rln 0.1.6-b58de3a.0 → 0.1.6-c7a2055.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 (45) hide show
  1. package/bundle/_virtual/utils.js +2 -2
  2. package/bundle/_virtual/utils2.js +2 -2
  3. package/bundle/index.js +1 -1
  4. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/_sha2.js +1 -1
  5. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/hmac.js +1 -1
  6. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/pbkdf2.js +1 -1
  7. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/scrypt.js +1 -1
  8. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/sha256.js +1 -1
  9. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/sha512.js +1 -1
  10. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/@noble/hashes/utils.js +1 -1
  11. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +1 -1
  12. package/bundle/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +2 -2
  13. package/bundle/packages/rln/dist/contract/constants.js +1 -7
  14. package/bundle/packages/rln/dist/contract/rln_base_contract.js +3 -10
  15. package/bundle/packages/rln/dist/credentials_manager.js +8 -13
  16. package/bundle/packages/rln/dist/identity.js +2 -2
  17. package/bundle/packages/rln/dist/keystore/keystore.js +10 -16
  18. package/bundle/packages/rln/dist/utils/bytes.js +9 -3
  19. package/dist/.tsbuildinfo +1 -1
  20. package/dist/contract/constants.d.ts +0 -6
  21. package/dist/contract/constants.js +0 -6
  22. package/dist/contract/constants.js.map +1 -1
  23. package/dist/contract/rln_base_contract.d.ts +0 -5
  24. package/dist/contract/rln_base_contract.js +3 -10
  25. package/dist/contract/rln_base_contract.js.map +1 -1
  26. package/dist/credentials_manager.js +8 -13
  27. package/dist/credentials_manager.js.map +1 -1
  28. package/dist/identity.js +2 -2
  29. package/dist/identity.js.map +1 -1
  30. package/dist/keystore/keystore.js +10 -16
  31. package/dist/keystore/keystore.js.map +1 -1
  32. package/dist/utils/bytes.d.ts +6 -1
  33. package/dist/utils/bytes.js +8 -2
  34. package/dist/utils/bytes.js.map +1 -1
  35. package/dist/utils/index.d.ts +1 -1
  36. package/dist/utils/index.js +1 -1
  37. package/dist/utils/index.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/contract/constants.ts +0 -9
  40. package/src/contract/rln_base_contract.ts +3 -17
  41. package/src/credentials_manager.ts +8 -21
  42. package/src/identity.ts +2 -2
  43. package/src/keystore/keystore.ts +16 -36
  44. package/src/utils/bytes.ts +11 -5
  45. package/src/utils/index.ts +1 -1
@@ -14,7 +14,7 @@ import {
14
14
  import _ from "lodash";
15
15
  import { v4 as uuidV4 } from "uuid";
16
16
 
17
- import { buildBigIntFromUint8ArrayLE } from "../utils/bytes.js";
17
+ import { buildBigIntFromUint8Array } from "../utils/bytes.js";
18
18
 
19
19
  import { decryptEipKeystore, keccak256Checksum } from "./cipher.js";
20
20
  import { isCredentialValid, isKeystoreValid } from "./schema_validator.js";
@@ -246,9 +246,6 @@ export class Keystore {
246
246
  private static fromBytesToIdentity(
247
247
  bytes: Uint8Array
248
248
  ): undefined | KeystoreEntity {
249
- function fromLittleEndian(bytes: Uint8Array): Uint8Array {
250
- return new Uint8Array(bytes).reverse();
251
- }
252
249
  try {
253
250
  const str = bytesToUtf8(bytes);
254
251
  const obj = JSON.parse(str);
@@ -256,32 +253,22 @@ export class Keystore {
256
253
  // TODO: add runtime validation of nwaku credentials
257
254
  return {
258
255
  identity: {
259
- IDCommitment: fromLittleEndian(
260
- Keystore.fromArraylikeToBytes(
261
- _.get(obj, "identityCredential.idCommitment", [])
262
- )
256
+ IDCommitment: Keystore.fromArraylikeToBytes(
257
+ _.get(obj, "identityCredential.idCommitment", [])
263
258
  ),
264
- IDTrapdoor: fromLittleEndian(
265
- Keystore.fromArraylikeToBytes(
266
- _.get(obj, "identityCredential.idTrapdoor", [])
267
- )
259
+ IDTrapdoor: Keystore.fromArraylikeToBytes(
260
+ _.get(obj, "identityCredential.idTrapdoor", [])
268
261
  ),
269
- IDNullifier: fromLittleEndian(
270
- Keystore.fromArraylikeToBytes(
271
- _.get(obj, "identityCredential.idNullifier", [])
272
- )
262
+ IDNullifier: Keystore.fromArraylikeToBytes(
263
+ _.get(obj, "identityCredential.idNullifier", [])
273
264
  ),
274
- IDCommitmentBigInt: buildBigIntFromUint8ArrayLE(
275
- fromLittleEndian(
276
- Keystore.fromArraylikeToBytes(
277
- _.get(obj, "identityCredential.idCommitment", [])
278
- )
279
- )
280
- ),
281
- IDSecretHash: fromLittleEndian(
265
+ IDCommitmentBigInt: buildBigIntFromUint8Array(
282
266
  Keystore.fromArraylikeToBytes(
283
- _.get(obj, "identityCredential.idSecretHash", [])
267
+ _.get(obj, "identityCredential.idCommitment", [])
284
268
  )
269
+ ),
270
+ IDSecretHash: Keystore.fromArraylikeToBytes(
271
+ _.get(obj, "identityCredential.idSecretHash", [])
285
272
  )
286
273
  },
287
274
  membership: {
@@ -334,21 +321,14 @@ export class Keystore {
334
321
  // follows nwaku implementation
335
322
  // https://github.com/waku-org/nwaku/blob/f05528d4be3d3c876a8b07f9bb7dfaae8aa8ec6e/waku/waku_keystore/protocol_types.nim#L98
336
323
  private static fromIdentityToBytes(options: KeystoreEntity): Uint8Array {
337
- function toLittleEndian(bytes: Uint8Array): Uint8Array {
338
- return new Uint8Array(bytes).reverse();
339
- }
340
324
  return utf8ToBytes(
341
325
  JSON.stringify({
342
326
  treeIndex: options.membership.treeIndex,
343
327
  identityCredential: {
344
- idCommitment: Array.from(
345
- toLittleEndian(options.identity.IDCommitment)
346
- ),
347
- idNullifier: Array.from(toLittleEndian(options.identity.IDNullifier)),
348
- idSecretHash: Array.from(
349
- toLittleEndian(options.identity.IDSecretHash)
350
- ),
351
- idTrapdoor: Array.from(toLittleEndian(options.identity.IDTrapdoor))
328
+ idCommitment: Array.from(options.identity.IDCommitment),
329
+ idNullifier: Array.from(options.identity.IDNullifier),
330
+ idSecretHash: Array.from(options.identity.IDSecretHash),
331
+ idTrapdoor: Array.from(options.identity.IDTrapdoor)
352
332
  },
353
333
  membershipContract: {
354
334
  chainId: options.membership.chainId,
@@ -56,11 +56,17 @@ export function writeUIntLE(
56
56
  return buf;
57
57
  }
58
58
 
59
- export function buildBigIntFromUint8ArrayLE(bytes: Uint8Array): bigint {
60
- return bytes.reduce(
61
- (acc, byte, i) => acc + BigInt(byte) * (1n << (8n * BigInt(i))),
62
- 0n
63
- );
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);
64
70
  }
65
71
 
66
72
  /**
@@ -2,7 +2,7 @@ export { extractMetaMaskSigner } from "./metamask.js";
2
2
  export {
3
3
  concatenate,
4
4
  writeUIntLE,
5
- buildBigIntFromUint8ArrayLE,
5
+ buildBigIntFromUint8Array,
6
6
  zeroPadLE
7
7
  } from "./bytes.js";
8
8
  export { sha256, poseidonHash } from "./hash.js";