@meshconnect/uwc-core 0.3.7 → 0.3.9
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 +0 -1
- 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/services/wallet-capabilities-service.d.ts +12 -0
- package/dist/services/wallet-capabilities-service.d.ts.map +1 -0
- package/dist/services/wallet-capabilities-service.js +53 -0
- package/dist/services/wallet-capabilities-service.js.map +1 -0
- package/dist/universal-wallet-connector.d.ts +8 -0
- package/dist/universal-wallet-connector.d.ts.map +1 -1
- package/dist/universal-wallet-connector.js +12 -0
- package/dist/universal-wallet-connector.js.map +1 -1
- package/package.json +4 -4
- package/src/services/connection-service.test.ts +0 -87
- package/src/services/connection-service.ts +1 -42
- package/src/services/wallet-capabilities-service.test.ts +313 -0
- package/src/services/wallet-capabilities-service.ts +77 -0
- package/src/universal-wallet-connector.test.ts +0 -2
- package/src/universal-wallet-connector.ts +24 -0
|
@@ -15,7 +15,6 @@ export declare class ConnectionService {
|
|
|
15
15
|
private findWallet;
|
|
16
16
|
private getProviderForMode;
|
|
17
17
|
private validateAndDetermineNetwork;
|
|
18
|
-
private getWalletCapabilities;
|
|
19
18
|
disconnect(): Promise<void>;
|
|
20
19
|
getConnectionURI(): string | undefined;
|
|
21
20
|
getWallets(): WalletMetadata[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,
|
|
1
|
+
{"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,EAKV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,YAAY;IARtB,OAAO,CAAC,eAAe,CAAyB;gBAGtC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,cAAc,EAAE,EACzB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAC1C,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,YAAY;IAG9B,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC;IA4EhB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,2BAA2B;IA6C7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAkBtC,UAAU,IAAI,cAAc,EAAE;IAI9B,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO,EAAE;CAGzB"}
|
|
@@ -61,13 +61,10 @@ export class ConnectionService {
|
|
|
61
61
|
}
|
|
62
62
|
// Filter available addresses to only include those for configured networks
|
|
63
63
|
const filteredAvailableAddresses = result.availableAddresses.filter(addr => this.networks.some(n => n.id === addr.networkId));
|
|
64
|
-
const [activeWalletCapabilities, activeNetworkWalletCapabilities] = await this.getWalletCapabilities(result.address);
|
|
65
64
|
this.sessionManager.updateSession({
|
|
66
65
|
connectionMode,
|
|
67
66
|
activeWallet: wallet,
|
|
68
67
|
activeNetwork: network,
|
|
69
|
-
activeWalletCapabilities: activeWalletCapabilities,
|
|
70
|
-
activeNetworkWalletCapabilities: activeNetworkWalletCapabilities,
|
|
71
68
|
activeAddress: result.address,
|
|
72
69
|
availableNetworks: this.networks.filter(n => provider.supportedNetworkIds.includes(n.id)),
|
|
73
70
|
availableAddresses: filteredAvailableAddresses
|
|
@@ -140,25 +137,6 @@ export class ConnectionService {
|
|
|
140
137
|
}
|
|
141
138
|
return network;
|
|
142
139
|
}
|
|
143
|
-
async getWalletCapabilities(address) {
|
|
144
|
-
let activeWalletCapabilities = {};
|
|
145
|
-
let activeNetworkWalletCapabilities = {};
|
|
146
|
-
if (this.activeConnector &&
|
|
147
|
-
typeof this.activeConnector.getWalletCapabilities === 'function') {
|
|
148
|
-
let capabilities;
|
|
149
|
-
try {
|
|
150
|
-
capabilities = await this.activeConnector.getWalletCapabilities(address, this.networks);
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
capabilities = {};
|
|
154
|
-
}
|
|
155
|
-
// keep only supported networks
|
|
156
|
-
activeWalletCapabilities = Object.fromEntries(Object.entries(capabilities).filter(([networkId, _]) => this.networks.some(n => n.id === networkId)));
|
|
157
|
-
const firstMatch = Object.entries(activeWalletCapabilities).find(([networkId]) => this.networks.some(n => n.id === networkId));
|
|
158
|
-
activeNetworkWalletCapabilities = firstMatch ? firstMatch[1] : {};
|
|
159
|
-
}
|
|
160
|
-
return [activeWalletCapabilities, activeNetworkWalletCapabilities];
|
|
161
|
-
}
|
|
162
140
|
async disconnect() {
|
|
163
141
|
// If there's an active connector with a disconnect method, call it
|
|
164
142
|
if (this.activeConnector &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Network, ConnectionMode, Connector } from '@meshconnect/uwc-types';
|
|
2
|
+
import type { SessionManager } from '../managers/session-manager';
|
|
3
|
+
import type { EventManager } from '../managers/event-manager';
|
|
4
|
+
export declare class WalletCapabilitiesService {
|
|
5
|
+
private networks;
|
|
6
|
+
private connectors;
|
|
7
|
+
private sessionManager;
|
|
8
|
+
private eventManager;
|
|
9
|
+
constructor(networks: Network[], connectors: Map<ConnectionMode, Connector>, sessionManager: SessionManager, eventManager: EventManager);
|
|
10
|
+
getWalletCapabilities(address: string, activeNetwork?: Network): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=wallet-capabilities-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-capabilities-service.d.ts","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;gBAHZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY;IAG9B,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;CAwDjB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export class WalletCapabilitiesService {
|
|
2
|
+
networks;
|
|
3
|
+
connectors;
|
|
4
|
+
sessionManager;
|
|
5
|
+
eventManager;
|
|
6
|
+
constructor(networks, connectors, sessionManager, eventManager) {
|
|
7
|
+
this.networks = networks;
|
|
8
|
+
this.connectors = connectors;
|
|
9
|
+
this.sessionManager = sessionManager;
|
|
10
|
+
this.eventManager = eventManager;
|
|
11
|
+
}
|
|
12
|
+
async getWalletCapabilities(address, activeNetwork) {
|
|
13
|
+
let activeWalletCapabilities = {};
|
|
14
|
+
let activeNetworkWalletCapabilities = {};
|
|
15
|
+
const session = this.sessionManager.getSession();
|
|
16
|
+
if (!session) {
|
|
17
|
+
throw new Error('No active connection. Connect to a wallet first.');
|
|
18
|
+
}
|
|
19
|
+
// Check if connection mode is set
|
|
20
|
+
if (!session.connectionMode) {
|
|
21
|
+
throw new Error('No connection mode found in session');
|
|
22
|
+
}
|
|
23
|
+
const activeConnector = this.connectors.get(session.connectionMode);
|
|
24
|
+
if (activeConnector &&
|
|
25
|
+
typeof activeConnector.getWalletCapabilities === 'function') {
|
|
26
|
+
let capabilities;
|
|
27
|
+
try {
|
|
28
|
+
capabilities = await activeConnector.getWalletCapabilities(address, this.networks);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
capabilities = {};
|
|
32
|
+
}
|
|
33
|
+
// keep only supported networks
|
|
34
|
+
activeWalletCapabilities = Object.fromEntries(Object.entries(capabilities).filter(([networkId, _]) => this.networks.some(n => n.id === networkId)));
|
|
35
|
+
if (activeNetwork) {
|
|
36
|
+
const firstMatch = Object.entries(activeWalletCapabilities).find(([networkId]) => networkId == activeNetwork.id);
|
|
37
|
+
activeNetworkWalletCapabilities = firstMatch ? firstMatch[1] : {};
|
|
38
|
+
this.sessionManager.updateSession({
|
|
39
|
+
activeWalletCapabilities: activeWalletCapabilities,
|
|
40
|
+
activeNetworkWalletCapabilities: activeNetworkWalletCapabilities
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.sessionManager.updateSession({
|
|
45
|
+
activeWalletCapabilities: activeWalletCapabilities,
|
|
46
|
+
activeNetworkWalletCapabilities: null
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
this.eventManager.notify();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=wallet-capabilities-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-capabilities-service.js","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,yBAAyB;IAE1B;IACA;IACA;IACA;IAJV,YACU,QAAmB,EACnB,UAA0C,EAC1C,cAA8B,EAC9B,YAA0B;QAH1B,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAgC;QAC1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CACzB,OAAe,EACf,aAAuB;QAEvB,IAAI,wBAAwB,GAAoC,EAAE,CAAA;QAClE,IAAI,+BAA+B,GAAoB,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEnE,IACE,eAAe;YACf,OAAO,eAAe,CAAC,qBAAqB,KAAK,UAAU,EAC3D,CAAC;YACD,IAAI,YAA6C,CAAA;YACjD,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,eAAe,CAAC,qBAAqB,CACxD,OAAO,EACP,IAAI,CAAC,QAAQ,CACd,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,EAAE,CAAA;YACnB,CAAC;YAED,+BAA+B;YAC/B,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAC5C,CACF,CAAA;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAC9D,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,aAAa,CAAC,EAAE,CAC/C,CAAA;gBACD,+BAA+B,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,+BAA+B;iBACjE,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,IAAI;iBACtC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,6 +8,7 @@ export declare class UniversalWalletConnector {
|
|
|
8
8
|
private networkSwitchService;
|
|
9
9
|
private signatureService;
|
|
10
10
|
private transactionService;
|
|
11
|
+
private walletCapabilitiesService;
|
|
11
12
|
private connectors;
|
|
12
13
|
private injectedConnector;
|
|
13
14
|
private wallets;
|
|
@@ -45,6 +46,13 @@ export declare class UniversalWalletConnector {
|
|
|
45
46
|
* @returns A promise that resolves to the transaction result
|
|
46
47
|
*/
|
|
47
48
|
sendTransaction(request: TransactionRequest): Promise<TransactionResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Fetch wallet capabilities for the connected wallet
|
|
51
|
+
* @param address The wallet address to fetch capabilities for
|
|
52
|
+
* @param activeNetwork Optional network to set as the active network for capabilities
|
|
53
|
+
* @returns A promise that resolves when capabilities are fetched and updated
|
|
54
|
+
*/
|
|
55
|
+
getWalletCapabilities(address: string, activeNetwork?: Network): Promise<void>;
|
|
48
56
|
/**
|
|
49
57
|
* Check if a connection mode is available for a specific wallet
|
|
50
58
|
* @param connectionMode The connection mode to check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-wallet-connector.d.ts","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,mBAAmB,EAKnB,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,aAAa,EACd,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"universal-wallet-connector.d.ts","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,mBAAmB,EAKnB,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,aAAa,EACd,MAAM,wBAAwB,CAAA;AAa/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAI;IAChC,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAQ;IAEtD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,yBAAyB,CAA2B;IAC5D,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,aAAa,CAAe;gBAGlC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,cAAc,EAAO,EAC9B,sBAAsB,UAAQ,EAC9B,mBAAmB,CAAC,EAAE,mBAAmB;IA6F3C;;OAEG;YACW,yBAAyB;IAgIvC,UAAU;IAIV,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3C,QAAQ,IAAI,6BAA6B;IAMzC,UAAU,IAAI,cAAc,EAAE;IAI9B,WAAW,IAAI,OAAO,EAAE;IAIlB,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC;IAKhB,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,4BAA4B;;;;IAI5B;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4B1D;;;;OAIG;IACG,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA4B7B;;;;;OAKG;IACG,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;OAKG;IACH,yBAAyB,CACvB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO;IAuCV,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI;CAItE"}
|
|
@@ -7,6 +7,7 @@ import { ConnectionService } from './services/connection-service';
|
|
|
7
7
|
import { NetworkSwitchService } from './services/network-switch-service';
|
|
8
8
|
import { SignatureService } from './services/signature-service';
|
|
9
9
|
import { TransactionService } from './services/transaction-service';
|
|
10
|
+
import { WalletCapabilitiesService } from './services/wallet-capabilities-service';
|
|
10
11
|
import { createNetworkRpcMap } from './utils/network-rpc-utils';
|
|
11
12
|
export class UniversalWalletConnector {
|
|
12
13
|
static instanceCount = 0;
|
|
@@ -17,6 +18,7 @@ export class UniversalWalletConnector {
|
|
|
17
18
|
networkSwitchService;
|
|
18
19
|
signatureService;
|
|
19
20
|
transactionService;
|
|
21
|
+
walletCapabilitiesService;
|
|
20
22
|
connectors;
|
|
21
23
|
injectedConnector;
|
|
22
24
|
wallets;
|
|
@@ -63,6 +65,7 @@ export class UniversalWalletConnector {
|
|
|
63
65
|
this.networkSwitchService = new NetworkSwitchService(networks, this.sessionManager, this.connectors, usingIntegratedBrowser, this.eventManager);
|
|
64
66
|
this.signatureService = new SignatureService(this.sessionManager, this.connectors);
|
|
65
67
|
this.transactionService = new TransactionService(this.sessionManager, this.connectors);
|
|
68
|
+
this.walletCapabilitiesService = new WalletCapabilitiesService(networks, this.connectors, this.sessionManager, this.eventManager);
|
|
66
69
|
// Initialize detected wallets after services are created
|
|
67
70
|
this.initializeDetectedWallets();
|
|
68
71
|
}
|
|
@@ -267,6 +270,15 @@ export class UniversalWalletConnector {
|
|
|
267
270
|
}
|
|
268
271
|
return await this.transactionService.sendTransaction(request, provider);
|
|
269
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* Fetch wallet capabilities for the connected wallet
|
|
275
|
+
* @param address The wallet address to fetch capabilities for
|
|
276
|
+
* @param activeNetwork Optional network to set as the active network for capabilities
|
|
277
|
+
* @returns A promise that resolves when capabilities are fetched and updated
|
|
278
|
+
*/
|
|
279
|
+
async getWalletCapabilities(address, activeNetwork) {
|
|
280
|
+
return await this.walletCapabilitiesService.getWalletCapabilities(address, activeNetwork);
|
|
281
|
+
}
|
|
270
282
|
/**
|
|
271
283
|
* Check if a connection mode is available for a specific wallet
|
|
272
284
|
* @param connectionMode The connection mode to check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-wallet-connector.js","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"universal-wallet-connector.js","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"description": "Core functionality for Universal Wallet Connector",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@meshconnect/uwc-types": "0.4.
|
|
20
|
-
"@meshconnect/uwc-injected-connector": "0.4.
|
|
21
|
-
"@meshconnect/uwc-wallet-connect-connector": "0.3.
|
|
19
|
+
"@meshconnect/uwc-types": "0.4.1",
|
|
20
|
+
"@meshconnect/uwc-injected-connector": "0.4.3",
|
|
21
|
+
"@meshconnect/uwc-wallet-connect-connector": "0.3.1",
|
|
22
22
|
"@meshconnect/uwc-bridge-child": "0.0.3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
@@ -148,91 +148,4 @@ describe('ConnectionService', () => {
|
|
|
148
148
|
)
|
|
149
149
|
expect(provider).toBeDefined()
|
|
150
150
|
})
|
|
151
|
-
|
|
152
|
-
describe('getWalletCapabilities', () => {
|
|
153
|
-
it('should fetch wallet capabilities successfully', async () => {
|
|
154
|
-
const mockCapabilities = {
|
|
155
|
-
'eip155:1': {
|
|
156
|
-
paymasterService: { supported: true },
|
|
157
|
-
sessionKeys: { supported: false }
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
mockConnector.getWalletCapabilities = vi
|
|
162
|
-
.fn()
|
|
163
|
-
.mockResolvedValue(mockCapabilities)
|
|
164
|
-
connectionService['activeConnector'] = mockConnector
|
|
165
|
-
|
|
166
|
-
const [allCapabilities, networkCapabilities] =
|
|
167
|
-
await connectionService['getWalletCapabilities']('0x123')
|
|
168
|
-
|
|
169
|
-
expect(mockConnector.getWalletCapabilities).toHaveBeenCalledWith(
|
|
170
|
-
'0x123',
|
|
171
|
-
networks
|
|
172
|
-
)
|
|
173
|
-
expect(allCapabilities).toEqual(mockCapabilities)
|
|
174
|
-
expect(networkCapabilities).toEqual(mockCapabilities['eip155:1'])
|
|
175
|
-
})
|
|
176
|
-
|
|
177
|
-
it('should handle getWalletCapabilities error gracefully', async () => {
|
|
178
|
-
mockConnector.getWalletCapabilities = vi
|
|
179
|
-
.fn()
|
|
180
|
-
.mockRejectedValue(new Error('Network error'))
|
|
181
|
-
connectionService['activeConnector'] = mockConnector
|
|
182
|
-
|
|
183
|
-
const [allCapabilities, networkCapabilities] =
|
|
184
|
-
await connectionService['getWalletCapabilities']('0x123')
|
|
185
|
-
|
|
186
|
-
expect(mockConnector.getWalletCapabilities).toHaveBeenCalledWith(
|
|
187
|
-
'0x123',
|
|
188
|
-
networks
|
|
189
|
-
)
|
|
190
|
-
expect(allCapabilities).toEqual({})
|
|
191
|
-
expect(networkCapabilities).toEqual({})
|
|
192
|
-
})
|
|
193
|
-
|
|
194
|
-
it('should filter out unsupported networks from capabilities', async () => {
|
|
195
|
-
const mockCapabilities = {
|
|
196
|
-
'eip155:1': {
|
|
197
|
-
paymasterService: { supported: true }
|
|
198
|
-
},
|
|
199
|
-
'eip155:999': {
|
|
200
|
-
paymasterService: { supported: false }
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
mockConnector.getWalletCapabilities = vi
|
|
205
|
-
.fn()
|
|
206
|
-
.mockResolvedValue(mockCapabilities)
|
|
207
|
-
connectionService['activeConnector'] = mockConnector
|
|
208
|
-
|
|
209
|
-
const [allCapabilities] =
|
|
210
|
-
await connectionService['getWalletCapabilities']('0x123')
|
|
211
|
-
|
|
212
|
-
expect(allCapabilities).toEqual({
|
|
213
|
-
'eip155:1': mockCapabilities['eip155:1']
|
|
214
|
-
})
|
|
215
|
-
expect(allCapabilities['eip155:999']).toBeUndefined()
|
|
216
|
-
})
|
|
217
|
-
|
|
218
|
-
it('should return empty capabilities when connector does not support getWalletCapabilities', async () => {
|
|
219
|
-
connectionService['activeConnector'] = mockConnector
|
|
220
|
-
|
|
221
|
-
const [allCapabilities, networkCapabilities] =
|
|
222
|
-
await connectionService['getWalletCapabilities']('0x123')
|
|
223
|
-
|
|
224
|
-
expect(allCapabilities).toEqual({})
|
|
225
|
-
expect(networkCapabilities).toEqual({})
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
it('should return empty capabilities when no active connector', async () => {
|
|
229
|
-
connectionService['activeConnector'] = null
|
|
230
|
-
|
|
231
|
-
const [allCapabilities, networkCapabilities] =
|
|
232
|
-
await connectionService['getWalletCapabilities']('0x123')
|
|
233
|
-
|
|
234
|
-
expect(allCapabilities).toEqual({})
|
|
235
|
-
expect(networkCapabilities).toEqual({})
|
|
236
|
-
})
|
|
237
|
-
})
|
|
238
151
|
})
|
|
@@ -7,8 +7,7 @@ import type {
|
|
|
7
7
|
SupportedProvider,
|
|
8
8
|
ExtensionInjectedProvider,
|
|
9
9
|
IntegratedBrowserInjectedProvider,
|
|
10
|
-
WalletConnectProvider
|
|
11
|
-
EVMCapabilities
|
|
10
|
+
WalletConnectProvider
|
|
12
11
|
} from '@meshconnect/uwc-types'
|
|
13
12
|
import type { SessionManager } from '../managers/session-manager'
|
|
14
13
|
import type { EventManager } from '../managers/event-manager'
|
|
@@ -93,15 +92,10 @@ export class ConnectionService {
|
|
|
93
92
|
this.networks.some(n => n.id === addr.networkId)
|
|
94
93
|
)
|
|
95
94
|
|
|
96
|
-
const [activeWalletCapabilities, activeNetworkWalletCapabilities] =
|
|
97
|
-
await this.getWalletCapabilities(result.address)
|
|
98
|
-
|
|
99
95
|
this.sessionManager.updateSession({
|
|
100
96
|
connectionMode,
|
|
101
97
|
activeWallet: wallet,
|
|
102
98
|
activeNetwork: network,
|
|
103
|
-
activeWalletCapabilities: activeWalletCapabilities,
|
|
104
|
-
activeNetworkWalletCapabilities: activeNetworkWalletCapabilities,
|
|
105
99
|
activeAddress: result.address,
|
|
106
100
|
availableNetworks: this.networks.filter(n =>
|
|
107
101
|
provider.supportedNetworkIds.includes(n.id)
|
|
@@ -206,41 +200,6 @@ export class ConnectionService {
|
|
|
206
200
|
return network
|
|
207
201
|
}
|
|
208
202
|
|
|
209
|
-
private async getWalletCapabilities(
|
|
210
|
-
address: string
|
|
211
|
-
): Promise<[Record<string, EVMCapabilities>, EVMCapabilities]> {
|
|
212
|
-
let activeWalletCapabilities: Record<string, EVMCapabilities> = {}
|
|
213
|
-
let activeNetworkWalletCapabilities: EVMCapabilities = {}
|
|
214
|
-
if (
|
|
215
|
-
this.activeConnector &&
|
|
216
|
-
typeof this.activeConnector.getWalletCapabilities === 'function'
|
|
217
|
-
) {
|
|
218
|
-
let capabilities: Record<string, EVMCapabilities>
|
|
219
|
-
try {
|
|
220
|
-
capabilities = await this.activeConnector.getWalletCapabilities(
|
|
221
|
-
address,
|
|
222
|
-
this.networks
|
|
223
|
-
)
|
|
224
|
-
} catch {
|
|
225
|
-
capabilities = {}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// keep only supported networks
|
|
229
|
-
activeWalletCapabilities = Object.fromEntries(
|
|
230
|
-
Object.entries(capabilities).filter(([networkId, _]) =>
|
|
231
|
-
this.networks.some(n => n.id === networkId)
|
|
232
|
-
)
|
|
233
|
-
)
|
|
234
|
-
|
|
235
|
-
const firstMatch = Object.entries(activeWalletCapabilities).find(
|
|
236
|
-
([networkId]) => this.networks.some(n => n.id === networkId)
|
|
237
|
-
)
|
|
238
|
-
activeNetworkWalletCapabilities = firstMatch ? firstMatch[1] : {}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
return [activeWalletCapabilities, activeNetworkWalletCapabilities]
|
|
242
|
-
}
|
|
243
|
-
|
|
244
203
|
async disconnect(): Promise<void> {
|
|
245
204
|
// If there's an active connector with a disconnect method, call it
|
|
246
205
|
if (
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest'
|
|
2
|
+
import type {
|
|
3
|
+
Network,
|
|
4
|
+
ConnectionMode,
|
|
5
|
+
Connector,
|
|
6
|
+
EVMCapabilities
|
|
7
|
+
} from '../../../types/src'
|
|
8
|
+
import type { SessionManager } from '../managers/session-manager'
|
|
9
|
+
import { WalletCapabilitiesService } from './wallet-capabilities-service'
|
|
10
|
+
import { EventManager } from '../managers/event-manager'
|
|
11
|
+
|
|
12
|
+
describe('WalletCapabilitiesService', () => {
|
|
13
|
+
let service: WalletCapabilitiesService
|
|
14
|
+
let sessionManager: SessionManager
|
|
15
|
+
let eventManager: EventManager
|
|
16
|
+
let mockConnectors: Map<ConnectionMode, Connector>
|
|
17
|
+
let networks: Network[]
|
|
18
|
+
let mockConnector: Connector
|
|
19
|
+
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
networks = [
|
|
22
|
+
{
|
|
23
|
+
id: 'eip155:1',
|
|
24
|
+
internalId: 1,
|
|
25
|
+
name: 'Ethereum Mainnet',
|
|
26
|
+
namespace: 'eip155',
|
|
27
|
+
logoUrl:
|
|
28
|
+
'https://ethereum.org/static/6b935ac0e619424734bc5a3b11026273/6ed5f/eth-diamond-black.png',
|
|
29
|
+
rpcUrls: {
|
|
30
|
+
default: {
|
|
31
|
+
http: ['https://mainnet.infura.io/v3/test']
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
blockExplorers: {
|
|
35
|
+
default: {
|
|
36
|
+
name: 'Etherscan',
|
|
37
|
+
url: 'https://etherscan.io'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
networkType: 'evm',
|
|
41
|
+
nativeCurrency: {
|
|
42
|
+
name: 'Ether',
|
|
43
|
+
symbol: 'ETH',
|
|
44
|
+
decimals: 18
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'eip155:137',
|
|
49
|
+
internalId: 137,
|
|
50
|
+
name: 'Polygon',
|
|
51
|
+
namespace: 'eip155',
|
|
52
|
+
logoUrl: 'https://polygon.technology/logo.png',
|
|
53
|
+
rpcUrls: {
|
|
54
|
+
default: {
|
|
55
|
+
http: ['https://polygon-rpc.com']
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
blockExplorers: {
|
|
59
|
+
default: {
|
|
60
|
+
name: 'Polygonscan',
|
|
61
|
+
url: 'https://polygonscan.com'
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
networkType: 'evm',
|
|
65
|
+
nativeCurrency: {
|
|
66
|
+
name: 'Polygon',
|
|
67
|
+
symbol: 'MATIC',
|
|
68
|
+
decimals: 18
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
mockConnector = {
|
|
74
|
+
connect: vi.fn(),
|
|
75
|
+
disconnect: vi.fn(),
|
|
76
|
+
signMessage: vi.fn(),
|
|
77
|
+
sendTransaction: vi.fn(),
|
|
78
|
+
switchNetwork: vi.fn()
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
mockConnectors = new Map()
|
|
82
|
+
mockConnectors.set('injected' as ConnectionMode, mockConnector)
|
|
83
|
+
|
|
84
|
+
sessionManager = {
|
|
85
|
+
getSession: vi.fn().mockReturnValue({
|
|
86
|
+
address: '0x123',
|
|
87
|
+
connectionMode: 'injected' as ConnectionMode,
|
|
88
|
+
chainId: 'eip155:1',
|
|
89
|
+
networkId: 'eip155:1'
|
|
90
|
+
}),
|
|
91
|
+
updateSession: vi.fn()
|
|
92
|
+
} as any
|
|
93
|
+
eventManager = new EventManager()
|
|
94
|
+
service = new WalletCapabilitiesService(
|
|
95
|
+
networks,
|
|
96
|
+
mockConnectors,
|
|
97
|
+
sessionManager,
|
|
98
|
+
eventManager
|
|
99
|
+
)
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
it('should initialize with provided parameters', () => {
|
|
103
|
+
expect(service).toBeDefined()
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
describe('getWalletCapabilities', () => {
|
|
107
|
+
it('should throw error when no active session exists', async () => {
|
|
108
|
+
sessionManager.getSession = vi.fn().mockReturnValue(null)
|
|
109
|
+
|
|
110
|
+
await expect(service.getWalletCapabilities('0x123')).rejects.toThrow(
|
|
111
|
+
'No active connection. Connect to a wallet first.'
|
|
112
|
+
)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
it('should throw error when connection mode is not set in session', async () => {
|
|
116
|
+
sessionManager.getSession = vi.fn().mockReturnValue({
|
|
117
|
+
address: '0x123',
|
|
118
|
+
connectionMode: undefined,
|
|
119
|
+
chainId: 'eip155:1',
|
|
120
|
+
networkId: 'eip155:1'
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
await expect(service.getWalletCapabilities('0x123')).rejects.toThrow(
|
|
124
|
+
'No connection mode found in session'
|
|
125
|
+
)
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
it('should fetch and filter wallet capabilities for all networks', async () => {
|
|
129
|
+
const mockCapabilities: Record<string, EVMCapabilities> = {
|
|
130
|
+
'eip155:1': {
|
|
131
|
+
atomicBatching: { supported: true }
|
|
132
|
+
} as EVMCapabilities,
|
|
133
|
+
'eip155:137': {
|
|
134
|
+
atomicBatching: { supported: false }
|
|
135
|
+
} as EVMCapabilities,
|
|
136
|
+
'eip155:999': {
|
|
137
|
+
atomicBatching: { supported: true }
|
|
138
|
+
} as EVMCapabilities
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
mockConnector.getWalletCapabilities = vi
|
|
142
|
+
.fn()
|
|
143
|
+
.mockResolvedValue(mockCapabilities)
|
|
144
|
+
|
|
145
|
+
await service.getWalletCapabilities('0x123')
|
|
146
|
+
|
|
147
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
148
|
+
activeWalletCapabilities: {
|
|
149
|
+
'eip155:1': { atomicBatching: { supported: true } },
|
|
150
|
+
'eip155:137': { atomicBatching: { supported: false } }
|
|
151
|
+
},
|
|
152
|
+
activeNetworkWalletCapabilities: null
|
|
153
|
+
})
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
it('should handle connector error by returning empty capabilities', async () => {
|
|
157
|
+
mockConnector.getWalletCapabilities = vi
|
|
158
|
+
.fn()
|
|
159
|
+
.mockRejectedValue(new Error('Network error'))
|
|
160
|
+
|
|
161
|
+
await service.getWalletCapabilities('0x123')
|
|
162
|
+
|
|
163
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
164
|
+
activeWalletCapabilities: {},
|
|
165
|
+
activeNetworkWalletCapabilities: null
|
|
166
|
+
})
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
it('should set active network wallet capabilities when activeNetwork is provided', async () => {
|
|
170
|
+
const mockCapabilities: Record<string, EVMCapabilities> = {
|
|
171
|
+
'eip155:1': {
|
|
172
|
+
atomicBatching: { supported: true }
|
|
173
|
+
} as EVMCapabilities,
|
|
174
|
+
'eip155:137': {
|
|
175
|
+
atomicBatching: { supported: false }
|
|
176
|
+
} as EVMCapabilities
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
mockConnector.getWalletCapabilities = vi
|
|
180
|
+
.fn()
|
|
181
|
+
.mockResolvedValue(mockCapabilities)
|
|
182
|
+
|
|
183
|
+
await service.getWalletCapabilities('0x123', networks[0])
|
|
184
|
+
|
|
185
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
186
|
+
activeWalletCapabilities: {
|
|
187
|
+
'eip155:1': { atomicBatching: { supported: true } },
|
|
188
|
+
'eip155:137': { atomicBatching: { supported: false } }
|
|
189
|
+
},
|
|
190
|
+
activeNetworkWalletCapabilities: {
|
|
191
|
+
atomicBatching: { supported: true }
|
|
192
|
+
}
|
|
193
|
+
})
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
it('should set empty capabilities when activeNetwork has no matching capabilities', async () => {
|
|
197
|
+
const mockCapabilities: Record<string, EVMCapabilities> = {
|
|
198
|
+
'eip155:999': {
|
|
199
|
+
atomicBatching: { supported: true }
|
|
200
|
+
} as EVMCapabilities
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
mockConnector.getWalletCapabilities = vi
|
|
204
|
+
.fn()
|
|
205
|
+
.mockResolvedValue(mockCapabilities)
|
|
206
|
+
|
|
207
|
+
await service.getWalletCapabilities('0x123', networks[0])
|
|
208
|
+
|
|
209
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
210
|
+
activeWalletCapabilities: {},
|
|
211
|
+
activeNetworkWalletCapabilities: {}
|
|
212
|
+
})
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
it('should call getWalletCapabilities with correct parameters', async () => {
|
|
216
|
+
mockConnector.getWalletCapabilities = vi.fn().mockResolvedValue({})
|
|
217
|
+
|
|
218
|
+
await service.getWalletCapabilities('0xabc', networks[0])
|
|
219
|
+
|
|
220
|
+
expect(mockConnector.getWalletCapabilities).toHaveBeenCalledWith(
|
|
221
|
+
'0xabc',
|
|
222
|
+
networks
|
|
223
|
+
)
|
|
224
|
+
})
|
|
225
|
+
|
|
226
|
+
it('should set activeNetworkWalletCapabilities to null when no activeNetwork', async () => {
|
|
227
|
+
const mockCapabilities: Record<string, EVMCapabilities> = {
|
|
228
|
+
'eip155:1': {
|
|
229
|
+
atomicBatching: { supported: true }
|
|
230
|
+
} as EVMCapabilities
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
mockConnector.getWalletCapabilities = vi
|
|
234
|
+
.fn()
|
|
235
|
+
.mockResolvedValue(mockCapabilities)
|
|
236
|
+
|
|
237
|
+
await service.getWalletCapabilities('0x123')
|
|
238
|
+
|
|
239
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
240
|
+
activeWalletCapabilities: {
|
|
241
|
+
'eip155:1': { atomicBatching: { supported: true } }
|
|
242
|
+
},
|
|
243
|
+
activeNetworkWalletCapabilities: null
|
|
244
|
+
})
|
|
245
|
+
})
|
|
246
|
+
|
|
247
|
+
it('should preserve all capabilities properties when filtering', async () => {
|
|
248
|
+
const mockCapabilities: Record<string, EVMCapabilities> = {
|
|
249
|
+
'eip155:1': {
|
|
250
|
+
atomicBatching: { supported: true },
|
|
251
|
+
paymasterService: {
|
|
252
|
+
supported: true,
|
|
253
|
+
signerTypes: ['EOA']
|
|
254
|
+
}
|
|
255
|
+
} as any
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
mockConnector.getWalletCapabilities = vi
|
|
259
|
+
.fn()
|
|
260
|
+
.mockResolvedValue(mockCapabilities)
|
|
261
|
+
|
|
262
|
+
await service.getWalletCapabilities('0x123', networks[0])
|
|
263
|
+
|
|
264
|
+
expect(sessionManager.updateSession).toHaveBeenCalledWith({
|
|
265
|
+
activeWalletCapabilities: {
|
|
266
|
+
'eip155:1': {
|
|
267
|
+
atomicBatching: { supported: true },
|
|
268
|
+
paymasterService: {
|
|
269
|
+
supported: true,
|
|
270
|
+
signerTypes: ['EOA']
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
activeNetworkWalletCapabilities: {
|
|
275
|
+
atomicBatching: { supported: true },
|
|
276
|
+
paymasterService: {
|
|
277
|
+
supported: true,
|
|
278
|
+
signerTypes: ['EOA']
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
})
|
|
282
|
+
})
|
|
283
|
+
|
|
284
|
+
it('should handle multiple connectors but use only the active one', async () => {
|
|
285
|
+
const mockConnector1 = {
|
|
286
|
+
getWalletCapabilities: vi.fn().mockResolvedValue({
|
|
287
|
+
'eip155:1': { atomicBatching: { supported: true } }
|
|
288
|
+
})
|
|
289
|
+
} as any
|
|
290
|
+
|
|
291
|
+
const mockConnector2 = {
|
|
292
|
+
getWalletCapabilities: vi.fn().mockResolvedValue({
|
|
293
|
+
'eip155:137': { atomicBatching: { supported: false } }
|
|
294
|
+
})
|
|
295
|
+
} as any
|
|
296
|
+
|
|
297
|
+
mockConnectors.set('injected' as ConnectionMode, mockConnector1)
|
|
298
|
+
mockConnectors.set('walletConnect' as ConnectionMode, mockConnector2)
|
|
299
|
+
|
|
300
|
+
sessionManager.getSession = vi.fn().mockReturnValue({
|
|
301
|
+
address: '0x123',
|
|
302
|
+
connectionMode: 'injected' as ConnectionMode,
|
|
303
|
+
chainId: 'eip155:1',
|
|
304
|
+
networkId: 'eip155:1'
|
|
305
|
+
})
|
|
306
|
+
|
|
307
|
+
await service.getWalletCapabilities('0x123')
|
|
308
|
+
|
|
309
|
+
expect(mockConnector1.getWalletCapabilities).toHaveBeenCalled()
|
|
310
|
+
expect(mockConnector2.getWalletCapabilities).not.toHaveBeenCalled()
|
|
311
|
+
})
|
|
312
|
+
})
|
|
313
|
+
})
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Network,
|
|
3
|
+
ConnectionMode,
|
|
4
|
+
Connector,
|
|
5
|
+
EVMCapabilities
|
|
6
|
+
} from '@meshconnect/uwc-types'
|
|
7
|
+
import type { SessionManager } from '../managers/session-manager'
|
|
8
|
+
import type { EventManager } from '../managers/event-manager'
|
|
9
|
+
|
|
10
|
+
export class WalletCapabilitiesService {
|
|
11
|
+
constructor(
|
|
12
|
+
private networks: Network[],
|
|
13
|
+
private connectors: Map<ConnectionMode, Connector>,
|
|
14
|
+
private sessionManager: SessionManager,
|
|
15
|
+
private eventManager: EventManager
|
|
16
|
+
) {}
|
|
17
|
+
|
|
18
|
+
async getWalletCapabilities(
|
|
19
|
+
address: string,
|
|
20
|
+
activeNetwork?: Network
|
|
21
|
+
): Promise<void> {
|
|
22
|
+
let activeWalletCapabilities: Record<string, EVMCapabilities> = {}
|
|
23
|
+
let activeNetworkWalletCapabilities: EVMCapabilities = {}
|
|
24
|
+
|
|
25
|
+
const session = this.sessionManager.getSession()
|
|
26
|
+
|
|
27
|
+
if (!session) {
|
|
28
|
+
throw new Error('No active connection. Connect to a wallet first.')
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Check if connection mode is set
|
|
32
|
+
if (!session.connectionMode) {
|
|
33
|
+
throw new Error('No connection mode found in session')
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const activeConnector = this.connectors.get(session.connectionMode)
|
|
37
|
+
|
|
38
|
+
if (
|
|
39
|
+
activeConnector &&
|
|
40
|
+
typeof activeConnector.getWalletCapabilities === 'function'
|
|
41
|
+
) {
|
|
42
|
+
let capabilities: Record<string, EVMCapabilities>
|
|
43
|
+
try {
|
|
44
|
+
capabilities = await activeConnector.getWalletCapabilities(
|
|
45
|
+
address,
|
|
46
|
+
this.networks
|
|
47
|
+
)
|
|
48
|
+
} catch {
|
|
49
|
+
capabilities = {}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// keep only supported networks
|
|
53
|
+
activeWalletCapabilities = Object.fromEntries(
|
|
54
|
+
Object.entries(capabilities).filter(([networkId, _]) =>
|
|
55
|
+
this.networks.some(n => n.id === networkId)
|
|
56
|
+
)
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
if (activeNetwork) {
|
|
60
|
+
const firstMatch = Object.entries(activeWalletCapabilities).find(
|
|
61
|
+
([networkId]) => networkId == activeNetwork.id
|
|
62
|
+
)
|
|
63
|
+
activeNetworkWalletCapabilities = firstMatch ? firstMatch[1] : {}
|
|
64
|
+
this.sessionManager.updateSession({
|
|
65
|
+
activeWalletCapabilities: activeWalletCapabilities,
|
|
66
|
+
activeNetworkWalletCapabilities: activeNetworkWalletCapabilities
|
|
67
|
+
})
|
|
68
|
+
} else {
|
|
69
|
+
this.sessionManager.updateSession({
|
|
70
|
+
activeWalletCapabilities: activeWalletCapabilities,
|
|
71
|
+
activeNetworkWalletCapabilities: null
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
this.eventManager.notify()
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -101,9 +101,7 @@ describe('UniversalWalletConnector', () => {
|
|
|
101
101
|
let mockWalletConnectConfig: WalletConnectConfig
|
|
102
102
|
|
|
103
103
|
beforeEach(() => {
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
105
104
|
;(UniversalWalletConnector as any).instanceCount = 0
|
|
106
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
105
|
;(UniversalWalletConnector as any).hasWarnedAboutMultipleInstances = false
|
|
108
106
|
|
|
109
107
|
mockNetworks = [
|
|
@@ -24,6 +24,7 @@ import { ConnectionService } from './services/connection-service'
|
|
|
24
24
|
import { NetworkSwitchService } from './services/network-switch-service'
|
|
25
25
|
import { SignatureService } from './services/signature-service'
|
|
26
26
|
import { TransactionService } from './services/transaction-service'
|
|
27
|
+
import { WalletCapabilitiesService } from './services/wallet-capabilities-service'
|
|
27
28
|
import { createNetworkRpcMap } from './utils/network-rpc-utils'
|
|
28
29
|
|
|
29
30
|
export class UniversalWalletConnector {
|
|
@@ -36,6 +37,7 @@ export class UniversalWalletConnector {
|
|
|
36
37
|
private networkSwitchService: NetworkSwitchService
|
|
37
38
|
private signatureService: SignatureService
|
|
38
39
|
private transactionService: TransactionService
|
|
40
|
+
private walletCapabilitiesService: WalletCapabilitiesService
|
|
39
41
|
private connectors: Map<ConnectionMode, Connector>
|
|
40
42
|
private injectedConnector: InjectedConnector
|
|
41
43
|
private wallets: WalletMetadata[]
|
|
@@ -129,6 +131,12 @@ export class UniversalWalletConnector {
|
|
|
129
131
|
this.sessionManager,
|
|
130
132
|
this.connectors
|
|
131
133
|
)
|
|
134
|
+
this.walletCapabilitiesService = new WalletCapabilitiesService(
|
|
135
|
+
networks,
|
|
136
|
+
this.connectors,
|
|
137
|
+
this.sessionManager,
|
|
138
|
+
this.eventManager
|
|
139
|
+
)
|
|
132
140
|
|
|
133
141
|
// Initialize detected wallets after services are created
|
|
134
142
|
this.initializeDetectedWallets()
|
|
@@ -386,6 +394,22 @@ export class UniversalWalletConnector {
|
|
|
386
394
|
return await this.transactionService.sendTransaction(request, provider)
|
|
387
395
|
}
|
|
388
396
|
|
|
397
|
+
/**
|
|
398
|
+
* Fetch wallet capabilities for the connected wallet
|
|
399
|
+
* @param address The wallet address to fetch capabilities for
|
|
400
|
+
* @param activeNetwork Optional network to set as the active network for capabilities
|
|
401
|
+
* @returns A promise that resolves when capabilities are fetched and updated
|
|
402
|
+
*/
|
|
403
|
+
async getWalletCapabilities(
|
|
404
|
+
address: string,
|
|
405
|
+
activeNetwork?: Network
|
|
406
|
+
): Promise<void> {
|
|
407
|
+
return await this.walletCapabilitiesService.getWalletCapabilities(
|
|
408
|
+
address,
|
|
409
|
+
activeNetwork
|
|
410
|
+
)
|
|
411
|
+
}
|
|
412
|
+
|
|
389
413
|
/**
|
|
390
414
|
* Check if a connection mode is available for a specific wallet
|
|
391
415
|
* @param connectionMode The connection mode to check
|