@wagmi/core 0.4.9 → 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/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +26 -24
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +26 -24
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +3 -1
- 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 +4 -5
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +30 -28
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +30 -28
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +3 -1
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +22 -23
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +22 -23
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +3 -4
- 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/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/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 +2 -2
- 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/injected.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 +4 -4
- 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 +3 -1
- package/dist/declarations/src/utils/configureChains.d.ts +3 -1
- package/dist/{client-fbdcbdb2.esm.js → getProvider-048a69c4.esm.js} +365 -2
- package/dist/{client-4983a639.cjs.dev.js → getProvider-27edfd38.cjs.prod.js} +432 -44
- package/dist/{client-dfad744f.cjs.prod.js → getProvider-ec251513.cjs.dev.js} +432 -44
- package/dist/wagmi-core.cjs.dev.js +439 -278
- package/dist/wagmi-core.cjs.prod.js +439 -278
- package/dist/wagmi-core.esm.js +353 -196
- 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-337e6424.cjs.prod.js +0 -343
- package/dist/base-bd337280.cjs.dev.js +0 -343
- package/dist/base-f1bbf263.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)
|
|
@@ -2,9 +2,11 @@
|
|
|
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
11
|
require('../../../dist/chains-ba6218fb.cjs.dev.js');
|
|
10
12
|
require('../../../dist/rpcs-f1d24f0e.cjs.dev.js');
|
|
@@ -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,12 +149,12 @@ 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);
|
|
@@ -162,12 +164,12 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
162
164
|
if (typeof CoinbaseWalletSDK !== 'function' && // @ts-expect-error This import error is not visible to TypeScript
|
|
163
165
|
typeof CoinbaseWalletSDK.default === 'function') CoinbaseWalletSDK = CoinbaseWalletSDK.default;
|
|
164
166
|
|
|
165
|
-
|
|
167
|
+
getProvider._classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
|
|
166
168
|
|
|
167
|
-
|
|
169
|
+
getProvider._classPrivateFieldSet(this, _provider, getProvider._classPrivateFieldGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));
|
|
168
170
|
}
|
|
169
171
|
|
|
170
|
-
return
|
|
172
|
+
return getProvider._classPrivateFieldGet(this, _provider);
|
|
171
173
|
}
|
|
172
174
|
|
|
173
175
|
async getSigner() {
|
|
@@ -207,7 +209,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
207
209
|
};
|
|
208
210
|
} catch (error) {
|
|
209
211
|
const chain = this.chains.find(x => x.id === chainId);
|
|
210
|
-
if (!chain) throw new
|
|
212
|
+
if (!chain) throw new getProvider.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
211
213
|
|
|
212
214
|
if (error.code === 4902) {
|
|
213
215
|
try {
|
|
@@ -225,13 +227,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
225
227
|
});
|
|
226
228
|
return chain;
|
|
227
229
|
} catch (addError) {
|
|
228
|
-
if (
|
|
229
|
-
throw new
|
|
230
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new getProvider.UserRejectedRequestError(addError);
|
|
231
|
+
throw new getProvider.AddChainError();
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
234
|
|
|
233
|
-
if (
|
|
234
|
-
throw new
|
|
235
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new getProvider.UserRejectedRequestError(error);
|
|
236
|
+
throw new getProvider.SwitchChainError(error);
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
|
|
@@ -2,9 +2,11 @@
|
|
|
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
11
|
require('../../../dist/chains-b8e32454.cjs.prod.js');
|
|
10
12
|
require('../../../dist/rpcs-1fd0a12f.cjs.prod.js');
|
|
@@ -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,12 +149,12 @@ 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);
|
|
@@ -162,12 +164,12 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
162
164
|
if (typeof CoinbaseWalletSDK !== 'function' && // @ts-expect-error This import error is not visible to TypeScript
|
|
163
165
|
typeof CoinbaseWalletSDK.default === 'function') CoinbaseWalletSDK = CoinbaseWalletSDK.default;
|
|
164
166
|
|
|
165
|
-
|
|
167
|
+
getProvider._classPrivateFieldSet(this, _client, new CoinbaseWalletSDK(this.options));
|
|
166
168
|
|
|
167
|
-
|
|
169
|
+
getProvider._classPrivateFieldSet(this, _provider, getProvider._classPrivateFieldGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));
|
|
168
170
|
}
|
|
169
171
|
|
|
170
|
-
return
|
|
172
|
+
return getProvider._classPrivateFieldGet(this, _provider);
|
|
171
173
|
}
|
|
172
174
|
|
|
173
175
|
async getSigner() {
|
|
@@ -207,7 +209,7 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
207
209
|
};
|
|
208
210
|
} catch (error) {
|
|
209
211
|
const chain = this.chains.find(x => x.id === chainId);
|
|
210
|
-
if (!chain) throw new
|
|
212
|
+
if (!chain) throw new getProvider.ChainNotConfiguredError(); // Indicates chain is not added to provider
|
|
211
213
|
|
|
212
214
|
if (error.code === 4902) {
|
|
213
215
|
try {
|
|
@@ -225,13 +227,13 @@ class CoinbaseWalletConnector extends base.Connector {
|
|
|
225
227
|
});
|
|
226
228
|
return chain;
|
|
227
229
|
} catch (addError) {
|
|
228
|
-
if (
|
|
229
|
-
throw new
|
|
230
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, addError)) throw new getProvider.UserRejectedRequestError(addError);
|
|
231
|
+
throw new getProvider.AddChainError();
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
234
|
|
|
233
|
-
if (
|
|
234
|
-
throw new
|
|
235
|
+
if (getProvider._classPrivateMethodGet(this, _isUserRejectedRequestError, _isUserRejectedRequestError2).call(this, error)) throw new getProvider.UserRejectedRequestError(error);
|
|
236
|
+
throw new getProvider.SwitchChainError(error);
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
|
|
@@ -1,6 +1,8 @@
|
|
|
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
7
|
import '../../../dist/chains-174cf4b4.esm.js';
|
|
6
8
|
import '../../../dist/rpcs-b73a8f60.esm.js';
|
|
@@ -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;
|