@waku/rln
Version:
RLN (Rate Limiting Nullifier) implementation for Waku
29 lines • 974 B
JavaScript
import * as zerokitRLN from "@waku/zerokit-rln-wasm";
import { DEFAULT_RATE_LIMIT } from "./contract/constants.js";
import { IdentityCredential } from "./identity.js";
export class Zerokit {
zkRLN;
witnessCalculator;
_rateLimit;
constructor(zkRLN, witnessCalculator, _rateLimit = DEFAULT_RATE_LIMIT) {
this.zkRLN = zkRLN;
this.witnessCalculator = witnessCalculator;
this._rateLimit = _rateLimit;
}
get getZkRLN() {
return this.zkRLN;
}
get getWitnessCalculator() {
return this.witnessCalculator;
}
get rateLimit() {
return this._rateLimit;
}
generateSeededIdentityCredential(seed) {
const stringEncoder = new TextEncoder();
const seedBytes = stringEncoder.encode(seed);
const memKeys = zerokitRLN.generateSeededExtendedMembershipKey(this.zkRLN, seedBytes);
return IdentityCredential.fromBytes(memKeys);
}
}
//# sourceMappingURL=zerokit.js.map