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.
- package/CHANGELOG.md +35 -0
- package/README.md +6 -5
- package/dist/cli/adapter.d.ts.map +1 -1
- package/dist/cli/adapter.js +76 -69
- package/dist/cli/adapter.js.map +1 -1
- package/dist/core/AccessKey.d.ts +89 -106
- package/dist/core/AccessKey.d.ts.map +1 -1
- package/dist/core/AccessKey.js +230 -210
- package/dist/core/AccessKey.js.map +1 -1
- package/dist/core/Account.d.ts +0 -9
- package/dist/core/Account.d.ts.map +1 -1
- package/dist/core/Account.js +1 -13
- package/dist/core/Account.js.map +1 -1
- package/dist/core/Adapter.d.ts +24 -4
- package/dist/core/Adapter.d.ts.map +1 -1
- package/dist/core/Client.d.ts +1 -1
- package/dist/core/Client.d.ts.map +1 -1
- package/dist/core/Client.js.map +1 -1
- package/dist/core/Provider.d.ts +6 -7
- package/dist/core/Provider.d.ts.map +1 -1
- package/dist/core/Provider.js +73 -77
- package/dist/core/Provider.js.map +1 -1
- package/dist/core/Remote.d.ts +2 -0
- package/dist/core/Remote.d.ts.map +1 -1
- package/dist/core/Remote.js +3 -1
- package/dist/core/Remote.js.map +1 -1
- package/dist/core/Schema.d.ts +17 -7
- package/dist/core/Schema.d.ts.map +1 -1
- package/dist/core/adapters/dialog.d.ts.map +1 -1
- package/dist/core/adapters/dialog.js +126 -131
- package/dist/core/adapters/dialog.js.map +1 -1
- package/dist/core/adapters/local.d.ts.map +1 -1
- package/dist/core/adapters/local.js +92 -105
- package/dist/core/adapters/local.js.map +1 -1
- package/dist/core/adapters/privy.d.ts +164 -0
- package/dist/core/adapters/privy.d.ts.map +1 -0
- package/dist/core/adapters/privy.js +578 -0
- package/dist/core/adapters/privy.js.map +1 -0
- package/dist/core/adapters/turnkey.d.ts.map +1 -1
- package/dist/core/adapters/turnkey.js +136 -133
- package/dist/core/adapters/turnkey.js.map +1 -1
- package/dist/core/internal/AccessKeyTransaction.d.ts +59 -0
- package/dist/core/internal/AccessKeyTransaction.d.ts.map +1 -0
- package/dist/core/internal/AccessKeyTransaction.js +155 -0
- package/dist/core/internal/AccessKeyTransaction.js.map +1 -0
- package/dist/core/zod/rpc.d.ts +71 -4
- package/dist/core/zod/rpc.d.ts.map +1 -1
- package/dist/core/zod/rpc.js +33 -4
- package/dist/core/zod/rpc.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react-native/adapter.d.ts.map +1 -1
- package/dist/react-native/adapter.js +86 -75
- package/dist/react-native/adapter.js.map +1 -1
- package/dist/server/CliAuth.d.ts +55 -0
- package/dist/server/CliAuth.d.ts.map +1 -1
- package/dist/server/CliAuth.js +18 -1
- package/dist/server/CliAuth.js.map +1 -1
- package/dist/server/Kv.d.ts +19 -9
- package/dist/server/Kv.d.ts.map +1 -1
- package/dist/server/Kv.js +32 -9
- package/dist/server/Kv.js.map +1 -1
- package/dist/server/internal/handlers/auth.d.ts.map +1 -1
- package/dist/server/internal/handlers/auth.js +3 -1
- package/dist/server/internal/handlers/auth.js.map +1 -1
- package/dist/server/internal/handlers/codeAuth.js +1 -1
- package/dist/server/internal/handlers/codeAuth.js.map +1 -1
- package/dist/server/internal/handlers/exchange.js +1 -1
- package/dist/server/internal/handlers/exchange.js.map +1 -1
- package/dist/server/internal/handlers/relay.d.ts +18 -12
- package/dist/server/internal/handlers/relay.d.ts.map +1 -1
- package/dist/server/internal/handlers/relay.js +116 -3
- package/dist/server/internal/handlers/relay.js.map +1 -1
- package/dist/server/internal/handlers/webAuthn.d.ts +6 -1
- package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
- package/dist/server/internal/handlers/webAuthn.js +16 -9
- package/dist/server/internal/handlers/webAuthn.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/{Provider.test.ts → Provider.localnet.test.ts} +49 -1
- package/src/cli/adapter.ts +95 -76
- package/src/core/AccessKey.test.ts +563 -560
- package/src/core/AccessKey.ts +327 -327
- package/src/core/Account.test.ts +6 -51
- package/src/core/Account.ts +1 -19
- package/src/core/Adapter.ts +22 -4
- package/src/core/Client.test.ts +1 -1
- package/src/core/Client.ts +1 -1
- package/src/core/Provider.connect.browser.test.ts +1 -1
- package/src/core/{Provider.test.ts → Provider.localnet.test.ts} +98 -32
- package/src/core/Provider.ts +118 -112
- package/src/core/Remote.test.ts +28 -0
- package/src/core/Remote.ts +4 -1
- package/src/core/Schema.test-d.ts +41 -0
- package/src/core/adapters/dialog.test.ts +335 -15
- package/src/core/adapters/dialog.ts +120 -127
- package/src/core/adapters/local.test.ts +1 -1
- package/src/core/adapters/local.ts +95 -119
- package/src/core/adapters/privy.test-d.ts +128 -0
- package/src/core/adapters/privy.test.ts +648 -0
- package/src/core/adapters/privy.ts +811 -0
- package/src/core/adapters/turnkey.test.ts +117 -13
- package/src/core/adapters/turnkey.ts +132 -149
- package/src/core/internal/AccessKeyTransaction.ts +243 -0
- package/src/core/{mppx.test.ts → mppx.localnet.test.ts} +32 -2
- package/src/core/zod/request.test.ts +36 -0
- package/src/core/zod/rpc.test.ts +139 -0
- package/src/core/zod/rpc.ts +44 -10
- package/src/index.ts +1 -1
- package/src/react-native/{Provider.test.ts → Provider.localnet.test.ts} +65 -0
- package/src/react-native/adapter.ts +107 -87
- package/src/server/CliAuth.test-d.ts +23 -0
- package/src/server/CliAuth.test.ts +47 -0
- package/src/server/CliAuth.ts +20 -1
- package/src/server/Handler.test-d.ts +1 -1
- package/src/server/Kv.test.ts +51 -0
- package/src/server/Kv.ts +43 -9
- package/src/server/internal/handlers/auth.test.ts +10 -5
- package/src/server/internal/handlers/auth.ts +4 -1
- package/src/server/internal/handlers/codeAuth.ts +1 -1
- package/src/server/internal/handlers/exchange.ts +1 -1
- package/src/server/internal/handlers/{relay.test.ts → relay.localnet.test.ts} +4 -1
- package/src/server/internal/handlers/relay.ts +139 -14
- package/src/server/internal/handlers/session.test.ts +1 -1
- package/src/server/internal/handlers/webAuthn.test.ts +20 -0
- package/src/server/internal/handlers/webAuthn.ts +24 -12
- /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 {
|
|
2
|
+
import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
|
|
3
|
+
import { hashMessage } from 'viem';
|
|
4
4
|
import { prepareTransactionRequest } from 'viem/actions';
|
|
5
|
-
import {
|
|
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
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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({
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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({
|
|
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
|
-
|
|
170
|
-
!!error.walk((e) => e.data?.errorName === 'KeyNotFound');
|
|
171
|
-
if (!isKeyNotFound)
|
|
227
|
+
if (!AccessKey.isUnavailableError(error))
|
|
172
228
|
throw error;
|
|
173
229
|
}
|
|
174
|
-
|
|
175
|
-
|
|
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
|
|
184
|
-
|
|
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
|
|
213
|
-
|
|
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
|
|
243
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,IAAI,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
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":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAA;AAK1D,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAmBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,KAAK,CAAC,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,EACrD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,OAAO,CA+lBjB;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,iCAAiC;IACjC,KAAK,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;QAC7C,2EAA2E;QAC3E,MAAM,EAAE,MAAM,CAAA;QACd;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EACV,CAAC,CAAC,UAAU,EAAE;YACZ,gCAAgC;YAChC,MAAM,EAAE,MAAM,CAAA;YACd,0CAA0C;YAC1C,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAA;SAC7C,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAChC,SAAS,CAAA;QACb,6DAA6D;QAC7D,IAAI,CAAC,EAAE,cAAc,MAAM,EAAE,GAAG,SAAS,CAAA;QACzC;;;;;;;;;WASG;QACH,YAAY,EAAE,CAAC,UAAU,EAAE;YACzB,gCAAgC;YAChC,MAAM,EAAE,MAAM,CAAA;YACd,yCAAyC;YACzC,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,SAAS,CAAA;SACzD,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC/B,qDAAqD;QACrD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,kDAAkD;QAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAA;IAED;;;OAGG;IACH,KAAK,gBAAgB,GAAG,SAAS,OAAO,EAAE,GAAG,IAAI,CAAA;IAEjD;;;;;;;;OAQG;IACH,KAAK,MAAM,GAAG;QACZ,iDAAiD;QACjD,IAAI,EAAE;YACJ;;;eAGG;YACH,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAA;aAAE,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;SAC9E,CAAA;QACD,iFAAiF;QACjF,cAAc,EAAE;YACd,yEAAyE;YACzE,mBAAmB,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,aAAa,CAAA;gBACrB,SAAS,EAAE,MAAM,CAAA;gBACjB,iBAAiB,EAAE,MAAM,CAAA;aAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAA;SACjD,CAAA;QACD,uEAAuE;QACvE,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QAC5C,mFAAmF;QACnF,UAAU,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAA;QACrD,2FAA2F;QAC3F,IAAI,EAAE;YACJ,sDAAsD;YACtD,GAAG,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,EAAE,IAAI,CAAA;aAAE,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;IAED,uEAAuE;IACvE,KAAK,IAAI,GAAG;QACV,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAA;KACvD,CAAA;IAED,iFAAiF;IACjF,KAAK,aAAa,GAAG;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,CAAA;IAED,kFAAkF;IAClF,KAAK,gBAAgB,GAAG;QACtB,OAAO,CAAC,UAAU,EAAE;YAClB,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAA;SACxC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KACrB,CAAA;IAED;;;;;OAKG;IACH,KAAK,cAAc,GAAG;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,gBAAgB,CAAA;KAC3B,CAAA;CACF"}
|