@wagmi/connectors 5.9.2 → 5.9.3

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.
@@ -2,6 +2,7 @@
2
2
  export { injected, mock, } from '@wagmi/core';
3
3
  export { baseAccount } from '../baseAccount.js';
4
4
  export { coinbaseWallet, } from '../coinbaseWallet.js';
5
+ export { gemini } from '../gemini.js';
5
6
  export { metaMask } from '../metaMask.js';
6
7
  export { safe } from '../safe.js';
7
8
  export { version } from '../version.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAEL,QAAQ,EAER,IAAI,GACL,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA8B,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE3E,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAA2B,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAuB,IAAI,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAEL,aAAa,GACd,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAEL,QAAQ,EAER,IAAI,GACL,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA8B,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE3E,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAyB,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAA2B,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAuB,IAAI,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAEL,aAAa,GACd,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,150 @@
1
+ import { GeminiWalletProvider } from '@gemini-wallet/core';
2
+ import { ChainNotConfiguredError, createConnector, } from '@wagmi/core';
3
+ import { getAddress, numberToHex, SwitchChainError, UserRejectedRequestError, } from 'viem';
4
+ gemini.type = 'gemini';
5
+ export function gemini(parameters = {}) {
6
+ let walletProvider;
7
+ let onAccountsChanged;
8
+ let onChainChanged;
9
+ let onDisconnect;
10
+ return createConnector((config) => ({
11
+ id: 'gemini',
12
+ name: 'Gemini Wallet',
13
+ type: gemini.type,
14
+ icon: 'https://keys.gemini.com/images/gemini-wallet-logo.svg',
15
+ async connect({ chainId } = {}) {
16
+ try {
17
+ const provider = await this.getProvider();
18
+ const accounts = (await provider.request({
19
+ method: 'eth_requestAccounts',
20
+ }));
21
+ if (!onAccountsChanged) {
22
+ onAccountsChanged = this.onAccountsChanged.bind(this);
23
+ provider.on('accountsChanged', onAccountsChanged);
24
+ }
25
+ if (!onChainChanged) {
26
+ onChainChanged = this.onChainChanged.bind(this);
27
+ provider.on('chainChanged', onChainChanged);
28
+ }
29
+ if (!onDisconnect) {
30
+ onDisconnect = this.onDisconnect.bind(this);
31
+ provider.on('disconnect', onDisconnect);
32
+ }
33
+ let currentChainId = await this.getChainId();
34
+ if (chainId && currentChainId !== chainId) {
35
+ const chain = await this.switchChain({ chainId }).catch((error) => {
36
+ if (error.code === UserRejectedRequestError.code)
37
+ throw error;
38
+ return { id: currentChainId };
39
+ });
40
+ currentChainId = chain?.id ?? currentChainId;
41
+ }
42
+ return {
43
+ accounts: accounts.map((x) => getAddress(x)),
44
+ chainId: currentChainId,
45
+ };
46
+ }
47
+ catch (error) {
48
+ if (/(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(error.message))
49
+ throw new UserRejectedRequestError(error);
50
+ throw error;
51
+ }
52
+ },
53
+ async disconnect() {
54
+ const provider = await this.getProvider();
55
+ if (onAccountsChanged) {
56
+ provider.removeListener('accountsChanged', onAccountsChanged);
57
+ onAccountsChanged = undefined;
58
+ }
59
+ if (onChainChanged) {
60
+ provider.removeListener('chainChanged', onChainChanged);
61
+ onChainChanged = undefined;
62
+ }
63
+ if (onDisconnect) {
64
+ provider.removeListener('disconnect', onDisconnect);
65
+ onDisconnect = undefined;
66
+ }
67
+ await provider.disconnect();
68
+ },
69
+ async getAccounts() {
70
+ const provider = await this.getProvider();
71
+ const accounts = (await provider.request({
72
+ method: 'eth_accounts',
73
+ }));
74
+ return accounts.map((x) => getAddress(x));
75
+ },
76
+ async getChainId() {
77
+ const provider = await this.getProvider();
78
+ const chainId = (await provider.request({
79
+ method: 'eth_chainId',
80
+ }));
81
+ return Number(chainId);
82
+ },
83
+ async getProvider() {
84
+ if (!walletProvider) {
85
+ walletProvider = new GeminiWalletProvider({
86
+ appMetadata: parameters.appMetadata ?? {},
87
+ chain: {
88
+ id: config.chains[0]?.id ?? 1,
89
+ rpcUrl: config.chains[0]?.rpcUrls?.default?.http[0],
90
+ },
91
+ });
92
+ }
93
+ return walletProvider;
94
+ },
95
+ async isAuthorized() {
96
+ try {
97
+ const accounts = await this.getAccounts();
98
+ return Boolean(accounts.length);
99
+ }
100
+ catch {
101
+ return false;
102
+ }
103
+ },
104
+ async switchChain({ chainId }) {
105
+ const chain = config.chains.find((chain) => chain.id === chainId);
106
+ if (!chain)
107
+ throw new SwitchChainError(new ChainNotConfiguredError());
108
+ const provider = await this.getProvider();
109
+ try {
110
+ await provider.request({
111
+ method: 'wallet_switchEthereumChain',
112
+ params: [{ chainId: numberToHex(chainId) }],
113
+ });
114
+ return chain;
115
+ }
116
+ catch (error) {
117
+ throw new SwitchChainError(error);
118
+ }
119
+ },
120
+ onAccountsChanged(accounts) {
121
+ if (accounts.length === 0)
122
+ this.onDisconnect();
123
+ else
124
+ config.emitter.emit('change', {
125
+ accounts: accounts.map((x) => getAddress(x)),
126
+ });
127
+ },
128
+ onChainChanged(chain) {
129
+ const chainId = Number(chain);
130
+ config.emitter.emit('change', { chainId });
131
+ },
132
+ async onDisconnect() {
133
+ config.emitter.emit('disconnect');
134
+ const provider = await this.getProvider();
135
+ if (onAccountsChanged) {
136
+ provider.removeListener('accountsChanged', onAccountsChanged);
137
+ onAccountsChanged = undefined;
138
+ }
139
+ if (onChainChanged) {
140
+ provider.removeListener('chainChanged', onChainChanged);
141
+ onChainChanged = undefined;
142
+ }
143
+ if (onDisconnect) {
144
+ provider.removeListener('disconnect', onDisconnect);
145
+ onDisconnect = undefined;
146
+ }
147
+ },
148
+ }));
149
+ }
150
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.ts"],"names":[],"mappings":"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"}