@waku/rln 0.1.1-fa49e29 → 0.1.2-126bce3
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/README.md +26 -2
- package/bundle/assets/rln_wasm_bg-a503e304.wasm +0 -0
- package/bundle/index.js +69844 -44998
- package/dist/codec.d.ts +7 -4
- package/dist/codec.js +15 -5
- package/dist/codec.js.map +1 -1
- package/dist/{constants.js → contract/constants.js} +3 -3
- package/dist/contract/constants.js.map +1 -0
- package/dist/contract/index.d.ts +2 -0
- package/dist/contract/index.js +3 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/{rln_contract.d.ts → contract/rln_contract.d.ts} +13 -11
- package/dist/{rln_contract.js → contract/rln_contract.js} +50 -33
- package/dist/contract/rln_contract.js.map +1 -0
- package/dist/create.d.ts +2 -0
- package/dist/create.js +8 -0
- package/dist/create.js.map +1 -0
- package/dist/identity.d.ts +9 -0
- package/dist/identity.js +24 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.js +8 -12
- package/dist/index.js.map +1 -1
- package/dist/keystore/cipher.js +1 -1
- package/dist/keystore/cipher.js.map +1 -1
- package/dist/keystore/credential_validation_generated.js.map +1 -1
- package/dist/keystore/index.d.ts +2 -0
- package/dist/keystore/index.js.map +1 -1
- package/dist/keystore/keystore.d.ts +11 -11
- package/dist/keystore/keystore.js +33 -21
- package/dist/keystore/keystore.js.map +1 -1
- package/dist/keystore/keystore_validation_generated.js.map +1 -1
- package/dist/keystore/schema_validator.js.map +1 -1
- package/dist/keystore/types.d.ts +25 -5
- package/dist/message.d.ts +1 -1
- package/dist/message.js +7 -4
- package/dist/message.js.map +1 -1
- package/dist/proof.d.ts +21 -0
- package/dist/proof.js +49 -0
- package/dist/proof.js.map +1 -0
- package/dist/resources/verification_key.d.ts +9 -9
- package/dist/resources/witness_calculator.js.map +1 -0
- package/dist/rln.d.ts +55 -46
- package/dist/rln.js +135 -174
- package/dist/rln.js.map +1 -1
- package/dist/root_tracker.js +5 -2
- package/dist/root_tracker.js.map +1 -1
- package/dist/utils/bytes.d.ts +20 -0
- package/dist/utils/bytes.js +64 -0
- package/dist/utils/bytes.js.map +1 -0
- package/dist/utils/epoch.js.map +1 -0
- package/dist/utils/hash.d.ts +2 -0
- package/dist/utils/hash.js +13 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/metamask.d.ts +2 -0
- package/dist/utils/metamask.js +12 -0
- package/dist/utils/metamask.js.map +1 -0
- package/dist/zerokit.d.ts +19 -0
- package/dist/zerokit.js +105 -0
- package/dist/zerokit.js.map +1 -0
- package/package.json +22 -27
- package/src/codec.ts +18 -9
- package/src/create.ts +9 -0
- package/src/identity.ts +27 -0
- package/src/index.ts +10 -19
- package/src/message.ts +5 -5
- package/src/proof.ts +67 -0
- package/src/rln.ts +219 -260
- package/src/root_tracker.ts +4 -1
- package/src/zerokit.ts +181 -0
- package/bundle/assets/rln_wasm_bg-6f96f821.wasm +0 -0
- package/dist/.tsbuildinfo +0 -1
- package/dist/byte_utils.d.ts +0 -7
- package/dist/byte_utils.js +0 -33
- package/dist/byte_utils.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/epoch.js.map +0 -1
- package/dist/rln_contract.js.map +0 -1
- package/dist/witness_calculator.js.map +0 -1
- package/src/byte_utils.ts +0 -49
- package/src/constants.ts +0 -68
- package/src/epoch.ts +0 -30
- package/src/rln_contract.ts +0 -346
- package/src/witness_calculator.d.ts +0 -8
- package/src/witness_calculator.js +0 -335
- /package/dist/{constants.d.ts → contract/constants.d.ts} +0 -0
- /package/dist/{witness_calculator.d.ts → resources/witness_calculator.d.ts} +0 -0
- /package/dist/{witness_calculator.js → resources/witness_calculator.js} +0 -0
- /package/dist/{epoch.d.ts → utils/epoch.d.ts} +0 -0
- /package/dist/{epoch.js → utils/epoch.js} +0 -0
package/dist/codec.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { IDecodedMessage, IDecoder, IEncoder, IMessage, IProtoMessage } from "@waku/interfaces";
|
2
|
+
import type { IdentityCredential } from "./identity.js";
|
2
3
|
import { RlnMessage } from "./message.js";
|
3
|
-
import {
|
4
|
+
import { RLNInstance } from "./rln.js";
|
4
5
|
export declare class RLNEncoder implements IEncoder {
|
5
6
|
private encoder;
|
6
7
|
private rlnInstance;
|
@@ -10,10 +11,11 @@ export declare class RLNEncoder implements IEncoder {
|
|
10
11
|
toWire(message: IMessage): Promise<Uint8Array | undefined>;
|
11
12
|
toProtoObj(message: IMessage): Promise<IProtoMessage | undefined>;
|
12
13
|
private generateProof;
|
14
|
+
get pubsubTopic(): string;
|
13
15
|
get contentTopic(): string;
|
14
16
|
get ephemeral(): boolean;
|
15
17
|
}
|
16
|
-
|
18
|
+
type RLNEncoderOptions = {
|
17
19
|
encoder: IEncoder;
|
18
20
|
rlnInstance: RLNInstance;
|
19
21
|
index: number;
|
@@ -24,11 +26,12 @@ export declare class RLNDecoder<T extends IDecodedMessage> implements IDecoder<R
|
|
24
26
|
private rlnInstance;
|
25
27
|
private decoder;
|
26
28
|
constructor(rlnInstance: RLNInstance, decoder: IDecoder<T>);
|
29
|
+
get pubsubTopic(): string;
|
27
30
|
get contentTopic(): string;
|
28
31
|
fromWireToProtoObj(bytes: Uint8Array): Promise<IProtoMessage | undefined>;
|
29
|
-
fromProtoObj(
|
32
|
+
fromProtoObj(pubsubTopic: string, proto: IProtoMessage): Promise<RlnMessage<T> | undefined>;
|
30
33
|
}
|
31
|
-
|
34
|
+
type RLNDecoderOptions<T extends IDecodedMessage> = {
|
32
35
|
decoder: IDecoder<T>;
|
33
36
|
rlnInstance: RLNInstance;
|
34
37
|
};
|
package/dist/codec.js
CHANGED
@@ -2,6 +2,10 @@ import debug from "debug";
|
|
2
2
|
import { RlnMessage, toRLNSignal } from "./message.js";
|
3
3
|
const log = debug("waku:rln:encoder");
|
4
4
|
export class RLNEncoder {
|
5
|
+
encoder;
|
6
|
+
rlnInstance;
|
7
|
+
index;
|
8
|
+
idSecretHash;
|
5
9
|
constructor(encoder, rlnInstance, index, identityCredential) {
|
6
10
|
this.encoder = encoder;
|
7
11
|
this.rlnInstance = rlnInstance;
|
@@ -26,11 +30,12 @@ export class RLNEncoder {
|
|
26
30
|
}
|
27
31
|
async generateProof(message) {
|
28
32
|
const signal = toRLNSignal(this.contentTopic, message);
|
29
|
-
|
30
|
-
const proof = await this.rlnInstance.generateRLNProof(signal, this.index, message.timestamp, this.idSecretHash);
|
31
|
-
console.timeEnd("proof_gen_timer");
|
33
|
+
const proof = await this.rlnInstance.zerokit.generateRLNProof(signal, this.index, message.timestamp, this.idSecretHash);
|
32
34
|
return proof;
|
33
35
|
}
|
36
|
+
get pubsubTopic() {
|
37
|
+
return this.encoder.pubsubTopic;
|
38
|
+
}
|
34
39
|
get contentTopic() {
|
35
40
|
return this.encoder.contentTopic;
|
36
41
|
}
|
@@ -42,10 +47,15 @@ export const createRLNEncoder = (options) => {
|
|
42
47
|
return new RLNEncoder(options.encoder, options.rlnInstance, options.index, options.credential);
|
43
48
|
};
|
44
49
|
export class RLNDecoder {
|
50
|
+
rlnInstance;
|
51
|
+
decoder;
|
45
52
|
constructor(rlnInstance, decoder) {
|
46
53
|
this.rlnInstance = rlnInstance;
|
47
54
|
this.decoder = decoder;
|
48
55
|
}
|
56
|
+
get pubsubTopic() {
|
57
|
+
return this.decoder.pubsubTopic;
|
58
|
+
}
|
49
59
|
get contentTopic() {
|
50
60
|
return this.decoder.contentTopic;
|
51
61
|
}
|
@@ -54,8 +64,8 @@ export class RLNDecoder {
|
|
54
64
|
log("Message decoded", protoMessage);
|
55
65
|
return Promise.resolve(protoMessage);
|
56
66
|
}
|
57
|
-
async fromProtoObj(
|
58
|
-
const msg = await this.decoder.fromProtoObj(
|
67
|
+
async fromProtoObj(pubsubTopic, proto) {
|
68
|
+
const msg = await this.decoder.fromProtoObj(pubsubTopic, proto);
|
59
69
|
if (!msg)
|
60
70
|
return;
|
61
71
|
return new RlnMessage(this.rlnInstance, msg, proto.rateLimitProof);
|
package/dist/codec.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
|
@@ -26,7 +26,7 @@ export const RLN_REGISTRY_ABI = [
|
|
26
26
|
"function transferOwnership(address newOwner)",
|
27
27
|
"function upgradeTo(address newImplementation)",
|
28
28
|
"function upgradeToAndCall(address newImplementation, bytes data) payable",
|
29
|
-
"function usingStorageIndex() view returns (uint16)"
|
29
|
+
"function usingStorageIndex() view returns (uint16)"
|
30
30
|
];
|
31
31
|
// ref https://github.com/waku-org/waku-rln-contract/blob/19fded82bca07e7b535b429dc507cfb83f10dfcf/deployments/sepolia/WakuRlnStorage_0.json#L3
|
32
32
|
export const RLN_STORAGE_ABI = [
|
@@ -57,11 +57,11 @@ export const RLN_STORAGE_ABI = [
|
|
57
57
|
"function transferOwnership(address newOwner)",
|
58
58
|
"function verifier() view returns (address)",
|
59
59
|
"function withdraw() pure",
|
60
|
-
"function withdrawalBalance(address) view returns (uint256)"
|
60
|
+
"function withdrawalBalance(address) view returns (uint256)"
|
61
61
|
];
|
62
62
|
export const SEPOLIA_CONTRACT = {
|
63
63
|
chainId: 11155111,
|
64
64
|
address: "0xF471d71E9b1455bBF4b85d475afb9BB0954A29c4",
|
65
|
-
abi: RLN_REGISTRY_ABI
|
65
|
+
abi: RLN_REGISTRY_ABI
|
66
66
|
};
|
67
67
|
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/contract/constants.ts"],"names":[],"mappings":"AAAA,6JAA6J;AAC7J,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,6BAA6B;IAC7B,kCAAkC;IAClC,oCAAoC;IACpC,oDAAoD;IACpD,6DAA6D;IAC7D,8CAA8C;IAC9C,kCAAkC;IAClC,gEAAgE;IAChE,qFAAqF;IACrF,gDAAgD;IAChD,0BAA0B;IAC1B,8CAA8C;IAC9C,uBAAuB;IACvB,mDAAmD;IACnD,yCAAyC;IACzC,kDAAkD;IAClD,iDAAiD;IACjD,4DAA4D;IAC5D,0CAA0C;IAC1C,+DAA+D;IAC/D,kDAAkD;IAClD,8BAA8B;IAC9B,kDAAkD;IAClD,8CAA8C;IAC9C,+CAA+C;IAC/C,0EAA0E;IAC1E,oDAAoD;CACrD,CAAC;AAEF,+IAA+I;AAC/I,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,6DAA6D;IAC7D,+BAA+B;IAC/B,kBAAkB;IAClB,iDAAiD;IACjD,wBAAwB;IACxB,6DAA6D;IAC7D,4DAA4D;IAC5D,qFAAqF;IACrF,yCAAyC;IACzC,sDAAsD;IACtD,4CAA4C;IAC5C,gDAAgD;IAChD,sDAAsD;IACtD,qDAAqD;IACrD,sEAAsE;IACtE,oDAAoD;IACpD,kDAAkD;IAClD,yCAAyC;IACzC,kDAAkD;IAClD,4CAA4C;IAC5C,iDAAiD;IACjD,8BAA8B;IAC9B,+EAA+E;IAC/E,wDAAwD;IACxD,8CAA8C;IAC9C,4CAA4C;IAC5C,0BAA0B;IAC1B,4DAA4D;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,4CAA4C;IACrD,GAAG,EAAE,gBAAgB;CACtB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,cAAc,gBAAgB,CAAC"}
|
@@ -1,19 +1,21 @@
|
|
1
1
|
import { ethers } from "ethers";
|
2
|
-
import { IdentityCredential
|
3
|
-
|
2
|
+
import type { IdentityCredential } from "../identity.js";
|
3
|
+
import type { DecryptedCredentials } from "../keystore/index.js";
|
4
|
+
import type { RLNInstance } from "../rln.js";
|
5
|
+
type Member = {
|
4
6
|
idCommitment: string;
|
5
7
|
index: ethers.BigNumber;
|
6
8
|
};
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
type Signer = ethers.Signer;
|
10
|
+
type RLNContractOptions = {
|
11
|
+
signer: Signer;
|
10
12
|
registryAddress: string;
|
11
13
|
};
|
12
|
-
|
14
|
+
type RLNStorageOptions = {
|
13
15
|
storageIndex?: number;
|
14
16
|
};
|
15
|
-
|
16
|
-
|
17
|
+
type RLNContractInitOptions = RLNContractOptions & RLNStorageOptions;
|
18
|
+
type FetchMembersOptions = {
|
17
19
|
fromBlock?: number;
|
18
20
|
fetchRange?: number;
|
19
21
|
fetchChunks?: number;
|
@@ -27,8 +29,9 @@ export declare class RLNContract {
|
|
27
29
|
private _membersFilter;
|
28
30
|
private _members;
|
29
31
|
static init(rlnInstance: RLNInstance, options: RLNContractInitOptions): Promise<RLNContract>;
|
30
|
-
constructor(rlnInstance: RLNInstance, { registryAddress,
|
32
|
+
constructor(rlnInstance: RLNInstance, { registryAddress, signer }: RLNContractOptions);
|
31
33
|
private initStorageContract;
|
34
|
+
get registry(): ethers.Contract;
|
32
35
|
get contract(): ethers.Contract;
|
33
36
|
get members(): Member[];
|
34
37
|
private get membersFilter();
|
@@ -37,8 +40,7 @@ export declare class RLNContract {
|
|
37
40
|
private insertMembers;
|
38
41
|
private removeMembers;
|
39
42
|
subscribeToMembers(rlnInstance: RLNInstance): void;
|
40
|
-
|
41
|
-
registerWithKey(credential: IdentityCredential): Promise<Member | undefined>;
|
43
|
+
registerWithIdentity(identity: IdentityCredential): Promise<DecryptedCredentials | undefined>;
|
42
44
|
roots(): Uint8Array[];
|
43
45
|
}
|
44
46
|
export {};
|
@@ -1,21 +1,31 @@
|
|
1
|
+
import { hexToBytes } from "@waku/utils/bytes";
|
2
|
+
import debug from "debug";
|
1
3
|
import { ethers } from "ethers";
|
4
|
+
import { MerkleRootTracker } from "../root_tracker.js";
|
5
|
+
import { zeroPadLE } from "../utils/index.js";
|
2
6
|
import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI } from "./constants.js";
|
3
|
-
|
7
|
+
const log = debug("waku:rln:contract");
|
4
8
|
export class RLNContract {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
registryContract;
|
10
|
+
merkleRootTracker;
|
11
|
+
deployBlock;
|
12
|
+
storageIndex;
|
13
|
+
storageContract;
|
14
|
+
_membersFilter;
|
15
|
+
_members = new Map();
|
11
16
|
static async init(rlnInstance, options) {
|
12
17
|
const rlnContract = new RLNContract(rlnInstance, options);
|
13
|
-
await rlnContract.initStorageContract(options.
|
18
|
+
await rlnContract.initStorageContract(options.signer);
|
14
19
|
await rlnContract.fetchMembers(rlnInstance);
|
15
20
|
rlnContract.subscribeToMembers(rlnInstance);
|
16
21
|
return rlnContract;
|
17
22
|
}
|
18
|
-
|
23
|
+
constructor(rlnInstance, { registryAddress, signer }) {
|
24
|
+
const initialRoot = rlnInstance.zerokit.getMerkleRoot();
|
25
|
+
this.registryContract = new ethers.Contract(registryAddress, RLN_REGISTRY_ABI, signer);
|
26
|
+
this.merkleRootTracker = new MerkleRootTracker(5, initialRoot);
|
27
|
+
}
|
28
|
+
async initStorageContract(signer, options = {}) {
|
19
29
|
const storageIndex = options?.storageIndex
|
20
30
|
? options.storageIndex
|
21
31
|
: await this.registryContract.usingStorageIndex();
|
@@ -24,10 +34,16 @@ export class RLNContract {
|
|
24
34
|
throw Error("No RLN Storage initialized on registry contract.");
|
25
35
|
}
|
26
36
|
this.storageIndex = storageIndex;
|
27
|
-
this.storageContract = new ethers.Contract(storageAddress, RLN_STORAGE_ABI,
|
37
|
+
this.storageContract = new ethers.Contract(storageAddress, RLN_STORAGE_ABI, signer);
|
28
38
|
this._membersFilter = this.storageContract.filters.MemberRegistered();
|
29
39
|
this.deployBlock = await this.storageContract.deployedBlockNumber();
|
30
40
|
}
|
41
|
+
get registry() {
|
42
|
+
if (!this.registryContract) {
|
43
|
+
throw Error("Registry contract was not initialized");
|
44
|
+
}
|
45
|
+
return this.registryContract;
|
46
|
+
}
|
31
47
|
get contract() {
|
32
48
|
if (!this.storageContract) {
|
33
49
|
throw Error("Storage contract was not initialized");
|
@@ -48,7 +64,7 @@ export class RLNContract {
|
|
48
64
|
const registeredMemberEvents = await queryFilter(this.contract, {
|
49
65
|
fromBlock: this.deployBlock,
|
50
66
|
...options,
|
51
|
-
membersFilter: this.membersFilter
|
67
|
+
membersFilter: this.membersFilter
|
52
68
|
});
|
53
69
|
this.processEvents(rlnInstance, registeredMemberEvents);
|
54
70
|
}
|
@@ -78,9 +94,9 @@ export class RLNContract {
|
|
78
94
|
eventsPerBlock.push(evt);
|
79
95
|
toInsertTable.set(evt.blockNumber, eventsPerBlock);
|
80
96
|
}
|
81
|
-
this.removeMembers(rlnInstance, toRemoveTable);
|
82
|
-
this.insertMembers(rlnInstance, toInsertTable);
|
83
97
|
});
|
98
|
+
this.removeMembers(rlnInstance, toRemoveTable);
|
99
|
+
this.insertMembers(rlnInstance, toInsertTable);
|
84
100
|
}
|
85
101
|
insertMembers(rlnInstance, toInsert) {
|
86
102
|
toInsert.forEach((events, blockNumber) => {
|
@@ -90,14 +106,14 @@ export class RLNContract {
|
|
90
106
|
if (!_idCommitment || !index) {
|
91
107
|
return;
|
92
108
|
}
|
93
|
-
const idCommitment =
|
94
|
-
rlnInstance.insertMember(idCommitment);
|
109
|
+
const idCommitment = zeroPadLE(hexToBytes(_idCommitment?._hex), 32);
|
110
|
+
rlnInstance.zerokit.insertMember(idCommitment);
|
95
111
|
this._members.set(index.toNumber(), {
|
96
112
|
index,
|
97
|
-
idCommitment: _idCommitment?._hex
|
113
|
+
idCommitment: _idCommitment?._hex
|
98
114
|
});
|
99
115
|
});
|
100
|
-
const currentRoot = rlnInstance.getMerkleRoot();
|
116
|
+
const currentRoot = rlnInstance.zerokit.getMerkleRoot();
|
101
117
|
this.merkleRootTracker.pushRoot(blockNumber, currentRoot);
|
102
118
|
});
|
103
119
|
}
|
@@ -107,8 +123,8 @@ export class RLNContract {
|
|
107
123
|
indexes.forEach((index) => {
|
108
124
|
if (this._members.has(index)) {
|
109
125
|
this._members.delete(index);
|
126
|
+
rlnInstance.zerokit.deleteMember(index);
|
110
127
|
}
|
111
|
-
rlnInstance.deleteMember(index);
|
112
128
|
});
|
113
129
|
this.merkleRootTracker.backFill(blockNumber);
|
114
130
|
});
|
@@ -116,15 +132,11 @@ export class RLNContract {
|
|
116
132
|
subscribeToMembers(rlnInstance) {
|
117
133
|
this.contract.on(this.membersFilter, (_pubkey, _index, event) => this.processEvents(rlnInstance, [event]));
|
118
134
|
}
|
119
|
-
async
|
120
|
-
const identityCredential = await rlnInstance.generateSeededIdentityCredential(signature);
|
121
|
-
return this.registerWithKey(identityCredential);
|
122
|
-
}
|
123
|
-
async registerWithKey(credential) {
|
135
|
+
async registerWithIdentity(identity) {
|
124
136
|
if (this.storageIndex === undefined) {
|
125
137
|
throw Error("Cannot register credential, no storage contract index found.");
|
126
138
|
}
|
127
|
-
const txRegisterResponse = await this.registryContract["register(uint16,uint256)"](this.storageIndex,
|
139
|
+
const txRegisterResponse = await this.registryContract["register(uint16,uint256)"](this.storageIndex, identity.IDCommitmentBigInt, { gasLimit: 100000 });
|
128
140
|
const txRegisterReceipt = await txRegisterResponse.wait();
|
129
141
|
// assumption: register(uint16,uint256) emits one event
|
130
142
|
const memberRegistered = txRegisterReceipt?.events?.[0];
|
@@ -132,9 +144,16 @@ export class RLNContract {
|
|
132
144
|
return undefined;
|
133
145
|
}
|
134
146
|
const decodedData = this.contract.interface.decodeEventLog("MemberRegistered", memberRegistered.data);
|
147
|
+
const network = await this.registryContract.provider.getNetwork();
|
148
|
+
const address = this.registryContract.address;
|
149
|
+
const membershipId = decodedData.index.toNumber();
|
135
150
|
return {
|
136
|
-
|
137
|
-
|
151
|
+
identity,
|
152
|
+
membership: {
|
153
|
+
address,
|
154
|
+
treeIndex: membershipId,
|
155
|
+
chainId: network.chainId
|
156
|
+
}
|
138
157
|
};
|
139
158
|
}
|
140
159
|
roots() {
|
@@ -145,7 +164,7 @@ export class RLNContract {
|
|
145
164
|
const FETCH_CHUNK = 5;
|
146
165
|
const BLOCK_RANGE = 3000;
|
147
166
|
async function queryFilter(contract, options) {
|
148
|
-
const { fromBlock, membersFilter, fetchRange = BLOCK_RANGE, fetchChunks = FETCH_CHUNK
|
167
|
+
const { fromBlock, membersFilter, fetchRange = BLOCK_RANGE, fetchChunks = FETCH_CHUNK } = options;
|
149
168
|
if (!fromBlock) {
|
150
169
|
return contract.queryFilter(membersFilter);
|
151
170
|
}
|
@@ -177,17 +196,15 @@ function splitToChunks(from, to, step) {
|
|
177
196
|
}
|
178
197
|
function* takeN(array, size) {
|
179
198
|
let start = 0;
|
180
|
-
|
181
|
-
|
182
|
-
const portion = array.slice(start, skip);
|
199
|
+
while (start < array.length) {
|
200
|
+
const portion = array.slice(start, start + size);
|
183
201
|
yield portion;
|
184
|
-
start
|
185
|
-
skip += size;
|
202
|
+
start += size;
|
186
203
|
}
|
187
204
|
}
|
188
205
|
function ignoreErrors(promise, defaultValue) {
|
189
206
|
return promise.catch((err) => {
|
190
|
-
|
207
|
+
log(`Ignoring an error during query: ${err?.message}`);
|
191
208
|
return defaultValue;
|
192
209
|
});
|
193
210
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rln_contract.js","sourceRoot":"","sources":["../../src/contract/rln_contract.ts"],"names":[],"mappings":"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"}
|
package/dist/create.d.ts
ADDED
package/dist/create.js
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
export async function createRLN() {
|
2
|
+
// A dependency graph that contains any wasm must all be imported
|
3
|
+
// asynchronously. This file does the single async import, so
|
4
|
+
// that no one else needs to worry about it again.
|
5
|
+
const rlnModule = await import("./rln.js");
|
6
|
+
return rlnModule.create();
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=create.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,iEAAiE;IACjE,6DAA6D;IAC7D,kDAAkD;IAClD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export declare class IdentityCredential {
|
2
|
+
readonly IDTrapdoor: Uint8Array;
|
3
|
+
readonly IDNullifier: Uint8Array;
|
4
|
+
readonly IDSecretHash: Uint8Array;
|
5
|
+
readonly IDCommitment: Uint8Array;
|
6
|
+
readonly IDCommitmentBigInt: bigint;
|
7
|
+
constructor(IDTrapdoor: Uint8Array, IDNullifier: Uint8Array, IDSecretHash: Uint8Array, IDCommitment: Uint8Array, IDCommitmentBigInt: bigint);
|
8
|
+
static fromBytes(memKeys: Uint8Array): IdentityCredential;
|
9
|
+
}
|
package/dist/identity.js
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
import { buildBigIntFromUint8Array } from "./utils/index.js";
|
2
|
+
export class IdentityCredential {
|
3
|
+
IDTrapdoor;
|
4
|
+
IDNullifier;
|
5
|
+
IDSecretHash;
|
6
|
+
IDCommitment;
|
7
|
+
IDCommitmentBigInt;
|
8
|
+
constructor(IDTrapdoor, IDNullifier, IDSecretHash, IDCommitment, IDCommitmentBigInt) {
|
9
|
+
this.IDTrapdoor = IDTrapdoor;
|
10
|
+
this.IDNullifier = IDNullifier;
|
11
|
+
this.IDSecretHash = IDSecretHash;
|
12
|
+
this.IDCommitment = IDCommitment;
|
13
|
+
this.IDCommitmentBigInt = IDCommitmentBigInt;
|
14
|
+
}
|
15
|
+
static fromBytes(memKeys) {
|
16
|
+
const idTrapdoor = memKeys.subarray(0, 32);
|
17
|
+
const idNullifier = memKeys.subarray(32, 64);
|
18
|
+
const idSecretHash = memKeys.subarray(64, 96);
|
19
|
+
const idCommitment = memKeys.subarray(96);
|
20
|
+
const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment, 96);
|
21
|
+
return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment, idCommitmentBigInt);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=identity.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,OAAO,kBAAkB;IAEX;IACA;IACA;IACA;IACA;IALlB,YACkB,UAAsB,EACtB,WAAuB,EACvB,YAAwB,EACxB,YAAwB,EACxB,kBAA0B;QAJ1B,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAY;QACvB,iBAAY,GAAZ,YAAY,CAAY;QACxB,iBAAY,GAAZ,YAAY,CAAY;QACxB,uBAAkB,GAAlB,kBAAkB,CAAQ;IACzC,CAAC;IAEJ,MAAM,CAAC,SAAS,CAAC,OAAmB;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEvE,OAAO,IAAI,kBAAkB,CAC3B,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
import { RLNDecoder, RLNEncoder } from "./codec.js";
|
2
|
-
import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI, SEPOLIA_CONTRACT } from "./
|
2
|
+
import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI, SEPOLIA_CONTRACT } from "./contract/index.js";
|
3
|
+
import { RLNContract } from "./contract/index.js";
|
4
|
+
import { createRLN } from "./create.js";
|
5
|
+
import { IdentityCredential } from "./identity.js";
|
3
6
|
import { Keystore } from "./keystore/index.js";
|
4
|
-
import {
|
5
|
-
import {
|
7
|
+
import { Proof } from "./proof.js";
|
8
|
+
import { RLNInstance } from "./rln.js";
|
6
9
|
import { MerkleRootTracker } from "./root_tracker.js";
|
7
|
-
|
8
|
-
export { Keystore, RLNInstance, IdentityCredential, Proof,
|
10
|
+
import { extractMetaMaskSigner } from "./utils/index.js";
|
11
|
+
export { createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract, RLN_STORAGE_ABI, RLN_REGISTRY_ABI, SEPOLIA_CONTRACT, extractMetaMaskSigner };
|
package/dist/index.js
CHANGED
@@ -1,16 +1,12 @@
|
|
1
1
|
import { RLNDecoder, RLNEncoder } from "./codec.js";
|
2
|
-
import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI, SEPOLIA_CONTRACT
|
2
|
+
import { RLN_REGISTRY_ABI, RLN_STORAGE_ABI, SEPOLIA_CONTRACT } from "./contract/index.js";
|
3
|
+
import { RLNContract } from "./contract/index.js";
|
4
|
+
import { createRLN } from "./create.js";
|
5
|
+
import { IdentityCredential } from "./identity.js";
|
3
6
|
import { Keystore } from "./keystore/index.js";
|
4
|
-
import {
|
5
|
-
import {
|
7
|
+
import { Proof } from "./proof.js";
|
8
|
+
import { RLNInstance } from "./rln.js";
|
6
9
|
import { MerkleRootTracker } from "./root_tracker.js";
|
7
|
-
|
8
|
-
export
|
9
|
-
// A dependency graph that contains any wasm must all be imported
|
10
|
-
// asynchronously. This file does the single async import, so
|
11
|
-
// that no one else needs to worry about it again.
|
12
|
-
const rlnModule = await import("./rln.js");
|
13
|
-
return await rlnModule.create();
|
14
|
-
}
|
15
|
-
export { Keystore, RLNInstance, IdentityCredential, Proof, ProofMetadata, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract, RLN_STORAGE_ABI, RLN_REGISTRY_ABI, SEPOLIA_CONTRACT, };
|
10
|
+
import { extractMetaMaskSigner } from "./utils/index.js";
|
11
|
+
export { createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract, RLN_STORAGE_ABI, RLN_REGISTRY_ABI, SEPOLIA_CONTRACT, extractMetaMaskSigner };
|
16
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACtB,CAAC"}
|
package/dist/keystore/cipher.js
CHANGED
@@ -2,7 +2,7 @@ import { cipherDecrypt } from "@chainsafe/bls-keystore/lib/cipher.js";
|
|
2
2
|
import { kdf } from "@chainsafe/bls-keystore/lib/kdf.js";
|
3
3
|
import { normalizePassword } from "@chainsafe/bls-keystore/lib/password.js";
|
4
4
|
import { keccak256 } from "ethereum-cryptography/keccak";
|
5
|
-
import { bytesToHex, concatBytes, hexToBytes
|
5
|
+
import { bytesToHex, concatBytes, hexToBytes } from "ethereum-cryptography/utils";
|
6
6
|
// eipKeystore supports only sha256 checksum so we just make an assumption it is keccak256
|
7
7
|
const validateChecksum = async (password, eipKeystore) => {
|
8
8
|
const computedChecksum = await keccak256Checksum(password, eipKeystore);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/keystore/cipher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,
|
1
|
+
{"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/keystore/cipher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACX,MAAM,6BAA6B,CAAC;AAIrC,0FAA0F;AAC1F,MAAM,gBAAgB,GAAG,KAAK,EAC5B,QAAkB,EAClB,WAAyB,EACP,EAAE;IACpB,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,OAAO,gBAAgB,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;AAClE,CAAC,CAAC;AAEF,4DAA4D;AAC5D,2BAA2B;AAC3B,sHAAsH;AACtH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAAkB,EAClB,WAAyB,EACJ,EAAE;IACvB,MAAM,aAAa,GAAG,MAAM,GAAG,CAC7B,WAAW,CAAC,MAAM,CAAC,GAAG,EACtB,iBAAiB,CAAC,QAAQ,CAAC,CAC5B,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEtE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,QAAkB,EAClB,WAAyB,EACD,EAAE;IAC1B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,WAAW,CACzB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EACb,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAC9C,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"credential_validation_generated.js","sourceRoot":"","sources":["../../src/keystore/credential_validation_generated.ts"],"names":[],"mappings":"AACA,wDAAwD;AACxD,mEAAmE;AACnE,mCAAmC;AAEnC,oBAAoB;AACpB,aAAa;AACb,YAAY,CAAC;AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAAA,MAAM,QAAQ,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,YAAY,EAAC,EAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,YAAY,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,WAAW,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,EAAC,UAAU,EAAC,CAAC,QAAQ,EAAC,cAAc,EAAC,YAAY,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,CAAC,EAAC,EAAC,EAAC,UAAU,EAAC,CAAC,QAAQ,CAAC,EAAC,CAAC;AAAA,SAAS,UAAU,CAAC,IAAI,EAAE,EAAC,YAAY,GAAC,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,GAAC,IAAI,EAAC,GAAC,EAAE,IAAE,IAAI,OAAO,GAAG,IAAI,CAAC,CAAA,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA,IAAG,MAAM,KAAK,CAAC,EAAC;
|
1
|
+
{"version":3,"file":"credential_validation_generated.js","sourceRoot":"","sources":["../../src/keystore/credential_validation_generated.ts"],"names":[],"mappings":"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"}
|
package/dist/keystore/index.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/keystore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/keystore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import type { ICipherModule, IPbkdf2KdfModule } from "@chainsafe/bls-keystore";
|
2
|
-
import type {
|
3
|
-
|
4
|
-
declare type NwakuCredential = {
|
2
|
+
import type { KeystoreEntity, MembershipHash, Password, Sha256Hash } from "./types.js";
|
3
|
+
type NwakuCredential = {
|
5
4
|
crypto: {
|
6
5
|
cipher: ICipherModule["function"];
|
7
6
|
cipherparams: ICipherModule["params"];
|
@@ -19,26 +18,27 @@ interface NwakuKeystore {
|
|
19
18
|
[key: MembershipHash]: NwakuCredential;
|
20
19
|
};
|
21
20
|
}
|
22
|
-
|
21
|
+
type KeystoreCreateOptions = {
|
23
22
|
application?: string;
|
24
23
|
version?: string;
|
25
24
|
appIdentifier?: string;
|
26
25
|
};
|
27
|
-
declare type IdentityOptions = {
|
28
|
-
identity: IdentityCredential;
|
29
|
-
membership: MembershipInfo;
|
30
|
-
};
|
31
26
|
export declare class Keystore {
|
32
27
|
private data;
|
33
28
|
private constructor();
|
34
29
|
static create(options?: KeystoreCreateOptions): Keystore;
|
35
|
-
static fromString(str: string):
|
30
|
+
static fromString(str: string): undefined | Keystore;
|
36
31
|
static fromObject(obj: NwakuKeystore): Keystore;
|
37
|
-
addCredential(options:
|
38
|
-
readCredential(membershipHash: MembershipHash, password: Password): Promise<
|
32
|
+
addCredential(options: KeystoreEntity, password: Password): Promise<MembershipHash>;
|
33
|
+
readCredential(membershipHash: MembershipHash, password: Password): Promise<undefined | KeystoreEntity>;
|
39
34
|
removeCredential(hash: MembershipHash): void;
|
40
35
|
toString(): string;
|
41
36
|
toObject(): NwakuKeystore;
|
37
|
+
/**
|
38
|
+
* Read array of hashes of current credentials
|
39
|
+
* @returns array of keys of credentials in current Keystore
|
40
|
+
*/
|
41
|
+
keys(): string[];
|
42
42
|
private static isValidNwakuStore;
|
43
43
|
private static fromCredentialToEip;
|
44
44
|
private static fromEipToCredential;
|