@meshconnect/uwc-wallet-connect-connector 0.12.0 → 0.13.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/dist/services/connection-service.d.ts +9 -1
- package/dist/services/connection-service.d.ts.map +1 -1
- package/dist/services/connection-service.js +22 -0
- package/dist/services/connection-service.js.map +1 -1
- package/dist/services/signature-service.d.ts +2 -2
- package/dist/services/signature-service.d.ts.map +1 -1
- package/dist/services/signature-service.js +19 -8
- package/dist/services/signature-service.js.map +1 -1
- package/dist/wallet-connect-connector.d.ts +13 -2
- package/dist/wallet-connect-connector.d.ts.map +1 -1
- package/dist/wallet-connect-connector.js +39 -0
- package/dist/wallet-connect-connector.js.map +1 -1
- package/package.json +2 -2
- package/src/services/connection-service.test.ts +41 -0
- package/src/services/connection-service.ts +21 -0
- package/src/services/signature-service.test.ts +30 -0
- package/src/services/signature-service.ts +21 -10
- package/src/wallet-connect-connector.test.ts +116 -0
- package/src/wallet-connect-connector.ts +50 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SessionTypes } from '@walletconnect/types';
|
|
2
|
-
import type { Network, ConnectorResult, WalletConnectProvider } from '@meshconnect/uwc-types';
|
|
2
|
+
import type { Network, ConnectorResult, WalletConnectProvider, Namespace } from '@meshconnect/uwc-types';
|
|
3
3
|
import { WalletConnectClient } from './walletconnect-client';
|
|
4
4
|
/**
|
|
5
5
|
* Service for handling WalletConnect connections
|
|
@@ -104,6 +104,14 @@ export declare class ConnectionService {
|
|
|
104
104
|
* Extract addresses from a WalletConnect session
|
|
105
105
|
*/
|
|
106
106
|
private extractAddresses;
|
|
107
|
+
/**
|
|
108
|
+
* Re-read the live account list for a namespace from the current SignClient
|
|
109
|
+
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
110
|
+
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
111
|
+
* selection, which doesn't apply to a live update (there is no "requested
|
|
112
|
+
* network" for an in-session switch).
|
|
113
|
+
*/
|
|
114
|
+
getAccountsForNamespace(namespace: Namespace): string[];
|
|
107
115
|
/**
|
|
108
116
|
* Get current session
|
|
109
117
|
*/
|
|
@@ -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,EACrB,SAAS,EACV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAmB5D;;GAEG;AACH,qBAAa,iBAAiB;IAiChB,OAAO,CAAC,mBAAmB;IAhCvC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAA8B;IACpD;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAA+B;IACzD;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAAI;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAQ;IAE5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAgB;gBAE1C,mBAAmB,EAAE,mBAAmB;IAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,YAAY,CAChB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,GAC3D,OAAO,CAAC,MAAM,CAAC;IAsClB;;;;;;OAMG;YACW,WAAW;IAyCzB,oFAAoF;IACpF,OAAO,CAAC,uBAAuB;IAS/B;;;;;;OAMG;YACW,eAAe;IAmC7B;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC;IAkD3B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiGnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;;;;;OAMG;IACH,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAcvD;;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;CAelC"}
|
|
@@ -338,6 +338,28 @@ export class ConnectionService {
|
|
|
338
338
|
}
|
|
339
339
|
return { address: primaryAddress, availableAddresses };
|
|
340
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Re-read the live account list for a namespace from the current SignClient
|
|
343
|
+
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
344
|
+
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
345
|
+
* selection, which doesn't apply to a live update (there is no "requested
|
|
346
|
+
* network" for an in-session switch).
|
|
347
|
+
*/
|
|
348
|
+
getAccountsForNamespace(namespace) {
|
|
349
|
+
if (!this.currentSession)
|
|
350
|
+
return [];
|
|
351
|
+
const accounts = this.currentSession.namespaces[namespace]?.accounts ?? [];
|
|
352
|
+
const addresses = [];
|
|
353
|
+
for (const account of accounts) {
|
|
354
|
+
try {
|
|
355
|
+
addresses.push(parseAccount(account).address);
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// Skip invalid account formats
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return addresses;
|
|
362
|
+
}
|
|
341
363
|
/**
|
|
342
364
|
* Get current session
|
|
343
365
|
*/
|
|
@@ -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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WalletConnectClient } from './walletconnect-client';
|
|
2
2
|
import { ConnectionService } from './connection-service';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SignatureResult, EIP712TypedData } from '@meshconnect/uwc-types';
|
|
4
4
|
/**
|
|
5
5
|
* Service for handling message signing in WalletConnect
|
|
6
6
|
*/
|
|
@@ -11,7 +11,7 @@ export declare class SignatureService {
|
|
|
11
11
|
/**
|
|
12
12
|
* Sign a message with the connected wallet
|
|
13
13
|
*/
|
|
14
|
-
signMessage(message: string): Promise<
|
|
14
|
+
signMessage(message: string): Promise<SignatureResult>;
|
|
15
15
|
/**
|
|
16
16
|
* Sign EIP-712 typed structured data (eth_signTypedData_v4) over WalletConnect.
|
|
17
17
|
* EVM-only (eip155); used by ERC-3009 and EIP-2612 relay flows. The WC session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG9E;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,iBAAiB;gBADjB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB;IAG9C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoJ5D;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;CA2CjE"}
|
|
@@ -98,25 +98,36 @@ export class SignatureService {
|
|
|
98
98
|
params
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
|
-
// Handle different response formats
|
|
101
|
+
// Handle different response formats. `address` is the exact signer
|
|
102
|
+
// (parsed from the matched session account) — thread it through so
|
|
103
|
+
// consumers claim it rather than a possibly-stale session address.
|
|
102
104
|
if (accountNamespace === 'solana') {
|
|
103
105
|
// Solana returns an object with a signature property
|
|
104
106
|
return {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
signature: {
|
|
108
|
+
type: 'standard',
|
|
109
|
+
signature: result.signature
|
|
110
|
+
},
|
|
111
|
+
address
|
|
107
112
|
};
|
|
108
113
|
}
|
|
109
114
|
else if (accountNamespace === 'tron') {
|
|
110
115
|
const tronResult = result.result;
|
|
111
116
|
return {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
signature: {
|
|
118
|
+
type: 'tron',
|
|
119
|
+
signature: tronResult.signature,
|
|
120
|
+
txID: tronResult.txID
|
|
121
|
+
},
|
|
122
|
+
address
|
|
115
123
|
};
|
|
116
124
|
}
|
|
117
125
|
return {
|
|
118
|
-
|
|
119
|
-
|
|
126
|
+
signature: {
|
|
127
|
+
type: 'standard',
|
|
128
|
+
signature: result
|
|
129
|
+
},
|
|
130
|
+
address
|
|
120
131
|
};
|
|
121
132
|
}
|
|
122
133
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Network, Connector, ConnectorResult, SwitchNetworkResult, WalletConnectConfig, WalletConnectProvider, TransactionRequest, TransactionResult, NetworkRpcMap,
|
|
1
|
+
import type { Network, Connector, ConnectorResult, SwitchNetworkResult, WalletConnectConfig, WalletConnectProvider, TransactionRequest, TransactionResult, NetworkRpcMap, SignatureResult, EIP712TypedData, WalletLifecycleEvent, WalletLifecycleContext } from '@meshconnect/uwc-types';
|
|
2
2
|
import { type WalletConnectTelemetryObserver } from './services/walletconnect-client';
|
|
3
3
|
export declare class WalletConnectConnector implements Connector {
|
|
4
4
|
private walletConnectClient;
|
|
@@ -25,7 +25,7 @@ export declare class WalletConnectConnector implements Connector {
|
|
|
25
25
|
getConnectionURI(): string;
|
|
26
26
|
disconnect(): Promise<void>;
|
|
27
27
|
switchNetwork(network: Network): Promise<SwitchNetworkResult>;
|
|
28
|
-
signMessage(message: string): Promise<
|
|
28
|
+
signMessage(message: string): Promise<SignatureResult>;
|
|
29
29
|
signTypedData(typedData: EIP712TypedData): Promise<string>;
|
|
30
30
|
sendTransaction(request: TransactionRequest): Promise<TransactionResult>;
|
|
31
31
|
/**
|
|
@@ -55,5 +55,16 @@ export declare class WalletConnectConnector implements Connector {
|
|
|
55
55
|
* forwarded, resolved per event so a restore/re-connect is honoured live.
|
|
56
56
|
*/
|
|
57
57
|
onLifecycleEvent(listener: (event: WalletLifecycleEvent) => void, _context: WalletLifecycleContext): (() => void) | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
60
|
+
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
61
|
+
* CURRENT session's account list for the affected namespace via
|
|
62
|
+
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
63
|
+
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
64
|
+
* see the design spec's "open risk" note if this needs revisiting against
|
|
65
|
+
* a specific wallet found not to update `session.namespaces` before firing
|
|
66
|
+
* the event.
|
|
67
|
+
*/
|
|
68
|
+
onAccountsChanged(listener: (accounts: string[]) => void, context: WalletLifecycleContext): (() => void) | undefined;
|
|
58
69
|
}
|
|
59
70
|
//# 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,
|
|
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,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,KAAK,8BAA8B,EACpC,MAAM,iCAAiC,CAAA;AAqGxC,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,CAAC,EAAE,aAAa,EAC7B,iBAAiB,CAAC,EAAE,8BAA8B;IAEpD;;;;OAIG;gBAED,MAAM,EAAE,mBAAmB,EAC3B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IA+BlC,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC;IAU3B;;;;;OAKG;IACG,YAAY,CAChB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,GAC3D,OAAO,CAAC,MAAM,CAAC;IAIlB,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,eAAe,CAAC;IAItD,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;IA+C3B;;;;;;;;;OASG;IACH,iBAAiB,CACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,EACtC,OAAO,EAAE,sBAAsB,GAC9B,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;CAgC5B"}
|
|
@@ -224,5 +224,44 @@ export class WalletConnectConnector {
|
|
|
224
224
|
client.off('session_event', onSessionEvent);
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
229
|
+
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
230
|
+
* CURRENT session's account list for the affected namespace via
|
|
231
|
+
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
232
|
+
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
233
|
+
* see the design spec's "open risk" note if this needs revisiting against
|
|
234
|
+
* a specific wallet found not to update `session.namespaces` before firing
|
|
235
|
+
* the event.
|
|
236
|
+
*/
|
|
237
|
+
onAccountsChanged(listener, context) {
|
|
238
|
+
const client = this.walletConnectClient.getExistingClient();
|
|
239
|
+
if (!client)
|
|
240
|
+
return undefined;
|
|
241
|
+
const isActiveTopic = (topic) => {
|
|
242
|
+
const active = this.connectionService.getSession()?.topic;
|
|
243
|
+
return active !== undefined && topic === active;
|
|
244
|
+
};
|
|
245
|
+
const onSessionEvent = (args) => {
|
|
246
|
+
if (!isActiveTopic(args?.topic))
|
|
247
|
+
return;
|
|
248
|
+
if (args?.params?.event?.name !== 'accountsChanged')
|
|
249
|
+
return;
|
|
250
|
+
const namespace = args.params.chainId.split(':')[0];
|
|
251
|
+
// A single WC topic can carry MULTIPLE approved namespaces (e.g.
|
|
252
|
+
// eip155 + solana in one session). `context.namespace` names the ONE
|
|
253
|
+
// this subscription was attached to observe — an accountsChanged for
|
|
254
|
+
// a DIFFERENT namespace on the same topic must not reach `listener`,
|
|
255
|
+
// or the caller (bound to e.g. eip155) would receive the other
|
|
256
|
+
// namespace's addresses and write them into its own active address.
|
|
257
|
+
if (context.namespace !== undefined && namespace !== context.namespace)
|
|
258
|
+
return;
|
|
259
|
+
listener(this.connectionService.getAccountsForNamespace(namespace));
|
|
260
|
+
};
|
|
261
|
+
client.on('session_event', onSessionEvent);
|
|
262
|
+
return () => {
|
|
263
|
+
client.off('session_event', onSessionEvent);
|
|
264
|
+
};
|
|
265
|
+
}
|
|
227
266
|
}
|
|
228
267
|
//# 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.
|
|
3
|
+
"version": "0.13.0",
|
|
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.
|
|
28
|
+
"@meshconnect/uwc-types": "0.25.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^5.9.3"
|
|
@@ -6,6 +6,47 @@ import { WalletConnectorError } from '@meshconnect/uwc-types'
|
|
|
6
6
|
import { ConnectionService } from './connection-service'
|
|
7
7
|
import type { WalletConnectClient } from './walletconnect-client'
|
|
8
8
|
|
|
9
|
+
describe('ConnectionService', () => {
|
|
10
|
+
describe('getAccountsForNamespace', () => {
|
|
11
|
+
it('returns the parsed addresses for the given namespace from the current session', () => {
|
|
12
|
+
const service = new ConnectionService({} as WalletConnectClient)
|
|
13
|
+
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
14
|
+
namespaces: {
|
|
15
|
+
eip155: { accounts: ['eip155:1:0xAAA', 'eip155:137:0xAAA'] },
|
|
16
|
+
tron: { accounts: ['tron:0x2b6653dc:TSomething'] }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
expect(service.getAccountsForNamespace('eip155')).toEqual([
|
|
21
|
+
'0xAAA',
|
|
22
|
+
'0xAAA'
|
|
23
|
+
])
|
|
24
|
+
expect(service.getAccountsForNamespace('tron')).toEqual(['TSomething'])
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('returns an empty array when there is no current session', () => {
|
|
28
|
+
const service = new ConnectionService({} as WalletConnectClient)
|
|
29
|
+
expect(service.getAccountsForNamespace('eip155')).toEqual([])
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
it('returns an empty array for a namespace with no accounts in the session', () => {
|
|
33
|
+
const service = new ConnectionService({} as WalletConnectClient)
|
|
34
|
+
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
35
|
+
namespaces: { eip155: { accounts: ['eip155:1:0xAAA'] } }
|
|
36
|
+
}
|
|
37
|
+
expect(service.getAccountsForNamespace('solana')).toEqual([])
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('skips an unparseable account entry rather than throwing', () => {
|
|
41
|
+
const service = new ConnectionService({} as WalletConnectClient)
|
|
42
|
+
;(service as unknown as { currentSession: unknown }).currentSession = {
|
|
43
|
+
namespaces: { eip155: { accounts: ['not-a-valid-caip-account'] } }
|
|
44
|
+
}
|
|
45
|
+
expect(service.getAccountsForNamespace('eip155')).toEqual([])
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
|
|
9
50
|
// A session whose eip155 namespace carries one Polygon account, so
|
|
10
51
|
// `extractAddresses` resolves a primary address for `polygonNetwork`.
|
|
11
52
|
function buildSession(
|
|
@@ -448,6 +448,27 @@ export class ConnectionService {
|
|
|
448
448
|
return { address: primaryAddress, availableAddresses }
|
|
449
449
|
}
|
|
450
450
|
|
|
451
|
+
/**
|
|
452
|
+
* Re-read the live account list for a namespace from the current SignClient
|
|
453
|
+
* session — used to sync a wallet-side account switch (`accountsChanged`)
|
|
454
|
+
* without repeating `extractAddresses`'s primary-address/requested-network
|
|
455
|
+
* selection, which doesn't apply to a live update (there is no "requested
|
|
456
|
+
* network" for an in-session switch).
|
|
457
|
+
*/
|
|
458
|
+
getAccountsForNamespace(namespace: Namespace): string[] {
|
|
459
|
+
if (!this.currentSession) return []
|
|
460
|
+
const accounts = this.currentSession.namespaces[namespace]?.accounts ?? []
|
|
461
|
+
const addresses: string[] = []
|
|
462
|
+
for (const account of accounts) {
|
|
463
|
+
try {
|
|
464
|
+
addresses.push(parseAccount(account).address)
|
|
465
|
+
} catch {
|
|
466
|
+
// Skip invalid account formats
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
return addresses
|
|
470
|
+
}
|
|
471
|
+
|
|
451
472
|
/**
|
|
452
473
|
* Get current session
|
|
453
474
|
*/
|
|
@@ -72,6 +72,36 @@ const USDC_TYPED_DATA = {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
describe('SignatureService (wallet-connect-connector) — signMessage', () => {
|
|
76
|
+
const EVM_ACCOUNT = `eip155:1:${ACTIVE_ADDRESS}`
|
|
77
|
+
let mockWCClient: WalletConnectClient
|
|
78
|
+
let service: SignatureService
|
|
79
|
+
let mockSignClient: { request: ReturnType<typeof vi.fn> }
|
|
80
|
+
|
|
81
|
+
beforeEach(() => {
|
|
82
|
+
mockSignClient = { request: vi.fn().mockResolvedValue('0xpersonalsig') }
|
|
83
|
+
mockWCClient = {
|
|
84
|
+
getClient: vi.fn().mockResolvedValue(mockSignClient)
|
|
85
|
+
} as unknown as WalletConnectClient
|
|
86
|
+
const connectionService = makeMockConnectionService({
|
|
87
|
+
session: {
|
|
88
|
+
topic: MOCK_TOPIC,
|
|
89
|
+
namespaces: { eip155: { accounts: [EVM_ACCOUNT] } }
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
service = new SignatureService(mockWCClient, connectionService)
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('returns { signature, address } with the exact signer address (eip155)', async () => {
|
|
96
|
+
const result = await service.signMessage('hello')
|
|
97
|
+
|
|
98
|
+
expect(result).toEqual({
|
|
99
|
+
signature: { type: 'standard', signature: '0xpersonalsig' },
|
|
100
|
+
address: ACTIVE_ADDRESS
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
|
|
75
105
|
describe('SignatureService (wallet-connect-connector) — signTypedData', () => {
|
|
76
106
|
let mockWCClient: WalletConnectClient
|
|
77
107
|
let mockConnectionService: ConnectionService
|
|
@@ -4,7 +4,7 @@ import { findAccountInNamespaces, parseAccount } from '../utils/account-utils'
|
|
|
4
4
|
import { base58Encode } from '../utils/encoding-utils'
|
|
5
5
|
import { parseError } from '../utils/error-utils'
|
|
6
6
|
import { triggerSmartContract, stringToHex } from '../utils/tron-utils'
|
|
7
|
-
import type {
|
|
7
|
+
import type { SignatureResult, EIP712TypedData } from '@meshconnect/uwc-types'
|
|
8
8
|
import { withEIP712Domain } from '@meshconnect/uwc-types'
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -19,7 +19,7 @@ export class SignatureService {
|
|
|
19
19
|
/**
|
|
20
20
|
* Sign a message with the connected wallet
|
|
21
21
|
*/
|
|
22
|
-
async signMessage(message: string): Promise<
|
|
22
|
+
async signMessage(message: string): Promise<SignatureResult> {
|
|
23
23
|
try {
|
|
24
24
|
const session = this.connectionService.getSession()
|
|
25
25
|
if (!session) {
|
|
@@ -129,27 +129,38 @@ export class SignatureService {
|
|
|
129
129
|
}
|
|
130
130
|
})
|
|
131
131
|
|
|
132
|
-
// Handle different response formats
|
|
132
|
+
// Handle different response formats. `address` is the exact signer
|
|
133
|
+
// (parsed from the matched session account) — thread it through so
|
|
134
|
+
// consumers claim it rather than a possibly-stale session address.
|
|
133
135
|
if (accountNamespace === 'solana') {
|
|
134
136
|
// Solana returns an object with a signature property
|
|
135
137
|
return {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
signature: {
|
|
139
|
+
type: 'standard',
|
|
140
|
+
signature: (result as { signature: string }).signature
|
|
141
|
+
},
|
|
142
|
+
address
|
|
138
143
|
}
|
|
139
144
|
} else if (accountNamespace === 'tron') {
|
|
140
145
|
const tronResult = (
|
|
141
146
|
result as { result: { signature: string[]; txID: string } }
|
|
142
147
|
).result
|
|
143
148
|
return {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
149
|
+
signature: {
|
|
150
|
+
type: 'tron',
|
|
151
|
+
signature: tronResult.signature,
|
|
152
|
+
txID: tronResult.txID
|
|
153
|
+
},
|
|
154
|
+
address
|
|
147
155
|
}
|
|
148
156
|
}
|
|
149
157
|
|
|
150
158
|
return {
|
|
151
|
-
|
|
152
|
-
|
|
159
|
+
signature: {
|
|
160
|
+
type: 'standard',
|
|
161
|
+
signature: result as string
|
|
162
|
+
},
|
|
163
|
+
address
|
|
153
164
|
}
|
|
154
165
|
} catch (error) {
|
|
155
166
|
throw parseError(error)
|
|
@@ -200,6 +200,122 @@ describe('WalletConnectConnector.onLifecycleEvent', () => {
|
|
|
200
200
|
})
|
|
201
201
|
})
|
|
202
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
|
+
})
|
|
318
|
+
|
|
203
319
|
describe('WalletConnectConnector.beginPairing', () => {
|
|
204
320
|
it('forwards the provider to the connection service and returns its URI', async () => {
|
|
205
321
|
const connector = makeConnector(null)
|
|
@@ -9,10 +9,11 @@ import type {
|
|
|
9
9
|
TransactionRequest,
|
|
10
10
|
TransactionResult,
|
|
11
11
|
NetworkRpcMap,
|
|
12
|
-
|
|
12
|
+
SignatureResult,
|
|
13
13
|
EIP712TypedData,
|
|
14
14
|
WalletLifecycleEvent,
|
|
15
|
-
WalletLifecycleContext
|
|
15
|
+
WalletLifecycleContext,
|
|
16
|
+
Namespace
|
|
16
17
|
} from '@meshconnect/uwc-types'
|
|
17
18
|
import {
|
|
18
19
|
WalletConnectClient,
|
|
@@ -213,7 +214,7 @@ export class WalletConnectConnector implements Connector {
|
|
|
213
214
|
return this.networkSwitchService.switchNetwork(network)
|
|
214
215
|
}
|
|
215
216
|
|
|
216
|
-
async signMessage(message: string): Promise<
|
|
217
|
+
async signMessage(message: string): Promise<SignatureResult> {
|
|
217
218
|
return this.signatureService.signMessage(message)
|
|
218
219
|
}
|
|
219
220
|
|
|
@@ -310,4 +311,50 @@ export class WalletConnectConnector implements Connector {
|
|
|
310
311
|
client.off('session_event', onSessionEvent)
|
|
311
312
|
}
|
|
312
313
|
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Real account-sync counterpart to `onLifecycleEvent` (session_event
|
|
317
|
+
* `accountsChanged`). Unlike the telemetry stream, this re-reads the
|
|
318
|
+
* CURRENT session's account list for the affected namespace via
|
|
319
|
+
* `ConnectionService.getAccountsForNamespace` rather than trying to parse
|
|
320
|
+
* the event's own (wallet-defined, non-standardized) `event.data` shape —
|
|
321
|
+
* see the design spec's "open risk" note if this needs revisiting against
|
|
322
|
+
* a specific wallet found not to update `session.namespaces` before firing
|
|
323
|
+
* the event.
|
|
324
|
+
*/
|
|
325
|
+
onAccountsChanged(
|
|
326
|
+
listener: (accounts: string[]) => void,
|
|
327
|
+
context: WalletLifecycleContext
|
|
328
|
+
): (() => void) | undefined {
|
|
329
|
+
const client = this.walletConnectClient.getExistingClient()
|
|
330
|
+
if (!client) return undefined
|
|
331
|
+
|
|
332
|
+
const isActiveTopic = (topic: string | undefined): boolean => {
|
|
333
|
+
const active = this.connectionService.getSession()?.topic
|
|
334
|
+
return active !== undefined && topic === active
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const onSessionEvent = (args: {
|
|
338
|
+
topic: string
|
|
339
|
+
params: { event: { name: string; data?: unknown }; chainId: string }
|
|
340
|
+
}) => {
|
|
341
|
+
if (!isActiveTopic(args?.topic)) return
|
|
342
|
+
if (args?.params?.event?.name !== 'accountsChanged') return
|
|
343
|
+
const namespace = args.params.chainId.split(':')[0] as Namespace
|
|
344
|
+
// A single WC topic can carry MULTIPLE approved namespaces (e.g.
|
|
345
|
+
// eip155 + solana in one session). `context.namespace` names the ONE
|
|
346
|
+
// this subscription was attached to observe — an accountsChanged for
|
|
347
|
+
// a DIFFERENT namespace on the same topic must not reach `listener`,
|
|
348
|
+
// or the caller (bound to e.g. eip155) would receive the other
|
|
349
|
+
// namespace's addresses and write them into its own active address.
|
|
350
|
+
if (context.namespace !== undefined && namespace !== context.namespace)
|
|
351
|
+
return
|
|
352
|
+
listener(this.connectionService.getAccountsForNamespace(namespace))
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
client.on('session_event', onSessionEvent)
|
|
356
|
+
return () => {
|
|
357
|
+
client.off('session_event', onSessionEvent)
|
|
358
|
+
}
|
|
359
|
+
}
|
|
313
360
|
}
|