Skip to content

Commit 3c23692

Browse files
committed
fix: lint
1 parent 3f9a261 commit 3c23692

4 files changed

Lines changed: 55 additions & 24 deletions

File tree

infrastructure/eid-wallet/src/lib/utils/socialBinding.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ export async function fetchNameFromVault(
150150
gqlUrl: string,
151151
ownerEname: string,
152152
fallback: string,
153+
debug = false,
153154
): Promise<string> {
154155
try {
155156
const data = await vaultGqlRequest<BindingDocsResult>(
@@ -158,13 +159,15 @@ export async function fetchNameFromVault(
158159
BINDING_DOCS_QUERY,
159160
);
160161
const edges = data.bindingDocuments?.edges ?? [];
161-
console.log(
162-
`[fetchNameFromVault] X-ENAME=${ownerEname} returned ${edges.length} docs:`,
163-
edges.map((e) => ({
164-
type: e.node.parsed?.type,
165-
name: e.node.parsed?.data?.name,
166-
})),
167-
);
162+
if (debug) {
163+
console.debug("[fetchNameFromVault] binding docs fetched", {
164+
docsCount: edges.length,
165+
docs: edges.map((e) => ({
166+
type: e.node.parsed?.type,
167+
hasName: typeof e.node.parsed?.data?.name === "string",
168+
})),
169+
});
170+
}
168171
let selfName: string | null = null;
169172
for (const edge of edges) {
170173
const parsed = edge.node.parsed;
@@ -414,9 +417,10 @@ export async function fetchUnsignedSocialDocs(
414417
// so the requester IS the subject of the doc they need to counter-sign.
415418
if (parsed.subject !== normalized) return false;
416419
// Requester hasn't counter-signed yet
417-
const alreadySigned = parsed.signatures.some(
418-
(s) => s.signer === normalized,
419-
);
420+
const signatures = Array.isArray(parsed.signatures)
421+
? parsed.signatures
422+
: [];
423+
const alreadySigned = signatures.some((s) => s.signer === normalized);
420424
return !alreadySigned;
421425
});
422426
}
@@ -451,7 +455,10 @@ export async function fetchUnsignedSocialDocForSubject(
451455
const parsed = edge.node.parsed;
452456
if (!parsed || parsed.type !== "social_connection") return false;
453457
if (parsed.subject !== normalizedSubject) return false;
454-
const alreadySigned = parsed.signatures.some(
458+
const signatures = Array.isArray(parsed.signatures)
459+
? parsed.signatures
460+
: [];
461+
const alreadySigned = signatures.some(
455462
(s) => s.signer === normalizedCaller,
456463
);
457464
return !alreadySigned;

infrastructure/eid-wallet/src/routes/(app)/ePassport/+page.svelte

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import { ButtonAction } from "$lib/ui";
1010
import {
1111
addCounterpartySignature,
1212
capitalize,
13-
getCanonicalBindingDocString,
1413
deleteSocialBindingDoc,
1514
fetchNameFromVault,
1615
fetchUnsignedSocialDocs,
16+
getCanonicalBindingDocString,
1717
resolveVaultUri,
1818
} from "$lib/utils";
1919
import axios from "axios";
@@ -498,20 +498,33 @@ async function runSocialBindingPoll() {
498498
async function confirmSocialBinding() {
499499
if (!socialBindingSignerEname) return;
500500
socialBindingAwaitingConsent = false;
501-
socialBindingCounterSigning = true;
502501
socialBindingError = null;
503502
503+
const vault = await globalState.vaultController.vault;
504+
if (!vault?.ename || !vault?.uri) {
505+
socialBindingError = "No active vault found.";
506+
socialBindingAwaitingConsent = false;
507+
socialBindingCounterSigning = false;
508+
startSocialBindingPolling();
509+
return;
510+
}
511+
512+
if (!socialBindingPendingDocId || !socialBindingPendingDocParsed) {
513+
socialBindingError = "No pending social binding request found.";
514+
socialBindingAwaitingConsent = false;
515+
socialBindingCounterSigning = false;
516+
startSocialBindingPolling();
517+
return;
518+
}
519+
520+
socialBindingCounterSigning = true;
521+
504522
try {
505-
const vault = await globalState.vaultController.vault;
506-
if (!vault?.ename || !vault?.uri) return;
507523
const callerEname = vault.ename.startsWith("@")
508524
? vault.ename
509525
: `@${vault.ename}`;
510526
const gqlUrl = new URL("/graphql", vault.uri).toString();
511527
512-
if (!socialBindingPendingDocId || !socialBindingPendingDocParsed)
513-
return;
514-
515528
// Counter-sign the doc in the requester's OWN vault.
516529
// The doc has subject=@requester (=callerEname) so the requester is the valid counterparty.
517530
const payload = getCanonicalBindingDocString({
@@ -537,9 +550,10 @@ async function confirmSocialBinding() {
537550
console.error("[Social Binding] counter-sign error:", err);
538551
socialBindingError =
539552
err instanceof Error ? err.message : "Something went wrong.";
540-
socialBindingCounterSigning = false;
541553
socialBindingAwaitingConsent = false;
542554
startSocialBindingPolling();
555+
} finally {
556+
socialBindingCounterSigning = false;
543557
}
544558
}
545559

infrastructure/eid-wallet/src/routes/(app)/scan-qr/scanLogic.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ import { authenticate } from "wallet-sdk";
1515

1616
import type { GlobalState } from "$lib/global";
1717
import {
18-
addCounterpartySignature,
19-
getCanonicalBindingDocString,
2018
createSocialConnectionDoc,
2119
fetchNameFromVault,
20+
getCanonicalBindingDocString,
2221
resolveVaultUri,
2322
} from "$lib/utils";
2423

@@ -677,6 +676,15 @@ export function createScanLogic({
677676
const signerEname = vault.ename.startsWith("@")
678677
? vault.ename
679678
: `@${vault.ename}`;
679+
const normalizedRequesterEname = requesterEname.startsWith("@")
680+
? requesterEname
681+
: `@${requesterEname}`;
682+
if (signerEname === normalizedRequesterEname) {
683+
socialBindingError.set(
684+
"You cannot create a social binding with yourself.",
685+
);
686+
return;
687+
}
680688

681689
// 1. Resolve requester's vault URI
682690
const requesterVaultUri = await resolveVaultUri(requesterEname);
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
declare module "svelte-qrcode" {
2-
import type { SvelteComponentTyped } from "svelte";
2+
import type { Component } from "svelte";
33

4-
export default class QrCode extends SvelteComponentTyped<{
4+
export declare const QrCode: Component<{
55
value: string;
66
size?: number;
7-
}> {}
7+
}>;
8+
9+
export default QrCode;
810
}

0 commit comments

Comments
 (0)