mirror of
https://github.com/logos-messaging/js-rln.git
synced 2026-01-03 22:23:09 +00:00
feat: use verifyWithRoots for verifying proofs
This commit is contained in:
parent
b40b4d68fe
commit
78f9e9b38f
11
.cspell.json
11
.cspell.json
@ -2,7 +2,16 @@
|
|||||||
"version": "0.1",
|
"version": "0.1",
|
||||||
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json",
|
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json",
|
||||||
"language": "en",
|
"language": "en",
|
||||||
"words": ["Waku", "keypair", "merkle", "vkey", "zkey", "circom", "zerokit"],
|
"words": [
|
||||||
|
"Waku",
|
||||||
|
"keypair",
|
||||||
|
"merkle",
|
||||||
|
"vkey",
|
||||||
|
"zkey",
|
||||||
|
"circom",
|
||||||
|
"zerokit",
|
||||||
|
"nwaku"
|
||||||
|
],
|
||||||
"flagWords": [],
|
"flagWords": [],
|
||||||
"ignorePaths": [
|
"ignorePaths": [
|
||||||
"package.json",
|
"package.json",
|
||||||
|
|||||||
19698
example/package-lock.json
generated
19698
example/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
39
package-lock.json
generated
39
package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@waku/rln",
|
"name": "@waku/rln",
|
||||||
"version": "0.0.10",
|
"version": "0.0.11",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@waku/rln",
|
"name": "@waku/rln",
|
||||||
"version": "0.0.10",
|
"version": "0.0.11",
|
||||||
"license": "MIT OR Apache-2.0",
|
"license": "MIT OR Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@waku/zerokit-rln-wasm": "^0.0.3"
|
"@waku/zerokit-rln-wasm": "^0.0.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-commonjs": "^22.0.2",
|
"@rollup/plugin-commonjs": "^22.0.2",
|
||||||
@ -2549,9 +2549,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@waku/zerokit-rln-wasm": {
|
"node_modules/@waku/zerokit-rln-wasm": {
|
||||||
"version": "0.0.3",
|
"version": "0.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@waku/zerokit-rln-wasm/-/zerokit-rln-wasm-0.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@waku/zerokit-rln-wasm/-/zerokit-rln-wasm-0.0.4.tgz",
|
||||||
"integrity": "sha512-vN2lfCbFChB1ZiyNpE34NBELJ7IabBgdWtzOnvOwuwmuQgAsWCdvt7UGtjRfogMxr2clSTrI1pVYSD9ayf/d4w=="
|
"integrity": "sha512-J5Dh3CQAvSk1cn6Pv61wbTwuB0Sc1gR53ljVFqAovvTQSmMxY3I8vjE2vml5dLlhVCIlSAfBfnOr/OaBD3b0Mg=="
|
||||||
},
|
},
|
||||||
"node_modules/@web/rollup-plugin-import-meta-assets": {
|
"node_modules/@web/rollup-plugin-import-meta-assets": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.7",
|
||||||
@ -5374,20 +5374,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/fsevents": {
|
|
||||||
"version": "2.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
|
||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
|
||||||
"dev": true,
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"darwin"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/function-bind": {
|
"node_modules/function-bind": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@ -12995,9 +12981,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@waku/zerokit-rln-wasm": {
|
"@waku/zerokit-rln-wasm": {
|
||||||
"version": "0.0.3",
|
"version": "0.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@waku/zerokit-rln-wasm/-/zerokit-rln-wasm-0.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@waku/zerokit-rln-wasm/-/zerokit-rln-wasm-0.0.4.tgz",
|
||||||
"integrity": "sha512-vN2lfCbFChB1ZiyNpE34NBELJ7IabBgdWtzOnvOwuwmuQgAsWCdvt7UGtjRfogMxr2clSTrI1pVYSD9ayf/d4w=="
|
"integrity": "sha512-J5Dh3CQAvSk1cn6Pv61wbTwuB0Sc1gR53ljVFqAovvTQSmMxY3I8vjE2vml5dLlhVCIlSAfBfnOr/OaBD3b0Mg=="
|
||||||
},
|
},
|
||||||
"@web/rollup-plugin-import-meta-assets": {
|
"@web/rollup-plugin-import-meta-assets": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.7",
|
||||||
@ -14933,13 +14919,6 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"fsevents": {
|
|
||||||
"version": "2.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
|
||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"function-bind": {
|
"function-bind": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"dev": true
|
"dev": true
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@waku/rln",
|
"name": "@waku/rln",
|
||||||
"version": "0.0.10",
|
"version": "0.0.11",
|
||||||
"description": "Rate Limit Nullifier for js-waku",
|
"description": "Rate Limit Nullifier for js-waku",
|
||||||
"types": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@ -125,6 +125,6 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@waku/zerokit-rln-wasm": "^0.0.3"
|
"@waku/zerokit-rln-wasm": "^0.0.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ export class RlnMessage<T extends Message> implements Message {
|
|||||||
|
|
||||||
public verify(): boolean | undefined {
|
public verify(): boolean | undefined {
|
||||||
return this.rateLimitProof
|
return this.rateLimitProof
|
||||||
? this.rlnInstance.verifyRLNProof(this.rateLimitProof, toRLNSignal(this))
|
? this.rlnInstance.verifyWithRoots(this.rateLimitProof, toRLNSignal(this)) // this.rlnInstance.verifyRLNProof once issue status-im/nwaku#1248 is fixed
|
||||||
: undefined;
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
28
src/rln.ts
28
src/rln.ts
@ -129,6 +129,10 @@ export class RLNInstance {
|
|||||||
zerokitRLN.insertMember(this.zkRLN, idCommitment);
|
zerokitRLN.insertMember(this.zkRLN, idCommitment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMerkleRoot(): Uint8Array {
|
||||||
|
return zerokitRLN.getRoot(this.zkRLN);
|
||||||
|
}
|
||||||
|
|
||||||
serializeMessage(
|
serializeMessage(
|
||||||
uint8Msg: Uint8Array,
|
uint8Msg: Uint8Array,
|
||||||
memIndex: number,
|
memIndex: number,
|
||||||
@ -197,4 +201,28 @@ export class RLNInstance {
|
|||||||
concatenate(pBytes, msgLen, msg)
|
concatenate(pBytes, msgLen, msg)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
verifyWithRoots(
|
||||||
|
proof: RateLimitProof | Uint8Array,
|
||||||
|
msg: Uint8Array
|
||||||
|
): boolean {
|
||||||
|
let pBytes: Uint8Array;
|
||||||
|
if (proof instanceof Uint8Array) {
|
||||||
|
pBytes = proof;
|
||||||
|
} else {
|
||||||
|
pBytes = proofToBytes(proof);
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate message length
|
||||||
|
const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
|
||||||
|
|
||||||
|
// obtain root
|
||||||
|
const root = zerokitRLN.getRoot(this.zkRLN);
|
||||||
|
|
||||||
|
return zerokitRLN.verifyWithRoots(
|
||||||
|
this.zkRLN,
|
||||||
|
concatenate(pBytes, msgLen, msg),
|
||||||
|
root
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user