@meshconnect/uwc-core 0.7.4 → 0.7.5-snapshot.c90b3e8
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/README.md +924 -0
- package/dist/events.d.ts +71 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/managers/event-manager.d.ts +22 -3
- package/dist/managers/event-manager.d.ts.map +1 -1
- package/dist/managers/event-manager.js +63 -7
- package/dist/managers/event-manager.js.map +1 -1
- package/dist/services/connection-service.d.ts +5 -2
- package/dist/services/connection-service.d.ts.map +1 -1
- package/dist/services/connection-service.js +19 -7
- package/dist/services/connection-service.js.map +1 -1
- package/dist/services/network-switch-service.d.ts +2 -1
- package/dist/services/network-switch-service.d.ts.map +1 -1
- package/dist/services/network-switch-service.js +15 -3
- package/dist/services/network-switch-service.js.map +1 -1
- package/dist/services/signature-service.d.ts +3 -1
- package/dist/services/signature-service.d.ts.map +1 -1
- package/dist/services/signature-service.js +10 -5
- package/dist/services/signature-service.js.map +1 -1
- package/dist/services/transaction-service.d.ts +3 -1
- package/dist/services/transaction-service.d.ts.map +1 -1
- package/dist/services/transaction-service.js +10 -5
- package/dist/services/transaction-service.js.map +1 -1
- package/dist/services/wallet-capabilities-service.d.ts +2 -1
- package/dist/services/wallet-capabilities-service.d.ts.map +1 -1
- package/dist/services/wallet-capabilities-service.js +9 -2
- package/dist/services/wallet-capabilities-service.js.map +1 -1
- package/dist/universal-wallet-connector.d.ts +52 -6
- package/dist/universal-wallet-connector.d.ts.map +1 -1
- package/dist/universal-wallet-connector.js +271 -177
- package/dist/universal-wallet-connector.js.map +1 -1
- package/package.json +5 -5
- package/src/events.ts +73 -0
- package/src/index.ts +11 -3
- package/src/managers/event-manager.test.ts +70 -0
- package/src/managers/event-manager.ts +80 -9
- package/src/services/connection-service.test.ts +11 -3
- package/src/services/connection-service.ts +34 -7
- package/src/services/network-switch-service.ts +22 -3
- package/src/services/signature-service.ts +13 -5
- package/src/services/transaction-service.ts +13 -5
- package/src/services/wallet-capabilities-service.ts +14 -2
- package/src/universal-wallet-connector.test.ts +87 -3
- package/src/universal-wallet-connector.ts +395 -204
|
@@ -29,7 +29,11 @@ const mockSessionManager = {
|
|
|
29
29
|
|
|
30
30
|
const mockEventManager = {
|
|
31
31
|
subscribe: vi.fn().mockReturnValue(() => {}),
|
|
32
|
-
notify: vi.fn()
|
|
32
|
+
notify: vi.fn(),
|
|
33
|
+
emit: vi.fn(),
|
|
34
|
+
on: vi.fn().mockReturnValue(() => {}),
|
|
35
|
+
off: vi.fn(),
|
|
36
|
+
once: vi.fn().mockReturnValue(() => {})
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
const mockConnectionService = {
|
|
@@ -117,8 +121,7 @@ describe('UniversalWalletConnector', () => {
|
|
|
117
121
|
let mockWalletConnectConfig: WalletConnectConfig
|
|
118
122
|
|
|
119
123
|
beforeEach(() => {
|
|
120
|
-
|
|
121
|
-
;(UniversalWalletConnector as any).hasWarnedAboutMultipleInstances = false
|
|
124
|
+
UniversalWalletConnector.resetInstance()
|
|
122
125
|
|
|
123
126
|
mockNetworks = [
|
|
124
127
|
{
|
|
@@ -402,6 +405,87 @@ describe('UniversalWalletConnector', () => {
|
|
|
402
405
|
expect(typeof connector.sendTransaction).toBe('function')
|
|
403
406
|
expect(typeof connector.isConnectionModeAvailable).toBe('function')
|
|
404
407
|
expect(typeof connector.getActiveWalletCapabilities).toBe('function')
|
|
408
|
+
expect(typeof connector.on).toBe('function')
|
|
409
|
+
expect(typeof connector.once).toBe('function')
|
|
410
|
+
expect(typeof connector.off).toBe('function')
|
|
411
|
+
})
|
|
412
|
+
})
|
|
413
|
+
|
|
414
|
+
describe('getInstance singleton factory', () => {
|
|
415
|
+
it('creates an instance on first call and reuses it afterwards', () => {
|
|
416
|
+
const a = UniversalWalletConnector.getInstance({
|
|
417
|
+
networks: mockNetworks,
|
|
418
|
+
wallets: mockWallets
|
|
419
|
+
})
|
|
420
|
+
const b = UniversalWalletConnector.getInstance({
|
|
421
|
+
networks: mockNetworks,
|
|
422
|
+
wallets: mockWallets
|
|
423
|
+
})
|
|
424
|
+
expect(a).toBe(b)
|
|
425
|
+
})
|
|
426
|
+
|
|
427
|
+
it('throws when called before any instance exists and no config is given', () => {
|
|
428
|
+
expect(() => UniversalWalletConnector.getInstance()).toThrow(
|
|
429
|
+
/getInstance.*before an instance existed/
|
|
430
|
+
)
|
|
431
|
+
})
|
|
432
|
+
|
|
433
|
+
it('resetInstance() clears the shared reference', () => {
|
|
434
|
+
const first = UniversalWalletConnector.getInstance({
|
|
435
|
+
networks: mockNetworks,
|
|
436
|
+
wallets: mockWallets
|
|
437
|
+
})
|
|
438
|
+
UniversalWalletConnector.resetInstance()
|
|
439
|
+
const second = UniversalWalletConnector.getInstance({
|
|
440
|
+
networks: mockNetworks,
|
|
441
|
+
wallets: mockWallets
|
|
442
|
+
})
|
|
443
|
+
expect(second).not.toBe(first)
|
|
444
|
+
})
|
|
445
|
+
|
|
446
|
+
it('adopts a `new`-constructed instance as the singleton', () => {
|
|
447
|
+
const created = new UniversalWalletConnector(mockNetworks, mockWallets)
|
|
448
|
+
expect(UniversalWalletConnector.getInstance()).toBe(created)
|
|
449
|
+
})
|
|
450
|
+
})
|
|
451
|
+
|
|
452
|
+
describe('config-object constructor', () => {
|
|
453
|
+
it('accepts the { networks, wallets, ... } form', () => {
|
|
454
|
+
const connector = new UniversalWalletConnector({
|
|
455
|
+
networks: mockNetworks,
|
|
456
|
+
wallets: mockWallets,
|
|
457
|
+
walletConnectConfig: mockWalletConnectConfig
|
|
458
|
+
})
|
|
459
|
+
expect(connector).toBeInstanceOf(UniversalWalletConnector)
|
|
460
|
+
})
|
|
461
|
+
})
|
|
462
|
+
|
|
463
|
+
describe('AbortSignal support', () => {
|
|
464
|
+
it('connect rejects immediately when signal is already aborted', async () => {
|
|
465
|
+
const connector = new UniversalWalletConnector(mockNetworks, mockWallets)
|
|
466
|
+
const controller = new AbortController()
|
|
467
|
+
controller.abort()
|
|
468
|
+
|
|
469
|
+
// ConnectionService.connect is mocked to return undefined by default,
|
|
470
|
+
// so the abort check is what surfaces the error.
|
|
471
|
+
mockConnectionService.connect = vi.fn().mockImplementation(
|
|
472
|
+
async (
|
|
473
|
+
_m: unknown,
|
|
474
|
+
_w: unknown,
|
|
475
|
+
_n: unknown,
|
|
476
|
+
options?: {
|
|
477
|
+
signal?: AbortSignal
|
|
478
|
+
}
|
|
479
|
+
) => {
|
|
480
|
+
options?.signal?.throwIfAborted()
|
|
481
|
+
}
|
|
482
|
+
)
|
|
483
|
+
|
|
484
|
+
await expect(
|
|
485
|
+
connector.connect('injected', 'metamask', undefined, {
|
|
486
|
+
signal: controller.signal
|
|
487
|
+
})
|
|
488
|
+
).rejects.toThrow()
|
|
405
489
|
})
|
|
406
490
|
})
|
|
407
491
|
|