@waku/rln 0.1.6-006cd41.0 → 0.1.6-0877e51.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 (116) hide show
  1. package/bundle/_virtual/index2.js +1 -1
  2. package/bundle/index.js +2 -1
  3. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/checksum.js +3 -3
  4. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/cipher.js +4 -4
  5. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/class.js +7 -7
  6. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/functional.js +7 -7
  7. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/index.js +6 -6
  8. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/kdf.js +5 -5
  9. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/password.js +1 -1
  10. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1 -1
  11. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/schema-validation.js +2 -2
  12. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/types.js +1 -1
  13. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_assert.js +1 -1
  14. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_sha2.js +3 -3
  15. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_u64.js +1 -1
  16. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/cryptoBrowser.js +1 -1
  17. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/hmac.js +3 -3
  18. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/pbkdf2.js +4 -4
  19. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/scrypt.js +5 -5
  20. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/sha256.js +3 -3
  21. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/sha512.js +4 -4
  22. package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/utils.js +2 -2
  23. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +3 -3
  24. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +7 -7
  25. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +3 -3
  26. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +3 -3
  27. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +3 -3
  28. package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +7 -7
  29. package/bundle/node_modules/@ethersproject/keccak256/lib.esm/index.js +1 -1
  30. package/bundle/node_modules/@noble/hashes/esm/_assert.js +6 -32
  31. package/bundle/node_modules/@noble/hashes/esm/_md.js +22 -11
  32. package/bundle/node_modules/@noble/hashes/esm/_u64.js +4 -3
  33. package/bundle/{packages/rln/node_modules → node_modules}/@noble/hashes/esm/hmac.js +19 -10
  34. package/bundle/{packages/rln/node_modules/@noble/hashes/esm/sha256.js → node_modules/@noble/hashes/esm/sha2.js} +36 -50
  35. package/bundle/node_modules/@noble/hashes/esm/sha256.js +5 -102
  36. package/bundle/node_modules/@noble/hashes/esm/sha3.js +30 -24
  37. package/bundle/node_modules/@noble/hashes/esm/utils.js +69 -18
  38. package/bundle/node_modules/bn.js/lib/bn.js +1 -0
  39. package/bundle/node_modules/ethereum-cryptography/esm/sha256.js +1 -1
  40. package/bundle/node_modules/{@ethersproject/keccak256/node_modules/js-sha3 → js-sha3}/src/sha3.js +2 -2
  41. package/bundle/packages/core/dist/lib/message/version_0.js +1 -4
  42. package/bundle/packages/rln/dist/contract/constants.js +8 -1
  43. package/bundle/packages/rln/dist/contract/rln_base_contract.js +135 -74
  44. package/bundle/packages/rln/dist/credentials_manager.js +18 -16
  45. package/bundle/packages/rln/dist/identity.js +37 -7
  46. package/bundle/packages/rln/dist/keystore/cipher.js +3 -3
  47. package/bundle/packages/rln/dist/keystore/keystore.js +16 -12
  48. package/bundle/packages/rln/dist/message.js +11 -0
  49. package/bundle/packages/rln/dist/utils/bytes.js +14 -16
  50. package/dist/.tsbuildinfo +1 -1
  51. package/dist/contract/constants.d.ts +6 -0
  52. package/dist/contract/constants.js +6 -0
  53. package/dist/contract/constants.js.map +1 -1
  54. package/dist/contract/index.d.ts +1 -0
  55. package/dist/contract/index.js +1 -0
  56. package/dist/contract/index.js.map +1 -1
  57. package/dist/contract/rln_base_contract.d.ts +32 -22
  58. package/dist/contract/rln_base_contract.js +135 -74
  59. package/dist/contract/rln_base_contract.js.map +1 -1
  60. package/dist/contract/types.d.ts +5 -0
  61. package/dist/contract/types.js.map +1 -1
  62. package/dist/credentials_manager.js +17 -15
  63. package/dist/credentials_manager.js.map +1 -1
  64. package/dist/identity.d.ts +11 -2
  65. package/dist/identity.js +23 -6
  66. package/dist/identity.js.map +1 -1
  67. package/dist/index.d.ts +2 -1
  68. package/dist/index.js +1 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/keystore/keystore.js +15 -11
  71. package/dist/keystore/keystore.js.map +1 -1
  72. package/dist/keystore/types.d.ts +2 -2
  73. package/dist/message.d.ts +5 -4
  74. package/dist/message.js +2 -0
  75. package/dist/message.js.map +1 -1
  76. package/dist/utils/bytes.d.ts +2 -6
  77. package/dist/utils/bytes.js +13 -15
  78. package/dist/utils/bytes.js.map +1 -1
  79. package/dist/utils/index.d.ts +1 -1
  80. package/dist/utils/index.js +1 -1
  81. package/dist/utils/index.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/contract/constants.ts +9 -0
  84. package/src/contract/index.ts +1 -0
  85. package/src/contract/rln_base_contract.ts +176 -113
  86. package/src/contract/types.ts +5 -0
  87. package/src/credentials_manager.ts +28 -22
  88. package/src/identity.ts +32 -6
  89. package/src/index.ts +3 -1
  90. package/src/keystore/keystore.ts +32 -26
  91. package/src/keystore/types.ts +2 -2
  92. package/src/message.ts +7 -4
  93. package/src/utils/bytes.ts +21 -25
  94. package/src/utils/index.ts +1 -1
  95. package/bundle/packages/rln/node_modules/@noble/hashes/esm/_assert.js +0 -43
  96. package/bundle/packages/rln/node_modules/@noble/hashes/esm/_sha2.js +0 -116
  97. package/bundle/packages/rln/node_modules/@noble/hashes/esm/utils.js +0 -43
  98. package/dist/contract/test-utils.d.ts +0 -39
  99. package/dist/contract/test-utils.js +0 -118
  100. package/dist/contract/test-utils.js.map +0 -1
  101. package/src/contract/test-utils.ts +0 -179
  102. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/index.js +0 -0
  103. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/md5.js +0 -0
  104. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/nil.js +0 -0
  105. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/parse.js +0 -0
  106. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/regex.js +0 -0
  107. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/rng.js +0 -0
  108. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/sha1.js +0 -0
  109. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/stringify.js +0 -0
  110. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v1.js +0 -0
  111. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v3.js +0 -0
  112. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v35.js +0 -0
  113. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v4.js +0 -0
  114. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v5.js +0 -0
  115. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/validate.js +0 -0
  116. /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/version.js +0 -0
@@ -1,179 +0,0 @@
1
- import { hexToBytes } from "@waku/utils/bytes";
2
- import { expect } from "chai";
3
- import * as ethers from "ethers";
4
- import sinon from "sinon";
5
-
6
- import type { IdentityCredential } from "../identity.js";
7
-
8
- import { DEFAULT_RATE_LIMIT, LINEA_CONTRACT } from "./constants.js";
9
-
10
- export const mockRateLimits = {
11
- minRate: 20,
12
- maxRate: 600,
13
- maxTotalRate: 1200,
14
- currentTotalRate: 500
15
- };
16
-
17
- type MockProvider = {
18
- getLogs: () => never[];
19
- getBlockNumber: () => Promise<number>;
20
- getNetwork: () => Promise<{ chainId: number }>;
21
- };
22
-
23
- type MockFilters = {
24
- MembershipRegistered: () => { address: string };
25
- MembershipErased: () => { address: string };
26
- MembershipExpired: () => { address: string };
27
- };
28
-
29
- export function createMockProvider(): MockProvider {
30
- return {
31
- getLogs: () => [],
32
- getBlockNumber: () => Promise.resolve(1000),
33
- getNetwork: () => Promise.resolve({ chainId: 11155111 })
34
- };
35
- }
36
-
37
- export function createMockFilters(): MockFilters {
38
- return {
39
- MembershipRegistered: () => ({ address: LINEA_CONTRACT.address }),
40
- MembershipErased: () => ({ address: LINEA_CONTRACT.address }),
41
- MembershipExpired: () => ({ address: LINEA_CONTRACT.address })
42
- };
43
- }
44
-
45
- type ContractOverrides = Partial<{
46
- filters: Record<string, unknown>;
47
- [key: string]: unknown;
48
- }>;
49
-
50
- export function createMockRegistryContract(
51
- overrides: ContractOverrides = {}
52
- ): ethers.Contract {
53
- const filters = {
54
- MembershipRegistered: () => ({ address: LINEA_CONTRACT.address }),
55
- MembershipErased: () => ({ address: LINEA_CONTRACT.address }),
56
- MembershipExpired: () => ({ address: LINEA_CONTRACT.address })
57
- };
58
-
59
- const baseContract = {
60
- minMembershipRateLimit: () =>
61
- Promise.resolve(ethers.BigNumber.from(mockRateLimits.minRate)),
62
- maxMembershipRateLimit: () =>
63
- Promise.resolve(ethers.BigNumber.from(mockRateLimits.maxRate)),
64
- maxTotalRateLimit: () =>
65
- Promise.resolve(ethers.BigNumber.from(mockRateLimits.maxTotalRate)),
66
- currentTotalRateLimit: () =>
67
- Promise.resolve(ethers.BigNumber.from(mockRateLimits.currentTotalRate)),
68
- queryFilter: () => [],
69
- provider: createMockProvider(),
70
- filters,
71
- on: () => ({}),
72
- removeAllListeners: () => ({}),
73
- register: () => ({
74
- wait: () =>
75
- Promise.resolve({
76
- events: [mockRLNRegisteredEvent()]
77
- })
78
- }),
79
- estimateGas: {
80
- register: () => Promise.resolve(ethers.BigNumber.from(100000))
81
- },
82
- functions: {
83
- register: () => Promise.resolve()
84
- },
85
- getMemberIndex: () => Promise.resolve(null),
86
- interface: {
87
- getEvent: (eventName: string) => ({
88
- name: eventName,
89
- format: () => {}
90
- })
91
- },
92
- address: LINEA_CONTRACT.address
93
- };
94
-
95
- // Merge overrides while preserving filters
96
- const merged = {
97
- ...baseContract,
98
- ...overrides,
99
- filters: { ...filters, ...(overrides.filters || {}) }
100
- };
101
-
102
- return merged as unknown as ethers.Contract;
103
- }
104
-
105
- export function mockRLNRegisteredEvent(idCommitment?: string): ethers.Event {
106
- return {
107
- args: {
108
- idCommitment:
109
- idCommitment ||
110
- "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
111
- membershipRateLimit: ethers.BigNumber.from(DEFAULT_RATE_LIMIT),
112
- index: ethers.BigNumber.from(1)
113
- },
114
- event: "MembershipRegistered"
115
- } as unknown as ethers.Event;
116
- }
117
-
118
- export function formatIdCommitment(idCommitmentBigInt: bigint): string {
119
- return "0x" + idCommitmentBigInt.toString(16).padStart(64, "0");
120
- }
121
-
122
- export function createRegisterStub(
123
- identity: IdentityCredential
124
- ): sinon.SinonStub {
125
- return sinon.stub().callsFake(() => ({
126
- wait: () =>
127
- Promise.resolve({
128
- events: [
129
- {
130
- event: "MembershipRegistered",
131
- args: {
132
- idCommitment: formatIdCommitment(identity.IDCommitmentBigInt),
133
- membershipRateLimit: ethers.BigNumber.from(DEFAULT_RATE_LIMIT),
134
- index: ethers.BigNumber.from(1)
135
- }
136
- }
137
- ]
138
- })
139
- }));
140
- }
141
-
142
- export function verifyRegistration(
143
- decryptedCredentials: any,
144
- identity: IdentityCredential,
145
- registerStub: sinon.SinonStub,
146
- insertMemberSpy: sinon.SinonStub
147
- ): void {
148
- if (!decryptedCredentials) {
149
- throw new Error("Decrypted credentials should not be undefined");
150
- }
151
-
152
- // Verify registration call
153
- expect(
154
- registerStub.calledWith(
155
- sinon.match.same(identity.IDCommitmentBigInt),
156
- sinon.match.same(DEFAULT_RATE_LIMIT),
157
- sinon.match.array,
158
- sinon.match.object
159
- )
160
- ).to.be.true;
161
-
162
- // Verify credential properties
163
- expect(decryptedCredentials).to.have.property("identity");
164
- expect(decryptedCredentials).to.have.property("membership");
165
- expect(decryptedCredentials.membership).to.include({
166
- address: LINEA_CONTRACT.address,
167
- treeIndex: 1
168
- });
169
-
170
- // Verify member insertion
171
- const expectedIdCommitment = ethers.utils.zeroPad(
172
- hexToBytes(formatIdCommitment(identity.IDCommitmentBigInt)),
173
- 32
174
- );
175
- expect(insertMemberSpy.callCount).to.equal(1);
176
- expect(insertMemberSpy.getCall(0).args[0]).to.deep.equal(
177
- expectedIdCommitment
178
- );
179
- }