@wagmi/core 0.4.7 → 0.5.0-prepare-hooks.0
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 +4 -4
- package/chains/dist/wagmi-core-chains.cjs.dev.js +1 -1
- package/chains/dist/wagmi-core-chains.cjs.prod.js +1 -1
- package/chains/dist/wagmi-core-chains.esm.js +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +29 -26
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +29 -26
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +6 -3
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.d.ts +1 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.dev.js +200 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.js +7 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.cjs.prod.js +200 -0
- package/connectors/injected/dist/wagmi-core-connectors-injected.esm.js +196 -0
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.dev.js +21 -22
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.cjs.prod.js +21 -22
- package/connectors/metaMask/dist/wagmi-core-connectors-metaMask.esm.js +6 -7
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +31 -29
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +31 -29
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +4 -2
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +23 -24
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +23 -24
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +4 -5
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.d.ts +11 -0
- package/connectors/walletLink/dist/wagmi-core-connectors-walletLink.cjs.js +16 -0
- package/dist/{chains-fd2c546c.esm.js → chains-174cf4b4.esm.js} +3 -3
- package/dist/{chains-f7bb3211.cjs.prod.js → chains-b8e32454.cjs.prod.js} +3 -3
- package/dist/{chains-7e6dc59c.cjs.dev.js → chains-ba6218fb.cjs.dev.js} +3 -3
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +3 -3
- package/dist/declarations/src/actions/contracts/index.d.ts +2 -1
- package/dist/declarations/src/actions/contracts/prepareWriteContract.d.ts +37 -0
- package/dist/declarations/src/actions/contracts/writeContract.d.ts +44 -8
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +2 -1
- package/dist/declarations/src/actions/index.d.ts +2 -2
- package/dist/declarations/src/actions/tokens/fetchToken.d.ts +1 -0
- package/dist/declarations/src/actions/transactions/index.d.ts +2 -1
- package/dist/declarations/src/actions/transactions/prepareSendTransaction.d.ts +36 -0
- package/dist/declarations/src/actions/transactions/sendTransaction.d.ts +43 -8
- package/dist/declarations/src/client.d.ts +3 -3
- package/dist/declarations/src/connectors/base.d.ts +1 -2
- package/dist/declarations/src/connectors/coinbaseWallet.d.ts +1 -1
- package/dist/declarations/src/connectors/index.d.ts +1 -1
- package/dist/declarations/src/connectors/injected.d.ts +4 -4
- package/dist/declarations/src/connectors/metaMask.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/connector.d.ts +1 -1
- package/dist/declarations/src/connectors/mock/provider.d.ts +3 -3
- package/dist/declarations/src/connectors/walletConnect.d.ts +2 -1
- package/dist/declarations/src/errors.d.ts +10 -3
- package/dist/declarations/src/index.d.ts +5 -5
- package/dist/declarations/src/providers/alchemy.d.ts +1 -2
- package/dist/declarations/src/providers/infura.d.ts +1 -2
- package/dist/declarations/src/providers/jsonRpc.d.ts +1 -2
- package/dist/declarations/src/providers/public.d.ts +2 -4
- package/dist/declarations/src/types/index.d.ts +132 -129
- package/dist/declarations/src/utils/configureChains.d.ts +3 -1
- package/dist/declarations/src/utils/getInjectedName.d.ts +2 -1
- package/dist/{client-a05fd511.esm.js → getProvider-048a69c4.esm.js} +380 -13
- package/dist/{client-a6e61429.cjs.prod.js → getProvider-27edfd38.cjs.prod.js} +446 -55
- package/dist/{client-71ece661.cjs.dev.js → getProvider-ec251513.cjs.dev.js} +446 -55
- package/dist/wagmi-core.cjs.dev.js +462 -286
- package/dist/wagmi-core.cjs.prod.js +462 -286
- package/dist/wagmi-core.esm.js +377 -205
- package/package.json +2 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.dev.js +0 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.cjs.prod.js +0 -2
- package/providers/alchemy/dist/wagmi-core-providers-alchemy.esm.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.dev.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.cjs.prod.js +0 -2
- package/providers/infura/dist/wagmi-core-providers-infura.esm.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.dev.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.cjs.prod.js +0 -2
- package/providers/jsonRpc/dist/wagmi-core-providers-jsonRpc.esm.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.cjs.dev.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.cjs.prod.js +0 -2
- package/providers/public/dist/wagmi-core-providers-public.esm.js +0 -2
- package/dist/base-797ad073.cjs.prod.js +0 -343
- package/dist/base-90b7f3e4.cjs.dev.js +0 -343
- package/dist/base-b565d5d4.esm.js +0 -316
package/README.md
CHANGED
|
@@ -16,10 +16,10 @@ npm install @wagmi/core ethers
|
|
|
16
16
|
|
|
17
17
|
Check out the following places for more wagmi-related content:
|
|
18
18
|
|
|
19
|
-
- Join the [discussions on GitHub](https://github.com/
|
|
19
|
+
- Join the [discussions on GitHub](https://github.com/wagmi-dev/wagmi/discussions)
|
|
20
20
|
- Follow [@awkweb](https://twitter.com/awkweb) and [@wagmi_sh](https://twitter.com/wagmi_sh) on Twitter for project updates
|
|
21
|
-
- Share [your project/organization](https://github.com/
|
|
22
|
-
- Browse the [awesome-wagmi](https://github.com/
|
|
21
|
+
- Share [your project/organization](https://github.com/wagmi-dev/wagmi/discussions/201) using wagmi
|
|
22
|
+
- Browse the [awesome-wagmi](https://github.com/wagmi-dev/awesome-wagmi) list of awesome projects and resources
|
|
23
23
|
|
|
24
24
|
## Support
|
|
25
25
|
|
|
@@ -27,4 +27,4 @@ If you find wagmi useful, please consider supporting development. Thank you 🙏
|
|
|
27
27
|
|
|
28
28
|
- [GitHub Sponsors](https://github.com/sponsors/tmm?metadata_campaign=readme_core)
|
|
29
29
|
- [Gitcoin Grant](https://gitcoin.co/grants/4493/wagmi-react-hooks-library-for-ethereum)
|
|
30
|
-
- [
|
|
30
|
+
- [wagmi-dev.eth](https://etherscan.io/enslookup-search?search=wagmi-dev.eth)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { g as arbitrum, h as arbitrumRinkeby, i as foundry, j as goerli, k as hardhat, l as kovan, m as localhost, n as mainnet, o as optimism, p as optimismKovan, q as polygon, r as polygonMumbai, s as rinkeby, t as ropsten } from '../../dist/chains-
|
|
1
|
+
export { g as arbitrum, h as arbitrumRinkeby, i as foundry, j as goerli, k as hardhat, l as kovan, m as localhost, n as mainnet, o as optimism, p as optimismKovan, q as polygon, r as polygonMumbai, s as rinkeby, t as ropsten } from '../../dist/chains-174cf4b4.esm.js';
|
|
2
2
|
import '../../dist/rpcs-b73a8f60.esm.js';
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var getProvider = require('../../../dist/getProvider-ec251513.cjs.dev.js');
|
|
6
6
|
var ethers = require('ethers');
|
|
7
7
|
var utils = require('ethers/lib/utils');
|
|
8
|
+
require('zustand/vanilla');
|
|
9
|
+
require('zustand/middleware');
|
|
8
10
|
require('eventemitter3');
|
|
9
|
-
require('../../../dist/chains-
|
|
11
|
+
require('../../../dist/chains-ba6218fb.cjs.dev.js');
|
|
10
12
|
require('../../../dist/rpcs-f1d24f0e.cjs.dev.js');
|
|
11
13
|
|
|
12
14
|
function _interopNamespace(e) {
|
|
@@ -33,7 +35,7 @@ var _provider = /*#__PURE__*/new WeakMap();
|
|
|
33
35
|
|
|
34
36
|
var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
|
|
35
37
|
|
|
36
|
-
class CoinbaseWalletConnector extends
|
|
38
|
+
class CoinbaseWalletConnector extends getProvider.Connector {
|
|
37
39
|
constructor(_ref) {
|
|
38
40
|
let {
|
|
39
41
|
chains,
|
|
@@ -47,32 +49,32 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
47
49
|
}
|
|
48
50
|
});
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
getProvider._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
getProvider._defineProperty(this, "id", 'coinbaseWallet');
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
getProvider._defineProperty(this, "name", 'Coinbase Wallet');
|
|
55
57
|
|
|
56
|
-
|
|
58
|
+
getProvider._defineProperty(this, "ready", true);
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
getProvider._classPrivateFieldInitSpec(this, _client, {
|
|
59
61
|
writable: true,
|
|
60
62
|
value: void 0
|
|
61
63
|
});
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
getProvider._classPrivateFieldInitSpec(this, _provider, {
|
|
64
66
|
writable: true,
|
|
65
67
|
value: void 0
|
|
66
68
|
});
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
getProvider._defineProperty(this, "onAccountsChanged", accounts => {
|
|
69
71
|
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
70
72
|
account: utils.getAddress(accounts[0])
|
|
71
73
|
});
|
|
72
74
|
});
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
const id =
|
|
76
|
+
getProvider._defineProperty(this, "onChainChanged", chainId => {
|
|
77
|
+
const id = getProvider.normalizeChainId(chainId);
|
|
76
78
|
const unsupported = this.isChainUnsupported(id);
|
|
77
79
|
this.emit('change', {
|
|
78
80
|
chain: {
|
|
@@ -82,7 +84,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
82
84
|
});
|
|
83
85
|
});
|
|
84
86
|
|
|
85
|
-
|
|
87
|
+
getProvider._defineProperty(this, "onDisconnect", () => {
|
|
86
88
|
this.emit('disconnect');
|
|
87
89
|
});
|
|
88
90
|
}
|
|
@@ -121,13 +123,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
121
123
|
provider: new ethers.providers.Web3Provider(provider)
|
|
122
124
|
};
|
|
123
125
|
} catch (error) {
|
|
124
|
-
if (/(user closed modal|accounts received is empty)/i.test(error.message)) throw new
|
|
126
|
+
if (/(user closed modal|accounts received is empty)/i.test(error.message)) throw new getProvider.UserRejectedRequestError(error);
|
|
125
127
|
throw error;
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
async disconnect() {
|
|
130
|
-
if (!
|
|
132
|
+
if (!getProvider._classPrivateFieldGet(this, _provider)) return;
|
|
131
133
|
const provider = await this.getProvider();
|
|
132
134
|
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
133
135
|
provider.removeListener('chainChanged', this.onChainChanged);
|
|
@@ -147,26 +149,27 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
147
149
|
|
|
148
150
|
async getChainId() {
|
|
149
151
|
const provider = await this.getProvider();
|
|
150
|
-
const chainId =
|
|
152
|
+
const chainId = getProvider.normalizeChainId(provider.chainId);
|
|
151
153
|
return chainId;
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
async getProvider() {
|
|
155
|
-
if (!
|
|
157
|
+
if (!getProvider._classPrivateFieldGet(this, _provider)) {
|
|
156
158
|
const chain = this.chains.find(chain => chain.id === this.options.chainId) || this.chains[0];
|
|
157
159
|
const chainId = this.options.chainId || (chain === null || chain === void 0 ? void 0 : chain.id);
|
|
158
160
|
const jsonRpcUrl = this.options.jsonRpcUrl || (chain === null || chain === void 0 ? void 0 : chain.rpcUrls.default);
|
|
159
161
|
let CoinbaseWalletSDK = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@coinbase/wallet-sdk')); })).default; // Workaround for Vite dev import errors
|
|
160
162
|
// https://github.com/vitejs/vite/issues/7112
|
|
161
163
|
|
|
162
|
-
if (
|
|
164
|
+
if (typeof CoinbaseWalletSDK !== 'function' && // @ts-expect-error This import error is not visible to TypeScript
|
|
165
|
+
typeof CoinbaseWalletSDK.default === 'function') CoinbaseWalletSDK = CoinbaseWalletSDK.default;
|
|
163
166
|
|
|
164
|
-
|
|
167
|
+
getProvider._classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
|
|
165
168
|
|
|
166
|
-
|
|
169
|
+
getProvider._classPrivateFieldSet(this, _provider, getProvider._classPrivateFieldGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));
|
|
167
170
|
}
|
|
168
171
|
|
|
169
|
-
return
|
|
172
|
+
return getProvider._classPrivateFieldGet(this, _provider);
|
|
170
173
|
}
|
|
171
174
|
|
|
172
175
|
async getSigner() {
|
|
@@ -206,7 +209,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
206
209
|
};
|
|
207
210
|
} catch (error) {
|
|
208
211
|
const chain = this.chains.find(x => x.id === chainId);
|
|
209
|
-
if (!chain) throw new
|
|
212
|
+
if (!chain) throw new getProvider.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
210
213
|
|
|
211
214
|
if (error.code === 4902) {
|
|
212
215
|
try {
|
|
@@ -224,13 +227,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
224
227
|
});
|
|
225
228
|
return chain;
|
|
226
229
|
} catch (addError) {
|
|
227
|
-
if (
|
|
228
|
-
throw new
|
|
230
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new getProvider.UserRejectedRequestError(addError);
|
|
231
|
+
throw new getProvider.AddChainError();
|
|
229
232
|
}
|
|
230
233
|
}
|
|
231
234
|
|
|
232
|
-
if (
|
|
233
|
-
throw new
|
|
235
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new getProvider.UserRejectedRequestError(error);
|
|
236
|
+
throw new getProvider.SwitchChainError(error);
|
|
234
237
|
}
|
|
235
238
|
}
|
|
236
239
|
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var getProvider = require('../../../dist/getProvider-27edfd38.cjs.prod.js');
|
|
6
6
|
var ethers = require('ethers');
|
|
7
7
|
var utils = require('ethers/lib/utils');
|
|
8
|
+
require('zustand/vanilla');
|
|
9
|
+
require('zustand/middleware');
|
|
8
10
|
require('eventemitter3');
|
|
9
|
-
require('../../../dist/chains-
|
|
11
|
+
require('../../../dist/chains-b8e32454.cjs.prod.js');
|
|
10
12
|
require('../../../dist/rpcs-1fd0a12f.cjs.prod.js');
|
|
11
13
|
|
|
12
14
|
function _interopNamespace(e) {
|
|
@@ -33,7 +35,7 @@ var _provider = /*#__PURE__*/new WeakMap();
|
|
|
33
35
|
|
|
34
36
|
var _isUserRejectedRequestError = /*#__PURE__*/new WeakSet();
|
|
35
37
|
|
|
36
|
-
class CoinbaseWalletConnector extends
|
|
38
|
+
class CoinbaseWalletConnector extends getProvider.Connector {
|
|
37
39
|
constructor(_ref) {
|
|
38
40
|
let {
|
|
39
41
|
chains,
|
|
@@ -47,32 +49,32 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
47
49
|
}
|
|
48
50
|
});
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
getProvider._classPrivateMethodInitSpec(this, _isUserRejectedRequestError);
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
getProvider._defineProperty(this, "id", 'coinbaseWallet');
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
getProvider._defineProperty(this, "name", 'Coinbase Wallet');
|
|
55
57
|
|
|
56
|
-
|
|
58
|
+
getProvider._defineProperty(this, "ready", true);
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
getProvider._classPrivateFieldInitSpec(this, _client, {
|
|
59
61
|
writable: true,
|
|
60
62
|
value: void 0
|
|
61
63
|
});
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
getProvider._classPrivateFieldInitSpec(this, _provider, {
|
|
64
66
|
writable: true,
|
|
65
67
|
value: void 0
|
|
66
68
|
});
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
getProvider._defineProperty(this, "onAccountsChanged", accounts => {
|
|
69
71
|
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
70
72
|
account: utils.getAddress(accounts[0])
|
|
71
73
|
});
|
|
72
74
|
});
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
const id =
|
|
76
|
+
getProvider._defineProperty(this, "onChainChanged", chainId => {
|
|
77
|
+
const id = getProvider.normalizeChainId(chainId);
|
|
76
78
|
const unsupported = this.isChainUnsupported(id);
|
|
77
79
|
this.emit('change', {
|
|
78
80
|
chain: {
|
|
@@ -82,7 +84,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
82
84
|
});
|
|
83
85
|
});
|
|
84
86
|
|
|
85
|
-
|
|
87
|
+
getProvider._defineProperty(this, "onDisconnect", () => {
|
|
86
88
|
this.emit('disconnect');
|
|
87
89
|
});
|
|
88
90
|
}
|
|
@@ -121,13 +123,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
121
123
|
provider: new ethers.providers.Web3Provider(provider)
|
|
122
124
|
};
|
|
123
125
|
} catch (error) {
|
|
124
|
-
if (/(user closed modal|accounts received is empty)/i.test(error.message)) throw new
|
|
126
|
+
if (/(user closed modal|accounts received is empty)/i.test(error.message)) throw new getProvider.UserRejectedRequestError(error);
|
|
125
127
|
throw error;
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
async disconnect() {
|
|
130
|
-
if (!
|
|
132
|
+
if (!getProvider._classPrivateFieldGet(this, _provider)) return;
|
|
131
133
|
const provider = await this.getProvider();
|
|
132
134
|
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
133
135
|
provider.removeListener('chainChanged', this.onChainChanged);
|
|
@@ -147,26 +149,27 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
147
149
|
|
|
148
150
|
async getChainId() {
|
|
149
151
|
const provider = await this.getProvider();
|
|
150
|
-
const chainId =
|
|
152
|
+
const chainId = getProvider.normalizeChainId(provider.chainId);
|
|
151
153
|
return chainId;
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
async getProvider() {
|
|
155
|
-
if (!
|
|
157
|
+
if (!getProvider._classPrivateFieldGet(this, _provider)) {
|
|
156
158
|
const chain = this.chains.find(chain => chain.id === this.options.chainId) || this.chains[0];
|
|
157
159
|
const chainId = this.options.chainId || (chain === null || chain === void 0 ? void 0 : chain.id);
|
|
158
160
|
const jsonRpcUrl = this.options.jsonRpcUrl || (chain === null || chain === void 0 ? void 0 : chain.rpcUrls.default);
|
|
159
161
|
let CoinbaseWalletSDK = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@coinbase/wallet-sdk')); })).default; // Workaround for Vite dev import errors
|
|
160
162
|
// https://github.com/vitejs/vite/issues/7112
|
|
161
163
|
|
|
162
|
-
if (
|
|
164
|
+
if (typeof CoinbaseWalletSDK !== 'function' && // @ts-expect-error This import error is not visible to TypeScript
|
|
165
|
+
typeof CoinbaseWalletSDK.default === 'function') CoinbaseWalletSDK = CoinbaseWalletSDK.default;
|
|
163
166
|
|
|
164
|
-
|
|
167
|
+
getProvider._classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
|
|
165
168
|
|
|
166
|
-
|
|
169
|
+
getProvider._classPrivateFieldSet(this, _provider, getProvider._classPrivateFieldGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));
|
|
167
170
|
}
|
|
168
171
|
|
|
169
|
-
return
|
|
172
|
+
return getProvider._classPrivateFieldGet(this, _provider);
|
|
170
173
|
}
|
|
171
174
|
|
|
172
175
|
async getSigner() {
|
|
@@ -206,7 +209,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
206
209
|
};
|
|
207
210
|
} catch (error) {
|
|
208
211
|
const chain = this.chains.find(x => x.id === chainId);
|
|
209
|
-
if (!chain) throw new
|
|
212
|
+
if (!chain) throw new getProvider.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
210
213
|
|
|
211
214
|
if (error.code === 4902) {
|
|
212
215
|
try {
|
|
@@ -224,13 +227,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
224
227
|
});
|
|
225
228
|
return chain;
|
|
226
229
|
} catch (addError) {
|
|
227
|
-
if (
|
|
228
|
-
throw new
|
|
230
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new getProvider.UserRejectedRequestError(addError);
|
|
231
|
+
throw new getProvider.AddChainError();
|
|
229
232
|
}
|
|
230
233
|
}
|
|
231
234
|
|
|
232
|
-
if (
|
|
233
|
-
throw new
|
|
235
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new getProvider.UserRejectedRequestError(error);
|
|
236
|
+
throw new getProvider.SwitchChainError(error);
|
|
234
237
|
}
|
|
235
238
|
}
|
|
236
239
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as Connector, _ as _classPrivateMethodInitSpec, r as _defineProperty, s as _classPrivateFieldInitSpec, n as normalizeChainId, U as UserRejectedRequestError, t as _classPrivateFieldGet, u as _classPrivateFieldSet, k as ChainNotConfiguredError, v as _classPrivateMethodGet, A as AddChainError, o as SwitchChainError } from '../../../dist/getProvider-048a69c4.esm.js';
|
|
2
2
|
import { providers } from 'ethers';
|
|
3
3
|
import { getAddress, hexValue } from 'ethers/lib/utils';
|
|
4
|
+
import 'zustand/vanilla';
|
|
5
|
+
import 'zustand/middleware';
|
|
4
6
|
import 'eventemitter3';
|
|
5
|
-
import '../../../dist/chains-
|
|
7
|
+
import '../../../dist/chains-174cf4b4.esm.js';
|
|
6
8
|
import '../../../dist/rpcs-b73a8f60.esm.js';
|
|
7
9
|
|
|
8
10
|
var _client = /*#__PURE__*/new WeakMap();
|
|
@@ -137,7 +139,8 @@ class CoinbaseWalletConnector extends Connector {
|
|
|
137
139
|
let CoinbaseWalletSDK = (await import('@coinbase/wallet-sdk')).default; // Workaround for Vite dev import errors
|
|
138
140
|
// https://github.com/vitejs/vite/issues/7112
|
|
139
141
|
|
|
140
|
-
if (
|
|
142
|
+
if (typeof CoinbaseWalletSDK !== 'function' && // @ts-expect-error This import error is not visible to TypeScript
|
|
143
|
+
typeof CoinbaseWalletSDK.default === 'function') CoinbaseWalletSDK = CoinbaseWalletSDK.default;
|
|
141
144
|
|
|
142
145
|
_classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
|
|
143
146
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../dist/declarations/src/connectors/injected";
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var providers = require('@ethersproject/providers');
|
|
6
|
+
var base = require('../../../dist/base-0167f1e7.cjs.dev.js');
|
|
7
|
+
var utils = require('ethers/lib/utils');
|
|
8
|
+
require('eventemitter3');
|
|
9
|
+
|
|
10
|
+
const getInjectedName = ethereum => {
|
|
11
|
+
if (!ethereum) return 'Injected';
|
|
12
|
+
if (ethereum.isMetaMask) return 'MetaMask';
|
|
13
|
+
if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet';
|
|
14
|
+
if (ethereum.isFrame) return 'Frame';
|
|
15
|
+
if (ethereum.isTally) return 'Tally';
|
|
16
|
+
return 'Injected';
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const shimKey = 'wagmi.shimDisconnect';
|
|
20
|
+
class InjectedConnector extends base.Connector {
|
|
21
|
+
id = 'injected';
|
|
22
|
+
ready = typeof window != 'undefined' && !!window.ethereum;
|
|
23
|
+
#provider;
|
|
24
|
+
|
|
25
|
+
constructor(config) {
|
|
26
|
+
// TODO(note): Should shimDisconnect be default truthy??
|
|
27
|
+
super({ ...config,
|
|
28
|
+
options: config?.options
|
|
29
|
+
});
|
|
30
|
+
let name = 'Injected';
|
|
31
|
+
if (typeof window !== 'undefined') name = getInjectedName(window.ethereum);
|
|
32
|
+
this.name = name;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async connect() {
|
|
36
|
+
try {
|
|
37
|
+
const provider = this.getProvider();
|
|
38
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
39
|
+
|
|
40
|
+
if (provider.on) {
|
|
41
|
+
provider.on('accountsChanged', this.onAccountsChanged);
|
|
42
|
+
provider.on('chainChanged', this.onChainChanged);
|
|
43
|
+
provider.on('disconnect', this.onDisconnect);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const account = await this.getAccount();
|
|
47
|
+
const id = await this.getChainId();
|
|
48
|
+
const unsupported = this.isChainUnsupported(id);
|
|
49
|
+
if (this.options?.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.setItem(shimKey, 'true');
|
|
50
|
+
return {
|
|
51
|
+
account,
|
|
52
|
+
chain: {
|
|
53
|
+
id,
|
|
54
|
+
unsupported
|
|
55
|
+
},
|
|
56
|
+
provider
|
|
57
|
+
};
|
|
58
|
+
} catch (error) {
|
|
59
|
+
if (error.code === 4001) throw new base.UserRejectedRequestError();
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async disconnect() {
|
|
65
|
+
const provider = this.getProvider();
|
|
66
|
+
if (!provider?.removeListener) return;
|
|
67
|
+
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
68
|
+
provider.removeListener('chainChanged', this.onChainChanged);
|
|
69
|
+
provider.removeListener('disconnect', this.onDisconnect);
|
|
70
|
+
if (this.options?.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async getAccount() {
|
|
74
|
+
const provider = this.getProvider();
|
|
75
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
76
|
+
const accounts = await provider.request({
|
|
77
|
+
method: 'eth_requestAccounts'
|
|
78
|
+
}); // return checksum address
|
|
79
|
+
|
|
80
|
+
return utils.getAddress(accounts[0]);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async getChainId() {
|
|
84
|
+
const provider = this.getProvider();
|
|
85
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
86
|
+
return await provider.request({
|
|
87
|
+
method: 'eth_chainId'
|
|
88
|
+
}).then(base.normalizeChainId);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
getProvider() {
|
|
92
|
+
if (typeof window !== 'undefined' && !!window.ethereum) this.#provider = window.ethereum;
|
|
93
|
+
return this.#provider;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async getSigner() {
|
|
97
|
+
const provider = this.getProvider();
|
|
98
|
+
const account = await this.getAccount();
|
|
99
|
+
return new providers.Web3Provider(provider).getSigner(account);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async isAuthorized() {
|
|
103
|
+
try {
|
|
104
|
+
if (this.options?.shimDisconnect && typeof localStorage !== 'undefined' && !localStorage.getItem(shimKey)) return false;
|
|
105
|
+
const provider = this.getProvider();
|
|
106
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
107
|
+
const accounts = await provider.request({
|
|
108
|
+
method: 'eth_accounts'
|
|
109
|
+
});
|
|
110
|
+
const account = accounts[0];
|
|
111
|
+
return !!account;
|
|
112
|
+
} catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async switchChain(chainId) {
|
|
118
|
+
const provider = this.getProvider();
|
|
119
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
120
|
+
const id = utils.hexValue(chainId);
|
|
121
|
+
|
|
122
|
+
try {
|
|
123
|
+
await provider.request({
|
|
124
|
+
method: 'wallet_switchEthereumChain',
|
|
125
|
+
params: [{
|
|
126
|
+
chainId: id
|
|
127
|
+
}]
|
|
128
|
+
});
|
|
129
|
+
const chains = [...this.chains, ...base.allChains];
|
|
130
|
+
return chains.find(x => x.id === chainId);
|
|
131
|
+
} catch (error) {
|
|
132
|
+
// Indicates chain is not added to MetaMask
|
|
133
|
+
if (error.code === 4902) {
|
|
134
|
+
try {
|
|
135
|
+
const chain = this.chains.find(x => x.id === chainId);
|
|
136
|
+
if (!chain) throw new base.ChainNotConfiguredError();
|
|
137
|
+
await provider.request({
|
|
138
|
+
method: 'wallet_addEthereumChain',
|
|
139
|
+
params: [{
|
|
140
|
+
chainId: id,
|
|
141
|
+
chainName: chain.name,
|
|
142
|
+
nativeCurrency: chain.nativeCurrency,
|
|
143
|
+
rpcUrls: chain.rpcUrls,
|
|
144
|
+
blockExplorerUrls: chain.blockExplorers?.map(x => x.url)
|
|
145
|
+
}]
|
|
146
|
+
});
|
|
147
|
+
} catch (addError) {
|
|
148
|
+
throw new base.AddChainError();
|
|
149
|
+
}
|
|
150
|
+
} else if (error.code === 4001) throw new base.UserRejectedRequestError();else throw new base.SwitchChainError();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async watchAsset({
|
|
155
|
+
address,
|
|
156
|
+
decimals = 18,
|
|
157
|
+
image,
|
|
158
|
+
symbol
|
|
159
|
+
}) {
|
|
160
|
+
const provider = this.getProvider();
|
|
161
|
+
if (!provider) throw new base.ConnectorNotFoundError();
|
|
162
|
+
await provider.request({
|
|
163
|
+
method: 'wallet_watchAsset',
|
|
164
|
+
params: {
|
|
165
|
+
type: 'ERC20',
|
|
166
|
+
options: {
|
|
167
|
+
address,
|
|
168
|
+
decimals,
|
|
169
|
+
image,
|
|
170
|
+
symbol
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
onAccountsChanged = accounts => {
|
|
177
|
+
if (accounts.length === 0) this.emit('disconnect');else this.emit('change', {
|
|
178
|
+
account: utils.getAddress(accounts[0])
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
onChainChanged = chainId => {
|
|
182
|
+
const id = base.normalizeChainId(chainId);
|
|
183
|
+
const unsupported = this.isChainUnsupported(id);
|
|
184
|
+
this.emit('change', {
|
|
185
|
+
chain: {
|
|
186
|
+
id,
|
|
187
|
+
unsupported
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
onDisconnect = err => {
|
|
192
|
+
// TODO: this is a hack, probs better way to deal
|
|
193
|
+
if (!err.message.includes('Attempting to connect.')) {
|
|
194
|
+
this.emit('disconnect');
|
|
195
|
+
if (this.options?.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
exports.InjectedConnector = InjectedConnector;
|