@meshconnect/uwc-injected-connector 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963-discovery.d.ts","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAuCD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAgDjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAQrE"}
1
+ {"version":3,"file":"eip6963-discovery.d.ts","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAuCD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAoDjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAQrE"}
@@ -43,11 +43,14 @@ export async function discoverWallets() {
43
43
  if (typeof window === 'undefined') {
44
44
  return [];
45
45
  }
46
- // Check if UWCBridgeInitialized is true
46
+ // UWCBridgeChildInitialized is only initialized if app runs in an iframe. We can skip checking for bridge proxy providers when it's not necessary.
47
47
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
48
  // @ts-ignore - window.UWCBridgeInitialized is set by the bridge
49
- if (window.UWCBridgeInitialized === true) {
50
- return pollForBridgeWallets();
49
+ if (window.UWCBridgeChildInitialized === true) {
50
+ const wallets = await pollForBridgeWallets();
51
+ if (wallets.length > 0) {
52
+ return wallets;
53
+ }
51
54
  }
52
55
  // Original EIP-6963 discovery
53
56
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963-discovery.js","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eip6963-discovery.js","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH;;;GAGG;AACH,KAAK,UAAU,oBAAoB;IACjC,MAAM,YAAY,GAAG,GAAG,CAAA,CAAC,mBAAmB;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAA,CAAC,6BAA6B;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,4CAA4C;YAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;gBACzC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACX,OAAM;YACR,CAAC;YAED,8CAA8C;YAC9C,6DAA6D;YAC7D,0DAA0D;YAC1D,IAAI,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClE,6DAA6D;gBAC7D,aAAa;gBACb,MAAM,aAAa,GAAG,MAAM,CAAC,cAAkC,CAAA;gBAC/D,OAAO,CAAC,aAAa,CAAC,CAAA;gBACtB,OAAM;YACR,CAAC;YAED,mBAAmB;YACnB,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAChC,CAAC,CAAA;QAED,gBAAgB;QAChB,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,6CAA6C;IAC7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,mJAAmJ;IACnJ,6DAA6D;IAC7D,gEAAgE;IAChE,IAAI,MAAM,CAAC,yBAAyB,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAA;QAE5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,eAAe,GAAqB,EAAE,CAAA;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAA,CAAC,8CAA8C;QAEnE,2CAA2C;QAC3C,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;YAC1C,MAAM,iBAAiB,GAAG,KAAqC,CAAA;YAC/D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAA;YAEnD,gDAAgD;YAChD,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;YAE1E,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAA;QAED,kCAAkC;QAClC,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAA;QAEvE,yCAAyC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAE1D,qCAAqC;QACrC,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAA;YAC1E,OAAO,CAAC,eAAe,CAAC,CAAA;QAC1B,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAA;QACvC,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-injected-connector",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Injected connector for Universal Wallet Connector",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -87,11 +87,15 @@ export async function discoverWallets(): Promise<DetectedWallet[]> {
87
87
  if (typeof window === 'undefined') {
88
88
  return []
89
89
  }
90
- // Check if UWCBridgeInitialized is true
90
+ // UWCBridgeChildInitialized is only initialized if app runs in an iframe. We can skip checking for bridge proxy providers when it's not necessary.
91
91
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
92
92
  // @ts-ignore - window.UWCBridgeInitialized is set by the bridge
93
- if (window.UWCBridgeInitialized === true) {
94
- return pollForBridgeWallets()
93
+ if (window.UWCBridgeChildInitialized === true) {
94
+ const wallets = await pollForBridgeWallets()
95
+
96
+ if (wallets.length > 0) {
97
+ return wallets
98
+ }
95
99
  }
96
100
 
97
101
  // Original EIP-6963 discovery
@@ -1,44 +0,0 @@
1
- import type { Network, ExtensionInjectedProvider, IntegratedBrowserInjectedProvider, Connector, ConnectorResult, SwitchNetworkResult, Namespace, DetectedWalletInfo } from '@meshconnect/uwc-types';
2
- export declare class InjectedConnector implements Connector {
3
- private detectedEIP6963Wallets;
4
- private detectedSolanaWallets;
5
- private connectedProviders;
6
- constructor();
7
- /**
8
- * Discovers available wallets
9
- */
10
- private initializeWalletDiscovery;
11
- /**
12
- * Detect available Solana wallets in the browser
13
- */
14
- private detectSolanaWallets;
15
- /**
16
- * Get EVM provider - first try EIP-6963 discovered wallets, then fall back to window.ethereum
17
- */
18
- private getEVMProvider;
19
- /**
20
- * Get Solana provider based on metadata
21
- */
22
- private getSolanaProvider;
23
- /**
24
- * Get available wallets for a specific namespace
25
- * @param namespace The namespace to check for available wallets
26
- * @returns Promise that resolves to detected wallets for the namespace
27
- */
28
- getAvailableWallets(namespace: Namespace): Promise<DetectedWalletInfo[]>;
29
- connect(network: Network, provider: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider): Promise<ConnectorResult>;
30
- switchNetwork(network: Network): Promise<SwitchNetworkResult>;
31
- /**
32
- * Connect to EIP155 in the background (when primary namespace is Solana)
33
- */
34
- private connectEIP155InBackground;
35
- /**
36
- * Connect to Solana in the background (when primary namespace is EIP155)
37
- */
38
- private connectSolanaInBackground;
39
- /**
40
- * Disconnect from all providers
41
- */
42
- disconnect(): Promise<void>;
43
- }
44
- //# sourceMappingURL=injected-connector.old.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injected-connector.old.d.ts","sourceRoot":"","sources":["../src/injected-connector.old.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,eAAe,EACf,mBAAmB,EAEnB,SAAS,EACT,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAY/B,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,kBAAkB,CAAiC;;IAO3D;;OAEG;YACW,yBAAyB;IAQvC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuE3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;;;OAIG;IACG,mBAAmB,CACvB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA6B1B,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAiLrB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkHnE;;OAEG;YACW,yBAAyB;IAwCvC;;OAEG;YACW,yBAAyB;IAsCvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
@@ -1,491 +0,0 @@
1
- import { getAvailableWallets as getEIP6963Wallets } from './eip6963-discovery';
2
- export class InjectedConnector {
3
- detectedEIP6963Wallets = [];
4
- detectedSolanaWallets = [];
5
- connectedProviders = new Map();
6
- constructor() {
7
- // Initialize wallet discovery on construction
8
- this.initializeWalletDiscovery();
9
- }
10
- /**
11
- * Discovers available wallets
12
- */
13
- async initializeWalletDiscovery() {
14
- // Discover EIP-6963 wallets
15
- this.detectedEIP6963Wallets = await getEIP6963Wallets();
16
- // Discover Solana wallets
17
- this.detectSolanaWallets();
18
- }
19
- /**
20
- * Detect available Solana wallets in the browser
21
- */
22
- detectSolanaWallets() {
23
- const wallets = [];
24
- // Check common Solana wallet locations and identify them
25
- const checkProvider = (provider, name, injectedId) => {
26
- if (provider && typeof provider.connect === 'function') {
27
- if (injectedId) {
28
- wallets.push({ name, provider, injectedId });
29
- }
30
- else {
31
- wallets.push({ name, provider });
32
- }
33
- }
34
- };
35
- // Check window.solana and identify the wallet type
36
- if (window.solana) {
37
- const provider = window.solana;
38
- let name = 'Solana Wallet';
39
- let injectedId;
40
- if (provider.isPhantom) {
41
- name = 'Phantom';
42
- injectedId = 'isPhantom';
43
- }
44
- else if (provider.isSolflare) {
45
- name = 'Solflare';
46
- injectedId = 'isSolflare';
47
- }
48
- else if (provider.isTrust || provider.isTrustWallet) {
49
- name = 'Trust Wallet';
50
- injectedId = provider.isTrust ? 'isTrust' : 'isTrustWallet';
51
- }
52
- else if (provider.isExodus) {
53
- name = 'Exodus';
54
- injectedId = 'isExodus';
55
- }
56
- checkProvider(provider, name, injectedId);
57
- }
58
- // Check nested providers
59
- if (window.phantom?.solana) {
60
- checkProvider(window.phantom.solana, 'Phantom', 'isPhantom');
61
- }
62
- if (window.solflare) {
63
- checkProvider(window.solflare, 'Solflare', 'isSolflare');
64
- }
65
- if (window.trustwallet?.solana) {
66
- checkProvider(window.trustwallet.solana, 'Trust Wallet', 'isTrust');
67
- }
68
- if (window.exodus?.solana) {
69
- checkProvider(window.exodus.solana, 'Exodus', 'isExodus');
70
- }
71
- // Remove duplicates based on provider reference
72
- const uniqueWallets = wallets.filter((wallet, index, self) => index === self.findIndex(w => w.provider === wallet.provider));
73
- this.detectedSolanaWallets = uniqueWallets;
74
- }
75
- /**
76
- * Get EVM provider - first try EIP-6963 discovered wallets, then fall back to window.ethereum
77
- */
78
- getEVMProvider(eip155Name, injectedId) {
79
- // First, try to find the provider from EIP-6963 discovered wallets
80
- const detectedWallet = this.detectedEIP6963Wallets.find(wallet => wallet.name.toLowerCase() === eip155Name.toLowerCase());
81
- if (detectedWallet && detectedWallet.provider) {
82
- return detectedWallet.provider;
83
- }
84
- // Fall back to window.ethereum if no EIP-6963 provider found
85
- const ethereum = window.ethereum;
86
- if (ethereum) {
87
- // Check if the specific wallet is available via injectedId
88
- if (injectedId && !ethereum[injectedId]) {
89
- throw new Error(`Wallet ${eip155Name} is not available`);
90
- }
91
- return ethereum;
92
- }
93
- throw new Error(`No provider found for ${eip155Name}`);
94
- }
95
- /**
96
- * Get Solana provider based on metadata
97
- */
98
- getSolanaProvider(solanaMetadata) {
99
- if (!solanaMetadata || !solanaMetadata.injectedId) {
100
- // Fallback to checking common Solana provider locations
101
- if (window.solana)
102
- return window.solana;
103
- if (window.phantom?.solana)
104
- return window.phantom.solana;
105
- if (window.solflare?.solana)
106
- return window.solflare.solana;
107
- return null;
108
- }
109
- const { injectedId, ignoredInjectedIds } = solanaMetadata;
110
- // Helper function to validate provider
111
- const isValidProvider = (provider) => {
112
- if (!provider)
113
- return false;
114
- // Check if provider has ignored IDs (meaning it's the wrong wallet)
115
- if (ignoredInjectedIds && ignoredInjectedIds.length > 0) {
116
- for (const ignoredId of ignoredInjectedIds) {
117
- if (provider[ignoredId] === true) {
118
- return false;
119
- }
120
- }
121
- }
122
- // Check if provider has the required injectedId property
123
- // For example, if injectedId is 'isPhantom', check provider.isPhantom === true
124
- if (injectedId.startsWith('is')) {
125
- return provider[injectedId] === true;
126
- }
127
- // For non-boolean identifiers, just check existence
128
- return !!provider[injectedId];
129
- };
130
- // Strategy 1: Check window[walletName].solana (e.g., window.phantom.solana)
131
- const walletName = injectedId.replace(/^is/, '').toLowerCase();
132
- const nestedProvider = window[walletName]?.solana;
133
- if (nestedProvider && isValidProvider(nestedProvider)) {
134
- return nestedProvider;
135
- }
136
- // Strategy 2: Check window[walletName] directly (e.g., window.solflare)
137
- const directProvider = window[walletName];
138
- if (directProvider && isValidProvider(directProvider)) {
139
- return directProvider;
140
- }
141
- // Strategy 3: Check window.solana with validation
142
- if (window.solana && isValidProvider(window.solana)) {
143
- return window.solana;
144
- }
145
- // Strategy 4: For wallets that might inject differently (e.g., window.trustwallet.solana)
146
- // Check various common patterns
147
- const commonPatterns = [
148
- window[`${walletName}wallet`]?.solana,
149
- window[`${walletName}Wallet`]?.solana,
150
- window[walletName.replace('wallet', '')]?.solana
151
- ];
152
- for (const provider of commonPatterns) {
153
- if (provider && isValidProvider(provider)) {
154
- return provider;
155
- }
156
- }
157
- return null;
158
- }
159
- /**
160
- * Get available wallets for a specific namespace
161
- * @param namespace The namespace to check for available wallets
162
- * @returns Promise that resolves to detected wallets for the namespace
163
- */
164
- async getAvailableWallets(namespace) {
165
- switch (namespace) {
166
- case 'eip155':
167
- // For EIP155, use EIP-6963 discovery
168
- if (this.detectedEIP6963Wallets.length === 0) {
169
- this.detectedEIP6963Wallets = await getEIP6963Wallets();
170
- }
171
- // Convert to DetectedWalletInfo format
172
- return this.detectedEIP6963Wallets.map(wallet => ({
173
- uuid: wallet.uuid,
174
- name: wallet.name,
175
- icon: wallet.icon,
176
- rdns: wallet.rdns
177
- }));
178
- case 'solana':
179
- // Return detected Solana wallets
180
- return this.detectedSolanaWallets.map(wallet => ({
181
- uuid: `solana-${wallet.name.toLowerCase().replace(/\s+/g, '-')}`,
182
- name: wallet.name,
183
- icon: '', // Solana wallets don't provide icons via injection
184
- rdns: wallet.injectedId || wallet.name.toLowerCase()
185
- }));
186
- default:
187
- return [];
188
- }
189
- }
190
- async connect(network, provider) {
191
- const availableAddresses = [];
192
- let address;
193
- switch (network.namespace) {
194
- case 'eip155': {
195
- const eip155Metadata = provider.namespaceMetaData?.eip155;
196
- if (!eip155Metadata) {
197
- throw new Error('No EIP155 metadata found for provider');
198
- }
199
- const evmProvider = this.getEVMProvider(eip155Metadata.eip155Name, eip155Metadata.injectedId);
200
- // Store the provider for future use
201
- this.connectedProviders.set('eip155', evmProvider);
202
- try {
203
- // Request account access
204
- const accounts = await evmProvider.request({
205
- method: 'eth_requestAccounts'
206
- });
207
- if (!accounts || accounts.length === 0) {
208
- throw new Error('No accounts found');
209
- }
210
- address = accounts[0].toLowerCase();
211
- // Get the current chain ID
212
- const currentChainId = await evmProvider.request({
213
- method: 'eth_chainId'
214
- });
215
- // Parse the expected chain ID from the network ID (format: "eip155:1")
216
- const expectedChainId = network.id.split(':')[1];
217
- if (!expectedChainId) {
218
- throw new Error('Invalid network ID format');
219
- }
220
- const expectedChainIdHex = '0x' + parseInt(expectedChainId).toString(16);
221
- // Switch to the correct network if needed
222
- if (currentChainId !== expectedChainIdHex) {
223
- try {
224
- await evmProvider.request({
225
- method: 'wallet_switchEthereumChain',
226
- params: [{ chainId: expectedChainIdHex }]
227
- });
228
- }
229
- catch (switchError) {
230
- // This error code indicates that the chain has not been added
231
- if (switchError.code === 4902 &&
232
- eip155Metadata.supportsAddingNetworks) {
233
- // Try to add the network
234
- const networkParams = {
235
- chainId: expectedChainIdHex,
236
- chainName: network.name,
237
- nativeCurrency: network.nativeCurrency,
238
- rpcUrls: network.rpcUrls?.default.http || [],
239
- blockExplorerUrls: network.blockExplorers
240
- ? [network.blockExplorers.default.url]
241
- : []
242
- };
243
- await evmProvider.request({
244
- method: 'wallet_addEthereumChain',
245
- params: [networkParams]
246
- });
247
- }
248
- else {
249
- throw switchError;
250
- }
251
- }
252
- }
253
- // Get available addresses for all supported EIP155 networks
254
- provider.supportedNetworkIds.forEach(networkId => {
255
- if (networkId.startsWith('eip155:')) {
256
- availableAddresses.push({
257
- address,
258
- networkId
259
- });
260
- }
261
- });
262
- // Also check if Solana is supported and connect to it
263
- if (provider.namespaceMetaData?.solana ||
264
- provider.supportedNetworkIds.some(id => id.startsWith('solana:'))) {
265
- await this.connectSolanaInBackground(provider, availableAddresses);
266
- }
267
- }
268
- catch (error) {
269
- throw new Error(`Failed to connect to EVM wallet: ${error instanceof Error ? error.message : 'Unknown error'}`);
270
- }
271
- break;
272
- }
273
- case 'solana': {
274
- const solanaMetadata = provider.namespaceMetaData?.solana;
275
- const solanaProvider = this.getSolanaProvider(solanaMetadata);
276
- if (!solanaProvider) {
277
- throw new Error('No Solana provider found');
278
- }
279
- // Store the provider for future use
280
- this.connectedProviders.set('solana', solanaProvider);
281
- try {
282
- // Request connection if not already connected
283
- if (!solanaProvider.isConnected) {
284
- const response = await solanaProvider.connect();
285
- if (!response || !response.publicKey) {
286
- throw new Error('Failed to connect to Solana wallet');
287
- }
288
- }
289
- // Get the public key (address)
290
- const publicKey = solanaProvider.publicKey;
291
- if (!publicKey) {
292
- throw new Error('No Solana public key found');
293
- }
294
- address = publicKey.toString();
295
- // Get available addresses for all supported Solana networks
296
- provider.supportedNetworkIds.forEach(networkId => {
297
- if (networkId.startsWith('solana:')) {
298
- availableAddresses.push({
299
- address,
300
- networkId
301
- });
302
- }
303
- });
304
- // Also check if EIP155 is supported and connect to it
305
- if (provider.namespaceMetaData?.eip155 ||
306
- provider.supportedNetworkIds.some(id => id.startsWith('eip155:'))) {
307
- await this.connectEIP155InBackground(network, provider, availableAddresses);
308
- }
309
- }
310
- catch (error) {
311
- throw new Error(`Failed to connect to Solana wallet: ${error instanceof Error ? error.message : 'Unknown error'}`);
312
- }
313
- break;
314
- }
315
- default:
316
- throw new Error(`Namespace '${network.namespace}' is not implemented yet. Only 'eip155' and 'solana' are currently supported.`);
317
- }
318
- return {
319
- networkId: network.id,
320
- address,
321
- availableAddresses
322
- };
323
- }
324
- async switchNetwork(network) {
325
- let address;
326
- switch (network.namespace) {
327
- case 'eip155': {
328
- const evmProvider = this.connectedProviders.get('eip155');
329
- if (!evmProvider) {
330
- throw new Error('No connected Ethereum provider found');
331
- }
332
- try {
333
- // Get the current account
334
- const accounts = await evmProvider.request({
335
- method: 'eth_accounts'
336
- });
337
- if (!accounts || accounts.length === 0) {
338
- throw new Error('No accounts connected');
339
- }
340
- address = accounts[0].toLowerCase();
341
- // Parse the expected chain ID from the network ID (format: "eip155:1")
342
- const expectedChainId = network.id.split(':')[1];
343
- if (!expectedChainId) {
344
- throw new Error('Invalid network ID format');
345
- }
346
- const expectedChainIdHex = '0x' + parseInt(expectedChainId).toString(16);
347
- // Switch to the new network
348
- try {
349
- await evmProvider.request({
350
- method: 'wallet_switchEthereumChain',
351
- params: [{ chainId: expectedChainIdHex }]
352
- });
353
- }
354
- catch (switchError) {
355
- // This error code indicates that the chain has not been added
356
- if (switchError.code === 4902) {
357
- // Try to add the network
358
- const networkParams = {
359
- chainId: expectedChainIdHex,
360
- chainName: network.name,
361
- nativeCurrency: network.nativeCurrency,
362
- rpcUrls: network.rpcUrls?.default.http || [],
363
- blockExplorerUrls: network.blockExplorers
364
- ? [network.blockExplorers.default.url]
365
- : []
366
- };
367
- await evmProvider.request({
368
- method: 'wallet_addEthereumChain',
369
- params: [networkParams]
370
- });
371
- }
372
- else {
373
- throw switchError;
374
- }
375
- }
376
- }
377
- catch (error) {
378
- throw new Error(`Failed to switch EVM network: ${error instanceof Error ? error.message : 'Unknown error'}`);
379
- }
380
- break;
381
- }
382
- case 'solana': {
383
- // For Solana, network switching is typically handled at the RPC level
384
- // The wallet doesn't switch networks like EVM wallets do
385
- const solanaProvider = this.connectedProviders.get('solana');
386
- if (!solanaProvider) {
387
- throw new Error('No connected Solana provider found');
388
- }
389
- try {
390
- // Check if connected
391
- if (!solanaProvider.isConnected) {
392
- throw new Error('Solana wallet is not connected');
393
- }
394
- // Get the public key (address)
395
- const publicKey = solanaProvider.publicKey;
396
- if (!publicKey) {
397
- throw new Error('No Solana public key found');
398
- }
399
- address = publicKey.toString();
400
- // Note: Solana doesn't switch networks at the wallet level
401
- // Network selection is handled by the RPC endpoint
402
- }
403
- catch (error) {
404
- throw new Error(`Failed with Solana network operation: ${error instanceof Error ? error.message : 'Unknown error'}`);
405
- }
406
- break;
407
- }
408
- default:
409
- throw new Error(`Cannot switch to namespace '${network.namespace}'. Only 'eip155' and 'solana' are currently supported.`);
410
- }
411
- return {
412
- networkId: network.id,
413
- address
414
- };
415
- }
416
- /**
417
- * Connect to EIP155 in the background (when primary namespace is Solana)
418
- */
419
- async connectEIP155InBackground(_network, provider, availableAddresses) {
420
- try {
421
- const eip155Metadata = provider.namespaceMetaData?.eip155;
422
- if (!eip155Metadata)
423
- return;
424
- const evmProvider = this.getEVMProvider(eip155Metadata.eip155Name, eip155Metadata.injectedId);
425
- // Store the provider
426
- this.connectedProviders.set('eip155', evmProvider);
427
- // Request accounts
428
- const accounts = await evmProvider.request({
429
- method: 'eth_requestAccounts'
430
- });
431
- if (accounts && accounts.length > 0) {
432
- const address = accounts[0].toLowerCase();
433
- // Add available addresses for all supported EIP155 networks
434
- provider.supportedNetworkIds.forEach(networkId => {
435
- if (networkId.startsWith('eip155:')) {
436
- availableAddresses.push({
437
- address,
438
- networkId
439
- });
440
- }
441
- });
442
- }
443
- }
444
- catch {
445
- // Silently fail for background namespace connection
446
- }
447
- }
448
- /**
449
- * Connect to Solana in the background (when primary namespace is EIP155)
450
- */
451
- async connectSolanaInBackground(provider, availableAddresses) {
452
- try {
453
- const solanaMetadata = provider.namespaceMetaData?.solana;
454
- const solanaProvider = this.getSolanaProvider(solanaMetadata);
455
- if (!solanaProvider)
456
- return;
457
- // Store the provider
458
- this.connectedProviders.set('solana', solanaProvider);
459
- // Request connection if not already connected
460
- if (!solanaProvider.isConnected) {
461
- const response = await solanaProvider.connect();
462
- if (!response || !response.publicKey)
463
- return;
464
- }
465
- const publicKey = solanaProvider.publicKey;
466
- if (publicKey) {
467
- const address = publicKey.toString();
468
- // Add available addresses for all supported Solana networks
469
- provider.supportedNetworkIds.forEach(networkId => {
470
- if (networkId.startsWith('solana:')) {
471
- availableAddresses.push({
472
- address,
473
- networkId
474
- });
475
- }
476
- });
477
- }
478
- }
479
- catch {
480
- // Silently fail for background namespace connection
481
- }
482
- }
483
- /**
484
- * Disconnect from all providers
485
- */
486
- async disconnect() {
487
- // Clear all connected providers
488
- this.connectedProviders.clear();
489
- }
490
- }
491
- //# sourceMappingURL=injected-connector.old.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injected-connector.old.js","sourceRoot":"","sources":["../src/injected-connector.old.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * EVM provider management
3
- */
4
- import type { Network } from '@meshconnect/uwc-types';
5
- export interface EVMProviderManager {
6
- getProvider(eip155Name: string, injectedId?: string): any;
7
- switchNetwork(provider: any, network: Network): Promise<void>;
8
- }
9
- export declare class EVMProvider implements EVMProviderManager {
10
- private detectedEIP6963Wallets;
11
- initialize(): Promise<void>;
12
- getProvider(eip155Name: string, injectedId?: string): any;
13
- switchNetwork(provider: any, network: Network): Promise<void>;
14
- requestAccounts(provider: any): Promise<string[]>;
15
- getAccounts(provider: any): Promise<string[]>;
16
- getDetectedWallets(): any[];
17
- }
18
- //# sourceMappingURL=evm-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evm-provider.d.ts","sourceRoot":"","sources":["../../src/providers/evm-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGrD,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IACzD,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D;AAED,qBAAa,WAAY,YAAW,kBAAkB;IACpD,OAAO,CAAC,sBAAsB,CAAY;IAEpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG;IAuBnD,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C7D,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOjD,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOnD,kBAAkB,IAAI,GAAG,EAAE;CAG5B"}
@@ -1,86 +0,0 @@
1
- /**
2
- * EVM provider management
3
- */
4
- import { getAvailableWallets as getEIP6963Wallets } from '../eip6963-discovery';
5
- export class EVMProvider {
6
- detectedEIP6963Wallets = [];
7
- async initialize() {
8
- this.detectedEIP6963Wallets = await getEIP6963Wallets();
9
- }
10
- getProvider(eip155Name, injectedId) {
11
- // First, try to find the provider from EIP-6963 discovered wallets
12
- const detectedWallet = this.detectedEIP6963Wallets.find(wallet => wallet.name.toLowerCase() === eip155Name.toLowerCase());
13
- if (detectedWallet && detectedWallet.provider) {
14
- return detectedWallet.provider;
15
- }
16
- // Fall back to window.ethereum if no EIP-6963 provider found
17
- const ethereum = window.ethereum;
18
- if (ethereum) {
19
- // Check if the specific wallet is available via injectedId
20
- if (injectedId && !ethereum[injectedId]) {
21
- throw new Error(`Wallet ${eip155Name} is not available`);
22
- }
23
- return ethereum;
24
- }
25
- throw new Error(`No provider found for ${eip155Name}`);
26
- }
27
- async switchNetwork(provider, network) {
28
- // Get the current chain ID
29
- const currentChainId = await provider.request({
30
- method: 'eth_chainId'
31
- });
32
- // Parse the expected chain ID from the network ID (format: "eip155:1")
33
- const expectedChainId = network.id.split(':')[1];
34
- if (!expectedChainId) {
35
- throw new Error('Invalid network ID format');
36
- }
37
- const expectedChainIdHex = '0x' + parseInt(expectedChainId).toString(16);
38
- // Switch to the correct network if needed
39
- if (currentChainId !== expectedChainIdHex) {
40
- try {
41
- await provider.request({
42
- method: 'wallet_switchEthereumChain',
43
- params: [{ chainId: expectedChainIdHex }]
44
- });
45
- }
46
- catch (switchError) {
47
- // This error code indicates that the chain has not been added
48
- if (switchError.code === 4902) {
49
- // Try to add the network
50
- const networkParams = {
51
- chainId: expectedChainIdHex,
52
- chainName: network.name,
53
- nativeCurrency: network.nativeCurrency,
54
- rpcUrls: network.rpcUrls?.default.http || [],
55
- blockExplorerUrls: network.blockExplorers
56
- ? [network.blockExplorers.default.url]
57
- : []
58
- };
59
- await provider.request({
60
- method: 'wallet_addEthereumChain',
61
- params: [networkParams]
62
- });
63
- }
64
- else {
65
- throw switchError;
66
- }
67
- }
68
- }
69
- }
70
- async requestAccounts(provider) {
71
- const accounts = await provider.request({
72
- method: 'eth_requestAccounts'
73
- });
74
- return accounts || [];
75
- }
76
- async getAccounts(provider) {
77
- const accounts = await provider.request({
78
- method: 'eth_accounts'
79
- });
80
- return accounts || [];
81
- }
82
- getDetectedWallets() {
83
- return this.detectedEIP6963Wallets;
84
- }
85
- }
86
- //# sourceMappingURL=evm-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evm-provider.js","sourceRoot":"","sources":["../../src/providers/evm-provider.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Solana provider management
3
- */
4
- import type { SolanaMetadata } from '@meshconnect/uwc-types';
5
- export interface DetectedSolanaWallet {
6
- name: string;
7
- provider: any;
8
- injectedId?: string;
9
- }
10
- export interface SolanaProviderManager {
11
- getProvider(metadata?: SolanaMetadata): any;
12
- detectWallets(): DetectedSolanaWallet[];
13
- }
14
- export declare class SolanaProvider implements SolanaProviderManager {
15
- private detectedWallets;
16
- initialize(): void;
17
- getProvider(metadata?: SolanaMetadata): any;
18
- detectWallets(): DetectedSolanaWallet[];
19
- connect(provider: any): Promise<any>;
20
- getDetectedWallets(): DetectedSolanaWallet[];
21
- }
22
- //# sourceMappingURL=solana-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-provider.d.ts","sourceRoot":"","sources":["../../src/providers/solana-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,GAAG,CAAA;IAC3C,aAAa,IAAI,oBAAoB,EAAE,CAAA;CACxC;AAED,qBAAa,cAAe,YAAW,qBAAqB;IAC1D,OAAO,CAAC,eAAe,CAA6B;IAEpD,UAAU,IAAI,IAAI;IAIlB,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,GAAG;IAsE3C,aAAa,IAAI,oBAAoB,EAAE;IAuEjC,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAW1C,kBAAkB,IAAI,oBAAoB,EAAE;CAG7C"}
@@ -1,137 +0,0 @@
1
- /**
2
- * Solana provider management
3
- */
4
- export class SolanaProvider {
5
- detectedWallets = [];
6
- initialize() {
7
- this.detectedWallets = this.detectWallets();
8
- }
9
- getProvider(metadata) {
10
- if (!metadata || !metadata.injectedId) {
11
- // Fallback to checking common Solana provider locations
12
- if (window.solana)
13
- return window.solana;
14
- if (window.phantom?.solana)
15
- return window.phantom.solana;
16
- if (window.solflare?.solana)
17
- return window.solflare.solana;
18
- return null;
19
- }
20
- const { injectedId, ignoredInjectedIds } = metadata;
21
- // Helper function to validate provider
22
- const isValidProvider = (provider) => {
23
- if (!provider)
24
- return false;
25
- // Check if provider has ignored IDs (meaning it's the wrong wallet)
26
- if (ignoredInjectedIds && ignoredInjectedIds.length > 0) {
27
- for (const ignoredId of ignoredInjectedIds) {
28
- if (provider[ignoredId] === true) {
29
- return false;
30
- }
31
- }
32
- }
33
- // Check if provider has the required injectedId property
34
- // For example, if injectedId is 'isPhantom', check provider.isPhantom === true
35
- if (injectedId.startsWith('is')) {
36
- return provider[injectedId] === true;
37
- }
38
- // For non-boolean identifiers, just check existence
39
- return !!provider[injectedId];
40
- };
41
- // Strategy 1: Check window[walletName].solana (e.g., window.phantom.solana)
42
- const walletName = injectedId.replace(/^is/, '').toLowerCase();
43
- const nestedProvider = window[walletName]?.solana;
44
- if (nestedProvider && isValidProvider(nestedProvider)) {
45
- return nestedProvider;
46
- }
47
- // Strategy 2: Check window[walletName] directly (e.g., window.solflare)
48
- const directProvider = window[walletName];
49
- if (directProvider && isValidProvider(directProvider)) {
50
- return directProvider;
51
- }
52
- // Strategy 3: Check window.solana with validation
53
- if (window.solana && isValidProvider(window.solana)) {
54
- return window.solana;
55
- }
56
- // Strategy 4: For wallets that might inject differently (e.g., window.trustwallet.solana)
57
- // Check various common patterns
58
- const commonPatterns = [
59
- window[`${walletName}wallet`]?.solana,
60
- window[`${walletName}Wallet`]?.solana,
61
- window[walletName.replace('wallet', '')]?.solana
62
- ];
63
- for (const provider of commonPatterns) {
64
- if (provider && isValidProvider(provider)) {
65
- return provider;
66
- }
67
- }
68
- return null;
69
- }
70
- detectWallets() {
71
- const wallets = [];
72
- // Check common Solana wallet locations and identify them
73
- const checkProvider = (provider, name, injectedId) => {
74
- if (provider && typeof provider.connect === 'function') {
75
- if (injectedId) {
76
- wallets.push({ name, provider, injectedId });
77
- }
78
- else {
79
- wallets.push({ name, provider });
80
- }
81
- }
82
- };
83
- // Check window.solana and identify the wallet type
84
- if (window.solana) {
85
- const provider = window.solana;
86
- let name = 'Solana Wallet';
87
- let injectedId;
88
- if (provider.isPhantom) {
89
- name = 'Phantom';
90
- injectedId = 'isPhantom';
91
- }
92
- else if (provider.isSolflare) {
93
- name = 'Solflare';
94
- injectedId = 'isSolflare';
95
- }
96
- else if (provider.isTrust || provider.isTrustWallet) {
97
- name = 'Trust Wallet';
98
- injectedId = provider.isTrust ? 'isTrust' : 'isTrustWallet';
99
- }
100
- else if (provider.isExodus) {
101
- name = 'Exodus';
102
- injectedId = 'isExodus';
103
- }
104
- checkProvider(provider, name, injectedId);
105
- }
106
- // Check nested providers
107
- if (window.phantom?.solana) {
108
- checkProvider(window.phantom.solana, 'Phantom', 'isPhantom');
109
- }
110
- if (window.solflare) {
111
- checkProvider(window.solflare, 'Solflare', 'isSolflare');
112
- }
113
- if (window.trustwallet?.solana) {
114
- checkProvider(window.trustwallet.solana, 'Trust Wallet', 'isTrust');
115
- }
116
- if (window.exodus?.solana) {
117
- checkProvider(window.exodus.solana, 'Exodus', 'isExodus');
118
- }
119
- // Remove duplicates based on provider reference
120
- const uniqueWallets = wallets.filter((wallet, index, self) => index === self.findIndex(w => w.provider === wallet.provider));
121
- return uniqueWallets;
122
- }
123
- async connect(provider) {
124
- if (!provider.isConnected) {
125
- const response = await provider.connect();
126
- if (!response || !response.publicKey) {
127
- throw new Error('Failed to connect to Solana wallet');
128
- }
129
- return response;
130
- }
131
- return { publicKey: provider.publicKey };
132
- }
133
- getDetectedWallets() {
134
- return this.detectedWallets;
135
- }
136
- }
137
- //# sourceMappingURL=solana-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-provider.js","sourceRoot":"","sources":["../../src/providers/solana-provider.ts"],"names":[],"mappings":"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"}