@meshconnect/uwc-wallet-connect-connector 0.8.2-snapshot.dcfdbbf → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/connection-service.d.ts +1 -9
- package/dist/services/connection-service.d.ts.map +1 -1
- package/dist/services/connection-service.js +0 -22
- package/dist/services/connection-service.js.map +1 -1
- package/dist/wallet-connect-connector.d.ts +0 -11
- package/dist/wallet-connect-connector.d.ts.map +1 -1
- package/dist/wallet-connect-connector.js +0 -39
- package/dist/wallet-connect-connector.js.map +1 -1
- package/package.json +2 -2
- package/src/services/connection-service.ts +0 -21
- package/src/wallet-connect-connector.test.ts +0 -116
- package/src/wallet-connect-connector.ts +1 -48
- package/src/services/connection-service.test.ts +0 -44
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SessionTypes } from '@walletconnect/types';
|
|
2
|
-
import type { Network, ConnectorResult, WalletConnectProvider
|
|
2
|
+
import type { Network, ConnectorResult, WalletConnectProvider } from '@meshconnect/uwc-types';
|
|
3
3
|
import { WalletConnectClient } from './walletconnect-client';
|
|
4
4
|
/**
|
|
5
5
|
* Service for handling WalletConnect connections
|
|
@@ -28,14 +28,6 @@ export declare class ConnectionService {
|
|
|
28
28
|
* Extract addresses from a WalletConnect session
|
|
29
29
|
*/
|
|
30
30
|
private extractAddresses;
|
|
31
|
-
/**
|
|
32
|
-
* Re-read the live account list for a namespace from the current SignClient
|
|
33
|
-
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
34
|
-
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
35
|
-
* selection, which doesn't apply to a live update (there is no "requested
|
|
36
|
-
* network" for an in-session switch).
|
|
37
|
-
*/
|
|
38
|
-
getAccountsForNamespace(namespace: Namespace): string[];
|
|
39
31
|
/**
|
|
40
32
|
* Get current session
|
|
41
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAK5D;;GAEG;AACH,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,mBAAmB;IALvC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;gBAEvB,mBAAmB,EAAE,mBAAmB;IAE5D;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC;IAuD3B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+FnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;IACH,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
|
|
@@ -176,28 +176,6 @@ export class ConnectionService {
|
|
|
176
176
|
}
|
|
177
177
|
return { address: primaryAddress, availableAddresses };
|
|
178
178
|
}
|
|
179
|
-
/**
|
|
180
|
-
* Re-read the live account list for a namespace from the current SignClient
|
|
181
|
-
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
182
|
-
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
183
|
-
* selection, which doesn't apply to a live update (there is no "requested
|
|
184
|
-
* network" for an in-session switch).
|
|
185
|
-
*/
|
|
186
|
-
getAccountsForNamespace(namespace) {
|
|
187
|
-
if (!this.currentSession)
|
|
188
|
-
return [];
|
|
189
|
-
const accounts = this.currentSession.namespaces[namespace]?.accounts ?? [];
|
|
190
|
-
const addresses = [];
|
|
191
|
-
for (const account of accounts) {
|
|
192
|
-
try {
|
|
193
|
-
addresses.push(parseAccount(account).address);
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
// Skip invalid account formats
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return addresses;
|
|
200
|
-
}
|
|
201
179
|
/**
|
|
202
180
|
* Get current session
|
|
203
181
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,16 +41,5 @@ export declare class WalletConnectConnector implements Connector {
|
|
|
41
41
|
* forwarded, resolved per event so a restore/re-connect is honoured live.
|
|
42
42
|
*/
|
|
43
43
|
onLifecycleEvent(listener: (event: WalletLifecycleEvent) => void, _context: WalletLifecycleContext): (() => void) | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
46
|
-
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
47
|
-
* CURRENT session's account list for the affected namespace via
|
|
48
|
-
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
49
|
-
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
50
|
-
* see the design spec's "open risk" note if this needs revisiting against
|
|
51
|
-
* a specific wallet found not to update `session.namespaces` before firing
|
|
52
|
-
* the event.
|
|
53
|
-
*/
|
|
54
|
-
onAccountsChanged(listener: (accounts: string[]) => void, context: WalletLifecycleContext): (() => void) | undefined;
|
|
55
44
|
}
|
|
56
45
|
//# sourceMappingURL=wallet-connect-connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-connect-connector.d.ts","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"wallet-connect-connector.d.ts","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAsG/B,qBAAa,sBAAuB,YAAW,SAAS;IACtD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,aAAa,CAAe;gBAGlC,MAAM,EAAE,mBAAmB,EAC3B,aAAa,GAAE,aAAkB,EACjC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAwBlC,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC;IAU3B,gBAAgB,IAAI,MAAM;IAQpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;;;;OAMG;IACG,0BAA0B,CAC9B,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAItB;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CACd,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAI/C,QAAQ,EAAE,sBAAsB,GAC/B,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;CA8C5B"}
|
|
@@ -215,44 +215,5 @@ export class WalletConnectConnector {
|
|
|
215
215
|
client.off('session_event', onSessionEvent);
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
|
-
/**
|
|
219
|
-
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
220
|
-
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
221
|
-
* CURRENT session's account list for the affected namespace via
|
|
222
|
-
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
223
|
-
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
224
|
-
* see the design spec's "open risk" note if this needs revisiting against
|
|
225
|
-
* a specific wallet found not to update `session.namespaces` before firing
|
|
226
|
-
* the event.
|
|
227
|
-
*/
|
|
228
|
-
onAccountsChanged(listener, context) {
|
|
229
|
-
const client = this.walletConnectClient.getExistingClient();
|
|
230
|
-
if (!client)
|
|
231
|
-
return undefined;
|
|
232
|
-
const isActiveTopic = (topic) => {
|
|
233
|
-
const active = this.connectionService.getSession()?.topic;
|
|
234
|
-
return active !== undefined && topic === active;
|
|
235
|
-
};
|
|
236
|
-
const onSessionEvent = (args) => {
|
|
237
|
-
if (!isActiveTopic(args?.topic))
|
|
238
|
-
return;
|
|
239
|
-
if (args?.params?.event?.name !== 'accountsChanged')
|
|
240
|
-
return;
|
|
241
|
-
const namespace = args.params.chainId.split(':')[0];
|
|
242
|
-
// A single WC topic can carry MULTIPLE approved namespaces (e.g.
|
|
243
|
-
// eip155 + solana in one session). `context.namespace` names the ONE
|
|
244
|
-
// this subscription was attached to observe — an accountsChanged for
|
|
245
|
-
// a DIFFERENT namespace on the same topic must not reach `listener`,
|
|
246
|
-
// or the caller (bound to e.g. eip155) would receive the other
|
|
247
|
-
// namespace's addresses and write them into its own active address.
|
|
248
|
-
if (context.namespace !== undefined && namespace !== context.namespace)
|
|
249
|
-
return;
|
|
250
|
-
listener(this.connectionService.getAccountsForNamespace(namespace));
|
|
251
|
-
};
|
|
252
|
-
client.on('session_event', onSessionEvent);
|
|
253
|
-
return () => {
|
|
254
|
-
client.off('session_event', onSessionEvent);
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
218
|
}
|
|
258
219
|
//# sourceMappingURL=wallet-connect-connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-connect-connector.js","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-connect-connector.js","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-wallet-connect-connector",
|
|
3
|
-
"version": "0.8.2
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "WalletConnect connector for Universal Wallet Connector",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"bs58": "6.0.0",
|
|
26
26
|
"buffer": "^6.0.3",
|
|
27
27
|
"viem": "^2.54.6",
|
|
28
|
-
"@meshconnect/uwc-types": "0.19.0
|
|
28
|
+
"@meshconnect/uwc-types": "0.19.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^5.9.3"
|
|
@@ -239,27 +239,6 @@ export class ConnectionService {
|
|
|
239
239
|
return { address: primaryAddress, availableAddresses }
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
/**
|
|
243
|
-
* Re-read the live account list for a namespace from the current SignClient
|
|
244
|
-
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
245
|
-
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
246
|
-
* selection, which doesn't apply to a live update (there is no "requested
|
|
247
|
-
* network" for an in-session switch).
|
|
248
|
-
*/
|
|
249
|
-
getAccountsForNamespace(namespace: Namespace): string[] {
|
|
250
|
-
if (!this.currentSession) return []
|
|
251
|
-
const accounts = this.currentSession.namespaces[namespace]?.accounts ?? []
|
|
252
|
-
const addresses: string[] = []
|
|
253
|
-
for (const account of accounts) {
|
|
254
|
-
try {
|
|
255
|
-
addresses.push(parseAccount(account).address)
|
|
256
|
-
} catch {
|
|
257
|
-
// Skip invalid account formats
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return addresses
|
|
261
|
-
}
|
|
262
|
-
|
|
263
242
|
/**
|
|
264
243
|
* Get current session
|
|
265
244
|
*/
|
|
@@ -199,119 +199,3 @@ describe('WalletConnectConnector.onLifecycleEvent', () => {
|
|
|
199
199
|
])
|
|
200
200
|
})
|
|
201
201
|
})
|
|
202
|
-
|
|
203
|
-
describe('WalletConnectConnector.onAccountsChanged', () => {
|
|
204
|
-
it('returns undefined before a session exists', () => {
|
|
205
|
-
expect(
|
|
206
|
-
makeConnector(null).onAccountsChanged!(() => {}, WC_CONTEXT)
|
|
207
|
-
).toBeUndefined()
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
it('forwards the re-derived accounts for the ACTIVE topic on a session_event accountsChanged', () => {
|
|
211
|
-
const client = mockSignClient()
|
|
212
|
-
const connector = makeConnector(client)
|
|
213
|
-
;(
|
|
214
|
-
connector as unknown as {
|
|
215
|
-
connectionService: { setSession: (s: unknown) => void }
|
|
216
|
-
}
|
|
217
|
-
).connectionService.setSession({
|
|
218
|
-
topic: 't-active',
|
|
219
|
-
namespaces: { eip155: { accounts: ['eip155:1:0xNEW'] } }
|
|
220
|
-
})
|
|
221
|
-
const seen: string[][] = []
|
|
222
|
-
connector.onAccountsChanged!(accounts => seen.push(accounts), WC_CONTEXT)
|
|
223
|
-
|
|
224
|
-
client.fire('session_event', {
|
|
225
|
-
id: 2,
|
|
226
|
-
topic: 't-active',
|
|
227
|
-
params: {
|
|
228
|
-
event: { name: 'accountsChanged', data: ['eip155:1:0xNEW'] },
|
|
229
|
-
chainId: 'eip155:1'
|
|
230
|
-
}
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
expect(seen).toEqual([['0xNEW']])
|
|
234
|
-
})
|
|
235
|
-
|
|
236
|
-
it('ignores a session_event from a NON-active topic (stale persisted session)', () => {
|
|
237
|
-
const client = mockSignClient()
|
|
238
|
-
const connector = makeConnector(client)
|
|
239
|
-
setActiveTopic(connector, 't-active')
|
|
240
|
-
const seen: string[][] = []
|
|
241
|
-
connector.onAccountsChanged!(accounts => seen.push(accounts), WC_CONTEXT)
|
|
242
|
-
|
|
243
|
-
client.fire('session_event', {
|
|
244
|
-
topic: 't-stale',
|
|
245
|
-
params: { event: { name: 'accountsChanged' }, chainId: 'eip155:1' }
|
|
246
|
-
})
|
|
247
|
-
|
|
248
|
-
expect(seen).toEqual([])
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
it('ignores a session_event that is not accountsChanged', () => {
|
|
252
|
-
const client = mockSignClient()
|
|
253
|
-
const connector = makeConnector(client)
|
|
254
|
-
setActiveTopic(connector, 't-active')
|
|
255
|
-
const seen: string[][] = []
|
|
256
|
-
connector.onAccountsChanged!(accounts => seen.push(accounts), WC_CONTEXT)
|
|
257
|
-
|
|
258
|
-
client.fire('session_event', {
|
|
259
|
-
topic: 't-active',
|
|
260
|
-
params: {
|
|
261
|
-
event: { name: 'chainChanged', data: '0x1' },
|
|
262
|
-
chainId: 'eip155:1'
|
|
263
|
-
}
|
|
264
|
-
})
|
|
265
|
-
|
|
266
|
-
expect(seen).toEqual([])
|
|
267
|
-
})
|
|
268
|
-
|
|
269
|
-
it('teardown removes the session_event listener', () => {
|
|
270
|
-
const client = mockSignClient()
|
|
271
|
-
const connector = makeConnector(client)
|
|
272
|
-
setActiveTopic(connector, 't-active')
|
|
273
|
-
const stop = connector.onAccountsChanged!(() => {}, WC_CONTEXT)
|
|
274
|
-
|
|
275
|
-
stop!()
|
|
276
|
-
|
|
277
|
-
expect(client.off).toHaveBeenCalledTimes(1)
|
|
278
|
-
expect(client.off.mock.calls[0]![0]).toBe('session_event')
|
|
279
|
-
})
|
|
280
|
-
|
|
281
|
-
it('ignores a session_event for a namespace the caller did NOT ask this subscription to observe (multi-namespace session)', () => {
|
|
282
|
-
// One WC session/topic can carry multiple approved namespaces at once
|
|
283
|
-
// (e.g. eip155 + solana). Core attaches ONE subscription per observed
|
|
284
|
-
// namespace via `context.namespace` — an accountsChanged firing for a
|
|
285
|
-
// DIFFERENT namespace on the SAME topic must not reach this listener,
|
|
286
|
-
// or the caller (bound to eip155) would receive solana addresses.
|
|
287
|
-
const client = mockSignClient()
|
|
288
|
-
const connector = makeConnector(client)
|
|
289
|
-
;(
|
|
290
|
-
connector as unknown as {
|
|
291
|
-
connectionService: { setSession: (s: unknown) => void }
|
|
292
|
-
}
|
|
293
|
-
).connectionService.setSession({
|
|
294
|
-
topic: 't-active',
|
|
295
|
-
namespaces: {
|
|
296
|
-
eip155: { accounts: ['eip155:1:0xEVM'] },
|
|
297
|
-
solana: { accounts: ['solana:mainnet:SoLaNaAddr'] }
|
|
298
|
-
}
|
|
299
|
-
})
|
|
300
|
-
const seen: string[][] = []
|
|
301
|
-
connector.onAccountsChanged!(accounts => seen.push(accounts), {
|
|
302
|
-
connectionMode: 'walletConnect',
|
|
303
|
-
namespace: 'eip155'
|
|
304
|
-
})
|
|
305
|
-
|
|
306
|
-
// The wallet's SOLANA leg reports its own accountsChanged on the SAME topic.
|
|
307
|
-
client.fire('session_event', {
|
|
308
|
-
topic: 't-active',
|
|
309
|
-
params: {
|
|
310
|
-
event: { name: 'accountsChanged', data: ['solana:mainnet:SoLaNaAddr'] },
|
|
311
|
-
chainId: 'solana:mainnet'
|
|
312
|
-
}
|
|
313
|
-
})
|
|
314
|
-
|
|
315
|
-
expect(seen).toEqual([])
|
|
316
|
-
})
|
|
317
|
-
})
|
|
@@ -12,8 +12,7 @@ import type {
|
|
|
12
12
|
SignatureType,
|
|
13
13
|
EIP712TypedData,
|
|
14
14
|
WalletLifecycleEvent,
|
|
15
|
-
WalletLifecycleContext
|
|
16
|
-
Namespace
|
|
15
|
+
WalletLifecycleContext
|
|
17
16
|
} from '@meshconnect/uwc-types'
|
|
18
17
|
import { WalletConnectClient } from './services/walletconnect-client'
|
|
19
18
|
import { ConnectionService } from './services/connection-service'
|
|
@@ -278,50 +277,4 @@ export class WalletConnectConnector implements Connector {
|
|
|
278
277
|
client.off('session_event', onSessionEvent)
|
|
279
278
|
}
|
|
280
279
|
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
284
|
-
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
285
|
-
* CURRENT session's account list for the affected namespace via
|
|
286
|
-
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
287
|
-
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
288
|
-
* see the design spec's "open risk" note if this needs revisiting against
|
|
289
|
-
* a specific wallet found not to update `session.namespaces` before firing
|
|
290
|
-
* the event.
|
|
291
|
-
*/
|
|
292
|
-
onAccountsChanged(
|
|
293
|
-
listener: (accounts: string[]) => void,
|
|
294
|
-
context: WalletLifecycleContext
|
|
295
|
-
): (() => void) | undefined {
|
|
296
|
-
const client = this.walletConnectClient.getExistingClient()
|
|
297
|
-
if (!client) return undefined
|
|
298
|
-
|
|
299
|
-
const isActiveTopic = (topic: string | undefined): boolean => {
|
|
300
|
-
const active = this.connectionService.getSession()?.topic
|
|
301
|
-
return active !== undefined && topic === active
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
const onSessionEvent = (args: {
|
|
305
|
-
topic: string
|
|
306
|
-
params: { event: { name: string; data?: unknown }; chainId: string }
|
|
307
|
-
}) => {
|
|
308
|
-
if (!isActiveTopic(args?.topic)) return
|
|
309
|
-
if (args?.params?.event?.name !== 'accountsChanged') return
|
|
310
|
-
const namespace = args.params.chainId.split(':')[0] as Namespace
|
|
311
|
-
// A single WC topic can carry MULTIPLE approved namespaces (e.g.
|
|
312
|
-
// eip155 + solana in one session). `context.namespace` names the ONE
|
|
313
|
-
// this subscription was attached to observe — an accountsChanged for
|
|
314
|
-
// a DIFFERENT namespace on the same topic must not reach `listener`,
|
|
315
|
-
// or the caller (bound to e.g. eip155) would receive the other
|
|
316
|
-
// namespace's addresses and write them into its own active address.
|
|
317
|
-
if (context.namespace !== undefined && namespace !== context.namespace)
|
|
318
|
-
return
|
|
319
|
-
listener(this.connectionService.getAccountsForNamespace(namespace))
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
client.on('session_event', onSessionEvent)
|
|
323
|
-
return () => {
|
|
324
|
-
client.off('session_event', onSessionEvent)
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
280
|
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest'
|
|
2
|
-
import { ConnectionService } from './connection-service'
|
|
3
|
-
import type { WalletConnectClient } from './walletconnect-client'
|
|
4
|
-
|
|
5
|
-
describe('ConnectionService', () => {
|
|
6
|
-
describe('getAccountsForNamespace', () => {
|
|
7
|
-
it('returns the parsed addresses for the given namespace from the current session', () => {
|
|
8
|
-
const service = new ConnectionService({} as WalletConnectClient)
|
|
9
|
-
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
10
|
-
namespaces: {
|
|
11
|
-
eip155: { accounts: ['eip155:1:0xAAA', 'eip155:137:0xAAA'] },
|
|
12
|
-
tron: { accounts: ['tron:0x2b6653dc:TSomething'] }
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
expect(service.getAccountsForNamespace('eip155')).toEqual([
|
|
17
|
-
'0xAAA',
|
|
18
|
-
'0xAAA'
|
|
19
|
-
])
|
|
20
|
-
expect(service.getAccountsForNamespace('tron')).toEqual(['TSomething'])
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
it('returns an empty array when there is no current session', () => {
|
|
24
|
-
const service = new ConnectionService({} as WalletConnectClient)
|
|
25
|
-
expect(service.getAccountsForNamespace('eip155')).toEqual([])
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
it('returns an empty array for a namespace with no accounts in the session', () => {
|
|
29
|
-
const service = new ConnectionService({} as WalletConnectClient)
|
|
30
|
-
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
31
|
-
namespaces: { eip155: { accounts: ['eip155:1:0xAAA'] } }
|
|
32
|
-
}
|
|
33
|
-
expect(service.getAccountsForNamespace('solana')).toEqual([])
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('skips an unparseable account entry rather than throwing', () => {
|
|
37
|
-
const service = new ConnectionService({} as WalletConnectClient)
|
|
38
|
-
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
39
|
-
namespaces: { eip155: { accounts: ['not-a-valid-caip-account'] } }
|
|
40
|
-
}
|
|
41
|
-
expect(service.getAccountsForNamespace('eip155')).toEqual([])
|
|
42
|
-
})
|
|
43
|
-
})
|
|
44
|
-
})
|