@meshconnect/uwc-injected-connector 0.8.2 → 0.8.3
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/tron-discovery.js
CHANGED
|
@@ -20,13 +20,13 @@ obj, path
|
|
|
20
20
|
return path.split('.').reduce((acc, part) => acc?.[part], obj);
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Checks if a value looks like a
|
|
23
|
+
* Checks if a value looks like a Tron provider (has request and tronWeb)
|
|
24
24
|
*/
|
|
25
25
|
function isTronProvider(value) {
|
|
26
26
|
if (!value || typeof value !== 'object')
|
|
27
27
|
return false;
|
|
28
28
|
const provider = value;
|
|
29
|
-
return
|
|
29
|
+
return provider['tronWeb'] != null && 'request' in provider;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Generate a unique ID for a Tron wallet based on its injected path
|
|
@@ -42,7 +42,7 @@ function discoverTronProviders(injectedIds) {
|
|
|
42
42
|
const seen = new Set();
|
|
43
43
|
for (const injectedId of injectedIds) {
|
|
44
44
|
const provider = getNestedProperty(window, injectedId);
|
|
45
|
-
if (isTronProvider(provider
|
|
45
|
+
if (isTronProvider(provider) && !seen.has(injectedId)) {
|
|
46
46
|
seen.add(injectedId);
|
|
47
47
|
// Derive a human-readable name from the path
|
|
48
48
|
const name = injectedId.split('.')[0] || injectedId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron-discovery.js","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqDH;;GAEG;AACH,SAAS,iBAAiB;AACxB,8DAA8D;AAC9D,GAAwB,EACxB,IAAY;AACZ,8DAA8D;;IAE9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;AAChE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,QAAQ,GAAG,KAAgC,CAAA;IACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"tron-discovery.js","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -174,10 +174,8 @@ describe('Tron Discovery', () => {
|
|
|
174
174
|
expect(result).toEqual([])
|
|
175
175
|
})
|
|
176
176
|
|
|
177
|
-
it('should return
|
|
178
|
-
// Only tronLink exists,
|
|
179
|
-
// When tokenpocket is undefined, accessing provider.tronWeb throws,
|
|
180
|
-
// causing the outer catch to return []
|
|
177
|
+
it('should return found wallets and skip missing provider paths', async () => {
|
|
178
|
+
// Only tronLink exists, tokenpocket is not injected
|
|
181
179
|
const mockProvider = createMockTronProvider()
|
|
182
180
|
mockWindow.tronLink = mockProvider
|
|
183
181
|
|
|
@@ -186,7 +184,9 @@ describe('Tron Discovery', () => {
|
|
|
186
184
|
|
|
187
185
|
const result = await getTronWallets(wallets)
|
|
188
186
|
|
|
189
|
-
|
|
187
|
+
// Returns what was found, skips missing paths
|
|
188
|
+
expect(result).toHaveLength(1)
|
|
189
|
+
expect(result[0].uuid).toBe('tron-tronlink')
|
|
190
190
|
})
|
|
191
191
|
|
|
192
192
|
it('should deduplicate wallets for same injectedId', async () => {
|
package/src/tron-discovery.ts
CHANGED
|
@@ -74,12 +74,12 @@ function getNestedProperty(
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
* Checks if a value looks like a
|
|
77
|
+
* Checks if a value looks like a Tron provider (has request and tronWeb)
|
|
78
78
|
*/
|
|
79
79
|
function isTronProvider(value: unknown): value is TronProvider {
|
|
80
80
|
if (!value || typeof value !== 'object') return false
|
|
81
81
|
const provider = value as Record<string, unknown>
|
|
82
|
-
return
|
|
82
|
+
return provider['tronWeb'] != null && 'request' in provider
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
/**
|
|
@@ -102,7 +102,7 @@ function discoverTronProviders(injectedIds: string[]): DetectedTronWallet[] {
|
|
|
102
102
|
injectedId
|
|
103
103
|
)
|
|
104
104
|
|
|
105
|
-
if (isTronProvider(provider
|
|
105
|
+
if (isTronProvider(provider) && !seen.has(injectedId)) {
|
|
106
106
|
seen.add(injectedId)
|
|
107
107
|
|
|
108
108
|
// Derive a human-readable name from the path
|