@waku/rln 0.1.4-d27db21.0 → 0.1.5-053bb95.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/CHANGELOG.md +19 -0
- package/README.md +5 -0
- package/bundle/_virtual/utils.js +2 -2
- package/bundle/_virtual/utils2.js +2 -2
- package/bundle/index.js +3 -1
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js +1 -1
- package/bundle/node_modules/@ethersproject/abi/lib.esm/interface.js +1 -1
- package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/index.js +11 -11
- package/bundle/node_modules/@ethersproject/bytes/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/contracts/lib.esm/index.js +7 -7
- package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js +2 -2
- package/bundle/node_modules/@ethersproject/hash/lib.esm/typed-data.js +2 -2
- package/bundle/node_modules/@ethersproject/keccak256/node_modules/js-sha3/src/sha3.js +1 -1
- package/bundle/node_modules/@ethersproject/logger/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/properties/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/providers/lib.esm/base-provider.js +44 -44
- package/bundle/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js +8 -8
- package/bundle/node_modules/@ethersproject/rlp/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/transactions/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/web/lib.esm/geturl.js +1 -1
- package/bundle/node_modules/@ethersproject/web/lib.esm/index.js +2 -2
- package/bundle/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js +1 -0
- package/bundle/node_modules/@noble/hashes/esm/sha3.js +1 -1
- package/bundle/node_modules/bn.js/lib/bn.js +1 -1
- package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +6 -6
- package/bundle/packages/rln/dist/contract/abi.js +502 -248
- package/bundle/packages/rln/dist/contract/constants.js +5 -9
- package/bundle/packages/rln/dist/contract/errors.js +62 -0
- package/bundle/packages/rln/dist/contract/rln_base_contract.js +347 -0
- package/bundle/packages/rln/dist/contract/rln_contract.js +81 -392
- package/bundle/packages/rln/dist/contract/types.js +9 -0
- package/bundle/packages/rln/dist/create.js +1 -1
- package/bundle/packages/rln/dist/credentials_manager.js +215 -0
- package/bundle/packages/rln/dist/identity.js +8 -0
- package/bundle/packages/rln/dist/keystore/keystore.js +20 -28
- package/bundle/packages/rln/dist/rln.js +56 -166
- package/bundle/packages/rln/dist/zerokit.js +5 -5
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/checksum.js +2 -2
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/cipher.js +3 -3
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/class.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/functional.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/kdf.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/password.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +2 -2
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +3 -3
- package/bundle/packages/rln/node_modules/@noble/hashes/_assert.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/_u64.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/cryptoBrowser.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_assert.js +43 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_sha2.js +116 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/hmac.js +79 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/sha256.js +126 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/utils.js +43 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +3 -3
- package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +3 -3
- package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +2 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/codec.test-utils.d.ts +36 -0
- package/dist/codec.test-utils.js +56 -0
- package/dist/codec.test-utils.js.map +1 -0
- package/dist/contract/abi.d.ts +21 -17
- package/dist/contract/abi.js +502 -248
- package/dist/contract/abi.js.map +1 -1
- package/dist/contract/constants.d.ts +23 -19
- package/dist/contract/constants.js +3 -3
- package/dist/contract/constants.js.map +1 -1
- package/dist/contract/errors.d.ts +30 -0
- package/dist/contract/errors.js +61 -0
- package/dist/contract/errors.js.map +1 -0
- package/dist/contract/rln_base_contract.d.ts +88 -0
- package/dist/contract/rln_base_contract.js +330 -0
- package/dist/contract/rln_base_contract.js.map +1 -0
- package/dist/contract/rln_contract.d.ts +19 -109
- package/dist/contract/rln_contract.js +80 -390
- package/dist/contract/rln_contract.js.map +1 -1
- package/dist/contract/test-setup.d.ts +26 -0
- package/dist/contract/test-setup.js +56 -0
- package/dist/contract/test-setup.js.map +1 -0
- package/dist/contract/test-utils.d.ts +39 -0
- package/dist/contract/test-utils.js +118 -0
- package/dist/contract/test-utils.js.map +1 -0
- package/dist/contract/types.d.ts +40 -0
- package/dist/contract/types.js +8 -0
- package/dist/contract/types.js.map +1 -0
- package/dist/create.js +1 -1
- package/dist/create.js.map +1 -1
- package/dist/credentials_manager.d.ts +44 -0
- package/dist/credentials_manager.js +197 -0
- package/dist/credentials_manager.js.map +1 -0
- package/dist/identity.d.ts +1 -0
- package/dist/identity.js +8 -0
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/keystore/keystore.d.ts +0 -1
- package/dist/keystore/keystore.js +20 -28
- package/dist/keystore/keystore.js.map +1 -1
- package/dist/keystore/types.d.ts +2 -1
- package/dist/rln.d.ts +9 -52
- package/dist/rln.js +54 -163
- package/dist/rln.js.map +1 -1
- package/dist/types.d.ts +27 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/zerokit.d.ts +3 -3
- package/dist/zerokit.js +5 -5
- package/dist/zerokit.js.map +1 -1
- package/package.json +1 -1
- package/src/codec.test-utils.ts +80 -0
- package/src/contract/abi.ts +502 -248
- package/src/contract/constants.ts +3 -3
- package/src/contract/errors.ts +75 -0
- package/src/contract/rln_base_contract.ts +500 -0
- package/src/contract/rln_contract.ts +102 -619
- package/src/contract/test-setup.ts +86 -0
- package/src/contract/test-utils.ts +179 -0
- package/src/contract/types.ts +48 -0
- package/src/create.ts +1 -1
- package/src/credentials_manager.ts +282 -0
- package/src/identity.ts +9 -0
- package/src/index.ts +17 -2
- package/src/keystore/keystore.ts +32 -46
- package/src/keystore/types.ts +2 -1
- package/src/rln.ts +67 -258
- package/src/types.ts +31 -0
- package/src/zerokit.ts +3 -3
@@ -0,0 +1,80 @@
|
|
1
|
+
import type { IProtoMessage } from "@waku/interfaces";
|
2
|
+
import { expect } from "chai";
|
3
|
+
|
4
|
+
import { createRLN } from "./create.js";
|
5
|
+
import type { IdentityCredential } from "./identity.js";
|
6
|
+
|
7
|
+
export interface TestRLNCodecSetup {
|
8
|
+
rlnInstance: any;
|
9
|
+
credential: IdentityCredential;
|
10
|
+
index: number;
|
11
|
+
payload: Uint8Array;
|
12
|
+
}
|
13
|
+
|
14
|
+
export const TEST_CONSTANTS = {
|
15
|
+
contentTopic: "/test/1/waku-message/utf8",
|
16
|
+
emptyPubsubTopic: "",
|
17
|
+
defaultIndex: 0,
|
18
|
+
defaultPayload: new Uint8Array([1, 2, 3, 4, 5])
|
19
|
+
} as const;
|
20
|
+
|
21
|
+
export const EMPTY_PROTO_MESSAGE = {
|
22
|
+
timestamp: undefined,
|
23
|
+
contentTopic: "",
|
24
|
+
ephemeral: undefined,
|
25
|
+
meta: undefined,
|
26
|
+
rateLimitProof: undefined,
|
27
|
+
version: undefined
|
28
|
+
} as const;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Creates a basic RLN setup for codec tests
|
32
|
+
*/
|
33
|
+
export async function createTestRLNCodecSetup(): Promise<TestRLNCodecSetup> {
|
34
|
+
const rlnInstance = await createRLN();
|
35
|
+
const credential = rlnInstance.zerokit.generateIdentityCredentials();
|
36
|
+
rlnInstance.zerokit.insertMember(credential.IDCommitment);
|
37
|
+
|
38
|
+
return {
|
39
|
+
rlnInstance,
|
40
|
+
credential,
|
41
|
+
index: TEST_CONSTANTS.defaultIndex,
|
42
|
+
payload: TEST_CONSTANTS.defaultPayload
|
43
|
+
};
|
44
|
+
}
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Creates a meta setter function for testing
|
48
|
+
*/
|
49
|
+
export function createTestMetaSetter(): (
|
50
|
+
msg: IProtoMessage & { meta: undefined }
|
51
|
+
) => Uint8Array {
|
52
|
+
return (msg: IProtoMessage & { meta: undefined }): Uint8Array => {
|
53
|
+
const buffer = new ArrayBuffer(4);
|
54
|
+
const view = new DataView(buffer);
|
55
|
+
view.setUint32(0, msg.payload.length, false);
|
56
|
+
return new Uint8Array(buffer);
|
57
|
+
};
|
58
|
+
}
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Verifies common RLN message properties
|
62
|
+
*/
|
63
|
+
export function verifyRLNMessage(
|
64
|
+
msg: any,
|
65
|
+
payload: Uint8Array,
|
66
|
+
contentTopic: string,
|
67
|
+
version: number,
|
68
|
+
rlnInstance: any
|
69
|
+
): void {
|
70
|
+
expect(msg.rateLimitProof).to.not.be.undefined;
|
71
|
+
expect(msg.verify([rlnInstance.zerokit.getMerkleRoot()])).to.be.true;
|
72
|
+
expect(msg.verifyNoRoot()).to.be.true;
|
73
|
+
expect(msg.epoch).to.not.be.undefined;
|
74
|
+
expect(msg.epoch).to.be.gt(0);
|
75
|
+
|
76
|
+
expect(msg.contentTopic).to.eq(contentTopic);
|
77
|
+
expect(msg.msg.version).to.eq(version);
|
78
|
+
expect(msg.payload).to.deep.eq(payload);
|
79
|
+
expect(msg.timestamp).to.not.be.undefined;
|
80
|
+
}
|