@waku/rln
Version:
RLN (Rate Limiting Nullifier) implementation for Waku
29 lines • 1.06 kB
JavaScript
import { BytesUtils } from "./utils/bytes.js";
export class IdentityCredential {
IDTrapdoor;
IDNullifier;
IDSecretHash;
IDCommitment;
IDCommitmentBigInt;
/**
* All variables are in little-endian format
*/
constructor(IDTrapdoor, IDNullifier, IDSecretHash, IDCommitment) {
this.IDTrapdoor = IDTrapdoor;
this.IDNullifier = IDNullifier;
this.IDSecretHash = IDSecretHash;
this.IDCommitment = IDCommitment;
this.IDCommitmentBigInt = BytesUtils.toBigInt(IDCommitment);
}
static fromBytes(memKeys) {
if (memKeys.length < 128) {
throw new Error("Invalid memKeys length - must be at least 128 bytes");
}
const idTrapdoor = memKeys.subarray(0, 32);
const idNullifier = memKeys.subarray(32, 64);
const idSecretHash = memKeys.subarray(64, 96);
const idCommitment = memKeys.subarray(96, 128);
return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment);
}
}
//# sourceMappingURL=identity.js.map