takeAttestation
uses tcmts.registry.attestations, which uses tcmts.server.table, which uses tcmts.server.Table, which uses #tcm/host (database)
A review, advisory or yank Jetstream sent: kept, to be checked against its writer's repository; or, deleted, gone
once its repository no longer holds it (recheckAttestation).
import { parseAttestation } from "#codebase/tcmts/records"; import { attestationFields, attestations, checkAttestation, people, recheckAttestation, safeLex, } from "#codebase/tcmts/registry"; import type { RegistryAttestation } from "#codebase/tcmts/registry"; import { enqueue } from "#codebase/tcmts/server"; import type { RawEvent } from "@bsky/jetstream"; export async function takeAttestation(e: RawEvent & { kind: "commit" }): Promise<void> { const uri = `at://${e.did}/${e.commit.collection}/${e.commit.rkey}`; const had = await attestations.findOne({ uri }); if (e.commit.operation === "delete") { if (had) enqueue(recheckAttestation, uri); return; } const raw = e.commit.record; const a = parseAttestation(e.commit.collection, raw instanceof Uint8Array ? safeLex(raw) : raw); if (!a) return; if (!(await people.findOne({ did: e.did }))) await people.insert({ did: e.did, seq: e.seq }); const row: RegistryAttestation = { uri, did: e.did, ...attestationFields(a), seq: e.seq, state: "pending", }; if (had) await attestations.put(had.id, row); else await attestations.insert(row); enqueue(checkAttestation, uri); }
uses
- tcmts.records.parseAttestation
- tcmts.registry.RegistryAttestation
- tcmts.registry.attestationFields
- tcmts.registry.attestations
- tcmts.registry.checkAttestation
- tcmts.registry.people
- tcmts.registry.recheckAttestation
- tcmts.registry.safeLex
- tcmts.server.enqueue