@wagmi/connectors 4.1.24 → 4.1.26

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,2 +1,2 @@
1
- export const version = '4.1.24';
1
+ export const version = '4.1.26';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coinbaseWallet.d.ts","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAUnE,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,OAAO,CACL,IAAI,CACF,qBAAqB,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAClD,oBAAoB,CACrB,CACF,GAAG;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,CACF,CAAA;AAGD,wBAAgB,cAAc,CAAC,UAAU,EAAE,wBAAwB,2EA6KlE;yBA7Ke,cAAc"}
1
+ {"version":3,"file":"coinbaseWallet.d.ts","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAUnE,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,OAAO,CACL,IAAI,CACF,qBAAqB,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAClD,oBAAoB,CACrB,CACF,GAAG;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,CACF,CAAA;AAGD,wBAAgB,cAAc,CAAC,UAAU,EAAE,wBAAwB,2EA4MlE;yBA5Me,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,IAAI,GAAG;IACL;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACrC,CACF,CAAA;AAGD,wBAAgB,IAAI,CAAC,UAAU,GAAE,cAAmB;yBAKR,IAAI;GAgG/C;yBArGe,IAAI"}
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAMtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,IAAI,GAAG;IACL;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACrC,CACF,CAAA;AAGD,wBAAgB,IAAI,CAAC,UAAU,GAAE,cAAmB;yBAKR,IAAI;GAwG/C;yBA7Ge,IAAI"}
@@ -1,2 +1,2 @@
1
- export declare const version = "4.1.24";
1
+ export declare const version = "4.1.26";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wagmi/connectors",
3
3
  "description": "Collection of connectors for Wagmi",
4
- "version": "4.1.24",
4
+ "version": "4.1.26",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -30,7 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "typescript": ">=5.0.4",
32
32
  "viem": "2.x",
33
- "@wagmi/core": "2.6.15"
33
+ "@wagmi/core": "2.6.17"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "typescript": {
@@ -2,7 +2,11 @@ import {
2
2
  type CoinbaseWalletProvider,
3
3
  type CoinbaseWalletSDK,
4
4
  } from '@coinbase/wallet-sdk'
5
- import { ChainNotConfiguredError, createConnector } from '@wagmi/core'
5
+ import {
6
+ ChainNotConfiguredError,
7
+ type Connector,
8
+ createConnector,
9
+ } from '@wagmi/core'
6
10
  import type { Evaluate, Mutable, Omit } from '@wagmi/core/internal'
7
11
  import {
8
12
  type ProviderRpcError,
@@ -48,6 +52,10 @@ export function coinbaseWallet(parameters: CoinbaseWalletParameters) {
48
52
  let sdk: CoinbaseWalletSDK | undefined
49
53
  let walletProvider: Provider | undefined
50
54
 
55
+ let accountsChanged: Connector['onAccountsChanged'] | undefined
56
+ let chainChanged: Connector['onChainChanged'] | undefined
57
+ let disconnect: Connector['onDisconnect'] | undefined
58
+
51
59
  return createConnector<Provider, Properties>((config) => ({
52
60
  id: 'coinbaseWalletSDK',
53
61
  name: 'Coinbase Wallet',
@@ -61,9 +69,18 @@ export function coinbaseWallet(parameters: CoinbaseWalletParameters) {
61
69
  })) as string[]
62
70
  ).map((x) => getAddress(x))
63
71
 
64
- provider.on('accountsChanged', this.onAccountsChanged)
65
- provider.on('chainChanged', this.onChainChanged)
66
- provider.on('disconnect', this.onDisconnect.bind(this))
72
+ if (!accountsChanged) {
73
+ accountsChanged = this.onAccountsChanged.bind(this)
74
+ provider.on('accountsChanged', accountsChanged)
75
+ }
76
+ if (!chainChanged) {
77
+ chainChanged = this.onChainChanged.bind(this)
78
+ provider.on('chainChanged', chainChanged)
79
+ }
80
+ if (!disconnect) {
81
+ disconnect = this.onDisconnect.bind(this)
82
+ provider.on('disconnect', disconnect)
83
+ }
67
84
 
68
85
  // Switch to chain if provided
69
86
  let currentChainId = await this.getChainId()
@@ -89,9 +106,18 @@ export function coinbaseWallet(parameters: CoinbaseWalletParameters) {
89
106
  async disconnect() {
90
107
  const provider = await this.getProvider()
91
108
 
92
- provider.removeListener('accountsChanged', this.onAccountsChanged)
93
- provider.removeListener('chainChanged', this.onChainChanged)
94
- provider.removeListener('disconnect', this.onDisconnect.bind(this))
109
+ if (accountsChanged) {
110
+ provider.removeListener('accountsChanged', accountsChanged)
111
+ accountsChanged = undefined
112
+ }
113
+ if (chainChanged) {
114
+ provider.removeListener('chainChanged', chainChanged)
115
+ chainChanged = undefined
116
+ }
117
+ if (disconnect) {
118
+ provider.removeListener('disconnect', disconnect)
119
+ disconnect = undefined
120
+ }
95
121
 
96
122
  provider.disconnect()
97
123
  provider.close()
@@ -193,7 +219,7 @@ export function coinbaseWallet(parameters: CoinbaseWalletParameters) {
193
219
  }
194
220
  },
195
221
  onAccountsChanged(accounts) {
196
- if (accounts.length === 0) config.emitter.emit('disconnect')
222
+ if (accounts.length === 0) this.onDisconnect()
197
223
  else
198
224
  config.emitter.emit('change', {
199
225
  accounts: accounts.map((x) => getAddress(x)),
@@ -207,9 +233,18 @@ export function coinbaseWallet(parameters: CoinbaseWalletParameters) {
207
233
  config.emitter.emit('disconnect')
208
234
 
209
235
  const provider = await this.getProvider()
210
- provider.removeListener('accountsChanged', this.onAccountsChanged)
211
- provider.removeListener('chainChanged', this.onChainChanged)
212
- provider.removeListener('disconnect', this.onDisconnect.bind(this))
236
+ if (accountsChanged) {
237
+ provider.removeListener('accountsChanged', accountsChanged)
238
+ accountsChanged = undefined
239
+ }
240
+ if (chainChanged) {
241
+ provider.removeListener('chainChanged', chainChanged)
242
+ chainChanged = undefined
243
+ }
244
+ if (disconnect) {
245
+ provider.removeListener('disconnect', disconnect)
246
+ disconnect = undefined
247
+ }
213
248
  },
214
249
  }))
215
250
  }
package/src/safe.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { type SafeAppProvider } from '@safe-global/safe-apps-provider'
2
2
  import { type Opts } from '@safe-global/safe-apps-sdk'
3
- import { ProviderNotFoundError, createConnector } from '@wagmi/core'
3
+ import {
4
+ type Connector,
5
+ ProviderNotFoundError,
6
+ createConnector,
7
+ } from '@wagmi/core'
4
8
  import type { Evaluate } from '@wagmi/core/internal'
5
9
  import { getAddress } from 'viem'
6
10
 
@@ -28,6 +32,8 @@ export function safe(parameters: SafeParameters = {}) {
28
32
 
29
33
  let provider_: Provider | undefined
30
34
 
35
+ let disconnect: Connector['onDisconnect'] | undefined
36
+
31
37
  return createConnector<Provider, Properties, StorageItem>((config) => ({
32
38
  id: 'safe',
33
39
  name: 'Safe',
@@ -39,7 +45,10 @@ export function safe(parameters: SafeParameters = {}) {
39
45
  const accounts = await this.getAccounts()
40
46
  const chainId = await this.getChainId()
41
47
 
42
- provider.on('disconnect', this.onDisconnect.bind(this))
48
+ if (!disconnect) {
49
+ disconnect = this.onDisconnect.bind(this)
50
+ provider.on('disconnect', disconnect)
51
+ }
43
52
 
44
53
  // Remove disconnected shim if it exists
45
54
  if (shimDisconnect) await config.storage?.removeItem('safe.disconnected')
@@ -50,7 +59,10 @@ export function safe(parameters: SafeParameters = {}) {
50
59
  const provider = await this.getProvider()
51
60
  if (!provider) throw new ProviderNotFoundError()
52
61
 
53
- provider.removeListener('disconnect', this.onDisconnect.bind(this))
62
+ if (disconnect) {
63
+ provider.removeListener('disconnect', disconnect)
64
+ disconnect = undefined
65
+ }
54
66
 
55
67
  // Add shim signalling connector is disconnected
56
68
  if (shimDisconnect)
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '4.1.24'
1
+ export const version = '4.1.26'