@meshconnect/uwc-core 0.9.0 → 0.9.1-snapshot.95b8dbe
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 +13 -19
- 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
|
@@ -39,7 +39,11 @@ const mockSessionManager = {
|
|
|
39
39
|
|
|
40
40
|
const mockEventManager = {
|
|
41
41
|
subscribe: vi.fn().mockReturnValue(() => {}),
|
|
42
|
-
notify: vi.fn()
|
|
42
|
+
notify: vi.fn(),
|
|
43
|
+
emit: vi.fn(),
|
|
44
|
+
on: vi.fn().mockReturnValue(() => {}),
|
|
45
|
+
off: vi.fn(),
|
|
46
|
+
once: vi.fn().mockReturnValue(() => {})
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
const mockConnectionService = {
|
|
@@ -139,8 +143,7 @@ describe('UniversalWalletConnector', () => {
|
|
|
139
143
|
let mockWalletConnectConfig: WalletConnectConfig
|
|
140
144
|
|
|
141
145
|
beforeEach(() => {
|
|
142
|
-
|
|
143
|
-
;(UniversalWalletConnector as any).hasWarnedAboutMultipleInstances = false
|
|
146
|
+
UniversalWalletConnector.resetInstance()
|
|
144
147
|
|
|
145
148
|
mockNetworks = [
|
|
146
149
|
{
|
|
@@ -424,6 +427,87 @@ describe('UniversalWalletConnector', () => {
|
|
|
424
427
|
expect(typeof connector.sendTransaction).toBe('function')
|
|
425
428
|
expect(typeof connector.isConnectionModeAvailable).toBe('function')
|
|
426
429
|
expect(typeof connector.getActiveWalletCapabilities).toBe('function')
|
|
430
|
+
expect(typeof connector.on).toBe('function')
|
|
431
|
+
expect(typeof connector.once).toBe('function')
|
|
432
|
+
expect(typeof connector.off).toBe('function')
|
|
433
|
+
})
|
|
434
|
+
})
|
|
435
|
+
|
|
436
|
+
describe('getInstance singleton factory', () => {
|
|
437
|
+
it('creates an instance on first call and reuses it afterwards', () => {
|
|
438
|
+
const a = UniversalWalletConnector.getInstance({
|
|
439
|
+
networks: mockNetworks,
|
|
440
|
+
wallets: mockWallets
|
|
441
|
+
})
|
|
442
|
+
const b = UniversalWalletConnector.getInstance({
|
|
443
|
+
networks: mockNetworks,
|
|
444
|
+
wallets: mockWallets
|
|
445
|
+
})
|
|
446
|
+
expect(a).toBe(b)
|
|
447
|
+
})
|
|
448
|
+
|
|
449
|
+
it('throws when called before any instance exists and no config is given', () => {
|
|
450
|
+
expect(() => UniversalWalletConnector.getInstance()).toThrow(
|
|
451
|
+
/getInstance.*before an instance existed/
|
|
452
|
+
)
|
|
453
|
+
})
|
|
454
|
+
|
|
455
|
+
it('resetInstance() clears the shared reference', () => {
|
|
456
|
+
const first = UniversalWalletConnector.getInstance({
|
|
457
|
+
networks: mockNetworks,
|
|
458
|
+
wallets: mockWallets
|
|
459
|
+
})
|
|
460
|
+
UniversalWalletConnector.resetInstance()
|
|
461
|
+
const second = UniversalWalletConnector.getInstance({
|
|
462
|
+
networks: mockNetworks,
|
|
463
|
+
wallets: mockWallets
|
|
464
|
+
})
|
|
465
|
+
expect(second).not.toBe(first)
|
|
466
|
+
})
|
|
467
|
+
|
|
468
|
+
it('adopts a `new`-constructed instance as the singleton', () => {
|
|
469
|
+
const created = new UniversalWalletConnector(mockNetworks, mockWallets)
|
|
470
|
+
expect(UniversalWalletConnector.getInstance()).toBe(created)
|
|
471
|
+
})
|
|
472
|
+
})
|
|
473
|
+
|
|
474
|
+
describe('config-object constructor', () => {
|
|
475
|
+
it('accepts the { networks, wallets, ... } form', () => {
|
|
476
|
+
const connector = new UniversalWalletConnector({
|
|
477
|
+
networks: mockNetworks,
|
|
478
|
+
wallets: mockWallets,
|
|
479
|
+
walletConnectConfig: mockWalletConnectConfig
|
|
480
|
+
})
|
|
481
|
+
expect(connector).toBeInstanceOf(UniversalWalletConnector)
|
|
482
|
+
})
|
|
483
|
+
})
|
|
484
|
+
|
|
485
|
+
describe('AbortSignal support', () => {
|
|
486
|
+
it('connect rejects immediately when signal is already aborted', async () => {
|
|
487
|
+
const connector = new UniversalWalletConnector(mockNetworks, mockWallets)
|
|
488
|
+
const controller = new AbortController()
|
|
489
|
+
controller.abort()
|
|
490
|
+
|
|
491
|
+
// ConnectionService.connect is mocked to return undefined by default,
|
|
492
|
+
// so the abort check is what surfaces the error.
|
|
493
|
+
mockConnectionService.connect = vi.fn().mockImplementation(
|
|
494
|
+
async (
|
|
495
|
+
_m: unknown,
|
|
496
|
+
_w: unknown,
|
|
497
|
+
_n: unknown,
|
|
498
|
+
options?: {
|
|
499
|
+
signal?: AbortSignal
|
|
500
|
+
}
|
|
501
|
+
) => {
|
|
502
|
+
options?.signal?.throwIfAborted()
|
|
503
|
+
}
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
await expect(
|
|
507
|
+
connector.connect('injected', 'metamask', undefined, {
|
|
508
|
+
signal: controller.signal
|
|
509
|
+
})
|
|
510
|
+
).rejects.toThrow()
|
|
427
511
|
})
|
|
428
512
|
})
|
|
429
513
|
|