@sigma-auth/better-auth-plugin 0.0.7 → 0.0.8
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.
- package/README.md +1 -1
- package/dist/client/index.d.ts +56 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +148 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/signer.d.ts +57 -0
- package/dist/client/signer.d.ts.map +1 -0
- package/dist/client/signer.js +247 -0
- package/dist/client/signer.js.map +1 -0
- package/dist/next/index.js +1 -1
- package/dist/next/index.js.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -211,7 +211,7 @@ export const useAuth = () => useContext(AuthContext);
|
|
|
211
211
|
|
|
212
212
|
// In components
|
|
213
213
|
const { user } = useAuth();
|
|
214
|
-
const isAdmin = user?.bap?.
|
|
214
|
+
const isAdmin = user?.bap?.idKey === process.env.ADMIN_BAP_ID;
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
## Alternative: Same-Domain Setup
|
package/dist/client/index.d.ts
CHANGED
|
@@ -75,6 +75,62 @@ export declare const sigmaClient: () => {
|
|
|
75
75
|
* @throws OAuthCallbackError if callback fails
|
|
76
76
|
*/
|
|
77
77
|
handleCallback: (searchParams: URLSearchParams) => Promise<OAuthCallbackResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Sign a request using the Sigma iframe signer
|
|
80
|
+
* Keys stay in Sigma's domain - only the signature is returned
|
|
81
|
+
*
|
|
82
|
+
* @param requestPath - The API path being signed (e.g., "/api/droplits")
|
|
83
|
+
* @param body - Optional request body (string or object)
|
|
84
|
+
* @param signatureType - Signature type: 'bsm' or 'brc77' (default: 'brc77')
|
|
85
|
+
* @returns Promise resolving to auth token string
|
|
86
|
+
* @throws Error if no identity set or signing fails
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const authToken = await authClient.sigma.sign("/api/droplits", { name: "test" });
|
|
91
|
+
* fetch("/api/droplits", {
|
|
92
|
+
* headers: { "X-Auth-Token": authToken }
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
sign: (requestPath: string, body?: string | object, signatureType?: "bsm" | "brc77") => Promise<string>;
|
|
97
|
+
/**
|
|
98
|
+
* Sign OP_RETURN data with AIP for Bitcoin transactions
|
|
99
|
+
* Keys stay in Sigma's domain - only the signed ops are returned
|
|
100
|
+
*
|
|
101
|
+
* @param hexArray - Array of hex strings to sign
|
|
102
|
+
* @returns Promise resolving to array of signed hex strings
|
|
103
|
+
* @throws Error if no identity set or signing fails
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const signedOps = await authClient.sigma.signAIP(["6a", "..."]);
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
signAIP: (hexArray: string[]) => Promise<string[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Get the current identity (BAP ID) being used for signing
|
|
113
|
+
* @returns The current bapId or null if not set
|
|
114
|
+
*/
|
|
115
|
+
getIdentity: () => string | null;
|
|
116
|
+
/**
|
|
117
|
+
* Set the identity (BAP ID) to use for signing
|
|
118
|
+
* This is typically set automatically from OAuth callback,
|
|
119
|
+
* but can be set manually for multi-identity scenarios
|
|
120
|
+
*
|
|
121
|
+
* @param bapId - The BAP identity ID to use
|
|
122
|
+
*/
|
|
123
|
+
setIdentity: (bapId: string) => void;
|
|
124
|
+
/**
|
|
125
|
+
* Clear the stored identity and destroy the signer
|
|
126
|
+
* Call this on logout
|
|
127
|
+
*/
|
|
128
|
+
clearIdentity: () => void;
|
|
129
|
+
/**
|
|
130
|
+
* Check if the signer is ready for signing
|
|
131
|
+
* @returns true if identity is set and signer is initialized
|
|
132
|
+
*/
|
|
133
|
+
isReady: () => boolean;
|
|
78
134
|
};
|
|
79
135
|
};
|
|
80
136
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAEX,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAEX,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAiD3B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,WAAW;;;;6BAOE,OAAO,CAAC,kBAAkB,CAAC;;;8BAiBrC,kBAAkB,iBACb,iBAAiB;;;YA0EjC;;;;;;;eAOG;2CAEY,eAAe,KAC3B,OAAO,CAAC,mBAAmB,CAAC;YA8J/B;;;;;;;;;;;;;;;;;eAiBG;gCAEW,MAAM,SACZ,MAAM,GAAG,MAAM,kBACP,KAAK,GAAG,OAAO,KAC5B,OAAO,CAAC,MAAM,CAAC;YAmBlB;;;;;;;;;;;;eAYG;gCACuB,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YActD;;;eAGG;+BACc,MAAM,GAAG,IAAI;YAI9B;;;;;;eAMG;iCACkB,MAAM,KAAG,IAAI;YAWlC;;;eAGG;iCACgB,IAAI;YAWvB;;;eAGG;2BACU,OAAO;;;CAQxB,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
import { SigmaIframeSigner } from "./signer.js";
|
|
2
|
+
// Module-level state for signer (singleton per page)
|
|
3
|
+
let signer = null;
|
|
4
|
+
let storedBapId = null;
|
|
5
|
+
// Storage key for persisting bapId
|
|
6
|
+
const BAP_ID_STORAGE_KEY = "sigma_bap_id";
|
|
7
|
+
/**
|
|
8
|
+
* Get the Sigma auth URL from environment or default
|
|
9
|
+
*/
|
|
10
|
+
const getSigmaUrl = () => {
|
|
11
|
+
if (typeof process !== "undefined" &&
|
|
12
|
+
process.env.NEXT_PUBLIC_SIGMA_AUTH_URL) {
|
|
13
|
+
return process.env.NEXT_PUBLIC_SIGMA_AUTH_URL;
|
|
14
|
+
}
|
|
15
|
+
return "https://auth.sigmaidentity.com";
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Initialize or get the signer instance (lazy singleton)
|
|
19
|
+
*/
|
|
20
|
+
const getOrCreateSigner = async () => {
|
|
21
|
+
if (!signer) {
|
|
22
|
+
signer = new SigmaIframeSigner(getSigmaUrl());
|
|
23
|
+
}
|
|
24
|
+
if (!signer.isReady()) {
|
|
25
|
+
await signer.init();
|
|
26
|
+
}
|
|
27
|
+
return signer;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Load bapId from storage on init
|
|
31
|
+
*/
|
|
32
|
+
const loadStoredBapId = () => {
|
|
33
|
+
if (typeof window === "undefined")
|
|
34
|
+
return null;
|
|
35
|
+
if (storedBapId)
|
|
36
|
+
return storedBapId;
|
|
37
|
+
const stored = localStorage.getItem(BAP_ID_STORAGE_KEY);
|
|
38
|
+
if (stored) {
|
|
39
|
+
storedBapId = stored;
|
|
40
|
+
}
|
|
41
|
+
return storedBapId;
|
|
42
|
+
};
|
|
1
43
|
// PKCE helper functions
|
|
2
44
|
const generateCodeVerifier = () => {
|
|
3
45
|
const array = new Uint8Array(32);
|
|
@@ -239,6 +281,14 @@ export const sigmaClient = () => {
|
|
|
239
281
|
};
|
|
240
282
|
}
|
|
241
283
|
const data = (await response.json());
|
|
284
|
+
// Store bapId from user data for signing (from bap_id claim)
|
|
285
|
+
const bapId = data.user?.bap_id;
|
|
286
|
+
if (bapId) {
|
|
287
|
+
storedBapId = bapId;
|
|
288
|
+
if (typeof window !== "undefined") {
|
|
289
|
+
localStorage.setItem(BAP_ID_STORAGE_KEY, bapId);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
242
292
|
return {
|
|
243
293
|
user: data.user,
|
|
244
294
|
access_token: data.access_token,
|
|
@@ -263,6 +313,104 @@ export const sigmaClient = () => {
|
|
|
263
313
|
};
|
|
264
314
|
}
|
|
265
315
|
},
|
|
316
|
+
/**
|
|
317
|
+
* Sign a request using the Sigma iframe signer
|
|
318
|
+
* Keys stay in Sigma's domain - only the signature is returned
|
|
319
|
+
*
|
|
320
|
+
* @param requestPath - The API path being signed (e.g., "/api/droplits")
|
|
321
|
+
* @param body - Optional request body (string or object)
|
|
322
|
+
* @param signatureType - Signature type: 'bsm' or 'brc77' (default: 'brc77')
|
|
323
|
+
* @returns Promise resolving to auth token string
|
|
324
|
+
* @throws Error if no identity set or signing fails
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* ```typescript
|
|
328
|
+
* const authToken = await authClient.sigma.sign("/api/droplits", { name: "test" });
|
|
329
|
+
* fetch("/api/droplits", {
|
|
330
|
+
* headers: { "X-Auth-Token": authToken }
|
|
331
|
+
* });
|
|
332
|
+
* ```
|
|
333
|
+
*/
|
|
334
|
+
sign: async (requestPath, body, signatureType = "brc77") => {
|
|
335
|
+
// Ensure we have a bapId (from callback or storage)
|
|
336
|
+
const bapId = storedBapId || loadStoredBapId();
|
|
337
|
+
if (!bapId) {
|
|
338
|
+
throw new Error("No identity set. Complete OAuth login first or call setIdentity().");
|
|
339
|
+
}
|
|
340
|
+
const signerInstance = await getOrCreateSigner();
|
|
341
|
+
signerInstance.setIdentity(bapId);
|
|
342
|
+
// Serialize body if object
|
|
343
|
+
const bodyString = body && typeof body === "object" ? JSON.stringify(body) : body;
|
|
344
|
+
return signerInstance.sign(requestPath, bodyString, signatureType);
|
|
345
|
+
},
|
|
346
|
+
/**
|
|
347
|
+
* Sign OP_RETURN data with AIP for Bitcoin transactions
|
|
348
|
+
* Keys stay in Sigma's domain - only the signed ops are returned
|
|
349
|
+
*
|
|
350
|
+
* @param hexArray - Array of hex strings to sign
|
|
351
|
+
* @returns Promise resolving to array of signed hex strings
|
|
352
|
+
* @throws Error if no identity set or signing fails
|
|
353
|
+
*
|
|
354
|
+
* @example
|
|
355
|
+
* ```typescript
|
|
356
|
+
* const signedOps = await authClient.sigma.signAIP(["6a", "..."]);
|
|
357
|
+
* ```
|
|
358
|
+
*/
|
|
359
|
+
signAIP: async (hexArray) => {
|
|
360
|
+
const bapId = storedBapId || loadStoredBapId();
|
|
361
|
+
if (!bapId) {
|
|
362
|
+
throw new Error("No identity set. Complete OAuth login first or call setIdentity().");
|
|
363
|
+
}
|
|
364
|
+
const signerInstance = await getOrCreateSigner();
|
|
365
|
+
signerInstance.setIdentity(bapId);
|
|
366
|
+
return signerInstance.signAIP(hexArray);
|
|
367
|
+
},
|
|
368
|
+
/**
|
|
369
|
+
* Get the current identity (BAP ID) being used for signing
|
|
370
|
+
* @returns The current bapId or null if not set
|
|
371
|
+
*/
|
|
372
|
+
getIdentity: () => {
|
|
373
|
+
return storedBapId || loadStoredBapId();
|
|
374
|
+
},
|
|
375
|
+
/**
|
|
376
|
+
* Set the identity (BAP ID) to use for signing
|
|
377
|
+
* This is typically set automatically from OAuth callback,
|
|
378
|
+
* but can be set manually for multi-identity scenarios
|
|
379
|
+
*
|
|
380
|
+
* @param bapId - The BAP identity ID to use
|
|
381
|
+
*/
|
|
382
|
+
setIdentity: (bapId) => {
|
|
383
|
+
storedBapId = bapId;
|
|
384
|
+
if (typeof window !== "undefined") {
|
|
385
|
+
localStorage.setItem(BAP_ID_STORAGE_KEY, bapId);
|
|
386
|
+
}
|
|
387
|
+
// If signer already exists, update it
|
|
388
|
+
if (signer) {
|
|
389
|
+
signer.setIdentity(bapId);
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
/**
|
|
393
|
+
* Clear the stored identity and destroy the signer
|
|
394
|
+
* Call this on logout
|
|
395
|
+
*/
|
|
396
|
+
clearIdentity: () => {
|
|
397
|
+
storedBapId = null;
|
|
398
|
+
if (typeof window !== "undefined") {
|
|
399
|
+
localStorage.removeItem(BAP_ID_STORAGE_KEY);
|
|
400
|
+
}
|
|
401
|
+
if (signer) {
|
|
402
|
+
signer.destroy();
|
|
403
|
+
signer = null;
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
/**
|
|
407
|
+
* Check if the signer is ready for signing
|
|
408
|
+
* @returns true if identity is set and signer is initialized
|
|
409
|
+
*/
|
|
410
|
+
isReady: () => {
|
|
411
|
+
const bapId = storedBapId || loadStoredBapId();
|
|
412
|
+
return !!bapId;
|
|
413
|
+
},
|
|
266
414
|
},
|
|
267
415
|
};
|
|
268
416
|
},
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sigma Iframe Signer
|
|
3
|
+
*
|
|
4
|
+
* Provides seamless client-side signing via embedded Sigma iframe.
|
|
5
|
+
* Keys stay in auth.sigmaidentity.com - never exposed to client apps.
|
|
6
|
+
*
|
|
7
|
+
* Protocol:
|
|
8
|
+
* - Parent → Iframe: SET_IDENTITY, SIGN_REQUEST, SIGN_AIP_REQUEST
|
|
9
|
+
* - Iframe → Parent: WALLET_LOCKED, WALLET_UNLOCKED, SIGN_RESPONSE, SIGN_AIP_RESPONSE, SIGNER_ERROR
|
|
10
|
+
*/
|
|
11
|
+
export declare class SigmaIframeSigner {
|
|
12
|
+
private iframe;
|
|
13
|
+
private pendingRequests;
|
|
14
|
+
private pendingAIPRequests;
|
|
15
|
+
private initialized;
|
|
16
|
+
private boundMessageHandler;
|
|
17
|
+
private currentBapId;
|
|
18
|
+
private sigmaUrl;
|
|
19
|
+
constructor(sigmaUrl: string);
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the Sigma signer iframe (lazy - called on first sign request)
|
|
22
|
+
*/
|
|
23
|
+
init(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Set the identity for signing
|
|
26
|
+
*/
|
|
27
|
+
setIdentity(bapId: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Sign a request
|
|
30
|
+
*/
|
|
31
|
+
sign(requestPath: string, body?: string, signatureType?: "bsm" | "brc77"): Promise<string>;
|
|
32
|
+
/**
|
|
33
|
+
* Sign OP_RETURN data with AIP
|
|
34
|
+
*/
|
|
35
|
+
signAIP(hexArray: string[]): Promise<string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Handle messages from Sigma iframe
|
|
38
|
+
*/
|
|
39
|
+
private handleMessage;
|
|
40
|
+
/**
|
|
41
|
+
* Reject all pending requests
|
|
42
|
+
*/
|
|
43
|
+
private rejectAllPending;
|
|
44
|
+
/**
|
|
45
|
+
* Check if signer is ready
|
|
46
|
+
*/
|
|
47
|
+
isReady(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get current identity
|
|
50
|
+
*/
|
|
51
|
+
getIdentity(): string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Cleanup
|
|
54
|
+
*/
|
|
55
|
+
destroy(): void;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/client/signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAAgD;IAC3E,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C3B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWhC;;OAEG;IACG,IAAI,CACT,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,GAAE,KAAK,GAAG,OAAiB,GACtC,OAAO,CAAC,MAAM,CAAC;IAgDlB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CpD;;OAEG;IACH,OAAO,CAAC,aAAa;IAuErB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAYf"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sigma Iframe Signer
|
|
3
|
+
*
|
|
4
|
+
* Provides seamless client-side signing via embedded Sigma iframe.
|
|
5
|
+
* Keys stay in auth.sigmaidentity.com - never exposed to client apps.
|
|
6
|
+
*
|
|
7
|
+
* Protocol:
|
|
8
|
+
* - Parent → Iframe: SET_IDENTITY, SIGN_REQUEST, SIGN_AIP_REQUEST
|
|
9
|
+
* - Iframe → Parent: WALLET_LOCKED, WALLET_UNLOCKED, SIGN_RESPONSE, SIGN_AIP_RESPONSE, SIGNER_ERROR
|
|
10
|
+
*/
|
|
11
|
+
export class SigmaIframeSigner {
|
|
12
|
+
iframe = null;
|
|
13
|
+
pendingRequests = new Map();
|
|
14
|
+
pendingAIPRequests = new Map();
|
|
15
|
+
initialized = false;
|
|
16
|
+
boundMessageHandler = null;
|
|
17
|
+
currentBapId = null;
|
|
18
|
+
sigmaUrl;
|
|
19
|
+
constructor(sigmaUrl) {
|
|
20
|
+
this.sigmaUrl = sigmaUrl;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Initialize the Sigma signer iframe (lazy - called on first sign request)
|
|
24
|
+
*/
|
|
25
|
+
async init() {
|
|
26
|
+
if (typeof window === "undefined") {
|
|
27
|
+
throw new Error("SigmaIframeSigner can only be used in browser");
|
|
28
|
+
}
|
|
29
|
+
if (this.initialized)
|
|
30
|
+
return;
|
|
31
|
+
// Create hidden iframe for Sigma signer
|
|
32
|
+
this.iframe = document.createElement("iframe");
|
|
33
|
+
this.iframe.src = `${this.sigmaUrl}/signer`;
|
|
34
|
+
this.iframe.style.cssText = `
|
|
35
|
+
position: fixed;
|
|
36
|
+
inset: 0;
|
|
37
|
+
width: 100vw;
|
|
38
|
+
height: 100vh;
|
|
39
|
+
border: none;
|
|
40
|
+
background: transparent;
|
|
41
|
+
z-index: 10000;
|
|
42
|
+
display: none;
|
|
43
|
+
pointer-events: auto;
|
|
44
|
+
`;
|
|
45
|
+
document.body.appendChild(this.iframe);
|
|
46
|
+
// Set up message listener
|
|
47
|
+
this.boundMessageHandler = this.handleMessage.bind(this);
|
|
48
|
+
window.addEventListener("message", this.boundMessageHandler);
|
|
49
|
+
// Wait for iframe to load
|
|
50
|
+
const iframe = this.iframe;
|
|
51
|
+
await new Promise((resolve, reject) => {
|
|
52
|
+
const timeout = setTimeout(() => reject(new Error("Sigma iframe load timeout")), 10000);
|
|
53
|
+
iframe.addEventListener("load", () => {
|
|
54
|
+
clearTimeout(timeout);
|
|
55
|
+
this.initialized = true;
|
|
56
|
+
resolve();
|
|
57
|
+
});
|
|
58
|
+
iframe.addEventListener("error", () => {
|
|
59
|
+
clearTimeout(timeout);
|
|
60
|
+
reject(new Error("Failed to load Sigma iframe"));
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Set the identity for signing
|
|
66
|
+
*/
|
|
67
|
+
setIdentity(bapId) {
|
|
68
|
+
this.currentBapId = bapId;
|
|
69
|
+
if (this.initialized && this.iframe?.contentWindow) {
|
|
70
|
+
this.iframe.contentWindow.postMessage({ type: "SET_IDENTITY", payload: { bapId } }, this.sigmaUrl);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Sign a request
|
|
75
|
+
*/
|
|
76
|
+
async sign(requestPath, body, signatureType = "brc77") {
|
|
77
|
+
if (!this.initialized) {
|
|
78
|
+
await this.init();
|
|
79
|
+
}
|
|
80
|
+
if (!this.currentBapId) {
|
|
81
|
+
throw new Error("No identity set. Call setIdentity() first.");
|
|
82
|
+
}
|
|
83
|
+
const contentWindow = this.iframe?.contentWindow;
|
|
84
|
+
if (!contentWindow) {
|
|
85
|
+
throw new Error("Sigma iframe not accessible");
|
|
86
|
+
}
|
|
87
|
+
// Ensure identity is set
|
|
88
|
+
contentWindow.postMessage({ type: "SET_IDENTITY", payload: { bapId: this.currentBapId } }, this.sigmaUrl);
|
|
89
|
+
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
90
|
+
const request = {
|
|
91
|
+
requestId,
|
|
92
|
+
requestPath,
|
|
93
|
+
signatureType,
|
|
94
|
+
};
|
|
95
|
+
if (body) {
|
|
96
|
+
request.body = body;
|
|
97
|
+
request.bodyEncoding = "utf8";
|
|
98
|
+
}
|
|
99
|
+
return new Promise((resolve, reject) => {
|
|
100
|
+
const timeout = setTimeout(() => {
|
|
101
|
+
this.pendingRequests.delete(requestId);
|
|
102
|
+
reject(new Error("Signature request timeout"));
|
|
103
|
+
}, 30000);
|
|
104
|
+
this.pendingRequests.set(requestId, { resolve, reject, timeout });
|
|
105
|
+
contentWindow.postMessage({ type: "SIGN_REQUEST", payload: request }, this.sigmaUrl);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sign OP_RETURN data with AIP
|
|
110
|
+
*/
|
|
111
|
+
async signAIP(hexArray) {
|
|
112
|
+
if (!this.initialized) {
|
|
113
|
+
await this.init();
|
|
114
|
+
}
|
|
115
|
+
if (!this.currentBapId) {
|
|
116
|
+
throw new Error("No identity set. Call setIdentity() first.");
|
|
117
|
+
}
|
|
118
|
+
const contentWindow = this.iframe?.contentWindow;
|
|
119
|
+
if (!contentWindow) {
|
|
120
|
+
throw new Error("Sigma iframe not accessible");
|
|
121
|
+
}
|
|
122
|
+
// Ensure identity is set
|
|
123
|
+
contentWindow.postMessage({ type: "SET_IDENTITY", payload: { bapId: this.currentBapId } }, this.sigmaUrl);
|
|
124
|
+
const requestId = `aip_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
125
|
+
const request = {
|
|
126
|
+
requestId,
|
|
127
|
+
hexArray,
|
|
128
|
+
};
|
|
129
|
+
return new Promise((resolve, reject) => {
|
|
130
|
+
const timeout = setTimeout(() => {
|
|
131
|
+
this.pendingAIPRequests.delete(requestId);
|
|
132
|
+
reject(new Error("AIP signature request timeout"));
|
|
133
|
+
}, 30000);
|
|
134
|
+
this.pendingAIPRequests.set(requestId, { resolve, reject, timeout });
|
|
135
|
+
contentWindow.postMessage({ type: "SIGN_AIP_REQUEST", payload: request }, this.sigmaUrl);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Handle messages from Sigma iframe
|
|
140
|
+
*/
|
|
141
|
+
handleMessage(event) {
|
|
142
|
+
// Verify origin
|
|
143
|
+
if (event.origin !== this.sigmaUrl) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const { type, payload } = event.data || {};
|
|
147
|
+
switch (type) {
|
|
148
|
+
case "WALLET_LOCKED":
|
|
149
|
+
// Show iframe for password entry
|
|
150
|
+
if (this.iframe) {
|
|
151
|
+
this.iframe.style.display = "block";
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
case "WALLET_UNLOCKED":
|
|
155
|
+
// Hide iframe
|
|
156
|
+
if (this.iframe) {
|
|
157
|
+
this.iframe.style.display = "none";
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
case "SIGNER_ERROR": {
|
|
161
|
+
// Hide iframe and reject all pending requests
|
|
162
|
+
if (this.iframe) {
|
|
163
|
+
this.iframe.style.display = "none";
|
|
164
|
+
}
|
|
165
|
+
const errorMsg = event.data.error || "Signer error";
|
|
166
|
+
this.rejectAllPending(new Error(`Signer error: ${errorMsg}. Please sign in to Sigma Identity.`));
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case "SIGN_RESPONSE": {
|
|
170
|
+
const response = payload;
|
|
171
|
+
const pending = this.pendingRequests.get(response.requestId);
|
|
172
|
+
if (pending) {
|
|
173
|
+
clearTimeout(pending.timeout);
|
|
174
|
+
this.pendingRequests.delete(response.requestId);
|
|
175
|
+
if (response.error) {
|
|
176
|
+
pending.reject(new Error(response.error));
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
pending.resolve(response.authToken);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
case "SIGN_AIP_RESPONSE": {
|
|
185
|
+
const response = payload;
|
|
186
|
+
const pending = this.pendingAIPRequests.get(response.requestId);
|
|
187
|
+
if (pending) {
|
|
188
|
+
clearTimeout(pending.timeout);
|
|
189
|
+
this.pendingAIPRequests.delete(response.requestId);
|
|
190
|
+
if (response.error) {
|
|
191
|
+
pending.reject(new Error(response.error));
|
|
192
|
+
}
|
|
193
|
+
else if (response.signedOps) {
|
|
194
|
+
pending.resolve(response.signedOps);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
pending.reject(new Error("No signed ops returned"));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Reject all pending requests
|
|
206
|
+
*/
|
|
207
|
+
rejectAllPending(error) {
|
|
208
|
+
for (const [, pending] of this.pendingRequests) {
|
|
209
|
+
clearTimeout(pending.timeout);
|
|
210
|
+
pending.reject(error);
|
|
211
|
+
}
|
|
212
|
+
this.pendingRequests.clear();
|
|
213
|
+
for (const [, pending] of this.pendingAIPRequests) {
|
|
214
|
+
clearTimeout(pending.timeout);
|
|
215
|
+
pending.reject(error);
|
|
216
|
+
}
|
|
217
|
+
this.pendingAIPRequests.clear();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Check if signer is ready
|
|
221
|
+
*/
|
|
222
|
+
isReady() {
|
|
223
|
+
return this.initialized && this.iframe !== null;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get current identity
|
|
227
|
+
*/
|
|
228
|
+
getIdentity() {
|
|
229
|
+
return this.currentBapId;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Cleanup
|
|
233
|
+
*/
|
|
234
|
+
destroy() {
|
|
235
|
+
if (this.iframe) {
|
|
236
|
+
document.body.removeChild(this.iframe);
|
|
237
|
+
this.iframe = null;
|
|
238
|
+
}
|
|
239
|
+
if (this.boundMessageHandler) {
|
|
240
|
+
window.removeEventListener("message", this.boundMessageHandler);
|
|
241
|
+
this.boundMessageHandler = null;
|
|
242
|
+
}
|
|
243
|
+
this.initialized = false;
|
|
244
|
+
this.rejectAllPending(new Error("Signer destroyed"));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/client/signer.ts"],"names":[],"mappings":"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"}
|
package/dist/next/index.js
CHANGED
|
@@ -70,7 +70,7 @@ export function createCallbackHandler(config) {
|
|
|
70
70
|
console.log("[Sigma OAuth Callback] Success:", {
|
|
71
71
|
hasBap: !!result.user.bap,
|
|
72
72
|
name: result.user.name,
|
|
73
|
-
bapId: result.user.
|
|
73
|
+
bapId: result.user.bap_id?.substring(0, 20) || "none",
|
|
74
74
|
});
|
|
75
75
|
return Response.json({
|
|
76
76
|
user: result.user,
|
package/dist/next/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/next/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,qBAAqB,GAErB,MAAM,oBAAoB,CAAC;AAwB5B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IACjE,OAAO,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAGjC,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAErC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO,QAAQ,CAAC,IAAI,CACnB,EAAE,KAAK,EAAE,4BAA4B,EAAE,EACvC,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,MAAM,gBAAgB,GACrB,MAAM,EAAE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;YAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CACZ,gEAAgE,CAChE,CAAC;gBACF,OAAO,QAAQ,CAAC,IAAI,CACnB;oBACC,KAAK,EAAE,4BAA4B;oBACnC,OAAO,EAAE,kCAAkC;iBAC3C,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GACd,MAAM,EAAE,SAAS;gBACjB,OAAO,CAAC,GAAG,CAAC,0BAA0B;gBACtC,gCAAgC,CAAC;YAElC,MAAM,QAAQ,GACb,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACZ,mEAAmE,CACnE,CAAC;gBACF,OAAO,QAAQ,CAAC,IAAI,CACnB,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,mBAAmB,EAAE,EACrE,EAAE,MAAM,EAAE,GAAG,EAAE,CACf,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,WAAW,CAAC;YACzD,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YAE/D,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE;gBACjE,SAAS;gBACT,QAAQ;gBACR,WAAW;aACX,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;gBAC1C,IAAI;gBACJ,WAAW;gBACX,QAAQ;gBACR,gBAAgB;gBAChB,YAAY,EAAE,aAAa;gBAC3B,SAAS;aACT,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;gBAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/next/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { User } from "better-auth";
|
|
|
4
4
|
* Stored in profile.profile JSONB column
|
|
5
5
|
*/
|
|
6
6
|
export interface BAPProfile {
|
|
7
|
-
|
|
7
|
+
idKey: string;
|
|
8
8
|
rootAddress: string;
|
|
9
9
|
currentAddress?: string;
|
|
10
10
|
addresses?: Array<{
|
|
@@ -42,7 +42,8 @@ export interface SigmaUserInfo extends Omit<User, "id"> {
|
|
|
42
42
|
family_name?: string | null;
|
|
43
43
|
picture?: string | null;
|
|
44
44
|
pubkey: string;
|
|
45
|
-
|
|
45
|
+
bap_id?: string;
|
|
46
|
+
bap?: BAPProfile | string | null;
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
49
|
* Subscription status from auth server
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;IAEtD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC;IACzD,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB"}
|
package/package.json
CHANGED