@wagmi/core 0.2.0-next.11 → 0.2.0-next.14
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/LICENSE +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.dev.js +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.cjs.prod.js +1 -1
- package/connectors/coinbaseWallet/dist/wagmi-core-connectors-coinbaseWallet.esm.js +1 -1
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.dev.js +2 -2
- package/connectors/mock/dist/wagmi-core-connectors-mock.cjs.prod.js +2 -2
- package/connectors/mock/dist/wagmi-core-connectors-mock.esm.js +2 -2
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.dev.js +2 -2
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.cjs.prod.js +2 -2
- package/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js +2 -2
- package/dist/{base-83fd83c6.cjs.dev.js → base-6bea3346.cjs.dev.js} +0 -1
- package/dist/{base-b052e615.esm.js → base-d3f58b0e.esm.js} +0 -1
- package/dist/{base-9b2942ee.cjs.prod.js → base-fe5aa721.cjs.prod.js} +0 -1
- package/dist/{classPrivateMethodGet-7c370e43.esm.js → classPrivateMethodGet-271594d5.esm.js} +1 -1
- package/dist/{classPrivateMethodGet-45a38143.cjs.dev.js → classPrivateMethodGet-b7229f4d.cjs.dev.js} +1 -1
- package/dist/{classPrivateMethodGet-a1e1a4aa.cjs.prod.js → classPrivateMethodGet-f6a9d8bb.cjs.prod.js} +1 -1
- package/dist/declarations/src/actions/accounts/connect.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/fetchBalance.d.ts +3 -1
- package/dist/declarations/src/actions/accounts/fetchSigner.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/getAccount.d.ts +1 -1
- package/dist/declarations/src/actions/accounts/watchAccount.d.ts +1 -1
- package/dist/declarations/src/actions/contracts/readContract.d.ts +4 -1
- package/dist/declarations/src/actions/contracts/watchContractEvent.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsAddress.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsAvatar.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsName.d.ts +3 -1
- package/dist/declarations/src/actions/ens/fetchEnsResolver.d.ts +3 -1
- package/dist/declarations/src/actions/index.d.ts +2 -2
- package/dist/declarations/src/actions/network-status/fetchBlockNumber.d.ts +4 -1
- package/dist/declarations/src/actions/network-status/fetchFeeData.d.ts +3 -1
- package/dist/declarations/src/actions/network-status/index.d.ts +1 -1
- package/dist/declarations/src/actions/providers/getProvider.d.ts +5 -1
- package/dist/declarations/src/actions/providers/getWebSocketProvider.d.ts +5 -1
- package/dist/declarations/src/actions/providers/index.d.ts +2 -2
- package/dist/declarations/src/actions/providers/watchProvider.d.ts +1 -1
- package/dist/declarations/src/actions/tokens/fetchToken.d.ts +6 -10
- package/dist/declarations/src/client.d.ts +2 -2
- package/dist/declarations/src/connectors/injected.d.ts +2 -10
- package/dist/declarations/src/constants/rpcs.d.ts +2 -0
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/types/index.d.ts +8 -6
- package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
- package/dist/wagmi-core.cjs.dev.js +158 -79
- package/dist/wagmi-core.cjs.prod.js +158 -79
- package/dist/wagmi-core.esm.js +159 -80
- package/package.json +12 -4
- package/dist/declarations/src/constants/keys.d.ts +0 -2
package/dist/wagmi-core.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-
|
|
2
|
-
import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-
|
|
3
|
-
export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-
|
|
1
|
+
import { _ as _classPrivateMethodInitSpec, a as _classPrivateMethodGet } from './classPrivateMethodGet-271594d5.esm.js';
|
|
2
|
+
import { C as Connector, _ as _defineProperty, a as _classPrivateFieldInitSpec, n as normalizeChainId, b as ConnectorNotFoundError, U as UserRejectedRequestError, c as _classPrivateFieldSet, d as _classPrivateFieldGet, e as allChains, f as ChainNotConfiguredError, A as AddChainError, S as SwitchChainError, g as ConnectorAlreadyConnectedError, h as SwitchChainNotSupportedError } from './base-d3f58b0e.esm.js';
|
|
3
|
+
export { A as AddChainError, f as ChainNotConfiguredError, C as Connector, g as ConnectorAlreadyConnectedError, b as ConnectorNotFoundError, S as SwitchChainError, h as SwitchChainNotSupportedError, U as UserRejectedRequestError, i as alchemyRpcUrls, e as allChains, j as chain, k as chainId, l as defaultChains, m as defaultL2Chains, o as etherscanBlockExplorers, p as infuraRpcUrls, n as normalizeChainId } from './base-d3f58b0e.esm.js';
|
|
4
4
|
import { providers, getDefaultProvider } from 'ethers';
|
|
5
5
|
import create from 'zustand/vanilla';
|
|
6
6
|
import { subscribeWithSelector, persist } from 'zustand/middleware';
|
|
@@ -16,13 +16,22 @@ const erc721ABI = ['event Approval(address indexed _owner, address indexed _appr
|
|
|
16
16
|
// https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
|
|
17
17
|
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
18
18
|
|
|
19
|
+
const injectedProvidersLookup = {
|
|
20
|
+
isMetaMask: 'MetaMask',
|
|
21
|
+
// Place other options below in alphabetical order
|
|
22
|
+
isBraveWallet: 'Brave Wallet',
|
|
23
|
+
isCoinbaseWallet: 'Coinbase Wallet',
|
|
24
|
+
isFrame: 'Frame',
|
|
25
|
+
isTally: 'Tally'
|
|
26
|
+
};
|
|
27
|
+
const injectedOptions = Object.entries(injectedProvidersLookup);
|
|
19
28
|
function getInjectedName(ethereum) {
|
|
20
29
|
if (!ethereum) return 'Injected';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
|
|
31
|
+
for (const [key, val] of injectedOptions) {
|
|
32
|
+
if (ethereum[key]) return val;
|
|
33
|
+
}
|
|
34
|
+
|
|
26
35
|
return 'Injected';
|
|
27
36
|
}
|
|
28
37
|
|
|
@@ -68,10 +77,10 @@ class InjectedConnector extends Connector {
|
|
|
68
77
|
});
|
|
69
78
|
|
|
70
79
|
_defineProperty(this, "onDisconnect", () => {
|
|
71
|
-
var _this$options,
|
|
80
|
+
var _this$options, _getClient$storage;
|
|
72
81
|
|
|
73
82
|
this.emit('disconnect');
|
|
74
|
-
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (
|
|
83
|
+
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (_getClient$storage = getClient().storage) === null || _getClient$storage === void 0 ? void 0 : _getClient$storage.removeItem(shimKey);
|
|
75
84
|
});
|
|
76
85
|
|
|
77
86
|
let name = 'Injected';
|
|
@@ -81,7 +90,7 @@ class InjectedConnector extends Connector {
|
|
|
81
90
|
|
|
82
91
|
async connect() {
|
|
83
92
|
try {
|
|
84
|
-
var _this$options2,
|
|
93
|
+
var _this$options2, _getClient$storage2;
|
|
85
94
|
|
|
86
95
|
const provider = await this.getProvider();
|
|
87
96
|
if (!provider) throw new ConnectorNotFoundError();
|
|
@@ -98,7 +107,7 @@ class InjectedConnector extends Connector {
|
|
|
98
107
|
const account = await this.getAccount();
|
|
99
108
|
const id = await this.getChainId();
|
|
100
109
|
const unsupported = this.isChainUnsupported(id);
|
|
101
|
-
if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (
|
|
110
|
+
if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (_getClient$storage2 = getClient().storage) === null || _getClient$storage2 === void 0 ? void 0 : _getClient$storage2.setItem(shimKey, true);
|
|
102
111
|
return {
|
|
103
112
|
account,
|
|
104
113
|
chain: {
|
|
@@ -114,14 +123,14 @@ class InjectedConnector extends Connector {
|
|
|
114
123
|
}
|
|
115
124
|
|
|
116
125
|
async disconnect() {
|
|
117
|
-
var _this$options3,
|
|
126
|
+
var _this$options3, _getClient$storage3;
|
|
118
127
|
|
|
119
128
|
const provider = await this.getProvider();
|
|
120
129
|
if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
|
|
121
130
|
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
122
131
|
provider.removeListener('chainChanged', this.onChainChanged);
|
|
123
132
|
provider.removeListener('disconnect', this.onDisconnect);
|
|
124
|
-
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (
|
|
133
|
+
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (_getClient$storage3 = getClient().storage) === null || _getClient$storage3 === void 0 ? void 0 : _getClient$storage3.removeItem(shimKey);
|
|
125
134
|
}
|
|
126
135
|
|
|
127
136
|
async getAccount() {
|
|
@@ -154,9 +163,9 @@ class InjectedConnector extends Connector {
|
|
|
154
163
|
|
|
155
164
|
async isAuthorized() {
|
|
156
165
|
try {
|
|
157
|
-
var _this$options4,
|
|
166
|
+
var _this$options4, _getClient$storage4;
|
|
158
167
|
|
|
159
|
-
if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((
|
|
168
|
+
if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((_getClient$storage4 = getClient().storage) !== null && _getClient$storage4 !== void 0 && _getClient$storage4.getItem(shimKey))) return false;
|
|
160
169
|
const provider = await this.getProvider();
|
|
161
170
|
if (!provider) throw new ConnectorNotFoundError();
|
|
162
171
|
const accounts = await provider.request({
|
|
@@ -570,22 +579,50 @@ async function connect(_ref) {
|
|
|
570
579
|
}
|
|
571
580
|
|
|
572
581
|
async function disconnect() {
|
|
582
|
+
const client = getClient();
|
|
573
583
|
if (client.connector) await client.connector.disconnect();
|
|
574
584
|
client.clearState();
|
|
575
585
|
client.storage.removeItem('connected');
|
|
576
586
|
}
|
|
577
587
|
|
|
588
|
+
function getProvider() {
|
|
589
|
+
let {
|
|
590
|
+
chainId
|
|
591
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
592
|
+
const client = getClient();
|
|
593
|
+
if (chainId && typeof client.config.provider === 'function') return client.config.provider({
|
|
594
|
+
chainId
|
|
595
|
+
});
|
|
596
|
+
return client.provider;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
function getWebSocketProvider() {
|
|
600
|
+
let {
|
|
601
|
+
chainId
|
|
602
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
603
|
+
const client = getClient();
|
|
604
|
+
if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
|
|
605
|
+
chainId
|
|
606
|
+
});
|
|
607
|
+
return client.webSocketProvider;
|
|
608
|
+
}
|
|
609
|
+
|
|
578
610
|
async function fetchBalance(_ref) {
|
|
579
611
|
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
580
612
|
|
|
581
613
|
let {
|
|
582
614
|
addressOrName,
|
|
615
|
+
chainId,
|
|
583
616
|
formatUnits: unit = 'ether',
|
|
584
617
|
token
|
|
585
618
|
} = _ref;
|
|
619
|
+
const client = getClient();
|
|
620
|
+
const provider = getProvider({
|
|
621
|
+
chainId
|
|
622
|
+
});
|
|
586
623
|
|
|
587
624
|
if (token) {
|
|
588
|
-
const contract = new Contract(token, erc20ABI,
|
|
625
|
+
const contract = new Contract(token, erc20ABI, provider);
|
|
589
626
|
const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
|
|
590
627
|
return {
|
|
591
628
|
decimals,
|
|
@@ -597,8 +634,8 @@ async function fetchBalance(_ref) {
|
|
|
597
634
|
}
|
|
598
635
|
|
|
599
636
|
const chains = [...((_client$connector$cha = (_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : _client$connector.chains) !== null && _client$connector$cha !== void 0 ? _client$connector$cha : []), ...allChains];
|
|
600
|
-
const value = await
|
|
601
|
-
const chain = chains.find(x => x.id ===
|
|
637
|
+
const value = await provider.getBalance(addressOrName);
|
|
638
|
+
const chain = chains.find(x => x.id === provider.network.chainId);
|
|
602
639
|
return {
|
|
603
640
|
decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18,
|
|
604
641
|
formatted: formatUnits(value, unit),
|
|
@@ -611,7 +648,8 @@ async function fetchBalance(_ref) {
|
|
|
611
648
|
async function fetchSigner() {
|
|
612
649
|
var _client$connector, _client$connector$get;
|
|
613
650
|
|
|
614
|
-
const
|
|
651
|
+
const client = getClient();
|
|
652
|
+
const signer = (await ((_client$connector = client.connector) === null || _client$connector === void 0 ? void 0 : (_client$connector$get = _client$connector.getSigner) === null || _client$connector$get === void 0 ? void 0 : _client$connector$get.call(_client$connector))) || null;
|
|
615
653
|
return signer;
|
|
616
654
|
}
|
|
617
655
|
|
|
@@ -619,7 +657,7 @@ function getAccount() {
|
|
|
619
657
|
const {
|
|
620
658
|
data,
|
|
621
659
|
connector
|
|
622
|
-
} =
|
|
660
|
+
} = getClient();
|
|
623
661
|
return {
|
|
624
662
|
address: data === null || data === void 0 ? void 0 : data.account,
|
|
625
663
|
connector
|
|
@@ -627,15 +665,11 @@ function getAccount() {
|
|
|
627
665
|
}
|
|
628
666
|
|
|
629
667
|
function getNetwork() {
|
|
630
|
-
var
|
|
668
|
+
var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
|
|
631
669
|
|
|
632
|
-
const
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
} = client;
|
|
636
|
-
const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
|
|
637
|
-
const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
|
|
638
|
-
const activeChains = chains !== null && chains !== void 0 ? chains : [];
|
|
670
|
+
const client = getClient();
|
|
671
|
+
const chainId = (_client$data = client.data) === null || _client$data === void 0 ? void 0 : (_client$data$chain = _client$data.chain) === null || _client$data$chain === void 0 ? void 0 : _client$data$chain.id;
|
|
672
|
+
const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
|
|
639
673
|
const activeChain = (_find = [...activeChains, ...allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
640
674
|
id: chainId,
|
|
641
675
|
name: "Chain ".concat(chainId),
|
|
@@ -645,8 +679,8 @@ function getNetwork() {
|
|
|
645
679
|
};
|
|
646
680
|
return {
|
|
647
681
|
chain: chainId ? { ...activeChain,
|
|
648
|
-
|
|
649
|
-
|
|
682
|
+
...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
|
|
683
|
+
id: chainId
|
|
650
684
|
} : undefined,
|
|
651
685
|
chains: activeChains
|
|
652
686
|
};
|
|
@@ -683,12 +717,15 @@ async function switchNetwork(_ref) {
|
|
|
683
717
|
let {
|
|
684
718
|
chainId
|
|
685
719
|
} = _ref;
|
|
720
|
+
const client = getClient();
|
|
686
721
|
if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new SwitchChainNotSupportedError();
|
|
687
722
|
const chain = await client.connector.switchChain(chainId);
|
|
688
723
|
return chain;
|
|
689
724
|
}
|
|
690
725
|
|
|
691
726
|
function watchAccount(callback) {
|
|
727
|
+
const client = getClient();
|
|
728
|
+
|
|
692
729
|
const handleChange = () => callback(getAccount());
|
|
693
730
|
|
|
694
731
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -707,6 +744,8 @@ function watchAccount(callback) {
|
|
|
707
744
|
}
|
|
708
745
|
|
|
709
746
|
function watchBalance(args, callback) {
|
|
747
|
+
const client = getClient();
|
|
748
|
+
|
|
710
749
|
const handleChange = async () => callback(await fetchBalance(args));
|
|
711
750
|
|
|
712
751
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -726,6 +765,8 @@ function watchBalance(args, callback) {
|
|
|
726
765
|
}
|
|
727
766
|
|
|
728
767
|
function watchNetwork(callback) {
|
|
768
|
+
const client = getClient();
|
|
769
|
+
|
|
729
770
|
const handleChange = () => callback(getNetwork());
|
|
730
771
|
|
|
731
772
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -746,6 +787,8 @@ function watchNetwork(callback) {
|
|
|
746
787
|
}
|
|
747
788
|
|
|
748
789
|
function watchSigner(callback) {
|
|
790
|
+
const client = getClient();
|
|
791
|
+
|
|
749
792
|
const handleChange = async () => callback(await fetchSigner());
|
|
750
793
|
|
|
751
794
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -778,17 +821,20 @@ function getContract(_ref) {
|
|
|
778
821
|
async function readContract(contractConfig, functionName) {
|
|
779
822
|
let {
|
|
780
823
|
args,
|
|
824
|
+
chainId,
|
|
781
825
|
overrides
|
|
782
826
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
783
|
-
const {
|
|
784
|
-
|
|
785
|
-
}
|
|
827
|
+
const provider = getProvider({
|
|
828
|
+
chainId
|
|
829
|
+
});
|
|
786
830
|
const contract = getContract({
|
|
787
831
|
signerOrProvider: provider,
|
|
788
832
|
...contractConfig
|
|
789
833
|
});
|
|
790
834
|
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
791
|
-
const
|
|
835
|
+
const contractFunction = contract[functionName];
|
|
836
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
837
|
+
const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
|
|
792
838
|
return response;
|
|
793
839
|
}
|
|
794
840
|
|
|
@@ -798,6 +844,7 @@ contractArgs,
|
|
|
798
844
|
/** Event name to listen to */
|
|
799
845
|
eventName, callback) {
|
|
800
846
|
let {
|
|
847
|
+
chainId,
|
|
801
848
|
once
|
|
802
849
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
803
850
|
let contract;
|
|
@@ -810,13 +857,18 @@ eventName, callback) {
|
|
|
810
857
|
}
|
|
811
858
|
|
|
812
859
|
contract = getContract({
|
|
813
|
-
signerOrProvider:
|
|
860
|
+
signerOrProvider: getWebSocketProvider({
|
|
861
|
+
chainId
|
|
862
|
+
}) || getProvider({
|
|
863
|
+
chainId
|
|
864
|
+
}),
|
|
814
865
|
...contractArgs
|
|
815
866
|
});
|
|
816
867
|
if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
|
|
817
868
|
};
|
|
818
869
|
|
|
819
870
|
watchEvent();
|
|
871
|
+
const client = getClient();
|
|
820
872
|
const unsubscribe = client.subscribe(_ref => {
|
|
821
873
|
let {
|
|
822
874
|
provider,
|
|
@@ -838,33 +890,34 @@ eventName, callback) {
|
|
|
838
890
|
}
|
|
839
891
|
|
|
840
892
|
async function fetchBlockNumber() {
|
|
841
|
-
|
|
893
|
+
let {
|
|
894
|
+
chainId
|
|
895
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
896
|
+
const provider = getProvider({
|
|
897
|
+
chainId
|
|
898
|
+
});
|
|
899
|
+
const blockNumber = await provider.getBlockNumber();
|
|
842
900
|
return blockNumber;
|
|
843
901
|
}
|
|
844
902
|
|
|
845
903
|
function watchBlockNumber(args, callback) {
|
|
904
|
+
var _client$webSocketProv;
|
|
905
|
+
|
|
846
906
|
let prevProvider;
|
|
847
907
|
|
|
848
908
|
const createListener = provider => {
|
|
849
|
-
const listener = blockNumber => {
|
|
850
|
-
callback(blockNumber);
|
|
851
|
-
};
|
|
852
|
-
|
|
853
909
|
if (prevProvider) {
|
|
854
910
|
var _prevProvider;
|
|
855
911
|
|
|
856
|
-
(_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block',
|
|
912
|
+
(_prevProvider = prevProvider) === null || _prevProvider === void 0 ? void 0 : _prevProvider.off('block', callback);
|
|
857
913
|
}
|
|
858
914
|
|
|
859
|
-
provider.on('block',
|
|
915
|
+
provider.on('block', callback);
|
|
860
916
|
prevProvider = provider;
|
|
861
917
|
};
|
|
862
918
|
|
|
863
|
-
const
|
|
864
|
-
|
|
865
|
-
webSocketProvider
|
|
866
|
-
} = client;
|
|
867
|
-
const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
919
|
+
const client = getClient();
|
|
920
|
+
const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
|
|
868
921
|
if (args.listen) createListener(provider_);
|
|
869
922
|
const unsubscribe = client.subscribe(_ref => {
|
|
870
923
|
let {
|
|
@@ -890,7 +943,10 @@ function watchBlockNumber(args, callback) {
|
|
|
890
943
|
}, {
|
|
891
944
|
equalityFn: (selected, previous) => selected.provider === previous.provider && selected.webSocketProvider === previous.webSocketProvider
|
|
892
945
|
});
|
|
893
|
-
return
|
|
946
|
+
return () => {
|
|
947
|
+
unsubscribe();
|
|
948
|
+
provider_ === null || provider_ === void 0 ? void 0 : provider_.off('block', callback);
|
|
949
|
+
};
|
|
894
950
|
}
|
|
895
951
|
|
|
896
952
|
function watchReadContract(contractConfig, functionName) {
|
|
@@ -898,6 +954,7 @@ function watchReadContract(contractConfig, functionName) {
|
|
|
898
954
|
|
|
899
955
|
let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
900
956
|
let callback = arguments.length > 3 ? arguments[3] : undefined;
|
|
957
|
+
const client = getClient();
|
|
901
958
|
|
|
902
959
|
const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
|
|
903
960
|
|
|
@@ -921,17 +978,17 @@ async function writeContract(contractConfig, functionName) {
|
|
|
921
978
|
args,
|
|
922
979
|
overrides
|
|
923
980
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
924
|
-
const
|
|
925
|
-
|
|
926
|
-
} = client;
|
|
927
|
-
const contract = getContract(contractConfig);
|
|
928
|
-
if (!connector) throw new ConnectorNotFoundError();
|
|
981
|
+
const client = getClient();
|
|
982
|
+
if (!client.connector) throw new ConnectorNotFoundError();
|
|
929
983
|
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
930
984
|
|
|
931
985
|
try {
|
|
932
|
-
const signer = await connector.getSigner();
|
|
933
|
-
const
|
|
934
|
-
const
|
|
986
|
+
const signer = await client.connector.getSigner();
|
|
987
|
+
const contract = getContract(contractConfig);
|
|
988
|
+
const contractWithSigner = contract.connect(signer);
|
|
989
|
+
const contractFunction = contractWithSigner[functionName];
|
|
990
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
991
|
+
const response = await contractFunction(...params);
|
|
935
992
|
return response;
|
|
936
993
|
} catch (error_) {
|
|
937
994
|
let error = error_;
|
|
@@ -942,9 +999,13 @@ async function writeContract(contractConfig, functionName) {
|
|
|
942
999
|
|
|
943
1000
|
async function fetchEnsAddress(_ref) {
|
|
944
1001
|
let {
|
|
1002
|
+
chainId,
|
|
945
1003
|
name
|
|
946
1004
|
} = _ref;
|
|
947
|
-
const
|
|
1005
|
+
const provider = getProvider({
|
|
1006
|
+
chainId
|
|
1007
|
+
});
|
|
1008
|
+
const address = await provider.resolveName(name);
|
|
948
1009
|
|
|
949
1010
|
try {
|
|
950
1011
|
return address ? getAddress(address) : null;
|
|
@@ -955,31 +1016,45 @@ async function fetchEnsAddress(_ref) {
|
|
|
955
1016
|
|
|
956
1017
|
async function fetchEnsAvatar(_ref) {
|
|
957
1018
|
let {
|
|
958
|
-
addressOrName
|
|
1019
|
+
addressOrName,
|
|
1020
|
+
chainId
|
|
959
1021
|
} = _ref;
|
|
960
|
-
|
|
1022
|
+
const provider = getProvider({
|
|
1023
|
+
chainId
|
|
1024
|
+
}); // TODO: Update with more advanced logic
|
|
961
1025
|
// https://github.com/ensdomains/ens-avatar
|
|
962
|
-
|
|
1026
|
+
|
|
1027
|
+
const avatar = await provider.getAvatar(addressOrName);
|
|
963
1028
|
return avatar;
|
|
964
1029
|
}
|
|
965
1030
|
|
|
966
1031
|
async function fetchEnsName(_ref) {
|
|
967
1032
|
let {
|
|
968
|
-
address
|
|
1033
|
+
address,
|
|
1034
|
+
chainId
|
|
969
1035
|
} = _ref;
|
|
970
|
-
const
|
|
1036
|
+
const provider = getProvider({
|
|
1037
|
+
chainId
|
|
1038
|
+
});
|
|
1039
|
+
const ensName = await provider.lookupAddress(address);
|
|
971
1040
|
return ensName;
|
|
972
1041
|
}
|
|
973
1042
|
|
|
974
1043
|
async function fetchEnsResolver(_ref) {
|
|
975
1044
|
let {
|
|
1045
|
+
chainId,
|
|
976
1046
|
name
|
|
977
1047
|
} = _ref;
|
|
978
|
-
const
|
|
1048
|
+
const provider = getProvider({
|
|
1049
|
+
chainId
|
|
1050
|
+
});
|
|
1051
|
+
const resolver = await provider.getResolver(name);
|
|
979
1052
|
return resolver;
|
|
980
1053
|
}
|
|
981
1054
|
|
|
982
1055
|
function watchEnsAddress(args, callback) {
|
|
1056
|
+
const client = getClient();
|
|
1057
|
+
|
|
983
1058
|
const handleChange = async () => callback(await fetchEnsAddress(args));
|
|
984
1059
|
|
|
985
1060
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -992,6 +1067,8 @@ function watchEnsAddress(args, callback) {
|
|
|
992
1067
|
}
|
|
993
1068
|
|
|
994
1069
|
function watchEnsAvatar(args, callback) {
|
|
1070
|
+
const client = getClient();
|
|
1071
|
+
|
|
995
1072
|
const handleChange = async () => callback(await fetchEnsAvatar(args));
|
|
996
1073
|
|
|
997
1074
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1004,6 +1081,8 @@ function watchEnsAvatar(args, callback) {
|
|
|
1004
1081
|
}
|
|
1005
1082
|
|
|
1006
1083
|
function watchEnsName(args, callback) {
|
|
1084
|
+
const client = getClient();
|
|
1085
|
+
|
|
1007
1086
|
const handleChange = async () => callback(await fetchEnsName(args));
|
|
1008
1087
|
|
|
1009
1088
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1016,6 +1095,8 @@ function watchEnsName(args, callback) {
|
|
|
1016
1095
|
}
|
|
1017
1096
|
|
|
1018
1097
|
function watchEnsResolver(args, callback) {
|
|
1098
|
+
const client = getClient();
|
|
1099
|
+
|
|
1019
1100
|
const handleChange = async () => callback(await fetchEnsResolver(args));
|
|
1020
1101
|
|
|
1021
1102
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1029,9 +1110,13 @@ function watchEnsResolver(args, callback) {
|
|
|
1029
1110
|
|
|
1030
1111
|
async function fetchFeeData() {
|
|
1031
1112
|
let {
|
|
1113
|
+
chainId,
|
|
1032
1114
|
formatUnits: units = 'wei'
|
|
1033
1115
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1034
|
-
const
|
|
1116
|
+
const provider = getProvider({
|
|
1117
|
+
chainId
|
|
1118
|
+
});
|
|
1119
|
+
const feeData = await provider.getFeeData();
|
|
1035
1120
|
const formatted = {
|
|
1036
1121
|
gasPrice: formatUnits(feeData.gasPrice, units),
|
|
1037
1122
|
maxFeePerGas: formatUnits(feeData.maxFeePerGas, units),
|
|
@@ -1043,6 +1128,8 @@ async function fetchFeeData() {
|
|
|
1043
1128
|
}
|
|
1044
1129
|
|
|
1045
1130
|
function watchFeeData(args, callback) {
|
|
1131
|
+
const client = getClient();
|
|
1132
|
+
|
|
1046
1133
|
const handleChange = async () => callback(await fetchFeeData(args));
|
|
1047
1134
|
|
|
1048
1135
|
const unwatch = args.listenToBlock ? watchBlockNumber({
|
|
@@ -1060,23 +1147,15 @@ function watchFeeData(args, callback) {
|
|
|
1060
1147
|
};
|
|
1061
1148
|
}
|
|
1062
1149
|
|
|
1063
|
-
function getProvider() {
|
|
1064
|
-
return getClient().provider;
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
|
-
function getWebSocketProvider() {
|
|
1068
|
-
return getClient().webSocketProvider;
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
1150
|
async function fetchToken(_ref) {
|
|
1072
1151
|
let {
|
|
1073
1152
|
address,
|
|
1153
|
+
chainId,
|
|
1074
1154
|
formatUnits: units = 'ether'
|
|
1075
1155
|
} = _ref;
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
} = client;
|
|
1156
|
+
const provider = getProvider({
|
|
1157
|
+
chainId
|
|
1158
|
+
});
|
|
1080
1159
|
const contract = new Contract(address, erc20ABI, provider);
|
|
1081
1160
|
const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
|
|
1082
1161
|
const token = {
|
|
@@ -1092,6 +1171,8 @@ async function fetchToken(_ref) {
|
|
|
1092
1171
|
}
|
|
1093
1172
|
|
|
1094
1173
|
function watchToken(args, callback) {
|
|
1174
|
+
const client = getClient();
|
|
1175
|
+
|
|
1095
1176
|
const handleChange = async () => callback(await fetchToken(args));
|
|
1096
1177
|
|
|
1097
1178
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1117,9 +1198,7 @@ async function sendTransaction(args) {
|
|
|
1117
1198
|
}
|
|
1118
1199
|
|
|
1119
1200
|
async function waitForTransaction(args) {
|
|
1120
|
-
const
|
|
1121
|
-
provider
|
|
1122
|
-
} = client;
|
|
1201
|
+
const provider = getProvider();
|
|
1123
1202
|
let promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1124
1203
|
|
|
1125
1204
|
if (args.wait) promise = args.wait(args.confirmations);else if (args.hash) promise = provider.waitForTransaction(args.hash, args.confirmations, args.timeout);else throw new Error('hash or wait is required');
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wagmi/core",
|
|
3
|
-
"description": "Vanilla JS
|
|
4
|
-
"license": "
|
|
5
|
-
"version": "0.2.0-next.
|
|
3
|
+
"description": "Vanilla JS library for Ethereum",
|
|
4
|
+
"license": "WAGMIT",
|
|
5
|
+
"version": "0.2.0-next.14",
|
|
6
|
+
"author": "awkweb.eth",
|
|
6
7
|
"ethereum": "awkweb.eth",
|
|
7
8
|
"repository": "tmm/wagmi",
|
|
8
9
|
"sideEffects": false,
|
|
@@ -62,5 +63,12 @@
|
|
|
62
63
|
"@coinbase/wallet-sdk": "^3.0.1",
|
|
63
64
|
"@walletconnect/ethereum-provider": "1.7.5",
|
|
64
65
|
"ethers": "^5.5.1"
|
|
65
|
-
}
|
|
66
|
+
},
|
|
67
|
+
"keywords": [
|
|
68
|
+
"eth",
|
|
69
|
+
"ethereum",
|
|
70
|
+
"dapps",
|
|
71
|
+
"wallet",
|
|
72
|
+
"web3"
|
|
73
|
+
]
|
|
66
74
|
}
|