@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.
- package/bundle/_virtual/index2.js +1 -1
- package/bundle/index.js +2 -1
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/checksum.js +3 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/cipher.js +4 -4
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/class.js +7 -7
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/functional.js +7 -7
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/index.js +6 -6
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/kdf.js +5 -5
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/password.js +1 -1
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1 -1
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/schema-validation.js +2 -2
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/lib/types.js +1 -1
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_assert.js +1 -1
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_sha2.js +3 -3
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/_u64.js +1 -1
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/cryptoBrowser.js +1 -1
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/hmac.js +3 -3
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/pbkdf2.js +4 -4
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/scrypt.js +5 -5
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/sha256.js +3 -3
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/sha512.js +4 -4
- package/bundle/{packages/rln → node_modules/@chainsafe/bls-keystore}/node_modules/@noble/hashes/utils.js +2 -2
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +3 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +7 -7
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +3 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +3 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +3 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +7 -7
- package/bundle/node_modules/@ethersproject/keccak256/lib.esm/index.js +1 -1
- package/bundle/node_modules/@noble/hashes/esm/_assert.js +6 -32
- package/bundle/node_modules/@noble/hashes/esm/_md.js +22 -11
- package/bundle/node_modules/@noble/hashes/esm/_u64.js +4 -3
- package/bundle/{packages/rln/node_modules → node_modules}/@noble/hashes/esm/hmac.js +19 -10
- package/bundle/{packages/rln/node_modules/@noble/hashes/esm/sha256.js → node_modules/@noble/hashes/esm/sha2.js} +36 -50
- package/bundle/node_modules/@noble/hashes/esm/sha256.js +5 -102
- package/bundle/node_modules/@noble/hashes/esm/sha3.js +30 -24
- package/bundle/node_modules/@noble/hashes/esm/utils.js +69 -18
- package/bundle/node_modules/bn.js/lib/bn.js +1 -0
- package/bundle/node_modules/ethereum-cryptography/esm/sha256.js +1 -1
- package/bundle/node_modules/{@ethersproject/keccak256/node_modules/js-sha3 → js-sha3}/src/sha3.js +2 -2
- package/bundle/packages/core/dist/lib/message/version_0.js +1 -4
- package/bundle/packages/rln/dist/contract/constants.js +8 -1
- package/bundle/packages/rln/dist/contract/rln_base_contract.js +135 -74
- package/bundle/packages/rln/dist/credentials_manager.js +18 -16
- package/bundle/packages/rln/dist/identity.js +37 -7
- package/bundle/packages/rln/dist/keystore/cipher.js +3 -3
- package/bundle/packages/rln/dist/keystore/keystore.js +16 -12
- package/bundle/packages/rln/dist/message.js +11 -0
- package/bundle/packages/rln/dist/utils/bytes.js +14 -16
- package/dist/.tsbuildinfo +1 -1
- package/dist/contract/constants.d.ts +6 -0
- package/dist/contract/constants.js +6 -0
- package/dist/contract/constants.js.map +1 -1
- package/dist/contract/index.d.ts +1 -0
- package/dist/contract/index.js +1 -0
- package/dist/contract/index.js.map +1 -1
- package/dist/contract/rln_base_contract.d.ts +32 -22
- package/dist/contract/rln_base_contract.js +135 -74
- package/dist/contract/rln_base_contract.js.map +1 -1
- package/dist/contract/types.d.ts +5 -0
- package/dist/contract/types.js.map +1 -1
- package/dist/credentials_manager.js +17 -15
- package/dist/credentials_manager.js.map +1 -1
- package/dist/identity.d.ts +11 -2
- package/dist/identity.js +23 -6
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/keystore/keystore.js +15 -11
- package/dist/keystore/keystore.js.map +1 -1
- package/dist/keystore/types.d.ts +2 -2
- package/dist/message.d.ts +5 -4
- package/dist/message.js +2 -0
- package/dist/message.js.map +1 -1
- package/dist/utils/bytes.d.ts +2 -6
- package/dist/utils/bytes.js +13 -15
- package/dist/utils/bytes.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/contract/constants.ts +9 -0
- package/src/contract/index.ts +1 -0
- package/src/contract/rln_base_contract.ts +176 -113
- package/src/contract/types.ts +5 -0
- package/src/credentials_manager.ts +28 -22
- package/src/identity.ts +32 -6
- package/src/index.ts +3 -1
- package/src/keystore/keystore.ts +32 -26
- package/src/keystore/types.ts +2 -2
- package/src/message.ts +7 -4
- package/src/utils/bytes.ts +21 -25
- package/src/utils/index.ts +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_assert.js +0 -43
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_sha2.js +0 -116
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/utils.js +0 -43
- package/dist/contract/test-utils.d.ts +0 -39
- package/dist/contract/test-utils.js +0 -118
- package/dist/contract/test-utils.js.map +0 -1
- package/src/contract/test-utils.ts +0 -179
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/index.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/md5.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/nil.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/parse.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/regex.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/rng.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/sha1.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/stringify.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v1.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v3.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v35.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v4.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/v5.js +0 -0
- /package/bundle/{packages/rln/node_modules → node_modules}/@chainsafe/bls-keystore/node_modules/uuid/dist/esm-browser/validate.js +0 -0
- /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
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|