@meshconnect/uwc-core 0.7.5 → 0.7.7
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":"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,EAMV,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;YAyDF,kBAAkB;
|
|
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,EAMV,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;YAyDF,kBAAkB;IA0ChC,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,2BAA2B;IA6C7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAiBtC,UAAU,IAAI,cAAc,EAAE;IAI9B,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAI9C,WAAW,IAAI,OAAO,EAAE;IAIxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;CAiBjC"}
|
|
@@ -57,22 +57,31 @@ export class ConnectionService {
|
|
|
57
57
|
}
|
|
58
58
|
async connectWithURIPoll(connector, network, provider) {
|
|
59
59
|
const connectPromise = connector.connect(network, provider);
|
|
60
|
+
let pollingStopped = false;
|
|
60
61
|
const pollForURI = setInterval(() => {
|
|
61
62
|
const uri = this.getConnectionURI();
|
|
62
63
|
if (uri) {
|
|
63
|
-
|
|
64
|
+
stopPolling();
|
|
64
65
|
this.eventManager.notify();
|
|
65
66
|
}
|
|
66
67
|
}, 100);
|
|
67
|
-
|
|
68
|
+
// Additional safeguard to stop polling after a reasonable timeout (e.g. 5 minutes)
|
|
69
|
+
const watchdogTimeoutId = setTimeout(() => {
|
|
70
|
+
stopPolling();
|
|
71
|
+
}, 5 * 60 * 1000);
|
|
72
|
+
function stopPolling() {
|
|
73
|
+
if (pollingStopped) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
pollingStopped = true;
|
|
68
77
|
clearInterval(pollForURI);
|
|
69
|
-
|
|
78
|
+
clearTimeout(watchdogTimeoutId);
|
|
79
|
+
}
|
|
70
80
|
try {
|
|
71
81
|
return await connectPromise;
|
|
72
82
|
}
|
|
73
83
|
finally {
|
|
74
|
-
|
|
75
|
-
clearTimeout(timeoutId);
|
|
84
|
+
stopPolling();
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
getConnector(connectionMode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,iBAAiB;IAIlB;IACA;IACA;IACA;IACA;IACA;IARF,eAAe,GAAqB,IAAI,CAAA;IAEhD,YACU,QAAmB,EACnB,OAAyB,EACzB,cAA8B,EAC9B,UAA0C,EAC1C,sBAA+B,EAC/B,YAA0B;QAL1B,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAkB;QACzB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAgC;QAC1C,2BAAsB,GAAtB,sBAAsB,CAAS;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,cAA8B,EAC9B,QAAgB,EAChB,SAAqB;QAErB,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAExC,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAEhE,qCAAqC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAErE,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAEnD,wDAAwD;QACxD,uEAAuE;QACvE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAEhC,IAAI,MAAM,CAAA;QACV,IAAI,CAAC;YACH,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAC9B,OAAO,EACP,QAEqC,CACtC,CAAA;YACH,CAAC;iBAAM,IACL,cAAc,KAAK,YAAY;gBAC/B,cAAc,KAAK,eAAe,EAClC,CAAC;gBACD,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YACtE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,cAAc,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC3B,MAAM,KAAK,CAAA;QACb,CAAC;QAED,2EAA2E;QAC3E,MAAM,0BAA0B,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CACjD,CAAA;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YAChC,cAAc;YACd,YAAY,EAAE,MAAM;YACpB,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;YACnC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1C,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5C;YACD,kBAAkB,EAAE,0BAA0B;SAC/C,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,SAAoB,EACpB,OAAgB,EAChB,QAA2B;QAE3B,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE3D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACnC,IAAI,GAAG,EAAE,CAAC;gBACR,
|
|
1
|
+
{"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.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.7.
|
|
3
|
+
"version": "0.7.7",
|
|
4
4
|
"description": "Core functionality for Universal Wallet Connector",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@meshconnect/uwc-injected-connector": "0.10.5",
|
|
20
20
|
"@meshconnect/uwc-ton-connector": "0.5.3",
|
|
21
21
|
"@meshconnect/uwc-types": "0.11.1",
|
|
22
|
-
"@meshconnect/uwc-wallet-connect-connector": "0.4.
|
|
22
|
+
"@meshconnect/uwc-wallet-connect-connector": "0.4.14"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"typescript": "^5.9.3"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, vi } from 'vitest'
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'
|
|
2
2
|
import { ConnectionService } from './connection-service'
|
|
3
3
|
import { SessionManager } from '../managers/session-manager'
|
|
4
4
|
import { EventManager } from '../managers/event-manager'
|
|
@@ -233,6 +233,10 @@ describe('ConnectionService', () => {
|
|
|
233
233
|
)
|
|
234
234
|
})
|
|
235
235
|
|
|
236
|
+
afterEach(() => {
|
|
237
|
+
vi.useRealTimers()
|
|
238
|
+
})
|
|
239
|
+
|
|
236
240
|
it('calls connector.connect with TonConnectWalletProvider', async () => {
|
|
237
241
|
tonConnector.connect = vi.fn().mockResolvedValue({
|
|
238
242
|
networkId: 'tvm:-239',
|
|
@@ -250,6 +254,8 @@ describe('ConnectionService', () => {
|
|
|
250
254
|
})
|
|
251
255
|
|
|
252
256
|
it('polls for URI and notifies eventManager when available', async () => {
|
|
257
|
+
vi.useFakeTimers()
|
|
258
|
+
|
|
253
259
|
const notifySpy = vi.spyOn(eventManager, 'notify')
|
|
254
260
|
let connectResolve: (v: any) => void
|
|
255
261
|
|
|
@@ -264,7 +270,7 @@ describe('ConnectionService', () => {
|
|
|
264
270
|
tonConnector.getConnectionURI = vi.fn().mockImplementation(() => {
|
|
265
271
|
uriCallCount++
|
|
266
272
|
if (uriCallCount >= 2) return 'tc://some-uri'
|
|
267
|
-
|
|
273
|
+
return undefined
|
|
268
274
|
})
|
|
269
275
|
|
|
270
276
|
const connectPromise = connectionService.connect(
|
|
@@ -272,10 +278,22 @@ describe('ConnectionService', () => {
|
|
|
272
278
|
'tonkeeper'
|
|
273
279
|
)
|
|
274
280
|
|
|
275
|
-
|
|
276
|
-
|
|
281
|
+
await vi.advanceTimersByTimeAsync(200)
|
|
282
|
+
|
|
283
|
+
// The URI becomes available on the second poll, which should stop polling
|
|
284
|
+
// and emit the event exactly once.
|
|
285
|
+
expect(notifySpy).toHaveBeenCalledTimes(1)
|
|
286
|
+
const uriCallCountAfterDiscovery = vi.mocked(
|
|
287
|
+
tonConnector.getConnectionURI
|
|
288
|
+
).mock.calls.length
|
|
289
|
+
expect(uriCallCountAfterDiscovery).toBe(2)
|
|
277
290
|
|
|
278
|
-
|
|
291
|
+
await vi.advanceTimersByTimeAsync(500)
|
|
292
|
+
|
|
293
|
+
expect(notifySpy).toHaveBeenCalledTimes(1)
|
|
294
|
+
expect(tonConnector.getConnectionURI).toHaveBeenCalledTimes(
|
|
295
|
+
uriCallCountAfterDiscovery
|
|
296
|
+
)
|
|
279
297
|
|
|
280
298
|
// Resolve the connection to let the test finish
|
|
281
299
|
connectResolve!({
|
|
@@ -288,15 +306,86 @@ describe('ConnectionService', () => {
|
|
|
288
306
|
})
|
|
289
307
|
|
|
290
308
|
it('cleans up polling interval on connection error', async () => {
|
|
291
|
-
|
|
309
|
+
vi.useFakeTimers()
|
|
292
310
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
).rejects.toThrow('Rejected')
|
|
311
|
+
// Keep connect pending long enough for polling to start
|
|
312
|
+
let rejectConnect: (error: Error) => void
|
|
296
313
|
|
|
314
|
+
tonConnector.connect = vi.fn().mockReturnValue(
|
|
315
|
+
new Promise((_, reject) => {
|
|
316
|
+
rejectConnect = reject
|
|
317
|
+
})
|
|
318
|
+
)
|
|
319
|
+
tonConnector.getConnectionURI = vi.fn().mockReturnValue(undefined)
|
|
320
|
+
|
|
321
|
+
const connectPromise = connectionService.connect(
|
|
322
|
+
'tonConnect',
|
|
323
|
+
'tonkeeper'
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
await vi.advanceTimersByTimeAsync(200)
|
|
327
|
+
|
|
328
|
+
expect(tonConnector.getConnectionURI).toHaveBeenCalledTimes(2)
|
|
329
|
+
|
|
330
|
+
rejectConnect!(new Error('Rejected'))
|
|
331
|
+
|
|
332
|
+
await expect(connectPromise).rejects.toThrow('Rejected')
|
|
333
|
+
|
|
334
|
+
// After rejection, advancing time should not produce any more polls.
|
|
335
|
+
const uriCallCountAfterRejection = vi.mocked(
|
|
336
|
+
tonConnector.getConnectionURI
|
|
337
|
+
).mock.calls.length
|
|
338
|
+
|
|
339
|
+
await vi.advanceTimersByTimeAsync(5 * 60 * 1000)
|
|
340
|
+
|
|
341
|
+
expect(tonConnector.getConnectionURI).toHaveBeenCalledTimes(
|
|
342
|
+
uriCallCountAfterRejection
|
|
343
|
+
)
|
|
297
344
|
expect(connectionService['activeConnector']).toBeNull()
|
|
298
345
|
})
|
|
299
346
|
|
|
347
|
+
it('stops polling when the watchdog timeout is reached', async () => {
|
|
348
|
+
vi.useFakeTimers()
|
|
349
|
+
|
|
350
|
+
let connectResolve: (v: any) => void
|
|
351
|
+
|
|
352
|
+
tonConnector.connect = vi.fn().mockReturnValue(
|
|
353
|
+
new Promise(resolve => {
|
|
354
|
+
connectResolve = resolve
|
|
355
|
+
})
|
|
356
|
+
)
|
|
357
|
+
tonConnector.getConnectionURI = vi.fn().mockReturnValue(undefined)
|
|
358
|
+
|
|
359
|
+
const connectPromise = connectionService.connect(
|
|
360
|
+
'tonConnect',
|
|
361
|
+
'tonkeeper'
|
|
362
|
+
)
|
|
363
|
+
|
|
364
|
+
await vi.advanceTimersByTimeAsync(200)
|
|
365
|
+
expect(tonConnector.getConnectionURI).toHaveBeenCalledTimes(2)
|
|
366
|
+
|
|
367
|
+
await vi.advanceTimersByTimeAsync(5 * 60 * 1000 - 200)
|
|
368
|
+
|
|
369
|
+
// Capture the poll count at the watchdog boundary. It should stay frozen
|
|
370
|
+
// once the timeout stops polling.
|
|
371
|
+
const uriCallCountAtWatchdog = vi.mocked(tonConnector.getConnectionURI)
|
|
372
|
+
.mock.calls.length
|
|
373
|
+
|
|
374
|
+
await vi.advanceTimersByTimeAsync(1000)
|
|
375
|
+
|
|
376
|
+
expect(tonConnector.getConnectionURI).toHaveBeenCalledTimes(
|
|
377
|
+
uriCallCountAtWatchdog
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
connectResolve!({
|
|
381
|
+
networkId: 'tvm:-239',
|
|
382
|
+
address: 'UQBxyz',
|
|
383
|
+
availableAddresses: [{ address: 'UQBxyz', networkId: 'tvm:-239' }]
|
|
384
|
+
})
|
|
385
|
+
|
|
386
|
+
await connectPromise
|
|
387
|
+
})
|
|
388
|
+
|
|
300
389
|
it('updates session on successful connect', async () => {
|
|
301
390
|
tonConnector.connect = vi.fn().mockResolvedValue({
|
|
302
391
|
networkId: 'tvm:-239',
|
|
@@ -93,23 +93,38 @@ export class ConnectionService {
|
|
|
93
93
|
): Promise<ConnectorResult> {
|
|
94
94
|
const connectPromise = connector.connect(network, provider)
|
|
95
95
|
|
|
96
|
+
let pollingStopped = false
|
|
97
|
+
|
|
96
98
|
const pollForURI = setInterval(() => {
|
|
97
99
|
const uri = this.getConnectionURI()
|
|
98
100
|
if (uri) {
|
|
99
|
-
|
|
101
|
+
stopPolling()
|
|
100
102
|
this.eventManager.notify()
|
|
101
103
|
}
|
|
102
104
|
}, 100)
|
|
103
105
|
|
|
104
|
-
|
|
106
|
+
// Additional safeguard to stop polling after a reasonable timeout (e.g. 5 minutes)
|
|
107
|
+
const watchdogTimeoutId = setTimeout(
|
|
108
|
+
() => {
|
|
109
|
+
stopPolling()
|
|
110
|
+
},
|
|
111
|
+
5 * 60 * 1000
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
function stopPolling() {
|
|
115
|
+
if (pollingStopped) {
|
|
116
|
+
return
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
pollingStopped = true
|
|
105
120
|
clearInterval(pollForURI)
|
|
106
|
-
|
|
121
|
+
clearTimeout(watchdogTimeoutId)
|
|
122
|
+
}
|
|
107
123
|
|
|
108
124
|
try {
|
|
109
125
|
return await connectPromise
|
|
110
126
|
} finally {
|
|
111
|
-
|
|
112
|
-
clearTimeout(timeoutId)
|
|
127
|
+
stopPolling()
|
|
113
128
|
}
|
|
114
129
|
}
|
|
115
130
|
|