···
import { Client, CredentialManager } from "@atcute/client";
+
import { parseDidKey, parsePublicMultikey } from "@atcute/crypto";
import { DidDocument } from "@atcute/identity";
import { ActorIdentifier, Did, Handle, Nsid } from "@atcute/lexicons";
import { A, useLocation, useNavigate, useParams } from "@solidjs/router";
···
const [filter, setFilter] = createSignal<string>();
const [showFilter, setShowFilter] = createSignal(false);
const [validHandles, setValidHandles] = createStore<Record<string, boolean>>({});
+
const [rotationKeys, setRotationKeys] = createSignal<Array<string>>([]);
···
+
const getRotationKeys = async () => {
+
const res = await fetch(
+
`${localStorage.plcDirectory ?? "https://plc.directory"}/${did}/log/last`,
+
const json = await res.json();
+
setRotationKeys(json.rotationKeys ?? []);
const fetchRepo = async () => {
pds = await resolvePDS(did);
···
setDidDoc(didDocCache[did] as DidDocument);
rpc = new Client({ handler: new CredentialManager({ service: pds }) });
···
<div class="flex items-center gap-1">
<div class="iconify lucide--shield-check" />
+
<p class="font-semibold">Verification Methods</p>
<For each={didDocument().verificationMethod}>
···
<Show when={verif.publicKeyMultibase}>
<li class="flex flex-col text-sm">
+
<span>#{verif.id.split("#")[1]}</span>
<ErrorBoundary fallback={<>unknown</>}>
+
({parsePublicMultikey(key()).type})
<span class="truncate">{key()}</span>
+
<div class="flex items-center gap-1">
+
<div class="iconify lucide--key-round" />
+
<p class="font-semibold">Rotation Keys</p>
+
<For each={rotationKeys()}>
+
<span>{key.replace("did:key:", "")}</span>
+
<span> ({parseDidKey(key).type})</span>