accounts 0.18.1 → 0.18.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # accounts
2
2
 
3
+ ## 0.18.2
4
+
5
+ ### Patch Changes
6
+
7
+ - b07bd65: Added chain-aware SIWE signature verification and surfaced RPC failures separately from invalid signatures.
8
+
9
+ ```ts
10
+ Handler.auth({
11
+ getClient: (chainId) => clients.get(chainId)!,
12
+ });
13
+ ```
14
+
3
15
  ## 0.18.1
4
16
 
5
17
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { Hex } from 'ox';
2
- import type { Address, Transport } from 'viem';
2
+ import type { Address, Client, Transport } from 'viem';
3
3
  import * as z from 'zod/mini';
4
4
  import { type Handler, from } from '../../Handler.js';
5
5
  import * as Kv from '../../Kv.js';
@@ -115,6 +115,8 @@ export declare namespace auth {
115
115
  cookieName?: string | undefined;
116
116
  /** Domain echoed into challenge messages. @default request `Host` header */
117
117
  domain?: string | undefined;
118
+ /** Resolves the Viem client used to verify a SIWE signature for its chain. */
119
+ getClient?: ((chainId: number) => Client) | undefined;
118
120
  /**
119
121
  * OIDC identity verification (verified email), enabled by default. A verify
120
122
  * request carrying an `idToken` is checked against the issuer's JWKS, with
@@ -188,10 +190,8 @@ export declare namespace auth {
188
190
  */
189
191
  store?: Kv.Kv | undefined;
190
192
  /**
191
- * Viem transport for the Tempo client used to verify signatures. The
192
- * client is always built against the `tempo` chain — Tempo's
193
- * `chain.verifyHash` natively understands `SignatureEnvelope` and
194
- * falls back to ECDSA recovery for plain EOAs.
193
+ * Viem transport for the default Tempo verification client, built with Tempo signature
194
+ * handling. Ignored when `getClient` is provided.
195
195
  * @default `http()`
196
196
  */
197
197
  transport?: Transport | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/auth.ts"],"names":[],"mappings":"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"}
@@ -101,7 +101,7 @@ export var schema;
101
101
  * verify time and the server uses it as the session subject.
102
102
  */
103
103
  export function auth(options = {}) {
104
- const { cookie = true, cookieName = defaults.cookieName, domain, identity = {}, onAuthenticate, path = '/', origin: origin_option, session = true, statement, store = Kv.memory(), transport = http(),
104
+ const { cookie = true, cookieName = defaults.cookieName, domain, getClient: getClient_option, identity = {}, onAuthenticate, path = '/', origin: origin_option, session = true, statement, store = Kv.memory(), transport = http(),
105
105
  // Cloudflare Workers always run behind Cloudflare's edge proxy, which
106
106
  // sets `x-forwarded-proto`/`x-forwarded-host`. Default `trustProxy` to
107
107
  // `true` there so deployments work out of the box. Other runtimes keep
@@ -133,6 +133,7 @@ export function auth(options = {}) {
133
133
  })();
134
134
  const resolveReqOrigin = (req) => resolveOrigin(req, { pinnedOrigin, trustProxy });
135
135
  const client = createClient({ chain: tempo, transport });
136
+ const getClient = getClient_option ?? (() => client);
136
137
  const router = from(rest);
137
138
  const verifyPath = path === '/' ? '/' : path;
138
139
  const challengePath = path === '/' ? '/challenge' : `${path}/challenge`;
@@ -216,8 +217,8 @@ export function auth(options = {}) {
216
217
  // message. Tempo's chain override unwraps `SignatureEnvelope` for
217
218
  // WebAuthn / P256 / keychain sigs and falls back to ECDSA for EOAs.
218
219
  let valid;
219
- try {
220
- if (keyAuthorization) {
220
+ if (keyAuthorization) {
221
+ try {
221
222
  const decoded = KeyAuthorization.deserialize(keyAuthorization);
222
223
  if (!decoded.signature)
223
224
  return c.json({ error: 'key authorization missing signature' }, 400);
@@ -225,20 +226,38 @@ export function auth(options = {}) {
225
226
  return c.json({ error: 'chainId mismatch' }, 400);
226
227
  if (!decoded.witness || decoded.witness !== hashMessage(message))
227
228
  return c.json({ error: 'witness mismatch' }, 401);
228
- valid = await verifyHash(client, {
229
- address,
230
- hash: KeyAuthorization.getSignPayload(decoded),
231
- signature: SignatureEnvelope.serialize(decoded.signature, {
232
- magic: decoded.signature.type === 'webAuthn',
233
- }),
234
- });
229
+ try {
230
+ valid = await verifyHash(getClient(challenge.chainId), {
231
+ address,
232
+ hash: KeyAuthorization.getSignPayload(decoded),
233
+ signature: SignatureEnvelope.serialize(decoded.signature, {
234
+ magic: decoded.signature.type === 'webAuthn',
235
+ }),
236
+ });
237
+ }
238
+ catch (error) {
239
+ console.error('[accounts/auth] signature verification dependency failed', error);
240
+ return c.json({ error: 'signature verification unavailable' }, 502);
241
+ }
235
242
  }
236
- else {
237
- valid = await verifyMessage(client, { address, message, signature });
243
+ catch {
244
+ return c.json({ error: 'invalid signature' }, 401);
238
245
  }
239
246
  }
240
- catch {
241
- return c.json({ error: 'invalid signature' }, 401);
247
+ else {
248
+ try {
249
+ SignatureEnvelope.deserialize(signature);
250
+ }
251
+ catch {
252
+ return c.json({ error: 'invalid signature' }, 401);
253
+ }
254
+ try {
255
+ valid = await verifyMessage(getClient(challenge.chainId), { address, message, signature });
256
+ }
257
+ catch (error) {
258
+ console.error('[accounts/auth] signature verification dependency failed', error);
259
+ return c.json({ error: 'signature verification unavailable' }, 502);
260
+ }
242
261
  }
243
262
  if (!valid)
244
263
  return c.json({ error: 'signature does not match address' }, 401);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/auth.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "accounts",
3
3
  "description": "Tempo Accounts SDK",
4
4
  "type": "module",
5
- "version": "0.18.1",
5
+ "version": "0.18.2",
6
6
  "dependencies": {
7
7
  "hono": "^4.12.34",
8
8
  "idb-keyval": "^6.2.2",
@@ -1,9 +1,11 @@
1
1
  import { Hono } from 'hono'
2
- import { Secp256k1 } from 'ox'
2
+ import { P256, Secp256k1 } from 'ox'
3
3
  import { KeyAuthorization } from 'ox/tempo'
4
- import { hashMessage } from 'viem'
4
+ import { createClient, custom, hashMessage } from 'viem'
5
5
  import { privateKeyToAccount } from 'viem/accounts'
6
6
  import { parseSiweMessage } from 'viem/siwe'
7
+ import { Account } from 'viem/tempo'
8
+ import { tempoModerato } from 'viem/tempo/chains'
7
9
  import { afterAll, beforeAll, describe, expect, test, vi } from 'vp/test'
8
10
 
9
11
  import { createServer } from '../../../../test/utils.js'
@@ -345,6 +347,88 @@ describe('verify (EOA, cookie mode)', () => {
345
347
  `)
346
348
  })
347
349
 
350
+ test('resolves the verification client from the challenge chain', async () => {
351
+ const account = Account.fromHeadlessWebAuthn(P256.randomPrivateKey(), {
352
+ origin: 'http://wallet.example',
353
+ rpId: 'wallet.example',
354
+ })
355
+ const client = createClient({
356
+ chain: tempoModerato,
357
+ transport: custom({
358
+ request: async () => {
359
+ throw new Error('RPC unavailable')
360
+ },
361
+ }),
362
+ })
363
+ let chainId_seen: number | undefined
364
+ const log = vi.spyOn(console, 'error').mockImplementation(() => {})
365
+ const result = await (async () => {
366
+ try {
367
+ const { app } = setup({
368
+ getClient: (chainId) => {
369
+ chainId_seen = chainId
370
+ return client
371
+ },
372
+ })
373
+ const { body: challengeBody } = await getChallenge(app, {
374
+ chainId: tempoModerato.id,
375
+ })
376
+ const message = challengeBody.message!
377
+ const signature = await account.signMessage({ message })
378
+ const res = await postVerify(app, { address: account.address, message, signature })
379
+
380
+ return {
381
+ body: await res.json(),
382
+ chainId: chainId_seen,
383
+ logs: log.mock.calls.map(([message]) => message),
384
+ status: res.status,
385
+ }
386
+ } finally {
387
+ log.mockRestore()
388
+ }
389
+ })()
390
+
391
+ expect(result).toMatchInlineSnapshot(`
392
+ {
393
+ "body": {
394
+ "error": "signature verification unavailable",
395
+ },
396
+ "chainId": 42431,
397
+ "logs": [
398
+ "[accounts/auth] signature verification dependency failed",
399
+ ],
400
+ "status": 502,
401
+ }
402
+ `)
403
+ })
404
+
405
+ test('keeps malformed signatures as authentication errors', async () => {
406
+ let clientCalled = false
407
+ const { app } = setup({
408
+ getClient: () => {
409
+ clientCalled = true
410
+ throw new Error('unexpected client resolution')
411
+ },
412
+ })
413
+ const { body: challengeBody } = await getChallenge(app, { chainId: 1 })
414
+ const message = challengeBody.message!
415
+ const res = await postVerify(app, {
416
+ address: account.address,
417
+ message,
418
+ signature: '0xdeadbeef',
419
+ })
420
+
421
+ expect({ body: await res.json(), clientCalled, status: res.status }).toMatchInlineSnapshot(`
422
+ {
423
+ "body": {
424
+ "error": "invalid signature",
425
+ },
426
+ "clientCalled": false,
427
+ "status": 401,
428
+ }
429
+ `)
430
+ })
431
+
348
432
  test('rejects domain mismatch with 400', async () => {
349
433
  const { app } = setup()
350
434
 
@@ -1,6 +1,6 @@
1
1
  import { Hex } from 'ox'
2
2
  import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo'
3
- import type { Address, Transport } from 'viem'
3
+ import type { Address, Client, Transport } from 'viem'
4
4
  import { createClient, hashMessage, http, zeroAddress } from 'viem'
5
5
  import { verifyHash, verifyMessage } from 'viem/actions'
6
6
  import { createSiweMessage, generateSiweNonce, parseSiweMessage } from 'viem/siwe'
@@ -156,6 +156,7 @@ export function auth(options: auth.Options = {}): auth.ReturnType {
156
156
  cookie = true,
157
157
  cookieName = defaults.cookieName,
158
158
  domain,
159
+ getClient: getClient_option,
159
160
  identity = {},
160
161
  onAuthenticate,
161
162
  path = '/',
@@ -203,6 +204,7 @@ export function auth(options: auth.Options = {}): auth.ReturnType {
203
204
  const resolveReqOrigin = (req: Request) => resolveOrigin(req, { pinnedOrigin, trustProxy })
204
205
 
205
206
  const client = createClient({ chain: tempo, transport })
207
+ const getClient = getClient_option ?? (() => client)
206
208
 
207
209
  const router = from(rest)
208
210
  const verifyPath = path === '/' ? '/' : path
@@ -301,26 +303,41 @@ export function auth(options: auth.Options = {}): auth.ReturnType {
301
303
  // message. Tempo's chain override unwraps `SignatureEnvelope` for
302
304
  // WebAuthn / P256 / keychain sigs and falls back to ECDSA for EOAs.
303
305
  let valid: boolean
304
- try {
305
- if (keyAuthorization) {
306
+ if (keyAuthorization) {
307
+ try {
306
308
  const decoded = KeyAuthorization.deserialize(keyAuthorization)
307
309
  if (!decoded.signature) return c.json({ error: 'key authorization missing signature' }, 400)
308
310
  if (Number(decoded.chainId) !== challenge.chainId)
309
311
  return c.json({ error: 'chainId mismatch' }, 400)
310
312
  if (!decoded.witness || decoded.witness !== hashMessage(message))
311
313
  return c.json({ error: 'witness mismatch' }, 401)
312
- valid = await verifyHash(client, {
313
- address,
314
- hash: KeyAuthorization.getSignPayload(decoded),
315
- signature: SignatureEnvelope.serialize(decoded.signature, {
316
- magic: decoded.signature.type === 'webAuthn',
317
- }),
318
- })
319
- } else {
320
- valid = await verifyMessage(client, { address, message, signature })
314
+ try {
315
+ valid = await verifyHash(getClient(challenge.chainId), {
316
+ address,
317
+ hash: KeyAuthorization.getSignPayload(decoded),
318
+ signature: SignatureEnvelope.serialize(decoded.signature, {
319
+ magic: decoded.signature.type === 'webAuthn',
320
+ }),
321
+ })
322
+ } catch (error) {
323
+ console.error('[accounts/auth] signature verification dependency failed', error)
324
+ return c.json({ error: 'signature verification unavailable' }, 502)
325
+ }
326
+ } catch {
327
+ return c.json({ error: 'invalid signature' }, 401)
328
+ }
329
+ } else {
330
+ try {
331
+ SignatureEnvelope.deserialize(signature)
332
+ } catch {
333
+ return c.json({ error: 'invalid signature' }, 401)
334
+ }
335
+ try {
336
+ valid = await verifyMessage(getClient(challenge.chainId), { address, message, signature })
337
+ } catch (error) {
338
+ console.error('[accounts/auth] signature verification dependency failed', error)
339
+ return c.json({ error: 'signature verification unavailable' }, 502)
321
340
  }
322
- } catch {
323
- return c.json({ error: 'invalid signature' }, 401)
324
341
  }
325
342
  if (!valid) return c.json({ error: 'signature does not match address' }, 401)
326
343
 
@@ -470,6 +487,8 @@ export declare namespace auth {
470
487
  cookieName?: string | undefined
471
488
  /** Domain echoed into challenge messages. @default request `Host` header */
472
489
  domain?: string | undefined
490
+ /** Resolves the Viem client used to verify a SIWE signature for its chain. */
491
+ getClient?: ((chainId: number) => Client) | undefined
473
492
  /**
474
493
  * OIDC identity verification (verified email), enabled by default. A verify
475
494
  * request carrying an `idToken` is checked against the issuer's JWKS, with
@@ -548,10 +567,8 @@ export declare namespace auth {
548
567
  */
549
568
  store?: Kv.Kv | undefined
550
569
  /**
551
- * Viem transport for the Tempo client used to verify signatures. The
552
- * client is always built against the `tempo` chain — Tempo's
553
- * `chain.verifyHash` natively understands `SignatureEnvelope` and
554
- * falls back to ECDSA recovery for plain EOAs.
570
+ * Viem transport for the default Tempo verification client, built with Tempo signature
571
+ * handling. Ignored when `getClient` is provided.
555
572
  * @default `http()`
556
573
  */
557
574
  transport?: Transport | undefined