@wagmi/connectors 7.1.7 → 7.2.1

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 = '7.1.7';
1
+ export const version = '7.2.1';
2
2
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,6 @@
1
1
  export { type InjectedParameters, injected, type MockParameters, mock, } from '@wagmi/core';
2
2
  export { type BaseAccountParameters, baseAccount } from '../baseAccount.js';
3
3
  export { type CoinbaseWalletParameters, coinbaseWallet, } from '../coinbaseWallet.js';
4
- export { type GeminiParameters, gemini } from '../gemini.js';
5
4
  export { type MetaMaskParameters, metaMask } from '../metaMask.js';
6
5
  export { type PortoParameters, porto } from '../porto.js';
7
6
  export { type SafeParameters, safe } from '../safe.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,QAAQ,EACR,KAAK,cAAc,EACnB,IAAI,GACL,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EACL,KAAK,wBAAwB,EAC7B,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,KAAK,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,KAAK,uBAAuB,EAC5B,aAAa,GACd,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,QAAQ,EACR,KAAK,cAAc,EACnB,IAAI,GACL,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EACL,KAAK,wBAAwB,EAC7B,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,KAAK,uBAAuB,EAC5B,aAAa,GACd,MAAM,qBAAqB,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "7.1.7";
1
+ export declare const version = "7.2.1";
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": "7.1.7",
4
+ "version": "7.2.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -30,7 +30,6 @@
30
30
  "peerDependencies": {
31
31
  "@base-org/account": "^2.5.1",
32
32
  "@coinbase/wallet-sdk": "^4.3.6",
33
- "@gemini-wallet/core": "~0.3.1",
34
33
  "@metamask/sdk": "~0.33.1",
35
34
  "@safe-global/safe-apps-provider": "~0.18.6",
36
35
  "@safe-global/safe-apps-sdk": "^9.1.0",
@@ -38,7 +37,7 @@
38
37
  "porto": "~0.2.35",
39
38
  "typescript": ">=5.7.3",
40
39
  "viem": "2.x",
41
- "@wagmi/core": "3.3.3"
40
+ "@wagmi/core": "3.4.0"
42
41
  },
43
42
  "peerDependenciesMeta": {
44
43
  "@base-org/account": {
@@ -47,9 +46,6 @@
47
46
  "@coinbase/wallet-sdk": {
48
47
  "optional": true
49
48
  },
50
- "@gemini-wallet/core": {
51
- "optional": true
52
- },
53
49
  "@metamask/sdk": {
54
50
  "optional": true
55
51
  },
@@ -10,7 +10,6 @@ export {
10
10
  type CoinbaseWalletParameters,
11
11
  coinbaseWallet,
12
12
  } from '../coinbaseWallet.js'
13
- export { type GeminiParameters, gemini } from '../gemini.js'
14
13
  export { type MetaMaskParameters, metaMask } from '../metaMask.js'
15
14
  export { type PortoParameters, porto } from '../porto.js'
16
15
  export { type SafeParameters, safe } from '../safe.js'
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '7.1.7'
1
+ export const version = '7.2.1'
@@ -1,161 +0,0 @@
1
- import { ChainNotConfiguredError, createConnector, } from '@wagmi/core';
2
- import { getAddress, numberToHex, SwitchChainError, UserRejectedRequestError, } from 'viem';
3
- gemini.type = 'gemini';
4
- export function gemini(parameters = {}) {
5
- let walletProvider;
6
- let onAccountsChanged;
7
- let onChainChanged;
8
- let onDisconnect;
9
- return createConnector((config) => ({
10
- id: 'gemini',
11
- name: 'Gemini Wallet',
12
- type: gemini.type,
13
- icon: 'https://keys.gemini.com/images/gemini-wallet-logo.svg',
14
- async connect({ chainId, withCapabilities } = {}) {
15
- try {
16
- const provider = await this.getProvider();
17
- const accounts = (await provider.request({
18
- method: 'eth_requestAccounts',
19
- }));
20
- if (!onAccountsChanged) {
21
- onAccountsChanged = this.onAccountsChanged.bind(this);
22
- provider.on('accountsChanged', onAccountsChanged);
23
- }
24
- if (!onChainChanged) {
25
- onChainChanged = this.onChainChanged.bind(this);
26
- provider.on('chainChanged', onChainChanged);
27
- }
28
- if (!onDisconnect) {
29
- onDisconnect = this.onDisconnect.bind(this);
30
- provider.on('disconnect', onDisconnect);
31
- }
32
- let currentChainId = await this.getChainId();
33
- if (chainId && currentChainId !== chainId) {
34
- const chain = await this.switchChain({ chainId }).catch((error) => {
35
- if (error.code === UserRejectedRequestError.code)
36
- throw error;
37
- return { id: currentChainId };
38
- });
39
- currentChainId = chain?.id ?? currentChainId;
40
- }
41
- return {
42
- // TODO(v3): Make `withCapabilities: true` default behavior
43
- accounts: (withCapabilities
44
- ? accounts.map((address) => ({ address, capabilities: {} }))
45
- : accounts),
46
- chainId: currentChainId,
47
- };
48
- }
49
- catch (error) {
50
- if (/(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(error.message))
51
- throw new UserRejectedRequestError(error);
52
- throw error;
53
- }
54
- },
55
- async disconnect() {
56
- const provider = await this.getProvider();
57
- if (onAccountsChanged) {
58
- provider.removeListener('accountsChanged', onAccountsChanged);
59
- onAccountsChanged = undefined;
60
- }
61
- if (onChainChanged) {
62
- provider.removeListener('chainChanged', onChainChanged);
63
- onChainChanged = undefined;
64
- }
65
- if (onDisconnect) {
66
- provider.removeListener('disconnect', onDisconnect);
67
- onDisconnect = undefined;
68
- }
69
- await provider.disconnect();
70
- },
71
- async getAccounts() {
72
- const provider = await this.getProvider();
73
- const accounts = (await provider.request({
74
- method: 'eth_accounts',
75
- }));
76
- return accounts.map((x) => getAddress(x));
77
- },
78
- async getChainId() {
79
- const provider = await this.getProvider();
80
- const chainId = (await provider.request({
81
- method: 'eth_chainId',
82
- }));
83
- return Number(chainId);
84
- },
85
- async getProvider() {
86
- if (!walletProvider) {
87
- const { GeminiWalletProvider } = await (() => {
88
- // safe webpack optional peer dependency dynamic import
89
- try {
90
- return import('@gemini-wallet/core');
91
- }
92
- catch {
93
- throw new Error('dependency "@gemini-wallet/core" not found');
94
- }
95
- })();
96
- walletProvider = new GeminiWalletProvider({
97
- appMetadata: parameters.appMetadata ?? {},
98
- chain: {
99
- id: config.chains[0]?.id ?? 1,
100
- rpcUrl: config.chains[0]?.rpcUrls?.default?.http[0],
101
- },
102
- });
103
- }
104
- return walletProvider;
105
- },
106
- async isAuthorized() {
107
- try {
108
- const accounts = await this.getAccounts();
109
- return Boolean(accounts.length);
110
- }
111
- catch {
112
- return false;
113
- }
114
- },
115
- async switchChain({ chainId }) {
116
- const chain = config.chains.find((chain) => chain.id === chainId);
117
- if (!chain)
118
- throw new SwitchChainError(new ChainNotConfiguredError());
119
- const provider = await this.getProvider();
120
- try {
121
- await provider.request({
122
- method: 'wallet_switchEthereumChain',
123
- params: [{ chainId: numberToHex(chainId) }],
124
- });
125
- return chain;
126
- }
127
- catch (error) {
128
- throw new SwitchChainError(error);
129
- }
130
- },
131
- onAccountsChanged(accounts) {
132
- if (accounts.length === 0)
133
- this.onDisconnect();
134
- else
135
- config.emitter.emit('change', {
136
- accounts: accounts.map((x) => getAddress(x)),
137
- });
138
- },
139
- onChainChanged(chain) {
140
- const chainId = Number(chain);
141
- config.emitter.emit('change', { chainId });
142
- },
143
- async onDisconnect() {
144
- config.emitter.emit('disconnect');
145
- const provider = await this.getProvider();
146
- if (onAccountsChanged) {
147
- provider.removeListener('accountsChanged', onAccountsChanged);
148
- onAccountsChanged = undefined;
149
- }
150
- if (onChainChanged) {
151
- provider.removeListener('chainChanged', onChainChanged);
152
- onChainChanged = undefined;
153
- }
154
- if (onDisconnect) {
155
- provider.removeListener('disconnect', onDisconnect);
156
- onDisconnect = undefined;
157
- }
158
- },
159
- }));
160
- }
161
- //# sourceMappingURL=gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { AppMetadata, ProviderInterface } from '@gemini-wallet/core';
2
- export type GeminiParameters = {
3
- appMetadata?: AppMetadata;
4
- };
5
- export declare function gemini(parameters?: GeminiParameters): import("@wagmi/core").CreateConnectorFn<ProviderInterface, Record<string, unknown>, Record<string, unknown>>;
6
- export declare namespace gemini {
7
- var type: "gemini";
8
- }
9
- //# sourceMappingURL=gemini.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAazE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAGD,wBAAgB,MAAM,CAAC,UAAU,GAAE,gBAAqB,gHAoKvD;yBApKe,MAAM"}
package/src/gemini.ts DELETED
@@ -1,183 +0,0 @@
1
- import type { AppMetadata, ProviderInterface } from '@gemini-wallet/core'
2
- import {
3
- ChainNotConfiguredError,
4
- type Connector,
5
- createConnector,
6
- } from '@wagmi/core'
7
- import {
8
- getAddress,
9
- numberToHex,
10
- SwitchChainError,
11
- UserRejectedRequestError,
12
- } from 'viem'
13
-
14
- export type GeminiParameters = {
15
- appMetadata?: AppMetadata
16
- }
17
-
18
- gemini.type = 'gemini' as const
19
- export function gemini(parameters: GeminiParameters = {}) {
20
- type Provider = ProviderInterface
21
-
22
- let walletProvider: Provider | undefined
23
- let onAccountsChanged: Connector['onAccountsChanged'] | undefined
24
- let onChainChanged: Connector['onChainChanged'] | undefined
25
- let onDisconnect: Connector['onDisconnect'] | undefined
26
-
27
- return createConnector<Provider>((config) => ({
28
- id: 'gemini',
29
- name: 'Gemini Wallet',
30
- type: gemini.type,
31
- icon: 'https://keys.gemini.com/images/gemini-wallet-logo.svg',
32
- async connect({ chainId, withCapabilities } = {}) {
33
- try {
34
- const provider = await this.getProvider()
35
- const accounts = (await provider.request({
36
- method: 'eth_requestAccounts',
37
- })) as string[]
38
-
39
- if (!onAccountsChanged) {
40
- onAccountsChanged = this.onAccountsChanged.bind(this)
41
- provider.on('accountsChanged', onAccountsChanged)
42
- }
43
- if (!onChainChanged) {
44
- onChainChanged = this.onChainChanged.bind(this)
45
- provider.on('chainChanged', onChainChanged)
46
- }
47
- if (!onDisconnect) {
48
- onDisconnect = this.onDisconnect.bind(this)
49
- provider.on('disconnect', onDisconnect)
50
- }
51
-
52
- let currentChainId = await this.getChainId()
53
- if (chainId && currentChainId !== chainId) {
54
- const chain = await this.switchChain!({ chainId }).catch((error) => {
55
- if (error.code === UserRejectedRequestError.code) throw error
56
- return { id: currentChainId }
57
- })
58
- currentChainId = chain?.id ?? currentChainId
59
- }
60
-
61
- return {
62
- // TODO(v3): Make `withCapabilities: true` default behavior
63
- accounts: (withCapabilities
64
- ? accounts.map((address) => ({ address, capabilities: {} }))
65
- : accounts) as never,
66
- chainId: currentChainId,
67
- }
68
- } catch (error) {
69
- if (
70
- /(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(
71
- (error as Error).message,
72
- )
73
- )
74
- throw new UserRejectedRequestError(error as Error)
75
- throw error
76
- }
77
- },
78
- async disconnect() {
79
- const provider = await this.getProvider()
80
-
81
- if (onAccountsChanged) {
82
- provider.removeListener('accountsChanged', onAccountsChanged)
83
- onAccountsChanged = undefined
84
- }
85
- if (onChainChanged) {
86
- provider.removeListener('chainChanged', onChainChanged)
87
- onChainChanged = undefined
88
- }
89
- if (onDisconnect) {
90
- provider.removeListener('disconnect', onDisconnect)
91
- onDisconnect = undefined
92
- }
93
-
94
- await provider.disconnect()
95
- },
96
- async getAccounts() {
97
- const provider = await this.getProvider()
98
- const accounts = (await provider.request({
99
- method: 'eth_accounts',
100
- })) as string[]
101
- return accounts.map((x) => getAddress(x))
102
- },
103
- async getChainId() {
104
- const provider = await this.getProvider()
105
- const chainId = (await provider.request({
106
- method: 'eth_chainId',
107
- })) as string
108
- return Number(chainId)
109
- },
110
- async getProvider() {
111
- if (!walletProvider) {
112
- const { GeminiWalletProvider } = await (() => {
113
- // safe webpack optional peer dependency dynamic import
114
- try {
115
- return import('@gemini-wallet/core')
116
- } catch {
117
- throw new Error('dependency "@gemini-wallet/core" not found')
118
- }
119
- })()
120
- walletProvider = new GeminiWalletProvider({
121
- appMetadata: parameters.appMetadata ?? {},
122
- chain: {
123
- id: config.chains[0]?.id ?? 1,
124
- rpcUrl: config.chains[0]?.rpcUrls?.default?.http[0],
125
- },
126
- })
127
- }
128
- return walletProvider
129
- },
130
- async isAuthorized() {
131
- try {
132
- const accounts = await this.getAccounts()
133
- return Boolean(accounts.length)
134
- } catch {
135
- return false
136
- }
137
- },
138
- async switchChain({ chainId }) {
139
- const chain = config.chains.find((chain) => chain.id === chainId)
140
- if (!chain) throw new SwitchChainError(new ChainNotConfiguredError())
141
-
142
- const provider = await this.getProvider()
143
-
144
- try {
145
- await provider.request({
146
- method: 'wallet_switchEthereumChain',
147
- params: [{ chainId: numberToHex(chainId) }],
148
- })
149
- return chain
150
- } catch (error) {
151
- throw new SwitchChainError(error as Error)
152
- }
153
- },
154
- onAccountsChanged(accounts) {
155
- if (accounts.length === 0) this.onDisconnect()
156
- else
157
- config.emitter.emit('change', {
158
- accounts: accounts.map((x: string) => getAddress(x)),
159
- })
160
- },
161
- onChainChanged(chain) {
162
- const chainId = Number(chain)
163
- config.emitter.emit('change', { chainId })
164
- },
165
- async onDisconnect() {
166
- config.emitter.emit('disconnect')
167
-
168
- const provider = await this.getProvider()
169
- if (onAccountsChanged) {
170
- provider.removeListener('accountsChanged', onAccountsChanged)
171
- onAccountsChanged = undefined
172
- }
173
- if (onChainChanged) {
174
- provider.removeListener('chainChanged', onChainChanged)
175
- onChainChanged = undefined
176
- }
177
- if (onDisconnect) {
178
- provider.removeListener('disconnect', onDisconnect)
179
- onDisconnect = undefined
180
- }
181
- },
182
- }))
183
- }