accounts 0.12.2 → 0.14.0

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 (128) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +6 -5
  3. package/dist/cli/adapter.d.ts.map +1 -1
  4. package/dist/cli/adapter.js +76 -69
  5. package/dist/cli/adapter.js.map +1 -1
  6. package/dist/core/AccessKey.d.ts +89 -106
  7. package/dist/core/AccessKey.d.ts.map +1 -1
  8. package/dist/core/AccessKey.js +230 -210
  9. package/dist/core/AccessKey.js.map +1 -1
  10. package/dist/core/Account.d.ts +0 -9
  11. package/dist/core/Account.d.ts.map +1 -1
  12. package/dist/core/Account.js +1 -13
  13. package/dist/core/Account.js.map +1 -1
  14. package/dist/core/Adapter.d.ts +24 -4
  15. package/dist/core/Adapter.d.ts.map +1 -1
  16. package/dist/core/Client.d.ts +1 -1
  17. package/dist/core/Client.d.ts.map +1 -1
  18. package/dist/core/Client.js.map +1 -1
  19. package/dist/core/Provider.d.ts +6 -7
  20. package/dist/core/Provider.d.ts.map +1 -1
  21. package/dist/core/Provider.js +73 -77
  22. package/dist/core/Provider.js.map +1 -1
  23. package/dist/core/Remote.d.ts +2 -0
  24. package/dist/core/Remote.d.ts.map +1 -1
  25. package/dist/core/Remote.js +3 -1
  26. package/dist/core/Remote.js.map +1 -1
  27. package/dist/core/Schema.d.ts +17 -7
  28. package/dist/core/Schema.d.ts.map +1 -1
  29. package/dist/core/adapters/dialog.d.ts.map +1 -1
  30. package/dist/core/adapters/dialog.js +126 -131
  31. package/dist/core/adapters/dialog.js.map +1 -1
  32. package/dist/core/adapters/local.d.ts.map +1 -1
  33. package/dist/core/adapters/local.js +92 -105
  34. package/dist/core/adapters/local.js.map +1 -1
  35. package/dist/core/adapters/privy.d.ts +164 -0
  36. package/dist/core/adapters/privy.d.ts.map +1 -0
  37. package/dist/core/adapters/privy.js +578 -0
  38. package/dist/core/adapters/privy.js.map +1 -0
  39. package/dist/core/adapters/turnkey.d.ts.map +1 -1
  40. package/dist/core/adapters/turnkey.js +136 -133
  41. package/dist/core/adapters/turnkey.js.map +1 -1
  42. package/dist/core/internal/AccessKeyTransaction.d.ts +59 -0
  43. package/dist/core/internal/AccessKeyTransaction.d.ts.map +1 -0
  44. package/dist/core/internal/AccessKeyTransaction.js +155 -0
  45. package/dist/core/internal/AccessKeyTransaction.js.map +1 -0
  46. package/dist/core/zod/rpc.d.ts +71 -4
  47. package/dist/core/zod/rpc.d.ts.map +1 -1
  48. package/dist/core/zod/rpc.js +33 -4
  49. package/dist/core/zod/rpc.js.map +1 -1
  50. package/dist/index.d.ts +1 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/react-native/adapter.d.ts.map +1 -1
  55. package/dist/react-native/adapter.js +86 -75
  56. package/dist/react-native/adapter.js.map +1 -1
  57. package/dist/server/CliAuth.d.ts +55 -0
  58. package/dist/server/CliAuth.d.ts.map +1 -1
  59. package/dist/server/CliAuth.js +18 -1
  60. package/dist/server/CliAuth.js.map +1 -1
  61. package/dist/server/Kv.d.ts +19 -9
  62. package/dist/server/Kv.d.ts.map +1 -1
  63. package/dist/server/Kv.js +32 -9
  64. package/dist/server/Kv.js.map +1 -1
  65. package/dist/server/internal/handlers/auth.d.ts.map +1 -1
  66. package/dist/server/internal/handlers/auth.js +3 -1
  67. package/dist/server/internal/handlers/auth.js.map +1 -1
  68. package/dist/server/internal/handlers/codeAuth.js +1 -1
  69. package/dist/server/internal/handlers/codeAuth.js.map +1 -1
  70. package/dist/server/internal/handlers/exchange.js +1 -1
  71. package/dist/server/internal/handlers/exchange.js.map +1 -1
  72. package/dist/server/internal/handlers/relay.d.ts +18 -12
  73. package/dist/server/internal/handlers/relay.d.ts.map +1 -1
  74. package/dist/server/internal/handlers/relay.js +116 -3
  75. package/dist/server/internal/handlers/relay.js.map +1 -1
  76. package/dist/server/internal/handlers/webAuthn.d.ts +6 -1
  77. package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
  78. package/dist/server/internal/handlers/webAuthn.js +16 -9
  79. package/dist/server/internal/handlers/webAuthn.js.map +1 -1
  80. package/package.json +3 -3
  81. package/src/cli/{Provider.test.ts → Provider.localnet.test.ts} +49 -1
  82. package/src/cli/adapter.ts +95 -76
  83. package/src/core/AccessKey.test.ts +563 -560
  84. package/src/core/AccessKey.ts +327 -327
  85. package/src/core/Account.test.ts +6 -51
  86. package/src/core/Account.ts +1 -19
  87. package/src/core/Adapter.ts +22 -4
  88. package/src/core/Client.test.ts +1 -1
  89. package/src/core/Client.ts +1 -1
  90. package/src/core/Provider.connect.browser.test.ts +1 -1
  91. package/src/core/{Provider.test.ts → Provider.localnet.test.ts} +98 -32
  92. package/src/core/Provider.ts +118 -112
  93. package/src/core/Remote.test.ts +28 -0
  94. package/src/core/Remote.ts +4 -1
  95. package/src/core/Schema.test-d.ts +41 -0
  96. package/src/core/adapters/dialog.test.ts +335 -15
  97. package/src/core/adapters/dialog.ts +120 -127
  98. package/src/core/adapters/local.test.ts +1 -1
  99. package/src/core/adapters/local.ts +95 -119
  100. package/src/core/adapters/privy.test-d.ts +128 -0
  101. package/src/core/adapters/privy.test.ts +648 -0
  102. package/src/core/adapters/privy.ts +811 -0
  103. package/src/core/adapters/turnkey.test.ts +117 -13
  104. package/src/core/adapters/turnkey.ts +132 -149
  105. package/src/core/internal/AccessKeyTransaction.ts +243 -0
  106. package/src/core/{mppx.test.ts → mppx.localnet.test.ts} +32 -2
  107. package/src/core/zod/request.test.ts +36 -0
  108. package/src/core/zod/rpc.test.ts +139 -0
  109. package/src/core/zod/rpc.ts +44 -10
  110. package/src/index.ts +1 -1
  111. package/src/react-native/{Provider.test.ts → Provider.localnet.test.ts} +65 -0
  112. package/src/react-native/adapter.ts +107 -87
  113. package/src/server/CliAuth.test-d.ts +23 -0
  114. package/src/server/CliAuth.test.ts +47 -0
  115. package/src/server/CliAuth.ts +20 -1
  116. package/src/server/Handler.test-d.ts +1 -1
  117. package/src/server/Kv.test.ts +51 -0
  118. package/src/server/Kv.ts +43 -9
  119. package/src/server/internal/handlers/auth.test.ts +10 -5
  120. package/src/server/internal/handlers/auth.ts +4 -1
  121. package/src/server/internal/handlers/codeAuth.ts +1 -1
  122. package/src/server/internal/handlers/exchange.ts +1 -1
  123. package/src/server/internal/handlers/{relay.test.ts → relay.localnet.test.ts} +4 -1
  124. package/src/server/internal/handlers/relay.ts +139 -14
  125. package/src/server/internal/handlers/session.test.ts +1 -1
  126. package/src/server/internal/handlers/webAuthn.test.ts +20 -0
  127. package/src/server/internal/handlers/webAuthn.ts +24 -12
  128. /package/src/server/internal/handlers/{exchange.test.ts → exchange.localnet.test.ts} +0 -0
@@ -1,11 +1,12 @@
1
1
  import { Provider as ox_Provider } from 'ox';
2
- import { KeyAuthorization } from 'ox/tempo';
3
- import { BaseError, hashMessage } from 'viem';
2
+ import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
3
+ import { hashMessage } from 'viem';
4
4
  import { prepareTransactionRequest } from 'viem/actions';
5
- import { Account as TempoAccount, Actions } from 'viem/tempo';
5
+ import { Actions } from 'viem/tempo';
6
6
  import * as AccessKey from '../AccessKey.js';
7
7
  import * as Account from '../Account.js';
8
8
  import * as Adapter from '../Adapter.js';
9
+ import * as AccessKeyTransaction from '../internal/AccessKeyTransaction.js';
9
10
  /**
10
11
  * Creates a local adapter where the app manages keys and signing in-process.
11
12
  *
@@ -25,19 +26,70 @@ import * as Adapter from '../Adapter.js';
25
26
  export function local(options) {
26
27
  const { createAccount, icon, loadAccounts, name, rdns } = options;
27
28
  return Adapter.define({ icon, name, rdns }, ({ getAccount, getClient, store }) => {
28
- async function withAccessKey(options, fn) {
29
- const account = getAccount({ ...options, signable: true });
30
- const keyAuthorization = AccessKey.getPending(account, { store });
31
- try {
32
- return await fn(account, keyAuthorization ?? undefined);
29
+ async function prepareTransaction(parameters) {
30
+ const { feePayer, ...rest } = parameters;
31
+ const client = getClient({
32
+ chainId: parameters.chainId,
33
+ feePayer: (() => {
34
+ if (feePayer === false)
35
+ return false;
36
+ if (typeof feePayer === 'string')
37
+ return feePayer;
38
+ return undefined;
39
+ })(),
40
+ });
41
+ const request = {
42
+ ...rest,
43
+ ...(feePayer ? { feePayer: true } : {}),
44
+ };
45
+ const state = store.getState();
46
+ const address = parameters.from ?? state.accounts[state.activeAccount]?.address;
47
+ const transaction = address
48
+ ? await AccessKeyTransaction.create({
49
+ address,
50
+ calls: parameters.calls,
51
+ chainId: parameters.chainId ?? state.chainId,
52
+ client,
53
+ store,
54
+ })
55
+ : undefined;
56
+ if (transaction) {
57
+ try {
58
+ return await transaction.prepare(request);
59
+ }
60
+ catch { }
33
61
  }
34
- catch (error) {
35
- if (account.source !== 'accessKey')
36
- throw error;
37
- AccessKey.invalidate(account, error, { store });
38
- const root = getAccount({ accessKey: false, address: options.address, signable: true });
39
- return await fn(root, undefined);
62
+ const account = getAccount({
63
+ address: parameters.from,
64
+ signable: true,
65
+ });
66
+ const prepared = await prepareTransactionRequest(client, {
67
+ account,
68
+ ...request,
69
+ keyAuthorization: undefined,
70
+ type: 'tempo',
71
+ });
72
+ async function sign() {
73
+ return await account.signTransaction(prepared);
40
74
  }
75
+ return {
76
+ request: prepared,
77
+ sign,
78
+ async send() {
79
+ const signed = await sign();
80
+ return (await client.request({
81
+ method: 'eth_sendRawTransaction',
82
+ params: [signed],
83
+ }));
84
+ },
85
+ async sendSync() {
86
+ const signed = await sign();
87
+ return (await client.request({
88
+ method: 'eth_sendRawTransactionSync',
89
+ params: [signed],
90
+ }));
91
+ },
92
+ };
41
93
  }
42
94
  return {
43
95
  actions: {
@@ -85,7 +137,7 @@ export function local(options) {
85
137
  };
86
138
  },
87
139
  async authorizeAccessKey(parameters) {
88
- const account = getAccount({ accessKey: false, signable: true });
140
+ const account = getAccount({ signable: true });
89
141
  const keyAuthorization = await AccessKey.authorize({
90
142
  account,
91
143
  chainId: getClient().chain.id,
@@ -113,7 +165,7 @@ export function local(options) {
113
165
  : undefined;
114
166
  // Slot allocation:
115
167
  // 1. `personalSign` digest, if present.
116
- // 2. Else key-auth digest (existing 1-prompt fold for `authorizeAccessKey`).
168
+ // 2. Else unsigned key-auth digest (existing 1-prompt fold for `authorizeAccessKey`).
117
169
  // 3. Else caller's `rest.digest`.
118
170
  // When BOTH `personalSign` and `authorizeAccessKey` are present,
119
171
  // `personalSign` wins the load-accounts ceremony and the key
@@ -140,12 +192,18 @@ export function local(options) {
140
192
  const signature_keyAuthorization = peronsalSign_digest || !signature_
141
193
  ? await account.sign({ hash: keyAuthorization_digest })
142
194
  : signature_;
143
- return AccessKey.saveAuthorization({
144
- address: account.address,
145
- prepared: keyAuthorization_unsigned,
146
- signature: signature_keyAuthorization,
195
+ const keyAuthorization = KeyAuthorization.from(keyAuthorization_unsigned.keyAuthorization, {
196
+ signature: SignatureEnvelope.from(signature_keyAuthorization),
197
+ });
198
+ AccessKey.add({
199
+ account: account.address,
200
+ authorization: keyAuthorization,
201
+ ...(keyAuthorization_unsigned.keyPair
202
+ ? { keyPair: keyAuthorization_unsigned.keyPair }
203
+ : {}),
147
204
  store,
148
205
  });
206
+ return KeyAuthorization.toRpc(keyAuthorization);
149
207
  })();
150
208
  return {
151
209
  accounts,
@@ -157,7 +215,7 @@ export function local(options) {
157
215
  };
158
216
  },
159
217
  async revokeAccessKey(parameters) {
160
- const account = getAccount({ accessKey: false, signable: true });
218
+ const account = getAccount({ signable: true });
161
219
  const client = getClient();
162
220
  try {
163
221
  await Actions.accessKey.revoke(client, {
@@ -166,42 +224,23 @@ export function local(options) {
166
224
  });
167
225
  }
168
226
  catch (error) {
169
- const isKeyNotFound = error instanceof BaseError &&
170
- !!error.walk((e) => e.data?.errorName === 'KeyNotFound');
171
- if (!isKeyNotFound)
227
+ if (!AccessKey.isUnavailableError(error))
172
228
  throw error;
173
229
  }
174
- store.setState((state) => ({
175
- accessKeys: state.accessKeys.filter((a) => a.address?.toLowerCase() !== parameters.accessKeyAddress.toLowerCase()),
176
- }));
230
+ AccessKey.remove({
231
+ accessKey: parameters.accessKeyAddress,
232
+ account: account.address,
233
+ chainId: client.chain.id,
234
+ store,
235
+ });
177
236
  },
178
237
  async signPersonalMessage({ data, address }) {
179
238
  const account = getAccount({ address, signable: true });
180
239
  return await account.signMessage({ message: { raw: data } });
181
240
  },
182
241
  async signTransaction(parameters) {
183
- const { feePayer, ...rest } = parameters;
184
- const client = getClient({
185
- chainId: parameters.chainId,
186
- feePayer: (() => {
187
- if (feePayer === false)
188
- return false;
189
- if (typeof feePayer === 'string')
190
- return feePayer;
191
- return undefined;
192
- })(),
193
- });
194
- const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
195
- account,
196
- prepared: await prepareTransactionRequest(client, {
197
- account,
198
- ...rest,
199
- ...(feePayer ? { feePayer: true } : {}),
200
- keyAuthorization,
201
- type: 'tempo',
202
- }),
203
- }));
204
- return await account.signTransaction(prepared);
242
+ const prepared = await prepareTransaction(parameters);
243
+ return await prepared.sign();
205
244
  },
206
245
  async signTypedData({ data, address }) {
207
246
  const account = getAccount({ address, signable: true });
@@ -209,64 +248,12 @@ export function local(options) {
209
248
  return await account.signTypedData(parsed);
210
249
  },
211
250
  async sendTransaction(parameters) {
212
- const { feePayer, ...rest } = parameters;
213
- const client = getClient({
214
- chainId: parameters.chainId,
215
- feePayer: (() => {
216
- if (feePayer === false)
217
- return false;
218
- if (typeof feePayer === 'string')
219
- return feePayer;
220
- return undefined;
221
- })(),
222
- });
223
- const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
224
- account,
225
- prepared: await prepareTransactionRequest(client, {
226
- account,
227
- ...rest,
228
- ...(feePayer ? { feePayer: true } : {}),
229
- keyAuthorization,
230
- type: 'tempo',
231
- }),
232
- }));
233
- const signed = await account.signTransaction(prepared);
234
- const result = await client.request({
235
- method: 'eth_sendRawTransaction',
236
- params: [signed],
237
- });
238
- AccessKey.removePending(account, { store });
239
- return result;
251
+ const prepared = await prepareTransaction(parameters);
252
+ return await prepared.send();
240
253
  },
241
254
  async sendTransactionSync(parameters) {
242
- const { feePayer, ...rest } = parameters;
243
- const client = getClient({
244
- chainId: parameters.chainId,
245
- feePayer: (() => {
246
- if (feePayer === false)
247
- return false;
248
- if (typeof feePayer === 'string')
249
- return feePayer;
250
- return undefined;
251
- })(),
252
- });
253
- const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
254
- account,
255
- prepared: await prepareTransactionRequest(client, {
256
- account,
257
- ...rest,
258
- ...(feePayer ? { feePayer: true } : {}),
259
- keyAuthorization,
260
- type: 'tempo',
261
- }),
262
- }));
263
- const signed = await account.signTransaction(prepared);
264
- const result = await client.request({
265
- method: 'eth_sendRawTransactionSync',
266
- params: [signed],
267
- });
268
- AccessKey.removePending(account, { store });
269
- return result;
255
+ const prepared = await prepareTransaction(parameters);
256
+ return await prepared.sendSync();
270
257
  },
271
258
  },
272
259
  };
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/core/adapters/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/core/adapters/local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import type { Address } from 'viem/accounts';
2
+ import * as Adapter from '../Adapter.js';
3
+ /**
4
+ * Creates a Privy adapter backed by `@privy-io/js-sdk-core` Privy sessions and embedded
5
+ * Ethereum wallets.
6
+ *
7
+ * The adapter owns silent reconnect, session-expiry cleanup, and signing. Apps supply
8
+ * the UI-bearing login flow via `loadAccounts` (and optionally a distinct `createAccount`
9
+ * for registration). Callbacks fire only on user-initiated `wallet_connect`/registration —
10
+ * never during silent restore on page reload.
11
+ *
12
+ * Silent restore on page reload pulls wallets directly from the Privy SDK
13
+ * (`client.user.get` + `client.embeddedWallet.getEthereumProvider`), so apps don't
14
+ * need to re-run the login UI when the user returns with a still-valid Privy session.
15
+ *
16
+ * Callbacks only run the Privy auth UI. They may optionally return a subset of
17
+ * embedded wallet addresses to expose; if omitted, the adapter exposes every
18
+ * embedded wallet on the resulting Privy user.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import Privy from '@privy-io/js-sdk-core'
23
+ *
24
+ * const client = new Privy({ appId: import.meta.env.VITE_PRIVY_APP_ID })
25
+ *
26
+ * const provider = Provider.create({
27
+ * adapter: privy({
28
+ * client,
29
+ * // Optional: omit to route registration through `loadAccounts`.
30
+ * createAccount: async ({ client }) => {
31
+ * await myPrivyRegisterUI(client)
32
+ * },
33
+ * loadAccounts: async ({ client }) => {
34
+ * await myPrivyLoginUI(client)
35
+ * },
36
+ * }),
37
+ * })
38
+ * ```
39
+ */
40
+ export declare function privy<const client extends privy.Client>(options: privy.Options<client>): Adapter.Adapter;
41
+ export declare namespace privy {
42
+ /** Options for {@link privy}. */
43
+ type Options<client extends Client = Client> = {
44
+ /** Existing Privy client, such as `Privy` from `@privy-io/js-sdk-core`. */
45
+ client: client;
46
+ /**
47
+ * Runs the Privy registration UI. May optionally return a subset of the user's
48
+ * embedded wallet addresses to expose to the provider; if omitted, the adapter
49
+ * exposes every embedded wallet on the resulting Privy user.
50
+ *
51
+ * The adapter materializes EIP-1193 providers internally via
52
+ * `client.embeddedWallet.getEthereumProvider` — callbacks should not.
53
+ *
54
+ * Defaults to `loadAccounts` — apps that don't distinguish register vs login
55
+ * can omit this.
56
+ */
57
+ createAccount?: ((parameters: {
58
+ /** Initialized Privy client. */
59
+ client: client;
60
+ /** Provider create-account parameters. */
61
+ parameters: Adapter.createAccount.Parameters;
62
+ }) => Promise<AccountSelection>) | undefined;
63
+ /** Data URI of the provider icon. @default Black 1×1 SVG. */
64
+ icon?: `data:image/${string}` | undefined;
65
+ /**
66
+ * Runs the Privy login UI in response to a user-initiated `wallet_connect`.
67
+ * May optionally return a subset of the user's embedded wallet addresses to
68
+ * expose to the provider; if omitted, the adapter exposes every embedded
69
+ * wallet on the Privy user.
70
+ *
71
+ * Silent restore on page reload pulls wallets directly from the Privy SDK
72
+ * (`client.user.get` + `client.embeddedWallet.getEthereumProvider`) and does
73
+ * NOT call this function.
74
+ */
75
+ loadAccounts: (parameters: {
76
+ /** Initialized Privy client. */
77
+ client: client;
78
+ /** Provider load-accounts parameters. */
79
+ parameters?: Adapter.loadAccounts.Parameters | undefined;
80
+ }) => Promise<AccountSelection>;
81
+ /** Display name of the provider. @default "Privy" */
82
+ name?: string | undefined;
83
+ /** Reverse DNS identifier. @default "io.privy" */
84
+ rdns?: string | undefined;
85
+ };
86
+ /**
87
+ * Optional subset of embedded wallet addresses returned from `createAccount` /
88
+ * `loadAccounts`. `void`/`undefined` means "expose every embedded wallet".
89
+ */
90
+ type AccountSelection = readonly Address[] | void;
91
+ /**
92
+ * Minimal structural Privy client surface used by the adapter for session checks,
93
+ * silent restore, and disconnect. User-initiated `wallet_connect`/registration
94
+ * is delegated to the app's `loadAccounts` / `createAccount` callbacks.
95
+ *
96
+ * Satisfied by `Privy` from `@privy-io/js-sdk-core` — apps pass the SDK instance
97
+ * directly. The adapter never imports `@privy-io/js-sdk-core` itself; the structural
98
+ * shape keeps the dependency one-way.
99
+ */
100
+ type Client = {
101
+ /** Auth API; the adapter only needs `logout`. */
102
+ auth: {
103
+ /**
104
+ * Clears the current Privy session. The adapter passes the current user id
105
+ * (when available) so multi-tab/multi-user setups scope the logout correctly.
106
+ */
107
+ logout: (parameters?: {
108
+ userId: string;
109
+ } | undefined) => Promise<void> | void;
110
+ };
111
+ /** Embedded wallet API used by the adapter to materialize EIP-1193 providers. */
112
+ embeddedWallet: {
113
+ /** Returns an EIP-1193 provider for a Privy embedded Ethereum wallet. */
114
+ getEthereumProvider(parameters: {
115
+ wallet: LinkedAccount;
116
+ entropyId: string;
117
+ entropyIdVerifier: string;
118
+ }): Promise<EthereumProvider> | EthereumProvider;
119
+ };
120
+ /** Returns the current Privy access token, or `null` if no session. */
121
+ getAccessToken: () => Promise<string | null>;
122
+ /** Initializes the client. Called once by the adapter, before any other method. */
123
+ initialize?: (() => Promise<void> | void) | undefined;
124
+ /** User API used by the adapter to scope `auth.logout` and to silently restore wallets. */
125
+ user: {
126
+ /** Returns the currently authenticated Privy user. */
127
+ get: () => Promise<{
128
+ user: User;
129
+ }>;
130
+ };
131
+ };
132
+ /** Minimal Privy user shape used by the adapter for silent restore. */
133
+ type User = {
134
+ id: string;
135
+ linked_accounts?: readonly LinkedAccount[] | undefined;
136
+ };
137
+ /** Minimal Privy linked account shape used by the adapter for silent restore. */
138
+ type LinkedAccount = {
139
+ address?: string | undefined;
140
+ chain_type?: string | undefined;
141
+ connector_type?: string | undefined;
142
+ type?: string | undefined;
143
+ wallet_client_type?: string | undefined;
144
+ wallet_index?: number | undefined;
145
+ };
146
+ /** Minimal EIP-1193 provider surface used by the adapter for `secp256k1_sign`. */
147
+ type EthereumProvider = {
148
+ request(parameters: {
149
+ method: string;
150
+ params?: readonly unknown[] | undefined;
151
+ }): Promise<unknown>;
152
+ };
153
+ /**
154
+ * Materialized Privy embedded wallet — the `{ address, provider }` shape the
155
+ * adapter caches internally after calling
156
+ * `client.embeddedWallet.getEthereumProvider`. The adapter calls
157
+ * `provider.request({ method: 'secp256k1_sign', params: [hash] })` for signing.
158
+ */
159
+ type EmbeddedWallet = {
160
+ address: string;
161
+ provider: EthereumProvider;
162
+ };
163
+ }
164
+ //# sourceMappingURL=privy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privy.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/privy.ts"],"names":[],"mappings":"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"}