@kynesyslabs/demosdk 2.6.1 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, TwitterProof, InferFromSignaturePayload, DiscordProof, TelegramSignedAttestation, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery } from "../types/abstraction";
1
+ import { XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, GithubProof, TwitterProof, InferFromSignaturePayload, DiscordProof, TelegramSignedAttestation, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery } from "../types/abstraction";
2
2
  import { UnifiedDomainResolution } from "./types/UDResolution";
3
3
  import { Demos } from "../websdk/demosclass";
4
4
  import { PQCAlgorithm } from "../types/cryptography";
@@ -6,6 +6,7 @@ import { Account, RPCResponseWithValidityData } from "../types";
6
6
  export declare class Identities {
7
7
  formats: {
8
8
  web2: {
9
+ github: string[];
9
10
  twitter: string[];
10
11
  discord: string[];
11
12
  };
@@ -72,30 +73,13 @@ export declare class Identities {
72
73
  username: string;
73
74
  }): Promise<RPCResponseWithValidityData>;
74
75
  /**
75
- * Add a github identity to the GCR using OAuth.
76
- * This method is used when the user has authenticated via GitHub OAuth,
77
- * providing userId, username, and a signed attestation from the node.
76
+ * Add a github identity to the GCR.
78
77
  *
79
78
  * @param demos A Demos instance to communicate with the RPC.
80
- * @param payload The OAuth payload containing userId, username, and signed attestation.
81
- * @param referralCode Optional referral code for incentive points.
79
+ * @param payload The payload to add the identity to.
82
80
  * @returns The response from the RPC call.
83
81
  */
84
- addGithubIdentityOAuth(demos: Demos, payload: {
85
- userId: string;
86
- username: string;
87
- signedAttestation: {
88
- attestation: {
89
- provider: "github";
90
- userId: string;
91
- username: string;
92
- timestamp: number;
93
- nodePublicKey: string;
94
- };
95
- signature: string;
96
- signatureType: string;
97
- };
98
- }, referralCode?: string): Promise<RPCResponseWithValidityData>;
82
+ addGithubIdentity(demos: Demos, payload: GithubProof, referralCode?: string): Promise<RPCResponseWithValidityData>;
99
83
  /**
100
84
  * Add a twitter identity to the GCR.
101
85
  *
@@ -1,14 +1,23 @@
1
1
  "use strict";
2
2
  // TODO Implement the identities abstraction
3
3
  // This should be able to query and set the GCR identities for a Demos address
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
4
7
  Object.defineProperty(exports, "__esModule", { value: true });
5
8
  exports.Identities = void 0;
9
+ const axios_1 = __importDefault(require("axios"));
6
10
  const encryption_1 = require("../encryption");
7
11
  const websdk_1 = require("../websdk");
8
12
  class Identities {
9
13
  constructor() {
10
14
  this.formats = {
11
15
  web2: {
16
+ github: [
17
+ "https://gist.github.com",
18
+ "https://raw.githubusercontent.com",
19
+ "https://gist.githubusercontent.com",
20
+ ],
12
21
  twitter: ["https://x.com", "https://twitter.com"],
13
22
  discord: [
14
23
  "https://discord.com/channels",
@@ -40,12 +49,7 @@ class Identities {
40
49
  async inferIdentity(demos, context, payload) {
41
50
  if (context === "web2") {
42
51
  // Skip validation for telegram as it uses custom attestation format, not URL proofs
43
- // Skip validation for GitHub OAuth proofs (JSON-stringified SignedGitHubOAuthAttestation)
44
- const isSignedAttestationProof = typeof payload.proof === "string" &&
45
- payload.proof.startsWith("{") &&
46
- payload.context === "github";
47
52
  if (payload.context !== "telegram" &&
48
- !isSignedAttestationProof &&
49
53
  this.formats.web2[payload.context]) {
50
54
  if (!this.formats.web2[payload.context].some((format) => payload.proof.startsWith(format))) {
51
55
  // construct informative error message
@@ -150,29 +154,24 @@ class Identities {
150
154
  async removeWeb2Identity(demos, payload) {
151
155
  return await this.removeIdentity(demos, "web2", payload);
152
156
  }
153
- // REVIEW: GitHub OAuth identity method using cryptographically signed attestations from the node
154
157
  /**
155
- * Add a github identity to the GCR using OAuth.
156
- * This method is used when the user has authenticated via GitHub OAuth,
157
- * providing userId, username, and a signed attestation from the node.
158
+ * Add a github identity to the GCR.
158
159
  *
159
160
  * @param demos A Demos instance to communicate with the RPC.
160
- * @param payload The OAuth payload containing userId, username, and signed attestation.
161
- * @param referralCode Optional referral code for incentive points.
161
+ * @param payload The payload to add the identity to.
162
162
  * @returns The response from the RPC call.
163
163
  */
164
- async addGithubIdentityOAuth(demos, payload, referralCode) {
165
- if (!payload.userId || !payload.username) {
166
- throw new Error("OAuth payload must include userId and username");
164
+ async addGithubIdentity(demos, payload, referralCode) {
165
+ const username = payload.split("/")[3];
166
+ const ghUser = await axios_1.default.get(`https://api.github.com/users/${username}`);
167
+ if (!ghUser.data.login) {
168
+ throw new Error("Failed to get github user");
167
169
  }
168
- if (!payload.signedAttestation) {
169
- throw new Error("OAuth payload must include signed attestation");
170
- }
171
- const githubPayload = {
170
+ let githubPayload = {
172
171
  context: "github",
173
- proof: JSON.stringify(payload.signedAttestation),
174
- username: payload.username,
175
- userId: payload.userId,
172
+ proof: payload,
173
+ username: ghUser.data.login,
174
+ userId: ghUser.data.id,
176
175
  referralCode: referralCode,
177
176
  };
178
177
  return await this.inferIdentity(demos, "web2", githubPayload);
@@ -1 +1 @@
1
- {"version":3,"file":"Identities.js","sourceRoot":"","sources":["../../../src/abstraction/Identities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Identities.js","sourceRoot":"","sources":["../../../src/abstraction/Identities.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@
7
7
  import { EvmCoinFinder } from "./EvmCoinFinder";
8
8
  import { CoinFinder } from "./CoinFinder";
9
9
  import { Identities } from "./Identities";
10
- import { InferFromWritePayload, InferFromSignaturePayload, XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, InferFromGithubOAuthPayload, InferFromTwitterPayload, TwitterProof, IdentityPayload, InferFromSignatureTargetIdentityPayload, PqcIdentityAssignPayload, PqcIdentityRemovePayload, UDIdentityAssignPayload, UDIdentityRemovePayload, UserPoints, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery, TelegramAttestationPayload, TelegramSignedAttestation, DiscordProof } from "../types/abstraction";
11
- export { EvmCoinFinder, CoinFinder, Identities, InferFromWritePayload, InferFromSignaturePayload, XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, InferFromGithubOAuthPayload, InferFromTwitterPayload, TwitterProof, IdentityPayload, InferFromSignatureTargetIdentityPayload, PqcIdentityAssignPayload, PqcIdentityRemovePayload, UDIdentityAssignPayload, UDIdentityRemovePayload, UserPoints, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery, TelegramAttestationPayload, TelegramSignedAttestation, DiscordProof };
10
+ import { InferFromWritePayload, InferFromSignaturePayload, XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, InferFromGithubPayload, GithubProof, InferFromTwitterPayload, TwitterProof, IdentityPayload, InferFromSignatureTargetIdentityPayload, PqcIdentityAssignPayload, PqcIdentityRemovePayload, UDIdentityAssignPayload, UDIdentityRemovePayload, UserPoints, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery, TelegramAttestationPayload, TelegramSignedAttestation, DiscordProof } from "../types/abstraction";
11
+ export { EvmCoinFinder, CoinFinder, Identities, InferFromWritePayload, InferFromSignaturePayload, XMCoreTargetIdentityPayload, Web2CoreTargetIdentityPayload, InferFromGithubPayload, GithubProof, InferFromTwitterPayload, TwitterProof, IdentityPayload, InferFromSignatureTargetIdentityPayload, PqcIdentityAssignPayload, PqcIdentityRemovePayload, UDIdentityAssignPayload, UDIdentityRemovePayload, UserPoints, FindDemosIdByWeb2IdentityQuery, FindDemosIdByWeb3IdentityQuery, TelegramAttestationPayload, TelegramSignedAttestation, DiscordProof };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/abstraction/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mDAA+C;AA0B3C,8FA1BK,6BAAa,OA0BL;AAzBjB,6CAAyC;AA0BrC,2FA1BK,uBAAU,OA0BL;AAzBd,6CAAyC;AA0BrC,2FA1BK,uBAAU,OA0BL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/abstraction/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mDAA+C;AA2B3C,8FA3BK,6BAAa,OA2BL;AA1BjB,6CAAyC;AA2BrC,2FA3BK,uBAAU,OA2BL;AA1Bd,6CAAyC;AA2BrC,2FA3BK,uBAAU,OA2BL"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Key Server Client
3
+ *
4
+ * Client for interacting with Key Server OAuth endpoints.
5
+ * Enables dApps to verify user ownership of GitHub/Discord accounts
6
+ * with DAHR attestation.
7
+ */
8
+ import type { KeyServerClientConfig, OAuthService, OAuthInitOptions, OAuthInitResult, OAuthPollResult, OAuthVerifyOptions, OAuthVerificationResult, WalletBinding } from "./types";
9
+ export declare class KeyServerClient {
10
+ private readonly endpoint;
11
+ private readonly nodePubKey;
12
+ private readonly defaultWalletAddress?;
13
+ constructor(config: KeyServerClientConfig);
14
+ /**
15
+ * Get list of available OAuth providers
16
+ *
17
+ * @returns Array of available provider names
18
+ * @throws OAuthError if request fails
19
+ */
20
+ getProviders(): Promise<OAuthService[]>;
21
+ /**
22
+ * Initiate an OAuth verification flow
23
+ *
24
+ * @param service - OAuth provider ("github" or "discord")
25
+ * @param options - Optional configuration
26
+ * @returns OAuth flow initiation result with authUrl and state
27
+ * @throws OAuthError if initiation fails
28
+ */
29
+ initiateOAuth(service: OAuthService, options?: OAuthInitOptions): Promise<OAuthInitResult>;
30
+ /**
31
+ * Poll for OAuth verification result
32
+ *
33
+ * @param state - State identifier from initiateOAuth
34
+ * @param walletBinding - Optional wallet binding with signature proving ownership
35
+ * @returns Current status of the OAuth flow
36
+ * @throws OAuthError if polling fails
37
+ */
38
+ pollOAuth(state: string, walletBinding?: WalletBinding): Promise<OAuthPollResult>;
39
+ /**
40
+ * Convenience method: initiate OAuth and wait for completion
41
+ *
42
+ * This method handles the full OAuth flow:
43
+ * 1. Initiates the OAuth flow
44
+ * 2. Calls onAuthUrl callback for dApp to display the URL
45
+ * 3. Resolves wallet binding (if provided as function, calls with state)
46
+ * 4. Polls until completion, timeout, or failure
47
+ * 5. Returns the verified user info and attestation
48
+ *
49
+ * @param service - OAuth provider ("github" or "discord")
50
+ * @param options - Configuration including callbacks
51
+ * @returns Final verification result
52
+ * @throws OAuthError if verification fails or times out
53
+ */
54
+ verifyOAuth(service: OAuthService, options?: OAuthVerifyOptions): Promise<OAuthVerificationResult>;
55
+ /**
56
+ * Internal fetch wrapper with error handling
57
+ */
58
+ private fetch;
59
+ /**
60
+ * Sleep utility for polling
61
+ */
62
+ private sleep;
63
+ }
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Key Server Client
4
+ *
5
+ * Client for interacting with Key Server OAuth endpoints.
6
+ * Enables dApps to verify user ownership of GitHub/Discord accounts
7
+ * with DAHR attestation.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KeyServerClient = void 0;
11
+ const errors_1 = require("./errors");
12
+ const DEFAULT_TIMEOUT = 600000; // 10 minutes
13
+ const DEFAULT_POLL_INTERVAL = 2000; // 2 seconds
14
+ class KeyServerClient {
15
+ constructor(config) {
16
+ // Normalize endpoint (remove trailing slash)
17
+ this.endpoint = config.endpoint.replace(/\/$/, "");
18
+ this.nodePubKey = config.nodePubKey;
19
+ this.defaultWalletAddress = config.defaultWalletAddress;
20
+ }
21
+ /**
22
+ * Get list of available OAuth providers
23
+ *
24
+ * @returns Array of available provider names
25
+ * @throws OAuthError if request fails
26
+ */
27
+ async getProviders() {
28
+ const response = await this.fetch("/oauth/providers", { method: "GET" });
29
+ if (!response.success || !response.providers) {
30
+ throw new errors_1.OAuthError("OAUTH_NOT_AVAILABLE", response.error?.message || "Failed to get providers");
31
+ }
32
+ return response.providers;
33
+ }
34
+ /**
35
+ * Initiate an OAuth verification flow
36
+ *
37
+ * @param service - OAuth provider ("github" or "discord")
38
+ * @param options - Optional configuration
39
+ * @returns OAuth flow initiation result with authUrl and state
40
+ * @throws OAuthError if initiation fails
41
+ */
42
+ async initiateOAuth(service, options) {
43
+ const response = await this.fetch("/oauth/init", {
44
+ method: "POST",
45
+ body: JSON.stringify({
46
+ service,
47
+ nodePubKey: this.nodePubKey,
48
+ scopes: options?.scopes,
49
+ }),
50
+ });
51
+ if (!response.success) {
52
+ throw errors_1.OAuthError.fromResponse(response.error || { code: "INTERNAL_ERROR", message: "Unknown error" });
53
+ }
54
+ return {
55
+ success: true,
56
+ authUrl: response.authUrl,
57
+ state: response.state,
58
+ expiresAt: response.expiresAt,
59
+ };
60
+ }
61
+ /**
62
+ * Poll for OAuth verification result
63
+ *
64
+ * @param state - State identifier from initiateOAuth
65
+ * @param walletBinding - Optional wallet binding with signature proving ownership
66
+ * @returns Current status of the OAuth flow
67
+ * @throws OAuthError if polling fails
68
+ */
69
+ async pollOAuth(state, walletBinding) {
70
+ const response = await this.fetch("/oauth/poll", {
71
+ method: "POST",
72
+ body: JSON.stringify({
73
+ state,
74
+ nodePubKey: this.nodePubKey,
75
+ walletBinding,
76
+ }),
77
+ });
78
+ return response;
79
+ }
80
+ /**
81
+ * Convenience method: initiate OAuth and wait for completion
82
+ *
83
+ * This method handles the full OAuth flow:
84
+ * 1. Initiates the OAuth flow
85
+ * 2. Calls onAuthUrl callback for dApp to display the URL
86
+ * 3. Resolves wallet binding (if provided as function, calls with state)
87
+ * 4. Polls until completion, timeout, or failure
88
+ * 5. Returns the verified user info and attestation
89
+ *
90
+ * @param service - OAuth provider ("github" or "discord")
91
+ * @param options - Configuration including callbacks
92
+ * @returns Final verification result
93
+ * @throws OAuthError if verification fails or times out
94
+ */
95
+ async verifyOAuth(service, options) {
96
+ const timeout = options?.timeout ?? DEFAULT_TIMEOUT;
97
+ const pollInterval = options?.pollInterval ?? DEFAULT_POLL_INTERVAL;
98
+ // Step 1: Initiate OAuth flow
99
+ const initResult = await this.initiateOAuth(service, {
100
+ scopes: options?.scopes,
101
+ timeout,
102
+ });
103
+ // Step 2: Notify dApp of auth URL
104
+ if (options?.onAuthUrl) {
105
+ options.onAuthUrl(initResult.authUrl, initResult.state);
106
+ }
107
+ // Step 3: Resolve wallet binding
108
+ let walletBinding;
109
+ if (options?.walletBinding) {
110
+ if (typeof options.walletBinding === "function") {
111
+ // Call the async function with state to get wallet binding
112
+ walletBinding = await options.walletBinding(initResult.state);
113
+ }
114
+ else {
115
+ walletBinding = options.walletBinding;
116
+ }
117
+ }
118
+ // Step 4: Poll for result
119
+ const startTime = Date.now();
120
+ let attempt = 0;
121
+ while (Date.now() - startTime < timeout) {
122
+ attempt++;
123
+ // Wait before polling (except first attempt)
124
+ if (attempt > 1) {
125
+ await this.sleep(pollInterval);
126
+ }
127
+ const pollResult = await this.pollOAuth(initResult.state, walletBinding);
128
+ // Notify dApp of poll status
129
+ if (options?.onPoll) {
130
+ options.onPoll(attempt, pollResult.status);
131
+ }
132
+ // Check for terminal states
133
+ switch (pollResult.status) {
134
+ case "completed":
135
+ if (!pollResult.result || !pollResult.attestation) {
136
+ throw new errors_1.OAuthError("INTERNAL_ERROR", "Completed but missing result or attestation");
137
+ }
138
+ return {
139
+ success: true,
140
+ user: pollResult.result,
141
+ attestation: pollResult.attestation,
142
+ };
143
+ case "failed":
144
+ throw errors_1.OAuthError.fromResponse(pollResult.error || { code: "OAUTH_PROVIDER_ERROR", message: "Verification failed" });
145
+ case "expired":
146
+ throw new errors_1.OAuthError("OAUTH_EXPIRED", "OAuth flow expired");
147
+ case "pending":
148
+ // Continue polling
149
+ break;
150
+ }
151
+ }
152
+ // Timeout reached
153
+ throw new errors_1.OAuthError("OAUTH_TIMEOUT", `OAuth verification timed out after ${timeout}ms`);
154
+ }
155
+ /**
156
+ * Internal fetch wrapper with error handling
157
+ */
158
+ async fetch(path, options) {
159
+ const url = `${this.endpoint}${path}`;
160
+ try {
161
+ const response = await fetch(url, {
162
+ ...options,
163
+ headers: {
164
+ "Content-Type": "application/json",
165
+ ...options.headers,
166
+ },
167
+ });
168
+ const data = await response.json();
169
+ return data;
170
+ }
171
+ catch (error) {
172
+ if (error instanceof errors_1.OAuthError) {
173
+ throw error;
174
+ }
175
+ throw new errors_1.OAuthError("NETWORK_ERROR", `Failed to connect to Key Server: ${error.message}`, { url, originalError: String(error) });
176
+ }
177
+ }
178
+ /**
179
+ * Sleep utility for polling
180
+ */
181
+ sleep(ms) {
182
+ return new Promise((resolve) => setTimeout(resolve, ms));
183
+ }
184
+ }
185
+ exports.KeyServerClient = KeyServerClient;
186
+ //# sourceMappingURL=KeyServerClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyServerClient.js","sourceRoot":"","sources":["../../../src/keyserver/KeyServerClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Key Server OAuth Errors
3
+ */
4
+ /**
5
+ * Error codes for OAuth operations
6
+ */
7
+ export type OAuthErrorCode = "OAUTH_INVALID_SERVICE" | "OAUTH_NOT_CONFIGURED" | "OAUTH_NOT_AVAILABLE" | "OAUTH_DENIED" | "OAUTH_EXPIRED" | "OAUTH_PROVIDER_ERROR" | "OAUTH_STATE_NOT_FOUND" | "OAUTH_STATE_MISMATCH" | "OAUTH_TIMEOUT" | "NETWORK_ERROR" | "INTERNAL_ERROR";
8
+ /**
9
+ * OAuth-specific error class
10
+ */
11
+ export declare class OAuthError extends Error {
12
+ readonly code: OAuthErrorCode;
13
+ readonly details?: Record<string, unknown>;
14
+ constructor(code: OAuthErrorCode, message: string, details?: Record<string, unknown>);
15
+ /**
16
+ * Create error from Key Server error response
17
+ */
18
+ static fromResponse(error: {
19
+ code: string;
20
+ message: string;
21
+ }): OAuthError;
22
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * Key Server OAuth Errors
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OAuthError = void 0;
7
+ /**
8
+ * OAuth-specific error class
9
+ */
10
+ class OAuthError extends Error {
11
+ constructor(code, message, details) {
12
+ super(message);
13
+ this.name = "OAuthError";
14
+ this.code = code;
15
+ this.details = details;
16
+ // Maintains proper stack trace in V8 environments
17
+ if (Error.captureStackTrace) {
18
+ Error.captureStackTrace(this, OAuthError);
19
+ }
20
+ }
21
+ /**
22
+ * Create error from Key Server error response
23
+ */
24
+ static fromResponse(error) {
25
+ return new OAuthError(error.code, error.message);
26
+ }
27
+ }
28
+ exports.OAuthError = OAuthError;
29
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/keyserver/errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkBH;;GAEG;AACH,MAAa,UAAW,SAAQ,KAAK;IAIjC,YACI,IAAoB,EACpB,OAAe,EACf,OAAiC;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,kDAAkD;QAClD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAGnB;QACG,OAAO,IAAI,UAAU,CACjB,KAAK,CAAC,IAAsB,EAC5B,KAAK,CAAC,OAAO,CAChB,CAAC;IACN,CAAC;CACJ;AAhCD,gCAgCC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Key Server Module
3
+ *
4
+ * Client for Key Server OAuth verification with DAHR attestation.
5
+ * Enables dApps to verify user ownership of GitHub/Discord accounts.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { KeyServerClient } from "@kynesyslabs/demosdk/keyserver";
10
+ *
11
+ * const client = new KeyServerClient({
12
+ * endpoint: "http://localhost:3030",
13
+ * nodePubKey: nodePublicKey,
14
+ * });
15
+ *
16
+ * // Full verification flow
17
+ * const result = await client.verifyOAuth("github", {
18
+ * onAuthUrl: (url) => window.open(url),
19
+ * onPoll: (attempt, status) => console.log(`Poll ${attempt}: ${status}`),
20
+ * });
21
+ *
22
+ * console.log("Verified user:", result.user.username);
23
+ * console.log("Attestation:", result.attestation);
24
+ * ```
25
+ */
26
+ export { KeyServerClient } from "./KeyServerClient";
27
+ export { OAuthError } from "./errors";
28
+ export { verifyAttestation, verifyOAuthAttestation } from "./verification";
29
+ export type { OAuthErrorCode } from "./errors";
30
+ export type { VerifyAttestationOptions, AttestationVerificationResult, } from "./verification";
31
+ export type { KeyServerClientConfig, OAuthService, OAuthInitOptions, OAuthInitResult, OAuthPollResult, OAuthVerifyOptions, OAuthVerificationResult, OAuthStatus, OAuthUserInfo, DAHRAttestation, OAuthProvidersResponse, WalletBinding, } from "./types";
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Key Server Module
4
+ *
5
+ * Client for Key Server OAuth verification with DAHR attestation.
6
+ * Enables dApps to verify user ownership of GitHub/Discord accounts.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { KeyServerClient } from "@kynesyslabs/demosdk/keyserver";
11
+ *
12
+ * const client = new KeyServerClient({
13
+ * endpoint: "http://localhost:3030",
14
+ * nodePubKey: nodePublicKey,
15
+ * });
16
+ *
17
+ * // Full verification flow
18
+ * const result = await client.verifyOAuth("github", {
19
+ * onAuthUrl: (url) => window.open(url),
20
+ * onPoll: (attempt, status) => console.log(`Poll ${attempt}: ${status}`),
21
+ * });
22
+ *
23
+ * console.log("Verified user:", result.user.username);
24
+ * console.log("Attestation:", result.attestation);
25
+ * ```
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.verifyOAuthAttestation = exports.verifyAttestation = exports.OAuthError = exports.KeyServerClient = void 0;
29
+ var KeyServerClient_1 = require("./KeyServerClient");
30
+ Object.defineProperty(exports, "KeyServerClient", { enumerable: true, get: function () { return KeyServerClient_1.KeyServerClient; } });
31
+ var errors_1 = require("./errors");
32
+ Object.defineProperty(exports, "OAuthError", { enumerable: true, get: function () { return errors_1.OAuthError; } });
33
+ var verification_1 = require("./verification");
34
+ Object.defineProperty(exports, "verifyAttestation", { enumerable: true, get: function () { return verification_1.verifyAttestation; } });
35
+ Object.defineProperty(exports, "verifyOAuthAttestation", { enumerable: true, get: function () { return verification_1.verifyOAuthAttestation; } });
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keyserver/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AACnB,+CAA2E;AAAlE,iHAAA,iBAAiB,OAAA;AAAE,sHAAA,sBAAsB,OAAA"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Key Server OAuth Types
3
+ *
4
+ * Types for OAuth verification flow with DAHR attestation.
5
+ * Used by KeyServerClient to interact with the Key Server OAuth endpoints.
6
+ */
7
+ /**
8
+ * Supported OAuth providers
9
+ */
10
+ export type OAuthService = "github" | "discord";
11
+ /**
12
+ * Wallet binding for OAuth verification.
13
+ * Proves ownership of a wallet address during OAuth flow.
14
+ */
15
+ export interface WalletBinding {
16
+ /** The wallet address to bind to this OAuth verification */
17
+ address: string;
18
+ /**
19
+ * Signature proving ownership of the wallet address.
20
+ * The message signed should be: "demos-oauth-bind:{state}" where state is from initiateOAuth.
21
+ * For EVM: personal_sign or eth_sign
22
+ * For Solana: signMessage
23
+ */
24
+ signature: string;
25
+ /** Signature scheme used (for verification on receiving end) */
26
+ signatureType: "evm" | "solana" | "ed25519";
27
+ }
28
+ /**
29
+ * Options for initiating an OAuth flow
30
+ */
31
+ export interface OAuthInitOptions {
32
+ /** Custom scopes to request (defaults to identity scopes) */
33
+ scopes?: string[];
34
+ /** Flow timeout in milliseconds (default: 600000 = 10min) */
35
+ timeout?: number;
36
+ /**
37
+ * Wallet address to associate with this OAuth verification.
38
+ * This address will be included in the DAHR attestation metadata.
39
+ * Overrides defaultWalletAddress from KeyServerClientConfig if both are set.
40
+ * @deprecated Use walletBinding for signed wallet proof instead
41
+ */
42
+ walletAddress?: string;
43
+ }
44
+ /**
45
+ * Result from initiating an OAuth flow
46
+ */
47
+ export interface OAuthInitResult {
48
+ /** Whether the initiation was successful */
49
+ success: boolean;
50
+ /** URL for user to visit to authorize */
51
+ authUrl: string;
52
+ /** State identifier for polling */
53
+ state: string;
54
+ /** Unix timestamp when this flow expires */
55
+ expiresAt: number;
56
+ }
57
+ /**
58
+ * Status of an OAuth flow
59
+ */
60
+ export type OAuthStatus = "pending" | "completed" | "failed" | "expired";
61
+ /**
62
+ * User identity information from OAuth provider
63
+ */
64
+ export interface OAuthUserInfo {
65
+ /** OAuth provider */
66
+ service: OAuthService;
67
+ /** Provider's user ID */
68
+ providerId: string;
69
+ /** Provider's username */
70
+ username: string;
71
+ /** User email (if email scope was requested) */
72
+ email?: string;
73
+ /** User avatar URL */
74
+ avatarUrl?: string;
75
+ /** Unix timestamp when verification completed */
76
+ verifiedAt: number;
77
+ }
78
+ /**
79
+ * DAHR (Demos Attestation Hash Response) attestation
80
+ * Cryptographic proof that the Key Server performed the verification
81
+ */
82
+ export interface DAHRAttestation {
83
+ /** SHA256 hash of the request payload */
84
+ requestHash: string;
85
+ /** SHA256 hash of the response payload */
86
+ responseHash: string;
87
+ /** Ed25519 signature over responseHash */
88
+ signature: {
89
+ type: "Ed25519";
90
+ data: string;
91
+ };
92
+ /** Attestation metadata */
93
+ metadata: {
94
+ /** Session identifier */
95
+ sessionId: string;
96
+ /** Unix timestamp of attestation */
97
+ timestamp: number;
98
+ /** Key Server's public key (hex) */
99
+ keyServerPubKey: string;
100
+ /** Node's public key (hex) */
101
+ nodePubKey: string;
102
+ /** Key Server version */
103
+ version: string;
104
+ /**
105
+ * Wallet binding included in the attestation.
106
+ * Contains the wallet address and signature proving ownership.
107
+ * The Key Server verifies this signature before including it.
108
+ */
109
+ walletBinding?: WalletBinding;
110
+ };
111
+ }
112
+ /**
113
+ * Result from polling an OAuth flow
114
+ */
115
+ export interface OAuthPollResult {
116
+ /** Whether the request was successful */
117
+ success: boolean;
118
+ /** Current status of the OAuth flow */
119
+ status: OAuthStatus;
120
+ /** User info (only present when status is "completed") */
121
+ result?: OAuthUserInfo;
122
+ /** DAHR attestation (only present when status is "completed") */
123
+ attestation?: DAHRAttestation;
124
+ /** Error details (only present when status is "failed" or "expired") */
125
+ error?: {
126
+ code: string;
127
+ message: string;
128
+ };
129
+ }
130
+ /**
131
+ * Options for the convenience verifyOAuth method
132
+ */
133
+ export interface OAuthVerifyOptions extends OAuthInitOptions {
134
+ /**
135
+ * Called when auth URL is ready - dApp should display this to user.
136
+ * The state is needed for wallet binding signature.
137
+ */
138
+ onAuthUrl?: (authUrl: string, state: string) => void;
139
+ /**
140
+ * Polling interval in milliseconds (default: 2000)
141
+ */
142
+ pollInterval?: number;
143
+ /**
144
+ * Called on each poll attempt (for UI feedback)
145
+ */
146
+ onPoll?: (attempt: number, status: OAuthStatus) => void;
147
+ /**
148
+ * Wallet binding with signature proving ownership.
149
+ * The signature message format is: "demos-oauth-bind:{state}"
150
+ * This is called after initiateOAuth to get the state for signing.
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const result = await client.verifyOAuth("github", {
155
+ * onAuthUrl: async (authUrl, state) => {
156
+ * // Sign with user's wallet
157
+ * const message = `demos-oauth-bind:${state}`;
158
+ * const signature = await wallet.signMessage(message);
159
+ * return { address: wallet.address, signature, signatureType: "evm" };
160
+ * },
161
+ * });
162
+ * ```
163
+ */
164
+ walletBinding?: WalletBinding | ((state: string) => Promise<WalletBinding>);
165
+ }
166
+ /**
167
+ * Result from the convenience verifyOAuth method
168
+ */
169
+ export interface OAuthVerificationResult {
170
+ /** Whether verification was successful */
171
+ success: boolean;
172
+ /** Verified user information */
173
+ user: OAuthUserInfo;
174
+ /** DAHR attestation proving the verification */
175
+ attestation: DAHRAttestation;
176
+ }
177
+ /**
178
+ * Key Server client configuration
179
+ */
180
+ export interface KeyServerClientConfig {
181
+ /** Key Server endpoint URL */
182
+ endpoint: string;
183
+ /** Node's public key (hex-encoded Ed25519) */
184
+ nodePubKey: string;
185
+ /**
186
+ * Default wallet address to associate with OAuth verifications.
187
+ * Can be overridden per-request via OAuthInitOptions.walletAddress.
188
+ */
189
+ defaultWalletAddress?: string;
190
+ }
191
+ /**
192
+ * Response from GET /oauth/providers
193
+ */
194
+ export interface OAuthProvidersResponse {
195
+ success: boolean;
196
+ providers?: OAuthService[];
197
+ error?: {
198
+ code: string;
199
+ message: string;
200
+ };
201
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Key Server OAuth Types
4
+ *
5
+ * Types for OAuth verification flow with DAHR attestation.
6
+ * Used by KeyServerClient to interact with the Key Server OAuth endpoints.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/keyserver/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * DAHR Attestation Verification Utilities
3
+ *
4
+ * Provides cryptographic verification of Key Server attestations.
5
+ * Allows consuming apps to independently verify that the Key Server
6
+ * actually performed the OAuth verification.
7
+ */
8
+ import type { DAHRAttestation, OAuthVerificationResult, WalletBinding } from "./types";
9
+ /**
10
+ * Options for attestation verification
11
+ */
12
+ export interface VerifyAttestationOptions {
13
+ /**
14
+ * Maximum age of attestation in milliseconds (default: 1 hour)
15
+ * Set to 0 to disable timestamp validation
16
+ */
17
+ maxAge?: number;
18
+ /**
19
+ * Expected node public key (optional additional validation)
20
+ */
21
+ expectedNodePubKey?: string;
22
+ }
23
+ /**
24
+ * Result of attestation verification
25
+ */
26
+ export interface AttestationVerificationResult {
27
+ /** Whether the attestation is valid */
28
+ valid: boolean;
29
+ /** Reason for failure (if invalid) */
30
+ reason?: string;
31
+ /** Attestation metadata for logging/auditing */
32
+ metadata?: {
33
+ sessionId: string;
34
+ timestamp: number;
35
+ keyServerPubKey: string;
36
+ nodePubKey: string;
37
+ version: string;
38
+ /** Wallet binding if present in attestation */
39
+ walletBinding?: WalletBinding;
40
+ };
41
+ }
42
+ /**
43
+ * Verify a DAHR attestation from Key Server
44
+ *
45
+ * This function verifies:
46
+ * 1. The Ed25519 signature is valid for the responseHash
47
+ * 2. The signature was made by the expected Key Server public key
48
+ * 3. The attestation is not expired (optional)
49
+ * 4. The node public key matches expected (optional)
50
+ *
51
+ * @param attestation - The DAHR attestation to verify
52
+ * @param keyServerPubKey - Expected Key Server public key (hex-encoded)
53
+ * @param options - Additional verification options
54
+ * @returns Verification result with validity and reason
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const result = await client.verifyOAuth("github", { ... });
59
+ *
60
+ * const verification = verifyAttestation(
61
+ * result.attestation,
62
+ * KNOWN_KEY_SERVER_PUBKEY,
63
+ * );
64
+ *
65
+ * if (!verification.valid) {
66
+ * console.error("Attestation invalid:", verification.reason);
67
+ * }
68
+ * ```
69
+ */
70
+ export declare function verifyAttestation(attestation: DAHRAttestation, keyServerPubKey: string, options?: VerifyAttestationOptions): AttestationVerificationResult;
71
+ /**
72
+ * Verify attestation from a full OAuth verification result
73
+ *
74
+ * Convenience wrapper that extracts the attestation from the result.
75
+ *
76
+ * @param result - The OAuth verification result
77
+ * @param keyServerPubKey - Expected Key Server public key (hex-encoded)
78
+ * @param options - Additional verification options
79
+ * @returns Verification result
80
+ */
81
+ export declare function verifyOAuthAttestation(result: OAuthVerificationResult, keyServerPubKey: string, options?: VerifyAttestationOptions): AttestationVerificationResult;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * DAHR Attestation Verification Utilities
4
+ *
5
+ * Provides cryptographic verification of Key Server attestations.
6
+ * Allows consuming apps to independently verify that the Key Server
7
+ * actually performed the OAuth verification.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.verifyAttestation = verifyAttestation;
11
+ exports.verifyOAuthAttestation = verifyOAuthAttestation;
12
+ const encryption_1 = require("../encryption");
13
+ /**
14
+ * Verify a DAHR attestation from Key Server
15
+ *
16
+ * This function verifies:
17
+ * 1. The Ed25519 signature is valid for the responseHash
18
+ * 2. The signature was made by the expected Key Server public key
19
+ * 3. The attestation is not expired (optional)
20
+ * 4. The node public key matches expected (optional)
21
+ *
22
+ * @param attestation - The DAHR attestation to verify
23
+ * @param keyServerPubKey - Expected Key Server public key (hex-encoded)
24
+ * @param options - Additional verification options
25
+ * @returns Verification result with validity and reason
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const result = await client.verifyOAuth("github", { ... });
30
+ *
31
+ * const verification = verifyAttestation(
32
+ * result.attestation,
33
+ * KNOWN_KEY_SERVER_PUBKEY,
34
+ * );
35
+ *
36
+ * if (!verification.valid) {
37
+ * console.error("Attestation invalid:", verification.reason);
38
+ * }
39
+ * ```
40
+ */
41
+ function verifyAttestation(attestation, keyServerPubKey, options) {
42
+ const maxAge = options?.maxAge ?? 3600000; // 1 hour default
43
+ // Validate attestation structure
44
+ if (!attestation || !attestation.signature || !attestation.metadata) {
45
+ return {
46
+ valid: false,
47
+ reason: "Invalid attestation structure",
48
+ };
49
+ }
50
+ // Check signature type
51
+ if (attestation.signature.type !== "Ed25519") {
52
+ return {
53
+ valid: false,
54
+ reason: `Unsupported signature type: ${attestation.signature.type}`,
55
+ };
56
+ }
57
+ // Check Key Server public key matches
58
+ if (attestation.metadata.keyServerPubKey !== keyServerPubKey) {
59
+ return {
60
+ valid: false,
61
+ reason: "Key Server public key mismatch",
62
+ metadata: attestation.metadata,
63
+ };
64
+ }
65
+ // Check node public key if expected
66
+ if (options?.expectedNodePubKey &&
67
+ attestation.metadata.nodePubKey !== options.expectedNodePubKey) {
68
+ return {
69
+ valid: false,
70
+ reason: "Node public key mismatch",
71
+ metadata: attestation.metadata,
72
+ };
73
+ }
74
+ // Check timestamp if maxAge is set
75
+ if (maxAge > 0) {
76
+ const age = Date.now() - attestation.metadata.timestamp;
77
+ if (age > maxAge) {
78
+ return {
79
+ valid: false,
80
+ reason: `Attestation expired (age: ${Math.round(age / 1000)}s, max: ${Math.round(maxAge / 1000)}s)`,
81
+ metadata: attestation.metadata,
82
+ };
83
+ }
84
+ }
85
+ // Verify Ed25519 signature over responseHash
86
+ try {
87
+ const isValid = encryption_1.Cryptography.ed25519.verify(attestation.responseHash, hexToBuffer(attestation.signature.data), hexToBuffer(keyServerPubKey));
88
+ if (!isValid) {
89
+ return {
90
+ valid: false,
91
+ reason: "Signature verification failed",
92
+ metadata: attestation.metadata,
93
+ };
94
+ }
95
+ return {
96
+ valid: true,
97
+ metadata: attestation.metadata,
98
+ };
99
+ }
100
+ catch (error) {
101
+ return {
102
+ valid: false,
103
+ reason: `Signature verification error: ${error.message}`,
104
+ metadata: attestation.metadata,
105
+ };
106
+ }
107
+ }
108
+ /**
109
+ * Verify attestation from a full OAuth verification result
110
+ *
111
+ * Convenience wrapper that extracts the attestation from the result.
112
+ *
113
+ * @param result - The OAuth verification result
114
+ * @param keyServerPubKey - Expected Key Server public key (hex-encoded)
115
+ * @param options - Additional verification options
116
+ * @returns Verification result
117
+ */
118
+ function verifyOAuthAttestation(result, keyServerPubKey, options) {
119
+ if (!result.attestation) {
120
+ return {
121
+ valid: false,
122
+ reason: "No attestation in result",
123
+ };
124
+ }
125
+ return verifyAttestation(result.attestation, keyServerPubKey, options);
126
+ }
127
+ /**
128
+ * Convert hex string to Buffer for cryptographic operations
129
+ */
130
+ function hexToBuffer(hex) {
131
+ // Remove 0x prefix if present
132
+ const cleanHex = hex.startsWith("0x") ? hex.slice(2) : hex;
133
+ return Buffer.from(cleanHex, "hex");
134
+ }
135
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/keyserver/verification.ts"],"names":[],"mappings":"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"}
@@ -69,9 +69,13 @@ export interface Web2CoreTargetIdentityPayload {
69
69
  userId: string;
70
70
  referralCode?: string;
71
71
  }
72
- export interface InferFromGithubOAuthPayload extends Web2CoreTargetIdentityPayload {
72
+ type GistProofUrl = `https://gist.github.com/${string}/${string}`;
73
+ type RawGistProofUrl = `https://gist.githubusercontent.com/${string}/${string}`;
74
+ type RawGithubProofUrl = `https://raw.githubusercontent.com/${string}/${string}`;
75
+ export type GithubProof = RawGistProofUrl | GistProofUrl | RawGithubProofUrl;
76
+ export interface InferFromGithubPayload extends Web2CoreTargetIdentityPayload {
73
77
  context: "github";
74
- proof: string;
78
+ proof: GithubProof;
75
79
  }
76
80
  export type XProof = `https://x.com/${string}/${string}`;
77
81
  export type TwitterProof = XProof;
@@ -126,7 +130,7 @@ export interface BaseWeb2IdentityPayload {
126
130
  }
127
131
  export interface Web2IdentityAssignPayload extends BaseWeb2IdentityPayload {
128
132
  method: "web2_identity_assign";
129
- payload: InferFromGithubOAuthPayload | InferFromTwitterPayload | InferFromTelegramPayload | InferFromDiscordPayload;
133
+ payload: InferFromGithubPayload | InferFromTwitterPayload | InferFromTelegramPayload | InferFromDiscordPayload;
130
134
  }
131
135
  export interface Web2IdentityRemovePayload extends BaseWeb2IdentityPayload {
132
136
  method: "web2_identity_remove";
@@ -233,3 +237,4 @@ export interface FindDemosIdByWeb3IdentityQuery {
233
237
  chain: string;
234
238
  address: string;
235
239
  }
240
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kynesyslabs/demosdk",
3
- "version": "2.6.1",
3
+ "version": "2.7.1",
4
4
  "description": "Demosdk is a JavaScript/TypeScript SDK that provides a unified interface for interacting with Demos network",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -37,7 +37,8 @@
37
37
  "./storage": "./build/storage/index.js",
38
38
  "./d402": "./build/d402/index.js",
39
39
  "./d402/server": "./build/d402/server/index.js",
40
- "./d402/client": "./build/d402/client/index.js"
40
+ "./d402/client": "./build/d402/client/index.js",
41
+ "./keyserver": "./build/keyserver/index.js"
41
42
  },
42
43
  "scripts": {
43
44
  "postinstall": "cp .github/hooks/pre-commit .git/hooks/pre-commit 2>/dev/null && chmod +x .git/hooks/pre-commit 2>/dev/null || true",