Merge pull request #34 from waku-org/chores/log-proof

This commit is contained in:
fryorcraken.eth 2022-10-10 23:32:20 +11:00 committed by GitHub
commit 6ecdc598d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 5 deletions

View File

@ -10,7 +10,7 @@ import {
import { RlnMessage, toRLNSignal } from "./message.js"; import { RlnMessage, toRLNSignal } from "./message.js";
import { MembershipKey, RLNInstance } from "./rln.js"; import { MembershipKey, RLNInstance } from "./rln.js";
const log = debug("waku:message:rln-encoder"); const log = debug("waku:rln:encoder");
export class RLNEncoder implements Encoder { export class RLNEncoder implements Encoder {
public contentTopic: string; public contentTopic: string;
@ -30,7 +30,7 @@ export class RLNEncoder implements Encoder {
async toWire(message: Partial<Message>): Promise<Uint8Array | undefined> { async toWire(message: Partial<Message>): Promise<Uint8Array | undefined> {
message.contentTopic = this.contentTopic; message.contentTopic = this.contentTopic;
message.rateLimitProof = await this.generateProof(message); message.rateLimitProof = await this.generateProof(message);
log("Proof generated", message.rateLimitProof);
return this.encoder.toWire(message); return this.encoder.toWire(message);
} }
@ -42,7 +42,7 @@ export class RLNEncoder implements Encoder {
if (!protoMessage) return; if (!protoMessage) return;
protoMessage.rateLimitProof = await this.generateProof(message); protoMessage.rateLimitProof = await this.generateProof(message);
log("Proof generated", message.rateLimitProof);
return protoMessage; return protoMessage;
} }

View File

@ -1,21 +1,30 @@
import debug from "debug";
const DefaultEpochUnitSeconds = 10; // the rln-relay epoch length in seconds const DefaultEpochUnitSeconds = 10; // the rln-relay epoch length in seconds
const log = debug("waku:rln:epoch");
export function dateToEpoch( export function dateToEpoch(
timestamp: Date, timestamp: Date,
epochUnitSeconds: number = DefaultEpochUnitSeconds epochUnitSeconds: number = DefaultEpochUnitSeconds
): number { ): number {
const time = timestamp.getTime(); const time = timestamp.getTime();
return Math.floor(time / 1000 / epochUnitSeconds); const epoch = Math.floor(time / 1000 / epochUnitSeconds);
log("generated epoch", epoch);
return epoch;
} }
export function epochIntToBytes(epoch: number): Uint8Array { export function epochIntToBytes(epoch: number): Uint8Array {
const bytes = new Uint8Array(32); const bytes = new Uint8Array(32);
const db = new DataView(bytes.buffer); const db = new DataView(bytes.buffer);
db.setUint32(0, epoch, true); db.setUint32(0, epoch, true);
log("encoded epoch", epoch, bytes);
return bytes; return bytes;
} }
export function epochBytesToInt(bytes: Uint8Array): number { export function epochBytesToInt(bytes: Uint8Array): number {
const dv = new DataView(bytes.buffer); const dv = new DataView(bytes.buffer);
return dv.getUint32(0, true); const epoch = dv.getUint32(0, true);
log("decoded epoch", epoch, bytes);
return epoch;
} }