accounts 0.10.2 → 0.10.4

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +13 -0
  3. package/dist/core/Provider.d.ts.map +1 -1
  4. package/dist/core/Provider.js +19 -13
  5. package/dist/core/Provider.js.map +1 -1
  6. package/dist/core/adapters/turnkey.d.ts +120 -0
  7. package/dist/core/adapters/turnkey.d.ts.map +1 -0
  8. package/dist/core/adapters/turnkey.js +466 -0
  9. package/dist/core/adapters/turnkey.js.map +1 -0
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/server/Handler.d.ts +1 -0
  15. package/dist/server/Handler.d.ts.map +1 -1
  16. package/dist/server/Handler.js +1 -0
  17. package/dist/server/Handler.js.map +1 -1
  18. package/dist/server/internal/handlers/auth.d.ts +3 -2
  19. package/dist/server/internal/handlers/auth.d.ts.map +1 -1
  20. package/dist/server/internal/handlers/relay.d.ts.map +1 -1
  21. package/dist/server/internal/handlers/relay.js +12 -0
  22. package/dist/server/internal/handlers/relay.js.map +1 -1
  23. package/dist/server/internal/handlers/session.d.ts +14 -1
  24. package/dist/server/internal/handlers/session.d.ts.map +1 -1
  25. package/dist/server/internal/handlers/session.js +18 -2
  26. package/dist/server/internal/handlers/session.js.map +1 -1
  27. package/dist/server/internal/handlers/utils.d.ts.map +1 -1
  28. package/dist/server/internal/handlers/utils.js +5 -3
  29. package/dist/server/internal/handlers/utils.js.map +1 -1
  30. package/dist/server/internal/handlers/webAuthn.d.ts +2 -1
  31. package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/core/Provider.test.ts +19 -0
  34. package/src/core/Provider.ts +20 -14
  35. package/src/core/adapters/turnkey.test.ts +337 -0
  36. package/src/core/adapters/turnkey.ts +643 -0
  37. package/src/index.ts +1 -0
  38. package/src/server/Handler.ts +1 -0
  39. package/src/server/internal/handlers/auth.ts +2 -2
  40. package/src/server/internal/handlers/relay.test.ts +23 -0
  41. package/src/server/internal/handlers/relay.ts +16 -0
  42. package/src/server/internal/handlers/session.test.ts +217 -0
  43. package/src/server/internal/handlers/session.ts +31 -3
  44. package/src/server/internal/handlers/utils.ts +5 -2
  45. package/src/server/internal/handlers/webAuthn.ts +1 -1
@@ -0,0 +1,466 @@
1
+ import { Address as core_Address, Hex, Provider as ox_Provider, PublicKey, Signature, WebCryptoP256, } from 'ox';
2
+ import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
3
+ import { hashMessage, hashTypedData, isAddressEqual, keccak256 } from 'viem';
4
+ import { prepareTransactionRequest } from 'viem/actions';
5
+ import { Transaction as TempoTransaction } from 'viem/tempo';
6
+ import * as AccessKey from '../AccessKey.js';
7
+ import * as Adapter from '../Adapter.js';
8
+ import * as Store from '../Store.js';
9
+ const turnkeySessionErrorCodes = new Set([
10
+ 'API_KEY_EXPIRED',
11
+ 'NO_SESSION_FOUND',
12
+ 'REQUEST_NOT_AUTHORIZED',
13
+ 'SESSION_EXPIRED',
14
+ 'SIGNATURE_INVALID',
15
+ 'SIGNATURE_MISSING',
16
+ 'UNAUTHENTICATED',
17
+ 'UNAUTHORIZED',
18
+ ]);
19
+ /**
20
+ * Creates a Turnkey adapter backed by `@turnkey/core` client sessions and Ethereum wallet accounts.
21
+ *
22
+ * The adapter owns silent reconnect, session-expiry cleanup, and provider signing actions.
23
+ * Apps provide the UI-bearing registration and login flows through `createAccount` and
24
+ * `loadAccounts`.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { TurnkeyClient } from '@turnkey/core'
29
+ * import { Provider, turnkey } from 'accounts'
30
+ *
31
+ * const provider = Provider.create({
32
+ * adapter: turnkey({
33
+ * client: new TurnkeyClient({ organizationId, authProxyConfigId }),
34
+ * createAccount: async ({ client, parameters }) => {
35
+ * await client.signUpWithPasskey({
36
+ * createSubOrgParams: { userName: parameters.name },
37
+ * })
38
+ * return (await client.fetchWallets())
39
+ * .flatMap((wallet) => wallet.accounts)
40
+ * .find((account) => account.addressFormat === 'ADDRESS_FORMAT_ETHEREUM')!
41
+ * },
42
+ * loadAccounts: async ({ client }) => {
43
+ * const session = await client.getSession()
44
+ * if (!session || session.expiry * 1000 <= Date.now()) await client.loginWithPasskey()
45
+ * return (await client.fetchWallets())
46
+ * .flatMap((wallet) => wallet.accounts)
47
+ * .filter((account) => account.addressFormat === 'ADDRESS_FORMAT_ETHEREUM')
48
+ * },
49
+ * }),
50
+ * })
51
+ * ```
52
+ */
53
+ export function turnkey(options) {
54
+ const { icon, name = 'Turnkey', rdns = 'com.turnkey', sessionSkewMs = 10_000 } = options;
55
+ return Adapter.define({ icon, name, rdns }, ({ getAccount, getClient, store }) => {
56
+ let turnkeyClient_promise;
57
+ let expiry_timeout;
58
+ let restore_promise;
59
+ let walletAccounts = [];
60
+ async function getTurnkeyClient() {
61
+ turnkeyClient_promise ??= (async () => {
62
+ const { client } = options;
63
+ await client.init?.();
64
+ return client;
65
+ })();
66
+ return await turnkeyClient_promise;
67
+ }
68
+ function toStoreAccount(account, label) {
69
+ return {
70
+ address: core_Address.from(account.address),
71
+ ...(label ? { label } : {}),
72
+ };
73
+ }
74
+ function clear() {
75
+ if (expiry_timeout)
76
+ clearTimeout(expiry_timeout);
77
+ expiry_timeout = undefined;
78
+ restore_promise = undefined;
79
+ walletAccounts = [];
80
+ store.setState({ accessKeys: [], accounts: [], activeAccount: 0 });
81
+ }
82
+ function scheduleExpiry(session) {
83
+ if (expiry_timeout)
84
+ clearTimeout(expiry_timeout);
85
+ expiry_timeout = undefined;
86
+ const delay = Math.max(session.expiry * 1000 - Date.now() - sessionSkewMs, 0);
87
+ expiry_timeout = setTimeout(() => clear(), delay);
88
+ }
89
+ async function getValidSession() {
90
+ const turnkeyClient = await getTurnkeyClient();
91
+ const session = await turnkeyClient.getSession();
92
+ if (!session || session.expiry * 1000 - sessionSkewMs <= Date.now()) {
93
+ clear();
94
+ return undefined;
95
+ }
96
+ scheduleExpiry(session);
97
+ return session;
98
+ }
99
+ async function restore() {
100
+ await Store.waitForHydration(store);
101
+ if (walletAccounts.length > 0)
102
+ return;
103
+ if (restore_promise)
104
+ return await restore_promise;
105
+ restore_promise = (async () => {
106
+ const state = store.getState();
107
+ const persisted = state.accounts;
108
+ if (persisted.length === 0)
109
+ return;
110
+ const session = await getValidSession();
111
+ if (!session)
112
+ return;
113
+ const turnkeyClient = await getTurnkeyClient();
114
+ const restored = (await turnkeyClient.fetchWallets()).flatMap((wallet) => wallet.accounts.filter((account) => account.addressFormat === 'ADDRESS_FORMAT_ETHEREUM'));
115
+ walletAccounts = persisted
116
+ .map((account) => restored.find((walletAccount) => isAddressEqual(core_Address.from(walletAccount.address), account.address)))
117
+ .filter((account) => !!account);
118
+ if (walletAccounts.length === 0)
119
+ return;
120
+ store.setState({
121
+ accounts: walletAccounts.map((account) => toStoreAccount(account)),
122
+ activeAccount: Math.min(state.activeAccount, walletAccounts.length - 1),
123
+ });
124
+ })();
125
+ try {
126
+ await restore_promise;
127
+ }
128
+ finally {
129
+ restore_promise = undefined;
130
+ }
131
+ }
132
+ async function requireSession() {
133
+ const session = await getValidSession();
134
+ if (!session)
135
+ throw new ox_Provider.DisconnectedError({ message: 'Turnkey session expired.' });
136
+ }
137
+ async function accountForSigning(address) {
138
+ await restore();
139
+ await requireSession();
140
+ const address_ = address ?? store.getState().accounts[store.getState().activeAccount]?.address;
141
+ if (!address_)
142
+ throw new ox_Provider.DisconnectedError({ message: 'No accounts connected.' });
143
+ const account = walletAccounts.find((account) => isAddressEqual(core_Address.from(account.address), address_));
144
+ if (account)
145
+ return account;
146
+ if (walletAccounts.length === 0)
147
+ throw new ox_Provider.DisconnectedError({
148
+ message: 'No Turnkey account connected.',
149
+ });
150
+ throw new ox_Provider.UnauthorizedError({ message: `Account "${address_}" not found.` });
151
+ }
152
+ function signatureToHex(value) {
153
+ const v = value.v.startsWith('0x') ? value.v : Hex.fromNumber(Number(value.v));
154
+ return Hex.concat(value.r, value.s, Hex.padLeft(v, 1));
155
+ }
156
+ async function signPayload(parameters) {
157
+ const { payload, turnkeyClient, walletAccount } = parameters;
158
+ const result = await turnkeyClient.httpClient
159
+ .signRawPayload({
160
+ encoding: 'PAYLOAD_ENCODING_HEXADECIMAL',
161
+ hashFunction: 'HASH_FUNCTION_NO_OP',
162
+ payload,
163
+ signWith: walletAccount.address,
164
+ })
165
+ .catch((error) => {
166
+ if (!isSessionError(error))
167
+ throw error;
168
+ clear();
169
+ throw new ox_Provider.DisconnectedError({ message: 'Turnkey session expired.' });
170
+ });
171
+ return signatureToHex(result);
172
+ }
173
+ async function prepareKeyAuthorization(options) {
174
+ const { expiry, limits, scopes } = options;
175
+ const chainId = options.chainId ?? getClient().chain.id;
176
+ if (options.publicKey || options.address) {
177
+ const address = options.address ?? core_Address.fromPublicKey(PublicKey.from(options.publicKey));
178
+ const keyAuthorization = KeyAuthorization.from({
179
+ address,
180
+ chainId: BigInt(chainId),
181
+ expiry,
182
+ limits,
183
+ scopes,
184
+ type: options.keyType ?? 'secp256k1',
185
+ });
186
+ return { keyAuthorization };
187
+ }
188
+ const keyPair = await WebCryptoP256.createKeyPair();
189
+ const address = core_Address.fromPublicKey(PublicKey.from(keyPair.publicKey));
190
+ const keyAuthorization = KeyAuthorization.from({
191
+ address,
192
+ chainId: BigInt(chainId),
193
+ expiry,
194
+ limits,
195
+ scopes,
196
+ type: 'p256',
197
+ });
198
+ return { keyAuthorization, keyPair };
199
+ }
200
+ async function signKeyAuthorization(account, prepared, options = {}) {
201
+ const digest = KeyAuthorization.getSignPayload(prepared.keyAuthorization);
202
+ const signature = options.signature ??
203
+ (await signPayload({
204
+ payload: digest,
205
+ turnkeyClient: await getTurnkeyClient(),
206
+ walletAccount: account,
207
+ }));
208
+ const keyAuthorization = KeyAuthorization.from(prepared.keyAuthorization, {
209
+ signature: SignatureEnvelope.from(signature),
210
+ });
211
+ AccessKey.save({
212
+ address: core_Address.from(account.address),
213
+ keyAuthorization,
214
+ ...(prepared.keyPair ? { keyPair: prepared.keyPair } : {}),
215
+ store,
216
+ });
217
+ return KeyAuthorization.toRpc(keyAuthorization);
218
+ }
219
+ async function withAccessKey(fn) {
220
+ const account = (() => {
221
+ try {
222
+ return getAccount({ signable: true });
223
+ }
224
+ catch {
225
+ return undefined;
226
+ }
227
+ })();
228
+ if (!account || account.source !== 'accessKey')
229
+ return undefined;
230
+ const keyAuthorization = AccessKey.getPending(account, { store });
231
+ try {
232
+ const result = await fn(account, keyAuthorization ?? undefined);
233
+ AccessKey.removePending(account, { store });
234
+ return result;
235
+ }
236
+ catch {
237
+ AccessKey.remove(account, { store });
238
+ return undefined;
239
+ }
240
+ }
241
+ async function signTransaction(parameters) {
242
+ const turnkeyClient = await getTurnkeyClient();
243
+ const account = await accountForSigning(parameters.from);
244
+ const { feePayer, ...rest } = parameters;
245
+ const viemClient = getClient({
246
+ feePayer: feePayer === true ? undefined : feePayer,
247
+ });
248
+ const prepared = await prepareTransactionRequest(viemClient, {
249
+ account: core_Address.from(account.address),
250
+ ...rest,
251
+ ...(feePayer ? { feePayer: true } : {}),
252
+ type: 'tempo',
253
+ });
254
+ const presign = (() => {
255
+ if ('feePayerSignature' in prepared && prepared.feePayerSignature)
256
+ return { ...prepared, feePayerSignature: null };
257
+ return prepared;
258
+ })();
259
+ const unsignedTransaction = await TempoTransaction.serialize(presign);
260
+ const signature = await signPayload({
261
+ payload: keccak256(unsignedTransaction),
262
+ turnkeyClient,
263
+ walletAccount: account,
264
+ });
265
+ return await TempoTransaction.serialize(prepared, SignatureEnvelope.from(Signature.fromHex(signature)));
266
+ }
267
+ function isSessionError(error) {
268
+ const code = getTurnkeyErrorCode(error);
269
+ return !!code && turnkeySessionErrorCodes.has(code);
270
+ }
271
+ function getTurnkeyErrorCode(error) {
272
+ if (!isObject(error))
273
+ return undefined;
274
+ if (typeof error.code === 'string')
275
+ return error.code;
276
+ if (Array.isArray(error.details)) {
277
+ for (const detail of error.details) {
278
+ if (!isObject(detail))
279
+ continue;
280
+ if (typeof detail.turnkeyErrorCode === 'string')
281
+ return detail.turnkeyErrorCode;
282
+ }
283
+ }
284
+ return getTurnkeyErrorCode(error.cause);
285
+ }
286
+ function isObject(value) {
287
+ return typeof value === 'object' && value !== null;
288
+ }
289
+ void restore();
290
+ return {
291
+ cleanup() {
292
+ if (expiry_timeout)
293
+ clearTimeout(expiry_timeout);
294
+ },
295
+ actions: {
296
+ async createAccount(parameters) {
297
+ const { authorizeAccessKey, personalSign } = parameters;
298
+ if (personalSign && parameters.digest)
299
+ throw new ox_Provider.ProviderRpcError(-32602, '`digest` and `personalSign` cannot both be set on `wallet_connect`.');
300
+ const turnkeyClient = await getTurnkeyClient();
301
+ const account = await options.createAccount({ client: turnkeyClient, parameters });
302
+ await requireSession();
303
+ walletAccounts = [account];
304
+ restore_promise = undefined;
305
+ const digest = personalSign ? hashMessage(personalSign.message) : parameters.digest;
306
+ const keyAuthorization = authorizeAccessKey
307
+ ? await signKeyAuthorization(account, await prepareKeyAuthorization(authorizeAccessKey), { signature: authorizeAccessKey.signature })
308
+ : undefined;
309
+ return {
310
+ accounts: [toStoreAccount(account, parameters.name)],
311
+ ...(personalSign ? { personalSign: { message: personalSign.message } } : {}),
312
+ ...(keyAuthorization ? { keyAuthorization } : {}),
313
+ signature: digest
314
+ ? await signPayload({
315
+ payload: digest,
316
+ turnkeyClient,
317
+ walletAccount: account,
318
+ })
319
+ : undefined,
320
+ };
321
+ },
322
+ async loadAccounts(parameters) {
323
+ const { authorizeAccessKey, personalSign } = parameters ?? {};
324
+ if (personalSign && parameters?.digest)
325
+ throw new ox_Provider.ProviderRpcError(-32602, '`digest` and `personalSign` cannot both be set on `wallet_connect`.');
326
+ const turnkeyClient = await getTurnkeyClient();
327
+ walletAccounts = await options.loadAccounts({ client: turnkeyClient, parameters });
328
+ await requireSession();
329
+ restore_promise = undefined;
330
+ const digest = personalSign ? hashMessage(personalSign.message) : parameters?.digest;
331
+ const account = walletAccounts[0];
332
+ const keyAuthorization = authorizeAccessKey && account
333
+ ? await signKeyAuthorization(account, await prepareKeyAuthorization(authorizeAccessKey), { signature: authorizeAccessKey.signature })
334
+ : undefined;
335
+ return {
336
+ accounts: walletAccounts.map((account) => toStoreAccount(account)),
337
+ ...(personalSign ? { personalSign: { message: personalSign.message } } : {}),
338
+ ...(keyAuthorization ? { keyAuthorization } : {}),
339
+ signature: digest && account
340
+ ? await signPayload({
341
+ payload: digest,
342
+ turnkeyClient,
343
+ walletAccount: account,
344
+ })
345
+ : undefined,
346
+ };
347
+ },
348
+ async authorizeAccessKey(parameters) {
349
+ const account = await accountForSigning(undefined);
350
+ const prepared = await prepareKeyAuthorization(parameters);
351
+ const keyAuthorization = await signKeyAuthorization(account, prepared, {
352
+ signature: parameters.signature,
353
+ });
354
+ return { keyAuthorization, rootAddress: core_Address.from(account.address) };
355
+ },
356
+ async signPersonalMessage(parameters) {
357
+ const turnkeyClient = await getTurnkeyClient();
358
+ const account = await accountForSigning(parameters.address);
359
+ return await signPayload({
360
+ payload: hashMessage({ raw: parameters.data }),
361
+ turnkeyClient,
362
+ walletAccount: account,
363
+ });
364
+ },
365
+ async signTransaction(parameters) {
366
+ const result = await withAccessKey(async (account, keyAuthorization) => {
367
+ const { feePayer, ...rest } = parameters;
368
+ const viemClient = getClient({
369
+ feePayer: feePayer === true ? undefined : feePayer,
370
+ });
371
+ const prepared = await prepareTransactionRequest(viemClient, {
372
+ account,
373
+ ...rest,
374
+ ...(feePayer ? { feePayer: true } : {}),
375
+ keyAuthorization,
376
+ type: 'tempo',
377
+ });
378
+ return await account.signTransaction(prepared);
379
+ });
380
+ if (result !== undefined)
381
+ return result;
382
+ return await signTransaction(parameters);
383
+ },
384
+ async signTypedData(parameters) {
385
+ const turnkeyClient = await getTurnkeyClient();
386
+ const account = await accountForSigning(parameters.address);
387
+ const typedData = JSON.parse(parameters.data);
388
+ return await signPayload({
389
+ payload: hashTypedData(typedData),
390
+ turnkeyClient,
391
+ walletAccount: account,
392
+ });
393
+ },
394
+ async sendTransaction(parameters) {
395
+ const result = await withAccessKey(async (account, keyAuthorization) => {
396
+ const { feePayer, ...rest } = parameters;
397
+ const viemClient = getClient({
398
+ chainId: parameters.chainId,
399
+ feePayer: feePayer === true ? undefined : feePayer,
400
+ });
401
+ const prepared = await prepareTransactionRequest(viemClient, {
402
+ account,
403
+ ...rest,
404
+ ...(feePayer ? { feePayer: true } : {}),
405
+ keyAuthorization,
406
+ type: 'tempo',
407
+ });
408
+ const signed = await account.signTransaction(prepared);
409
+ return await viemClient.request({
410
+ method: 'eth_sendRawTransaction',
411
+ params: [signed],
412
+ });
413
+ });
414
+ if (result !== undefined)
415
+ return result;
416
+ const signed = await signTransaction(parameters);
417
+ const viemClient = getClient({
418
+ chainId: parameters.chainId,
419
+ feePayer: parameters.feePayer === true ? undefined : parameters.feePayer,
420
+ });
421
+ return await viemClient.request({
422
+ method: 'eth_sendRawTransaction',
423
+ params: [signed],
424
+ });
425
+ },
426
+ async sendTransactionSync(parameters) {
427
+ const result = await withAccessKey(async (account, keyAuthorization) => {
428
+ const { feePayer, ...rest } = parameters;
429
+ const viemClient = getClient({
430
+ chainId: parameters.chainId,
431
+ feePayer: feePayer === true ? undefined : feePayer,
432
+ });
433
+ const prepared = await prepareTransactionRequest(viemClient, {
434
+ account,
435
+ ...rest,
436
+ ...(feePayer ? { feePayer: true } : {}),
437
+ keyAuthorization,
438
+ type: 'tempo',
439
+ });
440
+ const signed = await account.signTransaction(prepared);
441
+ return await viemClient.request({
442
+ method: 'eth_sendRawTransactionSync',
443
+ params: [signed],
444
+ });
445
+ });
446
+ if (result !== undefined)
447
+ return result;
448
+ const signed = await signTransaction(parameters);
449
+ const viemClient = getClient({
450
+ chainId: parameters.chainId,
451
+ feePayer: parameters.feePayer === true ? undefined : parameters.feePayer,
452
+ });
453
+ return await viemClient.request({
454
+ method: 'eth_sendRawTransactionSync',
455
+ params: [signed],
456
+ });
457
+ },
458
+ async disconnect() {
459
+ await (await getTurnkeyClient()).logout();
460
+ clear();
461
+ },
462
+ },
463
+ };
464
+ });
465
+ }
466
+ //# sourceMappingURL=turnkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnkey.js","sourceRoot":"","sources":["../../../src/core/adapters/turnkey.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * as TrustedHosts from './core/TrustedHosts.js';
13
13
  export * as WebAuthnCeremony from './core/WebAuthnCeremony.js';
14
14
  export { dialog, dialog as tempoWallet } from './core/adapters/dialog.js';
15
15
  export { local } from './core/adapters/local.js';
16
+ export { turnkey } from './core/adapters/turnkey.js';
16
17
  export { webAuthn } from './core/adapters/webAuthn.js';
17
18
  export { dangerous_secp256k1 } from './core/adapters/dangerous_secp256k1.js';
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ export * as TrustedHosts from './core/TrustedHosts.js';
13
13
  export * as WebAuthnCeremony from './core/WebAuthnCeremony.js';
14
14
  export { dialog, dialog as tempoWallet } from './core/adapters/dialog.js';
15
15
  export { local } from './core/adapters/local.js';
16
+ export { turnkey } from './core/adapters/turnkey.js';
16
17
  export { webAuthn } from './core/adapters/webAuthn.js';
17
18
  export { dangerous_secp256k1 } from './core/adapters/dangerous_secp256k1.js';
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import type { ExtractSchema, MergeSchemaPath, Schema } from 'hono/types';
3
3
  import type { UnionToIntersection } from '../internal/types.js';
4
4
  export { auth } from './internal/handlers/auth.js';
5
+ export { type SessionRequest } from './internal/handlers/session.js';
5
6
  export { codeAuth } from './internal/handlers/codeAuth.js';
6
7
  export { exchange } from './internal/handlers/exchange.js';
7
8
  export { relay } from './internal/handlers/relay.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Hono } from 'hono';
2
2
  import * as RequestListener from './internal/requestListener.js';
3
3
  export { auth } from './internal/handlers/auth.js';
4
+ export {} from './internal/handlers/session.js';
4
5
  export { codeAuth } from './internal/handlers/codeAuth.js';
5
6
  export { exchange } from './internal/handlers/exchange.js';
6
7
  export { relay } from './internal/handlers/relay.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../src/server/Handler.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { Address, 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';
6
+ import * as Session from './session.js';
6
7
  /**
7
8
  * Session payload persisted in the session store and surfaced via
8
9
  * `getSession`. `address` is the account address that signed the
@@ -74,8 +75,8 @@ export declare namespace auth {
74
75
  type ReturnType = Handler & {
75
76
  getSession: getSession;
76
77
  };
77
- /** Resolves the current session from a request's cookie. */
78
- type getSession = (req: Request) => Promise<SessionPayload | undefined>;
78
+ /** Resolves the current session from a request's cookie or bearer token. */
79
+ type getSession = (req: Session.SessionRequest) => Promise<SessionPayload | undefined>;
79
80
  /**
80
81
  * Hook invoked after a SIWE signature is verified but before the
81
82
  * session token is issued. Returning a `Response` merges its JSON
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,EASV,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAA0C,WAAW,EAAkB,MAAM,YAAY,CAAA;AAIhG,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAO5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CAye1D;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QACnC;;WAEG;QACH,QAAQ,CAAC,EACL,KAAK,GACL;YACE,yDAAyD;YACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC9B,GACD,SAAS,CAAA;QACb;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B;;;;WAIG;QACH,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;QACjD;;;WAGG;QACH,QAAQ,CAAC,EACL;YACE,uCAAuC;YACvC,OAAO,EAAE,YAAY,CAAA;YACrB,4DAA4D;YAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC9B;;;eAGG;YACH,QAAQ,CAAC,EACL,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACzE,SAAS,CAAA;YACb,gEAAgE;YAChE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACzB,uDAAuD;YACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACzB,GACD,SAAS,CAAA;QACb;;;;;WAKG;QACH,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;QACtB;;;;;WAKG;QACH,aAAa,CAAC,EACV,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GACvF,SAAS,CAAA;QACb;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QAC5B,oDAAoD;QACpD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAC3E,gDAAgD;QAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,yEAAyE;QACzE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;CACF"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,EASV,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAA0C,WAAW,EAAkB,MAAM,YAAY,CAAA;AAIhG,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAO5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CAyf1D;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QACnC;;WAEG;QACH,QAAQ,CAAC,EACL,KAAK,GACL;YACE,yDAAyD;YACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC9B,GACD,SAAS,CAAA;QACb;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B;;;;WAIG;QACH,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;QACjD;;;WAGG;QACH,QAAQ,CAAC,EACL;YACE,uCAAuC;YACvC,OAAO,EAAE,YAAY,CAAA;YACrB,4DAA4D;YAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC9B;;;eAGG;YACH,QAAQ,CAAC,EACL,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACzE,SAAS,CAAA;YACb,gEAAgE;YAChE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACzB,uDAAuD;YACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACzB,GACD,SAAS,CAAA;QACb;;;;;WAKG;QACH,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;QACtB;;;;;WAKG;QACH,aAAa,CAAC,EACV,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GACvF,SAAS,CAAA;QACb;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QAC5B,oDAAoD;QACpD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAC3E,gDAAgD;QAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,yEAAyE;QACzE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;CACF"}
@@ -419,6 +419,18 @@ export function relay(options = {}) {
419
419
  case 'eth_sendRawTransactionSync': {
420
420
  try {
421
421
  if (!feePayerOptions) {
422
+ // eth_signRawTransaction is a signing method that only the
423
+ // relay can fulfill — forwarding it to the RPC node returns
424
+ // an opaque "Method not found". Return an actionable error.
425
+ if (request.method === 'eth_signRawTransaction') {
426
+ return RpcResponse.from({
427
+ error: {
428
+ code: -32601,
429
+ message: 'eth_signRawTransaction requires a fee payer to be configured on the relay. ' +
430
+ 'Set the `feePayer` option in `Handler.relay()` to enable transaction sponsorship.',
431
+ },
432
+ }, { request });
433
+ }
422
434
  const result = await client.request(request);
423
435
  return RpcResponse.from({ result }, { request });
424
436
  }