accounts 0.15.3 → 0.15.5

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.15.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 77a68ab: Fixed the Privy React adapter to select embedded wallets and continue when an embedded wallet is available before Privy reports wallet readiness.
8
+
9
+ ## 0.15.4
10
+
11
+ ### Patch Changes
12
+
13
+ - 0a39059: Fixed MPP clients routing chain RPCs through the active chain instead of the requested chain.
14
+
3
15
  ## 0.15.3
4
16
 
5
17
  ### Patch Changes
@@ -15,7 +15,7 @@ export declare namespace fromChainId {
15
15
  /** Signing precedence. @default 'fee-payer-first' */
16
16
  precedence?: 'fee-payer-first' | 'user-first' | undefined;
17
17
  } | undefined;
18
- /** Provider instance. When set, the transport routes requests through the provider first, falling back to HTTP for unknown methods. */
18
+ /** Provider for account operations and active-chain requests. Explicit-chain RPCs use the matching transport. */
19
19
  provider?: ox_Provider.Provider | undefined;
20
20
  /** Reactive state store. */
21
21
  store: Store.Store;
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,IAAI,WAAW,EAAE,MAAM,IAAI,CAAA;AACjD,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EAGX,KAAK,SAAS,EACf,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAKxC,4DAA4D;AAC5D,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,CA0CjC;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb,wBAAwB;QACxB,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QACpC,mFAAmF;QACnF,QAAQ,CAAC,EACL,MAAM,GACN,KAAK,GACL;YACE,6BAA6B;YAC7B,GAAG,EAAE,MAAM,CAAA;YACX,qDAAqD;YACrD,UAAU,CAAC,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAA;SAC1D,GACD,SAAS,CAAA;QACb,uIAAuI;QACvI,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3C,4BAA4B;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,qHAAqH;QACrH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;CACF"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,IAAI,WAAW,EAAE,MAAM,IAAI,CAAA;AACjD,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EAGX,KAAK,SAAS,EACf,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAKxC,4DAA4D;AAC5D,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,CAuCjC;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb,wBAAwB;QACxB,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QACpC,mFAAmF;QACnF,QAAQ,CAAC,EACL,MAAM,GACN,KAAK,GACL;YACE,6BAA6B;YAC7B,GAAG,EAAE,MAAM,CAAA;YACX,qDAAqD;YACrD,UAAU,CAAC,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAA;SAC1D,GACD,SAAS,CAAA;QACb,iHAAiH;QACjH,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3C,4BAA4B;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,qHAAqH;QACrH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;CACF"}
@@ -22,11 +22,6 @@ export function fromChainId(chainId, options) {
22
22
  })();
23
23
  const id = chainId ?? store.getState().chainId;
24
24
  const key = `${id}:${provider ? 'p' : ''}:${feePayerOption === false ? 'no-fp' : (feePayerUrl ?? '')}:${precedence}`;
25
- // Scope the cache by `provider` (preferred) or `transports`, falling back
26
- // to a shared module-level map. The cache key only encodes a boolean for
27
- // `provider`, so without scoping, two providers sharing the same chainId
28
- // would hit each other's cached clients and route requests to the wrong
29
- // adapter via `providerTransport`.
30
25
  const scope = provider ?? transports;
31
26
  const cache = (() => {
32
27
  if (!scope)
@@ -42,7 +37,9 @@ export function fromChainId(chainId, options) {
42
37
  if (!client) {
43
38
  const chain = chains.find((c) => c.id === id) ?? chains[0];
44
39
  const base = transports?.[id] ?? http();
45
- const transport_base = provider ? providerTransport(provider, base) : base;
40
+ const transport_base = provider
41
+ ? providerTransport(provider, base, chainId === undefined ? undefined : chain.id)
42
+ : base;
46
43
  const transport = feePayerUrl
47
44
  ? feePayerTransport(transport_base, feePayerUrl, precedence)
48
45
  : transport_base;
@@ -52,23 +49,46 @@ export function fromChainId(chainId, options) {
52
49
  return client;
53
50
  }
54
51
  /**
55
- * Creates a transport that routes requests through the provider, falling
56
- * back to the given base transport for methods the provider proxies to RPC.
52
+ * Routes account operations through the provider and explicit-chain RPCs
53
+ * through the requested chain's transport.
57
54
  */
58
- function providerTransport(provider, base) {
55
+ function providerTransport(provider, base, chainId) {
59
56
  return (params) => {
60
57
  const baseTransport = base(params);
61
58
  return {
62
59
  ...baseTransport,
63
60
  async request({ method, params: reqParams }) {
61
+ if (chainId !== undefined && !usesProvider(method))
62
+ return baseTransport.request({ method, params: reqParams });
63
+ const params = (() => {
64
+ if (method !== 'eth_fillTransaction' || chainId === undefined)
65
+ return reqParams;
66
+ const request = reqParams?.[0];
67
+ if (!request || typeof request !== 'object')
68
+ return reqParams;
69
+ return [{ ...request, chainId }];
70
+ })();
64
71
  return provider.request({
65
72
  method,
66
- params: reqParams,
73
+ params,
67
74
  });
68
75
  },
69
76
  };
70
77
  };
71
78
  }
79
+ function usesProvider(method) {
80
+ return (method.startsWith('wallet_') ||
81
+ [
82
+ 'eth_accounts',
83
+ 'eth_fillTransaction',
84
+ 'eth_requestAccounts',
85
+ 'eth_sendTransaction',
86
+ 'eth_sendTransactionSync',
87
+ 'eth_signTransaction',
88
+ 'eth_signTypedData_v4',
89
+ 'personal_sign',
90
+ ].includes(method));
91
+ }
72
92
  /**
73
93
  * Resolves a fee payer URL to an absolute URL string. Relative paths (e.g.
74
94
  * `/relay`) are resolved against `window.location.origin` when running in a
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/core/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/core/Client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"privy.d.ts","sourceRoot":"","sources":["../../src/react/privy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAGlD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CAAC,OAAO,CAMlE;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,SAgFlC;AAoKD,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,iCAAiC;IACjC,KAAK,OAAO,GAAG;QACb,6DAA6D;QAC7D,IAAI,CAAC,EAAE,cAAc,MAAM,EAAE,GAAG,SAAS,CAAA;QACzC,qDAAqD;QACrD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,kDAAkD;QAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAA;CACF"}
1
+ {"version":3,"file":"privy.d.ts","sourceRoot":"","sources":["../../src/react/privy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAGlD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CAAC,OAAO,CAMlE;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,SAgFlC;AAwKD,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,iCAAiC;IACjC,KAAK,OAAO,GAAG;QACb,6DAA6D;QAC7D,IAAI,CAAC,EAAE,cAAc,MAAM,EAAE,GAAG,SAAS,CAAA;QACzC,qDAAqD;QACrD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,kDAAkD;QAClD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAA;CACF"}
@@ -70,12 +70,12 @@ export function PrivyAccountsBridge() {
70
70
  return;
71
71
  }
72
72
  login_started.current = false;
73
- if (!wallets.ready)
73
+ const embedded = wallets.wallets.filter(isEmbeddedEthereumWallet);
74
+ if (!wallets.ready && embedded.length === 0)
74
75
  return;
75
76
  loading.current = true;
76
77
  void (async () => {
77
78
  try {
78
- const embedded = wallets.wallets.filter(isEmbeddedEthereumWallet);
79
79
  if (embedded.length === 0)
80
80
  throw new Error('Privy React returned no embedded Ethereum wallet.');
81
81
  resolvePrivyAccounts(embedded.map((wallet) => wallet.address));
@@ -151,7 +151,7 @@ function setPrivyReactState(next) {
151
151
  state = next;
152
152
  if (next.ready)
153
153
  emitReady();
154
- if (next.ready && next.walletsReady)
154
+ if (next.ready && (next.walletsReady || next.wallets.length > 0))
155
155
  emitWalletsReady();
156
156
  }
157
157
  function usePrivyAccountsRequest() {
@@ -198,7 +198,9 @@ function getSnapshot() {
198
198
  return request;
199
199
  }
200
200
  function isEmbeddedEthereumWallet(wallet) {
201
- return wallet.type === 'ethereum' && wallet.walletClientType === 'privy';
201
+ return (wallet.type === 'ethereum' &&
202
+ wallet.walletClientType === 'privy' &&
203
+ wallet.connectorType === 'embedded');
202
204
  }
203
205
  function sameAddress(a, b) {
204
206
  return a.toLowerCase() === b.toLowerCase();
@@ -214,7 +216,7 @@ function waitForReady() {
214
216
  }
215
217
  async function waitForWallets() {
216
218
  await waitForReady();
217
- if (state.walletsReady)
219
+ if (state.walletsReady || state.wallets.length > 0)
218
220
  return;
219
221
  return new Promise((resolve) => wallets_ready_listeners.add(resolve));
220
222
  }
@@ -1 +1 @@
1
- {"version":3,"file":"privy.js","sourceRoot":"","sources":["../../src/react/privy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"privy.js","sourceRoot":"","sources":["../../src/react/privy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "name": "accounts",
3
3
  "description": "Tempo Accounts SDK",
4
4
  "type": "module",
5
- "version": "0.15.3",
5
+ "version": "0.15.5",
6
6
  "dependencies": {
7
- "hono": "^4.12.25",
7
+ "hono": "^4.12.27",
8
8
  "idb-keyval": "^6.2.2",
9
9
  "jose": "^6.2.3",
10
10
  "mipd": "^0.0.7",
@@ -87,12 +87,12 @@ describe('caching', () => {
87
87
  chains: [tempoModerato, tempo],
88
88
  storage: Storage.memory(),
89
89
  })
90
- const client_a = Client.fromChainId(tempo.id, {
90
+ const client_a = Client.fromChainId(undefined, {
91
91
  chains: [tempo, tempoModerato],
92
92
  provider: provider_a,
93
93
  store,
94
94
  })
95
- const client_b = Client.fromChainId(tempo.id, {
95
+ const client_b = Client.fromChainId(undefined, {
96
96
  chains: [tempo, tempoModerato],
97
97
  provider: provider_b,
98
98
  store,
@@ -203,35 +203,51 @@ describe('caching', () => {
203
203
  })
204
204
 
205
205
  describe('providerTransport', () => {
206
- test('default: routes requests through the provider', async () => {
206
+ test('behavior: returns empty accounts before connecting', async () => {
207
207
  const store = setup()
208
208
  const provider = Provider.create({
209
209
  adapter: secp256k1(),
210
- chains: [tempoModerato, tempo],
210
+ chains: [tempo],
211
211
  storage: Storage.memory(),
212
212
  })
213
- // Wire the client to chain ID `tempo.id` but route through a provider
214
- // whose default chain is `tempoModerato`. The returned chain ID must
215
- // come from the provider, not the requested chain.
213
+ const client = Client.fromChainId(tempo.id, { chains: [tempo], provider, store })
214
+ const result = await client.request({ method: 'eth_accounts' })
215
+ expect(result).toMatchInlineSnapshot(`[]`)
216
+ })
217
+
218
+ test('behavior: fills transactions on the requested chain', async () => {
219
+ const requests: unknown[] = []
220
+ const store = setup()
221
+ const provider = {
222
+ async request(request: unknown) {
223
+ requests.push(request)
224
+ return {}
225
+ },
226
+ } as never
216
227
  const client = Client.fromChainId(tempo.id, {
217
228
  chains: [tempo, tempoModerato],
218
229
  provider,
219
230
  store,
220
231
  })
221
- const result = await client.request({ method: 'eth_chainId' })
222
- expect(result).toMatchInlineSnapshot(`"0xa5bf"`)
223
- })
224
232
 
225
- test('behavior: returns empty accounts before connecting', async () => {
226
- const store = setup()
227
- const provider = Provider.create({
228
- adapter: secp256k1(),
229
- chains: [tempo],
230
- storage: Storage.memory(),
233
+ await client.request({
234
+ method: 'eth_fillTransaction' as never,
235
+ params: [{ to: '0x0000000000000000000000000000000000000001' }] as never,
231
236
  })
232
- const client = Client.fromChainId(tempo.id, { chains: [tempo], provider, store })
233
- const result = await client.request({ method: 'eth_accounts' })
234
- expect(result).toMatchInlineSnapshot(`[]`)
237
+
238
+ expect(requests).toMatchInlineSnapshot(`
239
+ [
240
+ {
241
+ "method": "eth_fillTransaction",
242
+ "params": [
243
+ {
244
+ "chainId": 4217,
245
+ "to": "0x0000000000000000000000000000000000000001",
246
+ },
247
+ ],
248
+ },
249
+ ]
250
+ `)
235
251
  })
236
252
  })
237
253
 
@@ -34,11 +34,6 @@ export function fromChainId(
34
34
  })()
35
35
  const id = chainId ?? store.getState().chainId
36
36
  const key = `${id}:${provider ? 'p' : ''}:${feePayerOption === false ? 'no-fp' : (feePayerUrl ?? '')}:${precedence}`
37
- // Scope the cache by `provider` (preferred) or `transports`, falling back
38
- // to a shared module-level map. The cache key only encodes a boolean for
39
- // `provider`, so without scoping, two providers sharing the same chainId
40
- // would hit each other's cached clients and route requests to the wrong
41
- // adapter via `providerTransport`.
42
37
  const scope = provider ?? transports
43
38
  const cache = (() => {
44
39
  if (!scope) return defaultClients
@@ -53,7 +48,9 @@ export function fromChainId(
53
48
  if (!client) {
54
49
  const chain = chains.find((c) => c.id === id) ?? chains[0]!
55
50
  const base = transports?.[id] ?? http()
56
- const transport_base = provider ? providerTransport(provider, base) : base
51
+ const transport_base = provider
52
+ ? providerTransport(provider, base, chainId === undefined ? undefined : chain.id)
53
+ : base
57
54
  const transport = feePayerUrl
58
55
  ? feePayerTransport(transport_base, feePayerUrl, precedence)
59
56
  : transport_base
@@ -78,7 +75,7 @@ export declare namespace fromChainId {
78
75
  precedence?: 'fee-payer-first' | 'user-first' | undefined
79
76
  }
80
77
  | undefined
81
- /** Provider instance. When set, the transport routes requests through the provider first, falling back to HTTP for unknown methods. */
78
+ /** Provider for account operations and active-chain requests. Explicit-chain RPCs use the matching transport. */
82
79
  provider?: ox_Provider.Provider | undefined
83
80
  /** Reactive state store. */
84
81
  store: Store.Store
@@ -88,24 +85,52 @@ export declare namespace fromChainId {
88
85
  }
89
86
 
90
87
  /**
91
- * Creates a transport that routes requests through the provider, falling
92
- * back to the given base transport for methods the provider proxies to RPC.
88
+ * Routes account operations through the provider and explicit-chain RPCs
89
+ * through the requested chain's transport.
93
90
  */
94
- function providerTransport(provider: ox_Provider.Provider, base: Transport): Transport {
91
+ function providerTransport(
92
+ provider: ox_Provider.Provider,
93
+ base: Transport,
94
+ chainId: number | undefined,
95
+ ): Transport {
95
96
  return (params) => {
96
97
  const baseTransport = base(params)
97
98
  return {
98
99
  ...baseTransport,
99
100
  async request({ method, params: reqParams }) {
101
+ if (chainId !== undefined && !usesProvider(method))
102
+ return baseTransport.request({ method, params: reqParams } as never)
103
+ const params = (() => {
104
+ if (method !== 'eth_fillTransaction' || chainId === undefined) return reqParams
105
+ const request = (reqParams as readonly unknown[] | undefined)?.[0]
106
+ if (!request || typeof request !== 'object') return reqParams
107
+ return [{ ...request, chainId }]
108
+ })()
100
109
  return (provider as { request: EIP1193RequestFn }).request({
101
110
  method,
102
- params: reqParams,
111
+ params,
103
112
  } as any)
104
113
  },
105
114
  } as ReturnType<Transport>
106
115
  }
107
116
  }
108
117
 
118
+ function usesProvider(method: string) {
119
+ return (
120
+ method.startsWith('wallet_') ||
121
+ [
122
+ 'eth_accounts',
123
+ 'eth_fillTransaction',
124
+ 'eth_requestAccounts',
125
+ 'eth_sendTransaction',
126
+ 'eth_sendTransactionSync',
127
+ 'eth_signTransaction',
128
+ 'eth_signTypedData_v4',
129
+ 'personal_sign',
130
+ ].includes(method)
131
+ )
132
+ }
133
+
109
134
  /**
110
135
  * Resolves a fee payer URL to an absolute URL string. Relative paths (e.g.
111
136
  * `/relay`) are resolved against `window.location.origin` when running in a
@@ -1,5 +1,7 @@
1
1
  import { Hex } from 'ox'
2
+ import { custom } from 'viem'
2
3
  import { createSiweMessage } from 'viem/siwe'
4
+ import { tempo, tempoModerato } from 'viem/tempo/chains'
3
5
  import { afterEach, describe, expect, test, vi } from 'vp/test'
4
6
 
5
7
  import { accounts, privateKeys } from '../../test/config.js'
@@ -36,6 +38,20 @@ describe('getMppxParameters', () => {
36
38
  expect((client as { account?: unknown }).account).toBeUndefined()
37
39
  })
38
40
 
41
+ test('behavior: routes chain RPCs to the requested chain', async () => {
42
+ const provider = Provider.create({
43
+ chains: [tempo, tempoModerato],
44
+ storage: Storage.memory(),
45
+ transports: {
46
+ [tempoModerato.id]: custom({ request: async () => '0xa5bf' }),
47
+ },
48
+ })
49
+ provider.store.setState({ accounts: [{ address }], activeAccount: 0 })
50
+
51
+ const client = await provider.getMppxParameters().getClient({ chainId: tempoModerato.id })
52
+ expect(await client.request({ method: 'eth_chainId' })).toBe('0xa5bf')
53
+ })
54
+
39
55
  test('behavior: resolves existing access key for connected account', async () => {
40
56
  const payer = accounts[0]!
41
57
  const provider = Provider.create({ storage: Storage.memory() })
@@ -82,12 +82,12 @@ export function PrivyAccountsBridge() {
82
82
  }
83
83
 
84
84
  login_started.current = false
85
- if (!wallets.ready) return
85
+ const embedded = wallets.wallets.filter(isEmbeddedEthereumWallet)
86
+ if (!wallets.ready && embedded.length === 0) return
86
87
 
87
88
  loading.current = true
88
89
  void (async () => {
89
90
  try {
90
- const embedded = wallets.wallets.filter(isEmbeddedEthereumWallet)
91
91
  if (embedded.length === 0)
92
92
  throw new Error('Privy React returned no embedded Ethereum wallet.')
93
93
 
@@ -190,7 +190,7 @@ const client = {
190
190
  function setPrivyReactState(next: PrivyReactState) {
191
191
  state = next
192
192
  if (next.ready) emitReady()
193
- if (next.ready && next.walletsReady) emitWalletsReady()
193
+ if (next.ready && (next.walletsReady || next.wallets.length > 0)) emitWalletsReady()
194
194
  }
195
195
 
196
196
  function usePrivyAccountsRequest() {
@@ -242,7 +242,11 @@ function getSnapshot() {
242
242
  }
243
243
 
244
244
  function isEmbeddedEthereumWallet(wallet: ConnectedWallet) {
245
- return wallet.type === 'ethereum' && wallet.walletClientType === 'privy'
245
+ return (
246
+ wallet.type === 'ethereum' &&
247
+ wallet.walletClientType === 'privy' &&
248
+ wallet.connectorType === 'embedded'
249
+ )
246
250
  }
247
251
 
248
252
  function sameAddress(a: string, b: string) {
@@ -261,7 +265,7 @@ function waitForReady() {
261
265
 
262
266
  async function waitForWallets() {
263
267
  await waitForReady()
264
- if (state.walletsReady) return
268
+ if (state.walletsReady || state.wallets.length > 0) return
265
269
  return new Promise<void>((resolve) => wallets_ready_listeners.add(resolve))
266
270
  }
267
271