mirror of
https://github.com/BlowaterNostr/blowater.git
synced 2024-10-18 15:43:20 +00:00
25 lines
630 B
TypeScript
25 lines
630 B
TypeScript
import { NostrEvent } from "https://raw.githubusercontent.com/BlowaterNostr/nostr.ts/main/nostr.ts";
|
|
import { getTags } from "./nostr.ts";
|
|
|
|
export class LamportTime {
|
|
constructor(private time: number) {}
|
|
now() {
|
|
this.time++;
|
|
return this.time;
|
|
}
|
|
set(t: number) {
|
|
this.time = Math.max(this.time, t);
|
|
}
|
|
}
|
|
|
|
export function fromEvents(events: Iterable<NostrEvent>): LamportTime {
|
|
let time = 0;
|
|
for (const event of events) {
|
|
const ts = getTags(event).lamport_timestamp;
|
|
if (ts && ts > time) {
|
|
time = ts;
|
|
}
|
|
}
|
|
return new LamportTime(time);
|
|
}
|