@wagmi/core 0.6.12 → 0.7.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.
Files changed (184) hide show
  1. package/chains/package.json +2 -2
  2. package/connectors/coinbaseWallet/package.json +2 -2
  3. package/connectors/metaMask/package.json +2 -2
  4. package/connectors/mock/package.json +2 -2
  5. package/connectors/walletConnect/package.json +2 -2
  6. package/dist/{declarations/src/connectors/base.d.ts → base-5bd9b5ed.d.ts} +8 -5
  7. package/dist/chains.d.ts +3 -0
  8. package/dist/chains.js +29 -0
  9. package/dist/chunk-4DNFSL2K.js +376 -0
  10. package/dist/chunk-MQXBDTVK.js +29 -0
  11. package/dist/chunk-WA7I47EF.js +3496 -0
  12. package/dist/{declarations/src/connectors → connectors}/coinbaseWallet.d.ts +10 -6
  13. package/dist/connectors/coinbaseWallet.js +215 -0
  14. package/dist/{declarations/src/connectors → connectors}/metaMask.d.ts +11 -4
  15. package/dist/connectors/metaMask.js +115 -0
  16. package/dist/connectors/mock/index.d.ts +78 -0
  17. package/dist/connectors/mock/index.js +190 -0
  18. package/dist/{declarations/src/connectors → connectors}/walletConnect.d.ts +9 -5
  19. package/dist/connectors/walletConnect.js +160 -0
  20. package/dist/{declarations/src/types/contracts.d.ts → contracts-fb6a6ff0.d.ts} +122 -17
  21. package/dist/{declarations/src/types/index.d.ts → index-bacc1c49.d.ts} +83 -15
  22. package/dist/index.d.ts +1738 -0
  23. package/dist/index.js +165 -0
  24. package/dist/{declarations/src/connectors/injected.d.ts → injected-6980e5c3.d.ts} +9 -6
  25. package/dist/internal.d.ts +8 -0
  26. package/dist/internal.js +8 -0
  27. package/dist/providers/alchemy.d.ts +11 -0
  28. package/dist/providers/alchemy.js +32 -0
  29. package/dist/providers/infura.d.ts +11 -0
  30. package/dist/providers/infura.js +32 -0
  31. package/dist/providers/jsonRpc.d.ts +14 -0
  32. package/dist/providers/jsonRpc.js +44 -0
  33. package/dist/providers/public.d.ts +8 -0
  34. package/dist/providers/public.js +30 -0
  35. package/internal/package.json +2 -2
  36. package/package.json +40 -51
  37. package/providers/alchemy/package.json +2 -2
  38. package/providers/infura/package.json +2 -2
  39. package/providers/jsonRpc/package.json +2 -2
  40. package/providers/public/package.json +2 -2
  41. package/chains/dist/wagmi-core-chains.cjs.d.ts +0 -1
  42. package/chains/dist/wagmi-core-chains.cjs.dev.js +0 -26
  43. package/chains/dist/wagmi-core-chains.cjs.js +0 -7
  44. package/chains/dist/wagmi-core-chains.cjs.prod.js +0 -26
  45. package/chains/dist/wagmi-core-chains.esm.js +0 -2
  46. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.d.ts +0 -1
  47. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +0 -274
  48. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.js +0 -7
  49. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +0 -274
  50. package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +0 -252
  51. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.d.ts +0 -1
  52. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +0 -153
  53. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.js +0 -7
  54. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +0 -153
  55. package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +0 -149
  56. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.d.ts +0 -1
  57. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +0 -262
  58. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.js +0 -7
  59. package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +0 -262
  60. package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +0 -253
  61. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.d.ts +0 -1
  62. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +0 -228
  63. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.js +0 -7
  64. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +0 -228
  65. package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +0 -206
  66. package/dist/chains-73cc6c23.cjs.prod.js +0 -526
  67. package/dist/chains-8fce19d8.esm.js +0 -502
  68. package/dist/chains-fe1f4131.cjs.dev.js +0 -526
  69. package/dist/debounce-0862bf88.esm.js +0 -18
  70. package/dist/debounce-2d836dc9.cjs.prod.js +0 -20
  71. package/dist/debounce-46ac0312.cjs.dev.js +0 -20
  72. package/dist/declarations/src/actions/accounts/connect.d.ts +0 -18
  73. package/dist/declarations/src/actions/accounts/disconnect.d.ts +0 -1
  74. package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +0 -19
  75. package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +0 -7
  76. package/dist/declarations/src/actions/accounts/getAccount.d.ts +0 -36
  77. package/dist/declarations/src/actions/accounts/getNetwork.d.ts +0 -8
  78. package/dist/declarations/src/actions/accounts/index.d.ts +0 -12
  79. package/dist/declarations/src/actions/accounts/signMessage.d.ts +0 -7
  80. package/dist/declarations/src/actions/accounts/signTypedData.d.ts +0 -23
  81. package/dist/declarations/src/actions/accounts/switchNetwork.d.ts +0 -6
  82. package/dist/declarations/src/actions/accounts/watchAccount.d.ts +0 -12
  83. package/dist/declarations/src/actions/accounts/watchNetwork.d.ts +0 -10
  84. package/dist/declarations/src/actions/accounts/watchSigner.d.ts +0 -5
  85. package/dist/declarations/src/actions/contracts/fetchToken.d.ts +0 -21
  86. package/dist/declarations/src/actions/contracts/getContract.d.ts +0 -113
  87. package/dist/declarations/src/actions/contracts/index.d.ts +0 -11
  88. package/dist/declarations/src/actions/contracts/multicall.d.ts +0 -17
  89. package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +0 -47
  90. package/dist/declarations/src/actions/contracts/readContract.d.ts +0 -15
  91. package/dist/declarations/src/actions/contracts/readContracts.d.ts +0 -28
  92. package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +0 -28
  93. package/dist/declarations/src/actions/contracts/watchMulticall.d.ts +0 -10
  94. package/dist/declarations/src/actions/contracts/watchReadContract.d.ts +0 -7
  95. package/dist/declarations/src/actions/contracts/watchReadContracts.d.ts +0 -10
  96. package/dist/declarations/src/actions/contracts/writeContract.d.ts +0 -72
  97. package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +0 -9
  98. package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +0 -8
  99. package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +0 -9
  100. package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +0 -9
  101. package/dist/declarations/src/actions/ens/index.d.ts +0 -4
  102. package/dist/declarations/src/actions/index.d.ts +0 -6
  103. package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +0 -5
  104. package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +0 -16
  105. package/dist/declarations/src/actions/network-status/index.d.ts +0 -3
  106. package/dist/declarations/src/actions/network-status/watchBlockNumber.d.ts +0 -7
  107. package/dist/declarations/src/actions/providers/getProvider.d.ts +0 -7
  108. package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +0 -7
  109. package/dist/declarations/src/actions/providers/index.d.ts +0 -4
  110. package/dist/declarations/src/actions/providers/watchProvider.d.ts +0 -4
  111. package/dist/declarations/src/actions/providers/watchWebSocketProvider.d.ts +0 -4
  112. package/dist/declarations/src/actions/transactions/fetchTransaction.d.ts +0 -21
  113. package/dist/declarations/src/actions/transactions/index.d.ts +0 -4
  114. package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +0 -37
  115. package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +0 -48
  116. package/dist/declarations/src/actions/transactions/waitForTransaction.d.ts +0 -18
  117. package/dist/declarations/src/chains.d.ts +0 -1
  118. package/dist/declarations/src/client.d.ts +0 -91
  119. package/dist/declarations/src/connectors/index.d.ts +0 -2
  120. package/dist/declarations/src/connectors/mock/connector.d.ts +0 -34
  121. package/dist/declarations/src/connectors/mock/index.d.ts +0 -2
  122. package/dist/declarations/src/connectors/mock/provider.d.ts +0 -41
  123. package/dist/declarations/src/constants/abis.d.ts +0 -941
  124. package/dist/declarations/src/constants/blockExplorers.d.ts +0 -9
  125. package/dist/declarations/src/constants/chains.d.ts +0 -64
  126. package/dist/declarations/src/constants/index.d.ts +0 -7
  127. package/dist/declarations/src/constants/rpcs.d.ts +0 -11
  128. package/dist/declarations/src/constants/units.d.ts +0 -1
  129. package/dist/declarations/src/errors.d.ts +0 -134
  130. package/dist/declarations/src/index.d.ts +0 -14
  131. package/dist/declarations/src/internal.d.ts +0 -3
  132. package/dist/declarations/src/providers/alchemy.d.ts +0 -6
  133. package/dist/declarations/src/providers/infura.d.ts +0 -6
  134. package/dist/declarations/src/providers/jsonRpc.d.ts +0 -10
  135. package/dist/declarations/src/providers/public.d.ts +0 -4
  136. package/dist/declarations/src/storage.d.ts +0 -12
  137. package/dist/declarations/src/types/utils.d.ts +0 -103
  138. package/dist/declarations/src/utils/assertActiveChain.d.ts +0 -5
  139. package/dist/declarations/src/utils/configureChains.d.ts +0 -26
  140. package/dist/declarations/src/utils/debounce.d.ts +0 -1
  141. package/dist/declarations/src/utils/deepEqual.d.ts +0 -2
  142. package/dist/declarations/src/utils/getInjectedName.d.ts +0 -2
  143. package/dist/declarations/src/utils/index.d.ts +0 -11
  144. package/dist/declarations/src/utils/logger.d.ts +0 -1
  145. package/dist/declarations/src/utils/minimizeContractInterface.d.ts +0 -5
  146. package/dist/declarations/src/utils/normalizeChainId.d.ts +0 -1
  147. package/dist/declarations/src/utils/normalizeFunctionName.d.ts +0 -17
  148. package/dist/declarations/src/utils/parseContractResult.d.ts +0 -7
  149. package/dist/getProvider-3b1af4e6.cjs.dev.js +0 -1143
  150. package/dist/getProvider-84f303a1.cjs.prod.js +0 -1143
  151. package/dist/getProvider-97db849e.esm.js +0 -1105
  152. package/dist/rpcs-38f4faba.cjs.prod.js +0 -57
  153. package/dist/rpcs-52ea3d8d.cjs.dev.js +0 -57
  154. package/dist/rpcs-d533516e.esm.js +0 -51
  155. package/dist/wagmi-core.cjs.d.ts +0 -1
  156. package/dist/wagmi-core.cjs.dev.js +0 -2683
  157. package/dist/wagmi-core.cjs.js +0 -7
  158. package/dist/wagmi-core.cjs.prod.js +0 -2683
  159. package/dist/wagmi-core.esm.js +0 -2599
  160. package/internal/dist/wagmi-core-internal.cjs.d.ts +0 -1
  161. package/internal/dist/wagmi-core-internal.cjs.dev.js +0 -9
  162. package/internal/dist/wagmi-core-internal.cjs.js +0 -7
  163. package/internal/dist/wagmi-core-internal.cjs.prod.js +0 -9
  164. package/internal/dist/wagmi-core-internal.esm.js +0 -1
  165. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.d.ts +0 -1
  166. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -36
  167. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.js +0 -7
  168. package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -36
  169. package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -32
  170. package/providers/infura/dist/wagmi-core-providers-infura.cjs.d.ts +0 -1
  171. package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -36
  172. package/providers/infura/dist/wagmi-core-providers-infura.cjs.js +0 -7
  173. package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -36
  174. package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -32
  175. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.d.ts +0 -1
  176. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -46
  177. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.js +0 -7
  178. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -46
  179. package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -42
  180. package/providers/public/dist/wagmi-core-providers-public.cjs.d.ts +0 -1
  181. package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -32
  182. package/providers/public/dist/wagmi-core-providers-public.cjs.js +0 -7
  183. package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -32
  184. package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -28
@@ -1,8 +1,11 @@
1
- import type { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
2
- import type { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
1
+ import { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
2
+ import { CoinbaseWalletSDKOptions } from '@coinbase/wallet-sdk/dist/CoinbaseWalletSDK';
3
3
  import { providers } from 'ethers';
4
- import { Chain } from '../types';
5
- import { Connector } from './base';
4
+ import { C as Chain } from '../index-bacc1c49.js';
5
+ import { C as Connector } from '../base-5bd9b5ed.js';
6
+ import 'abitype';
7
+ import 'eventemitter3';
8
+
6
9
  declare type Options = CoinbaseWalletSDKOptions & {
7
10
  /**
8
11
  * Fallback Ethereum JSON RPC URL
@@ -15,7 +18,7 @@ declare type Options = CoinbaseWalletSDKOptions & {
15
18
  */
16
19
  chainId?: number;
17
20
  };
18
- export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options, providers.JsonRpcSigner> {
21
+ declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletProvider, Options, providers.JsonRpcSigner> {
19
22
  #private;
20
23
  readonly id = "coinbaseWallet";
21
24
  readonly name = "Coinbase Wallet";
@@ -53,4 +56,5 @@ export declare class CoinbaseWalletConnector extends Connector<CoinbaseWalletPro
53
56
  protected onChainChanged: (chainId: number | string) => void;
54
57
  protected onDisconnect: () => void;
55
58
  }
56
- export {};
59
+
60
+ export { CoinbaseWalletConnector };
@@ -0,0 +1,215 @@
1
+ import {
2
+ AddChainError,
3
+ ChainNotConfiguredError,
4
+ Connector,
5
+ SwitchChainError,
6
+ UserRejectedRequestError,
7
+ normalizeChainId
8
+ } from "../chunk-WA7I47EF.js";
9
+ import "../chunk-4DNFSL2K.js";
10
+ import {
11
+ __privateAdd,
12
+ __privateGet,
13
+ __privateMethod,
14
+ __privateSet
15
+ } from "../chunk-MQXBDTVK.js";
16
+
17
+ // src/connectors/coinbaseWallet.ts
18
+ import { providers } from "ethers";
19
+ import { getAddress, hexValue } from "ethers/lib/utils.js";
20
+ var _client, _provider, _isUserRejectedRequestError, isUserRejectedRequestError_fn;
21
+ var CoinbaseWalletConnector = class extends Connector {
22
+ constructor({ chains, options }) {
23
+ super({
24
+ chains,
25
+ options: {
26
+ reloadOnDisconnect: false,
27
+ ...options
28
+ }
29
+ });
30
+ __privateAdd(this, _isUserRejectedRequestError);
31
+ this.id = "coinbaseWallet";
32
+ this.name = "Coinbase Wallet";
33
+ this.ready = true;
34
+ __privateAdd(this, _client, void 0);
35
+ __privateAdd(this, _provider, void 0);
36
+ this.onAccountsChanged = (accounts) => {
37
+ if (accounts.length === 0)
38
+ this.emit("disconnect");
39
+ else
40
+ this.emit("change", { account: getAddress(accounts[0]) });
41
+ };
42
+ this.onChainChanged = (chainId) => {
43
+ const id = normalizeChainId(chainId);
44
+ const unsupported = this.isChainUnsupported(id);
45
+ this.emit("change", { chain: { id, unsupported } });
46
+ };
47
+ this.onDisconnect = () => {
48
+ this.emit("disconnect");
49
+ };
50
+ }
51
+ async connect({ chainId } = {}) {
52
+ try {
53
+ const provider = await this.getProvider();
54
+ provider.on("accountsChanged", this.onAccountsChanged);
55
+ provider.on("chainChanged", this.onChainChanged);
56
+ provider.on("disconnect", this.onDisconnect);
57
+ this.emit("message", { type: "connecting" });
58
+ const accounts = await provider.enable();
59
+ const account = getAddress(accounts[0]);
60
+ let id = await this.getChainId();
61
+ let unsupported = this.isChainUnsupported(id);
62
+ if (chainId && id !== chainId) {
63
+ const chain = await this.switchChain(chainId);
64
+ id = chain.id;
65
+ unsupported = this.isChainUnsupported(id);
66
+ }
67
+ return {
68
+ account,
69
+ chain: { id, unsupported },
70
+ provider: new providers.Web3Provider(
71
+ provider
72
+ )
73
+ };
74
+ } catch (error) {
75
+ if (/(user closed modal|accounts received is empty)/i.test(
76
+ error.message
77
+ ))
78
+ throw new UserRejectedRequestError(error);
79
+ throw error;
80
+ }
81
+ }
82
+ async disconnect() {
83
+ if (!__privateGet(this, _provider))
84
+ return;
85
+ const provider = await this.getProvider();
86
+ provider.removeListener("accountsChanged", this.onAccountsChanged);
87
+ provider.removeListener("chainChanged", this.onChainChanged);
88
+ provider.removeListener("disconnect", this.onDisconnect);
89
+ provider.disconnect();
90
+ provider.close();
91
+ }
92
+ async getAccount() {
93
+ const provider = await this.getProvider();
94
+ const accounts = await provider.request({
95
+ method: "eth_accounts"
96
+ });
97
+ return getAddress(accounts[0]);
98
+ }
99
+ async getChainId() {
100
+ const provider = await this.getProvider();
101
+ const chainId = normalizeChainId(provider.chainId);
102
+ return chainId;
103
+ }
104
+ async getProvider() {
105
+ if (!__privateGet(this, _provider)) {
106
+ let CoinbaseWalletSDK = (await import("@coinbase/wallet-sdk")).default;
107
+ if (typeof CoinbaseWalletSDK !== "function" && typeof CoinbaseWalletSDK.default === "function")
108
+ CoinbaseWalletSDK = CoinbaseWalletSDK.default;
109
+ __privateSet(this, _client, new CoinbaseWalletSDK(this.options));
110
+ class WalletProvider {
111
+ }
112
+ class Client {
113
+ }
114
+ const walletExtensionChainId = __privateGet(this, _client).walletExtension?.getChainId();
115
+ const chain = this.chains.find(
116
+ (chain2) => this.options.chainId ? chain2.id === this.options.chainId : chain2.id === walletExtensionChainId
117
+ ) || this.chains[0];
118
+ const chainId = this.options.chainId || chain?.id;
119
+ const jsonRpcUrl = this.options.jsonRpcUrl || chain?.rpcUrls.default;
120
+ __privateSet(this, _provider, __privateGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));
121
+ }
122
+ return __privateGet(this, _provider);
123
+ }
124
+ async getSigner({ chainId } = {}) {
125
+ const [provider, account] = await Promise.all([
126
+ this.getProvider(),
127
+ this.getAccount()
128
+ ]);
129
+ return new providers.Web3Provider(
130
+ provider,
131
+ chainId
132
+ ).getSigner(account);
133
+ }
134
+ async isAuthorized() {
135
+ try {
136
+ const account = await this.getAccount();
137
+ return !!account;
138
+ } catch {
139
+ return false;
140
+ }
141
+ }
142
+ async switchChain(chainId) {
143
+ const provider = await this.getProvider();
144
+ const id = hexValue(chainId);
145
+ try {
146
+ await provider.request({
147
+ method: "wallet_switchEthereumChain",
148
+ params: [{ chainId: id }]
149
+ });
150
+ return this.chains.find((x) => x.id === chainId) ?? {
151
+ id: chainId,
152
+ name: `Chain ${id}`,
153
+ network: `${id}`,
154
+ rpcUrls: { default: "" }
155
+ };
156
+ } catch (error) {
157
+ const chain = this.chains.find((x) => x.id === chainId);
158
+ if (!chain)
159
+ throw new ChainNotConfiguredError({ chainId, connectorId: this.id });
160
+ if (error.code === 4902) {
161
+ try {
162
+ await provider.request({
163
+ method: "wallet_addEthereumChain",
164
+ params: [
165
+ {
166
+ chainId: id,
167
+ chainName: chain.name,
168
+ nativeCurrency: chain.nativeCurrency,
169
+ rpcUrls: [chain.rpcUrls.public ?? chain.rpcUrls.default],
170
+ blockExplorerUrls: this.getBlockExplorerUrls(chain)
171
+ }
172
+ ]
173
+ });
174
+ return chain;
175
+ } catch (addError) {
176
+ if (__privateMethod(this, _isUserRejectedRequestError, isUserRejectedRequestError_fn).call(this, addError))
177
+ throw new UserRejectedRequestError(addError);
178
+ throw new AddChainError();
179
+ }
180
+ }
181
+ if (__privateMethod(this, _isUserRejectedRequestError, isUserRejectedRequestError_fn).call(this, error))
182
+ throw new UserRejectedRequestError(error);
183
+ throw new SwitchChainError(error);
184
+ }
185
+ }
186
+ async watchAsset({
187
+ address,
188
+ decimals = 18,
189
+ image,
190
+ symbol
191
+ }) {
192
+ const provider = await this.getProvider();
193
+ return provider.request({
194
+ method: "wallet_watchAsset",
195
+ params: {
196
+ type: "ERC20",
197
+ options: {
198
+ address,
199
+ decimals,
200
+ image,
201
+ symbol
202
+ }
203
+ }
204
+ });
205
+ }
206
+ };
207
+ _client = new WeakMap();
208
+ _provider = new WeakMap();
209
+ _isUserRejectedRequestError = new WeakSet();
210
+ isUserRejectedRequestError_fn = function(error) {
211
+ return /(user rejected)/i.test(error.message);
212
+ };
213
+ export {
214
+ CoinbaseWalletConnector
215
+ };
@@ -1,12 +1,17 @@
1
- import { Chain, Ethereum } from '../types';
2
- import { InjectedConnector, InjectedConnectorOptions } from './injected';
3
- export declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimChainChangedDisconnect' | 'shimDisconnect'> & {
1
+ import { C as Chain, E as Ethereum } from '../index-bacc1c49.js';
2
+ import { a as InjectedConnectorOptions, I as InjectedConnector } from '../injected-6980e5c3.js';
3
+ import 'abitype';
4
+ import 'ethers';
5
+ import '../base-5bd9b5ed.js';
6
+ import 'eventemitter3';
7
+
8
+ declare type MetaMaskConnectorOptions = Pick<InjectedConnectorOptions, 'shimChainChangedDisconnect' | 'shimDisconnect'> & {
4
9
  /**
5
10
  * While "disconnected" with `shimDisconnect`, allows user to select a different MetaMask account (than the currently connected account) when trying to connect.
6
11
  */
7
12
  UNSTABLE_shimOnConnectSelectAccount?: boolean;
8
13
  };
9
- export declare class MetaMaskConnector extends InjectedConnector {
14
+ declare class MetaMaskConnector extends InjectedConnector {
10
15
  #private;
11
16
  readonly id = "metaMask";
12
17
  readonly ready: boolean;
@@ -26,3 +31,5 @@ export declare class MetaMaskConnector extends InjectedConnector {
26
31
  }>;
27
32
  getProvider(): Promise<Ethereum | undefined>;
28
33
  }
34
+
35
+ export { MetaMaskConnector, MetaMaskConnectorOptions };
@@ -0,0 +1,115 @@
1
+ import {
2
+ ConnectorNotFoundError,
3
+ InjectedConnector,
4
+ ResourceUnavailableError,
5
+ UserRejectedRequestError,
6
+ getClient
7
+ } from "../chunk-WA7I47EF.js";
8
+ import "../chunk-4DNFSL2K.js";
9
+ import {
10
+ __privateAdd,
11
+ __privateGet,
12
+ __privateMethod,
13
+ __privateSet
14
+ } from "../chunk-MQXBDTVK.js";
15
+
16
+ // src/connectors/metaMask.ts
17
+ var _provider, _UNSTABLE_shimOnConnectSelectAccount, _getReady, getReady_fn, _findProvider, findProvider_fn;
18
+ var MetaMaskConnector = class extends InjectedConnector {
19
+ constructor({
20
+ chains,
21
+ options: options_
22
+ } = {}) {
23
+ const options = {
24
+ name: "MetaMask",
25
+ shimDisconnect: true,
26
+ shimChainChangedDisconnect: true,
27
+ ...options_
28
+ };
29
+ super({ chains, options });
30
+ __privateAdd(this, _getReady);
31
+ __privateAdd(this, _findProvider);
32
+ this.id = "metaMask";
33
+ this.ready = typeof window != "undefined" && !!__privateMethod(this, _findProvider, findProvider_fn).call(this, window.ethereum);
34
+ __privateAdd(this, _provider, void 0);
35
+ __privateAdd(this, _UNSTABLE_shimOnConnectSelectAccount, void 0);
36
+ __privateSet(this, _UNSTABLE_shimOnConnectSelectAccount, options.UNSTABLE_shimOnConnectSelectAccount);
37
+ }
38
+ async connect({ chainId } = {}) {
39
+ try {
40
+ const provider = await this.getProvider();
41
+ if (!provider)
42
+ throw new ConnectorNotFoundError();
43
+ if (provider.on) {
44
+ provider.on("accountsChanged", this.onAccountsChanged);
45
+ provider.on("chainChanged", this.onChainChanged);
46
+ provider.on("disconnect", this.onDisconnect);
47
+ }
48
+ this.emit("message", { type: "connecting" });
49
+ if (__privateGet(this, _UNSTABLE_shimOnConnectSelectAccount) && this.options?.shimDisconnect && !getClient().storage?.getItem(this.shimDisconnectKey)) {
50
+ const accounts = await provider.request({
51
+ method: "eth_accounts"
52
+ }).catch(() => []);
53
+ const isConnected = !!accounts[0];
54
+ if (isConnected)
55
+ await provider.request({
56
+ method: "wallet_requestPermissions",
57
+ params: [{ eth_accounts: {} }]
58
+ });
59
+ }
60
+ const account = await this.getAccount();
61
+ let id = await this.getChainId();
62
+ let unsupported = this.isChainUnsupported(id);
63
+ if (chainId && id !== chainId) {
64
+ const chain = await this.switchChain(chainId);
65
+ id = chain.id;
66
+ unsupported = this.isChainUnsupported(id);
67
+ }
68
+ if (this.options?.shimDisconnect)
69
+ getClient().storage?.setItem(this.shimDisconnectKey, true);
70
+ return { account, chain: { id, unsupported }, provider };
71
+ } catch (error) {
72
+ if (this.isUserRejectedRequestError(error))
73
+ throw new UserRejectedRequestError(error);
74
+ if (error.code === -32002)
75
+ throw new ResourceUnavailableError(error);
76
+ throw error;
77
+ }
78
+ }
79
+ async getProvider() {
80
+ if (typeof window !== "undefined") {
81
+ __privateSet(this, _provider, __privateMethod(this, _findProvider, findProvider_fn).call(this, window.ethereum));
82
+ }
83
+ return __privateGet(this, _provider);
84
+ }
85
+ };
86
+ _provider = new WeakMap();
87
+ _UNSTABLE_shimOnConnectSelectAccount = new WeakMap();
88
+ _getReady = new WeakSet();
89
+ getReady_fn = function(ethereum) {
90
+ const isMetaMask = !!ethereum?.isMetaMask;
91
+ if (!isMetaMask)
92
+ return;
93
+ if (ethereum.isBraveWallet && !ethereum._events && !ethereum._state)
94
+ return;
95
+ if (ethereum.isAvalanche)
96
+ return;
97
+ if (ethereum.isKuCoinWallet)
98
+ return;
99
+ if (ethereum.isPortal)
100
+ return;
101
+ if (ethereum.isTokenPocket)
102
+ return;
103
+ if (ethereum.isTokenary)
104
+ return;
105
+ return ethereum;
106
+ };
107
+ _findProvider = new WeakSet();
108
+ findProvider_fn = function(ethereum) {
109
+ if (ethereum?.providers)
110
+ return ethereum.providers.find(__privateMethod(this, _getReady, getReady_fn));
111
+ return __privateMethod(this, _getReady, getReady_fn).call(this, ethereum);
112
+ };
113
+ export {
114
+ MetaMaskConnector
115
+ };
@@ -0,0 +1,78 @@
1
+ import * as ethers from 'ethers';
2
+ import { providers } from 'ethers';
3
+ import { S as Signer, C as Chain } from '../../index-bacc1c49.js';
4
+ import { C as Connector, a as ConnectorData } from '../../base-5bd9b5ed.js';
5
+ import EventEmitter from 'eventemitter3';
6
+ import 'abitype';
7
+
8
+ declare type MockProviderOptions = {
9
+ chainId?: number;
10
+ flags?: {
11
+ isAuthorized?: boolean;
12
+ failConnect?: boolean;
13
+ failSwitchChain?: boolean;
14
+ noSwitchChain?: boolean;
15
+ };
16
+ signer: Signer;
17
+ };
18
+ declare type Events = {
19
+ accountsChanged(accounts: string[]): void;
20
+ chainChanged(chainId: number | string): void;
21
+ disconnect(): void;
22
+ };
23
+ declare type Event = keyof Events;
24
+ declare class MockProvider extends providers.BaseProvider {
25
+ #private;
26
+ events: EventEmitter<Events, any>;
27
+ constructor(options: MockProviderOptions);
28
+ enable(): Promise<string[]>;
29
+ disconnect(): Promise<void>;
30
+ getAccounts(): Promise<`0x${string}`[]>;
31
+ getSigner(): ethers.Signer;
32
+ switchChain(chainId: number): Promise<void>;
33
+ watchAsset(_asset: {
34
+ address: string;
35
+ decimals?: number;
36
+ image?: string;
37
+ symbol: string;
38
+ }): Promise<boolean>;
39
+ on(event: Event, listener: providers.Listener): this;
40
+ once(event: Event, listener: providers.Listener): this;
41
+ removeListener(event: Event, listener: providers.Listener): this;
42
+ off(event: Event, listener: providers.Listener): this;
43
+ toJSON(): string;
44
+ }
45
+
46
+ declare class MockConnector extends Connector<MockProvider, MockProviderOptions> {
47
+ #private;
48
+ readonly id = "mock";
49
+ readonly name = "Mock";
50
+ readonly ready = true;
51
+ constructor(config: {
52
+ chains?: Chain[];
53
+ options: MockProviderOptions;
54
+ });
55
+ connect({ chainId }?: {
56
+ chainId?: number;
57
+ }): Promise<Required<ConnectorData<any>>>;
58
+ disconnect(): Promise<void>;
59
+ getAccount(): Promise<`0x${string}`>;
60
+ getChainId(): Promise<number>;
61
+ getProvider({ chainId }?: {
62
+ chainId?: number;
63
+ }): Promise<MockProvider>;
64
+ getSigner(): Promise<ethers.Signer>;
65
+ isAuthorized(): Promise<boolean>;
66
+ watchAsset(asset: {
67
+ address: string;
68
+ decimals?: number;
69
+ image?: string;
70
+ symbol: string;
71
+ }): Promise<boolean>;
72
+ protected onAccountsChanged: (accounts: string[]) => void;
73
+ protected onChainChanged: (chainId: number | string) => void;
74
+ protected onDisconnect: () => void;
75
+ toJSON(): string;
76
+ }
77
+
78
+ export { MockConnector, MockProvider, MockProviderOptions };
@@ -0,0 +1,190 @@
1
+ import {
2
+ Connector,
3
+ UserRejectedRequestError,
4
+ normalizeChainId
5
+ } from "../../chunk-WA7I47EF.js";
6
+ import "../../chunk-4DNFSL2K.js";
7
+ import {
8
+ __privateAdd,
9
+ __privateGet,
10
+ __privateMethod,
11
+ __privateSet
12
+ } from "../../chunk-MQXBDTVK.js";
13
+
14
+ // src/connectors/mock/connector.ts
15
+ import { getAddress as getAddress2 } from "ethers/lib/utils.js";
16
+
17
+ // src/connectors/mock/provider.ts
18
+ import { providers } from "ethers";
19
+ import { getAddress } from "ethers/lib/utils.js";
20
+ import { default as EventEmitter } from "eventemitter3";
21
+ var _options, _signer;
22
+ var MockProvider = class extends providers.BaseProvider {
23
+ constructor(options) {
24
+ super({ name: "Network", chainId: options.chainId ?? 1 });
25
+ this.events = new EventEmitter();
26
+ __privateAdd(this, _options, void 0);
27
+ __privateAdd(this, _signer, void 0);
28
+ __privateSet(this, _options, options);
29
+ }
30
+ async enable() {
31
+ if (__privateGet(this, _options).flags?.failConnect)
32
+ throw new UserRejectedRequestError(new Error("Failed to connect"));
33
+ if (!__privateGet(this, _signer))
34
+ __privateSet(this, _signer, __privateGet(this, _options).signer);
35
+ const address = await __privateGet(this, _signer).getAddress();
36
+ this.events.emit("accountsChanged", [address]);
37
+ return [address];
38
+ }
39
+ async disconnect() {
40
+ this.events.emit("disconnect");
41
+ __privateSet(this, _signer, void 0);
42
+ }
43
+ async getAccounts() {
44
+ const address = await __privateGet(this, _signer)?.getAddress();
45
+ if (!address)
46
+ return [];
47
+ return [getAddress(address)];
48
+ }
49
+ getSigner() {
50
+ const signer = __privateGet(this, _signer);
51
+ if (!signer)
52
+ throw new Error("Signer not found");
53
+ return signer;
54
+ }
55
+ async switchChain(chainId) {
56
+ if (__privateGet(this, _options).flags?.failSwitchChain)
57
+ throw new UserRejectedRequestError(new Error("Failed to switch chain"));
58
+ __privateGet(this, _options).chainId = chainId;
59
+ this.network.chainId = chainId;
60
+ this.events.emit("chainChanged", chainId);
61
+ }
62
+ async watchAsset(_asset) {
63
+ return true;
64
+ }
65
+ on(event, listener) {
66
+ this.events.on(event, listener);
67
+ return this;
68
+ }
69
+ once(event, listener) {
70
+ this.events.once(event, listener);
71
+ return this;
72
+ }
73
+ removeListener(event, listener) {
74
+ this.events.removeListener(event, listener);
75
+ return this;
76
+ }
77
+ off(event, listener) {
78
+ this.events.off(event, listener);
79
+ return this;
80
+ }
81
+ toJSON() {
82
+ return "<MockProvider>";
83
+ }
84
+ };
85
+ _options = new WeakMap();
86
+ _signer = new WeakMap();
87
+
88
+ // src/connectors/mock/connector.ts
89
+ var _provider, _switchChain, switchChain_fn;
90
+ var MockConnector = class extends Connector {
91
+ constructor(config) {
92
+ super(config);
93
+ __privateAdd(this, _switchChain);
94
+ this.id = "mock";
95
+ this.name = "Mock";
96
+ this.ready = true;
97
+ __privateAdd(this, _provider, void 0);
98
+ this.onAccountsChanged = (accounts) => {
99
+ if (accounts.length === 0)
100
+ this.emit("disconnect");
101
+ else
102
+ this.emit("change", { account: getAddress2(accounts[0]) });
103
+ };
104
+ this.onChainChanged = (chainId) => {
105
+ const id = normalizeChainId(chainId);
106
+ const unsupported = this.isChainUnsupported(id);
107
+ this.emit("change", { chain: { id, unsupported } });
108
+ };
109
+ this.onDisconnect = () => {
110
+ this.emit("disconnect");
111
+ };
112
+ }
113
+ async connect({ chainId } = {}) {
114
+ const provider = await this.getProvider({ chainId });
115
+ provider.on("accountsChanged", this.onAccountsChanged);
116
+ provider.on("chainChanged", this.onChainChanged);
117
+ provider.on("disconnect", this.onDisconnect);
118
+ this.emit("message", { type: "connecting" });
119
+ const accounts = await provider.enable();
120
+ const account = getAddress2(accounts[0]);
121
+ const id = normalizeChainId(provider._network.chainId);
122
+ const unsupported = this.isChainUnsupported(id);
123
+ const data = { account, chain: { id, unsupported }, provider };
124
+ if (!this.options.flags?.noSwitchChain)
125
+ this.switchChain = __privateMethod(this, _switchChain, switchChain_fn);
126
+ return new Promise(
127
+ (res) => setTimeout(() => res(data), 100)
128
+ );
129
+ }
130
+ async disconnect() {
131
+ const provider = await this.getProvider();
132
+ await provider.disconnect();
133
+ provider.removeListener("accountsChanged", this.onAccountsChanged);
134
+ provider.removeListener("chainChanged", this.onChainChanged);
135
+ provider.removeListener("disconnect", this.onDisconnect);
136
+ }
137
+ async getAccount() {
138
+ const provider = await this.getProvider();
139
+ const accounts = await provider.getAccounts();
140
+ const account = accounts[0];
141
+ if (!account)
142
+ throw new Error("Failed to get account");
143
+ return getAddress2(account);
144
+ }
145
+ async getChainId() {
146
+ const provider = await this.getProvider();
147
+ return normalizeChainId(provider.network.chainId);
148
+ }
149
+ async getProvider({ chainId } = {}) {
150
+ if (!__privateGet(this, _provider) || chainId)
151
+ __privateSet(this, _provider, new MockProvider({ ...this.options, chainId }));
152
+ return __privateGet(this, _provider);
153
+ }
154
+ async getSigner() {
155
+ const provider = await this.getProvider();
156
+ return provider.getSigner();
157
+ }
158
+ async isAuthorized() {
159
+ try {
160
+ const provider = await this.getProvider();
161
+ const account = await provider.getAccounts();
162
+ return this.options.flags?.isAuthorized ?? !!account;
163
+ } catch {
164
+ return false;
165
+ }
166
+ }
167
+ async watchAsset(asset) {
168
+ const provider = await this.getProvider();
169
+ return provider.watchAsset(asset);
170
+ }
171
+ toJSON() {
172
+ return "<MockConnector>";
173
+ }
174
+ };
175
+ _provider = new WeakMap();
176
+ _switchChain = new WeakSet();
177
+ switchChain_fn = async function(chainId) {
178
+ const provider = await this.getProvider();
179
+ await provider.switchChain(chainId);
180
+ return this.chains.find((x) => x.id === chainId) ?? {
181
+ id: chainId,
182
+ name: `Chain ${chainId}`,
183
+ network: `${chainId}`,
184
+ rpcUrls: { default: "" }
185
+ };
186
+ };
187
+ export {
188
+ MockConnector,
189
+ MockProvider
190
+ };
@@ -1,10 +1,13 @@
1
- import type WalletConnectProvider from '@walletconnect/ethereum-provider';
1
+ import WalletConnectProvider from '@walletconnect/ethereum-provider';
2
2
  import { providers } from 'ethers';
3
- import { Chain } from '../types';
4
- import { Connector } from './base';
3
+ import { C as Chain } from '../index-bacc1c49.js';
4
+ import { C as Connector } from '../base-5bd9b5ed.js';
5
+ import 'abitype';
6
+ import 'eventemitter3';
7
+
5
8
  declare type WalletConnectOptions = ConstructorParameters<typeof WalletConnectProvider>[0];
6
9
  declare type WalletConnectSigner = providers.JsonRpcSigner;
7
- export declare class WalletConnectConnector extends Connector<WalletConnectProvider, WalletConnectOptions, WalletConnectSigner> {
10
+ declare class WalletConnectConnector extends Connector<WalletConnectProvider, WalletConnectOptions, WalletConnectSigner> {
8
11
  #private;
9
12
  readonly id = "walletConnect";
10
13
  readonly name = "WalletConnect";
@@ -38,4 +41,5 @@ export declare class WalletConnectConnector extends Connector<WalletConnectProvi
38
41
  protected onChainChanged: (chainId: number | string) => void;
39
42
  protected onDisconnect: () => void;
40
43
  }
41
- export {};
44
+
45
+ export { WalletConnectConnector };