@wagmi/core 0.2.0-next.10 → 0.2.0-next.13
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-85d1eb89.cjs.dev.js → base-83fd83c6.cjs.dev.js} +3 -3
- package/dist/{base-d3563329.cjs.prod.js → base-9b2942ee.cjs.prod.js} +3 -3
- package/dist/{base-37097073.esm.js → base-b052e615.esm.js} +3 -3
- package/dist/{classPrivateMethodGet-3f47cf74.cjs.dev.js → classPrivateMethodGet-45a38143.cjs.dev.js} +1 -1
- package/dist/{classPrivateMethodGet-b3ba7c1d.esm.js → classPrivateMethodGet-7c370e43.esm.js} +1 -1
- package/dist/{classPrivateMethodGet-a763c0df.cjs.prod.js → classPrivateMethodGet-a1e1a4aa.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/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/index.d.ts +1 -1
- package/dist/declarations/src/types/index.d.ts +65 -1
- package/dist/declarations/src/utils/getInjectedName.d.ts +1 -1
- package/dist/wagmi-core.cjs.dev.js +152 -71
- package/dist/wagmi-core.cjs.prod.js +152 -71
- package/dist/wagmi-core.esm.js +153 -72
- package/package.json +12 -4
- package/dist/declarations/src/types/declarations.d.ts +0 -52
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var classPrivateMethodGet = require('./classPrivateMethodGet-
|
|
6
|
-
var base = require('./base-
|
|
5
|
+
var classPrivateMethodGet = require('./classPrivateMethodGet-a1e1a4aa.cjs.prod.js');
|
|
6
|
+
var base = require('./base-9b2942ee.cjs.prod.js');
|
|
7
7
|
var ethers = require('ethers');
|
|
8
8
|
var create = require('zustand/vanilla');
|
|
9
9
|
var middleware = require('zustand/middleware');
|
|
@@ -23,12 +23,22 @@ const erc721ABI = ['event Approval(address indexed _owner, address indexed _appr
|
|
|
23
23
|
// https://github.com/ethers-io/ethers.js/blob/master/packages/units/src.ts/index.ts#L10-L18
|
|
24
24
|
const units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether'];
|
|
25
25
|
|
|
26
|
+
const injectedProvidersLookup = {
|
|
27
|
+
isMetaMask: 'MetaMask',
|
|
28
|
+
// Place other options below in alphabetical order
|
|
29
|
+
isBraveWallet: 'Brave Wallet',
|
|
30
|
+
isCoinbaseWallet: 'Coinbase Wallet',
|
|
31
|
+
isFrame: 'Frame',
|
|
32
|
+
isTally: 'Tally'
|
|
33
|
+
};
|
|
34
|
+
const injectedOptions = Object.entries(injectedProvidersLookup);
|
|
26
35
|
function getInjectedName(ethereum) {
|
|
27
36
|
if (!ethereum) return 'Injected';
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
|
|
38
|
+
for (const [key, val] of injectedOptions) {
|
|
39
|
+
if (ethereum[key]) return val;
|
|
40
|
+
}
|
|
41
|
+
|
|
32
42
|
return 'Injected';
|
|
33
43
|
}
|
|
34
44
|
|
|
@@ -74,10 +84,10 @@ class InjectedConnector extends base.Connector {
|
|
|
74
84
|
});
|
|
75
85
|
|
|
76
86
|
base._defineProperty(this, "onDisconnect", () => {
|
|
77
|
-
var _this$options,
|
|
87
|
+
var _this$options, _getClient$storage;
|
|
78
88
|
|
|
79
89
|
this.emit('disconnect');
|
|
80
|
-
if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) (
|
|
90
|
+
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);
|
|
81
91
|
});
|
|
82
92
|
|
|
83
93
|
let name = 'Injected';
|
|
@@ -87,7 +97,7 @@ class InjectedConnector extends base.Connector {
|
|
|
87
97
|
|
|
88
98
|
async connect() {
|
|
89
99
|
try {
|
|
90
|
-
var _this$options2,
|
|
100
|
+
var _this$options2, _getClient$storage2;
|
|
91
101
|
|
|
92
102
|
const provider = await this.getProvider();
|
|
93
103
|
if (!provider) throw new base.ConnectorNotFoundError();
|
|
@@ -104,7 +114,7 @@ class InjectedConnector extends base.Connector {
|
|
|
104
114
|
const account = await this.getAccount();
|
|
105
115
|
const id = await this.getChainId();
|
|
106
116
|
const unsupported = this.isChainUnsupported(id);
|
|
107
|
-
if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) (
|
|
117
|
+
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);
|
|
108
118
|
return {
|
|
109
119
|
account,
|
|
110
120
|
chain: {
|
|
@@ -120,14 +130,14 @@ class InjectedConnector extends base.Connector {
|
|
|
120
130
|
}
|
|
121
131
|
|
|
122
132
|
async disconnect() {
|
|
123
|
-
var _this$options3,
|
|
133
|
+
var _this$options3, _getClient$storage3;
|
|
124
134
|
|
|
125
135
|
const provider = await this.getProvider();
|
|
126
136
|
if (!(provider !== null && provider !== void 0 && provider.removeListener)) return;
|
|
127
137
|
provider.removeListener('accountsChanged', this.onAccountsChanged);
|
|
128
138
|
provider.removeListener('chainChanged', this.onChainChanged);
|
|
129
139
|
provider.removeListener('disconnect', this.onDisconnect);
|
|
130
|
-
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) (
|
|
140
|
+
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);
|
|
131
141
|
}
|
|
132
142
|
|
|
133
143
|
async getAccount() {
|
|
@@ -160,9 +170,9 @@ class InjectedConnector extends base.Connector {
|
|
|
160
170
|
|
|
161
171
|
async isAuthorized() {
|
|
162
172
|
try {
|
|
163
|
-
var _this$options4,
|
|
173
|
+
var _this$options4, _getClient$storage4;
|
|
164
174
|
|
|
165
|
-
if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect && !((
|
|
175
|
+
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;
|
|
166
176
|
const provider = await this.getProvider();
|
|
167
177
|
if (!provider) throw new base.ConnectorNotFoundError();
|
|
168
178
|
const accounts = await provider.request({
|
|
@@ -314,7 +324,7 @@ class Client {
|
|
|
314
324
|
const _provider = (_config$provider = config.provider) !== null && _config$provider !== void 0 ? _config$provider : config => {
|
|
315
325
|
try {
|
|
316
326
|
return ethers.getDefaultProvider(config.chainId);
|
|
317
|
-
} catch
|
|
327
|
+
} catch {
|
|
318
328
|
return ethers.getDefaultProvider();
|
|
319
329
|
}
|
|
320
330
|
};
|
|
@@ -576,22 +586,50 @@ async function connect(_ref) {
|
|
|
576
586
|
}
|
|
577
587
|
|
|
578
588
|
async function disconnect() {
|
|
589
|
+
const client = getClient();
|
|
579
590
|
if (client.connector) await client.connector.disconnect();
|
|
580
591
|
client.clearState();
|
|
581
592
|
client.storage.removeItem('connected');
|
|
582
593
|
}
|
|
583
594
|
|
|
595
|
+
function getProvider() {
|
|
596
|
+
let {
|
|
597
|
+
chainId
|
|
598
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
599
|
+
const client = getClient();
|
|
600
|
+
if (chainId && typeof client.config.provider === 'function') return client.config.provider({
|
|
601
|
+
chainId
|
|
602
|
+
});
|
|
603
|
+
return client.provider;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
function getWebSocketProvider() {
|
|
607
|
+
let {
|
|
608
|
+
chainId
|
|
609
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
610
|
+
const client = getClient();
|
|
611
|
+
if (chainId && typeof client.config.webSocketProvider === 'function') return client.config.webSocketProvider({
|
|
612
|
+
chainId
|
|
613
|
+
});
|
|
614
|
+
return client.webSocketProvider;
|
|
615
|
+
}
|
|
616
|
+
|
|
584
617
|
async function fetchBalance(_ref) {
|
|
585
618
|
var _client$connector$cha, _client$connector, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4;
|
|
586
619
|
|
|
587
620
|
let {
|
|
588
621
|
addressOrName,
|
|
622
|
+
chainId,
|
|
589
623
|
formatUnits: unit = 'ether',
|
|
590
624
|
token
|
|
591
625
|
} = _ref;
|
|
626
|
+
const client = getClient();
|
|
627
|
+
const provider = getProvider({
|
|
628
|
+
chainId
|
|
629
|
+
});
|
|
592
630
|
|
|
593
631
|
if (token) {
|
|
594
|
-
const contract = new ethers$1.Contract(token, erc20ABI,
|
|
632
|
+
const contract = new ethers$1.Contract(token, erc20ABI, provider);
|
|
595
633
|
const [value, decimals, symbol] = await Promise.all([contract.balanceOf(addressOrName), contract.decimals(), contract.symbol()]);
|
|
596
634
|
return {
|
|
597
635
|
decimals,
|
|
@@ -603,8 +641,8 @@ async function fetchBalance(_ref) {
|
|
|
603
641
|
}
|
|
604
642
|
|
|
605
643
|
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 : []), ...base.allChains];
|
|
606
|
-
const value = await
|
|
607
|
-
const chain = chains.find(x => x.id ===
|
|
644
|
+
const value = await provider.getBalance(addressOrName);
|
|
645
|
+
const chain = chains.find(x => x.id === provider.network.chainId);
|
|
608
646
|
return {
|
|
609
647
|
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,
|
|
610
648
|
formatted: utils.formatUnits(value, unit),
|
|
@@ -617,6 +655,7 @@ async function fetchBalance(_ref) {
|
|
|
617
655
|
async function fetchSigner() {
|
|
618
656
|
var _client$connector, _client$connector$get;
|
|
619
657
|
|
|
658
|
+
const client = getClient();
|
|
620
659
|
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));
|
|
621
660
|
return signer;
|
|
622
661
|
}
|
|
@@ -625,7 +664,7 @@ function getAccount() {
|
|
|
625
664
|
const {
|
|
626
665
|
data,
|
|
627
666
|
connector
|
|
628
|
-
} =
|
|
667
|
+
} = getClient();
|
|
629
668
|
return {
|
|
630
669
|
address: data === null || data === void 0 ? void 0 : data.account,
|
|
631
670
|
connector
|
|
@@ -633,15 +672,11 @@ function getAccount() {
|
|
|
633
672
|
}
|
|
634
673
|
|
|
635
674
|
function getNetwork() {
|
|
636
|
-
var
|
|
675
|
+
var _client$data, _client$data$chain, _client$chains, _find, _client$data2;
|
|
637
676
|
|
|
638
|
-
const
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
} = client;
|
|
642
|
-
const chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id;
|
|
643
|
-
const unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported;
|
|
644
|
-
const activeChains = chains !== null && chains !== void 0 ? chains : [];
|
|
677
|
+
const client = getClient();
|
|
678
|
+
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;
|
|
679
|
+
const activeChains = (_client$chains = client.chains) !== null && _client$chains !== void 0 ? _client$chains : [];
|
|
645
680
|
const activeChain = (_find = [...activeChains, ...base.allChains].find(x => x.id === chainId)) !== null && _find !== void 0 ? _find : {
|
|
646
681
|
id: chainId,
|
|
647
682
|
name: "Chain ".concat(chainId),
|
|
@@ -651,8 +686,8 @@ function getNetwork() {
|
|
|
651
686
|
};
|
|
652
687
|
return {
|
|
653
688
|
chain: chainId ? { ...activeChain,
|
|
654
|
-
|
|
655
|
-
|
|
689
|
+
...((_client$data2 = client.data) === null || _client$data2 === void 0 ? void 0 : _client$data2.chain),
|
|
690
|
+
id: chainId
|
|
656
691
|
} : undefined,
|
|
657
692
|
chains: activeChains
|
|
658
693
|
};
|
|
@@ -689,12 +724,15 @@ async function switchNetwork(_ref) {
|
|
|
689
724
|
let {
|
|
690
725
|
chainId
|
|
691
726
|
} = _ref;
|
|
727
|
+
const client = getClient();
|
|
692
728
|
if (!((_client$connector = client.connector) !== null && _client$connector !== void 0 && _client$connector.switchChain)) throw new base.SwitchChainNotSupportedError();
|
|
693
729
|
const chain = await client.connector.switchChain(chainId);
|
|
694
730
|
return chain;
|
|
695
731
|
}
|
|
696
732
|
|
|
697
733
|
function watchAccount(callback) {
|
|
734
|
+
const client = getClient();
|
|
735
|
+
|
|
698
736
|
const handleChange = () => callback(getAccount());
|
|
699
737
|
|
|
700
738
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -713,6 +751,8 @@ function watchAccount(callback) {
|
|
|
713
751
|
}
|
|
714
752
|
|
|
715
753
|
function watchBalance(args, callback) {
|
|
754
|
+
const client = getClient();
|
|
755
|
+
|
|
716
756
|
const handleChange = async () => callback(await fetchBalance(args));
|
|
717
757
|
|
|
718
758
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -732,6 +772,8 @@ function watchBalance(args, callback) {
|
|
|
732
772
|
}
|
|
733
773
|
|
|
734
774
|
function watchNetwork(callback) {
|
|
775
|
+
const client = getClient();
|
|
776
|
+
|
|
735
777
|
const handleChange = () => callback(getNetwork());
|
|
736
778
|
|
|
737
779
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -752,6 +794,8 @@ function watchNetwork(callback) {
|
|
|
752
794
|
}
|
|
753
795
|
|
|
754
796
|
function watchSigner(callback) {
|
|
797
|
+
const client = getClient();
|
|
798
|
+
|
|
755
799
|
const handleChange = async () => callback(await fetchSigner());
|
|
756
800
|
|
|
757
801
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -784,17 +828,20 @@ function getContract(_ref) {
|
|
|
784
828
|
async function readContract(contractConfig, functionName) {
|
|
785
829
|
let {
|
|
786
830
|
args,
|
|
831
|
+
chainId,
|
|
787
832
|
overrides
|
|
788
833
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
789
|
-
const {
|
|
790
|
-
|
|
791
|
-
}
|
|
834
|
+
const provider = getProvider({
|
|
835
|
+
chainId
|
|
836
|
+
});
|
|
792
837
|
const contract = getContract({
|
|
793
838
|
signerOrProvider: provider,
|
|
794
839
|
...contractConfig
|
|
795
840
|
});
|
|
796
841
|
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
797
|
-
const
|
|
842
|
+
const contractFunction = contract[functionName];
|
|
843
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
844
|
+
const response = await (contractFunction === null || contractFunction === void 0 ? void 0 : contractFunction(...params));
|
|
798
845
|
return response;
|
|
799
846
|
}
|
|
800
847
|
|
|
@@ -804,6 +851,7 @@ contractArgs,
|
|
|
804
851
|
/** Event name to listen to */
|
|
805
852
|
eventName, callback) {
|
|
806
853
|
let {
|
|
854
|
+
chainId,
|
|
807
855
|
once
|
|
808
856
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
809
857
|
let contract;
|
|
@@ -816,13 +864,18 @@ eventName, callback) {
|
|
|
816
864
|
}
|
|
817
865
|
|
|
818
866
|
contract = getContract({
|
|
819
|
-
signerOrProvider:
|
|
867
|
+
signerOrProvider: getWebSocketProvider({
|
|
868
|
+
chainId
|
|
869
|
+
}) || getProvider({
|
|
870
|
+
chainId
|
|
871
|
+
}),
|
|
820
872
|
...contractArgs
|
|
821
873
|
});
|
|
822
874
|
if (once) contract.once(eventName, callback);else contract.on(eventName, callback);
|
|
823
875
|
};
|
|
824
876
|
|
|
825
877
|
watchEvent();
|
|
878
|
+
const client = getClient();
|
|
826
879
|
const unsubscribe = client.subscribe(_ref => {
|
|
827
880
|
let {
|
|
828
881
|
provider,
|
|
@@ -844,11 +897,19 @@ eventName, callback) {
|
|
|
844
897
|
}
|
|
845
898
|
|
|
846
899
|
async function fetchBlockNumber() {
|
|
847
|
-
|
|
900
|
+
let {
|
|
901
|
+
chainId
|
|
902
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
903
|
+
const provider = getProvider({
|
|
904
|
+
chainId
|
|
905
|
+
});
|
|
906
|
+
const blockNumber = await provider.getBlockNumber();
|
|
848
907
|
return blockNumber;
|
|
849
908
|
}
|
|
850
909
|
|
|
851
910
|
function watchBlockNumber(args, callback) {
|
|
911
|
+
var _client$webSocketProv;
|
|
912
|
+
|
|
852
913
|
let prevProvider;
|
|
853
914
|
|
|
854
915
|
const createListener = provider => {
|
|
@@ -866,11 +927,8 @@ function watchBlockNumber(args, callback) {
|
|
|
866
927
|
prevProvider = provider;
|
|
867
928
|
};
|
|
868
929
|
|
|
869
|
-
const
|
|
870
|
-
|
|
871
|
-
webSocketProvider
|
|
872
|
-
} = client;
|
|
873
|
-
const provider_ = webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider;
|
|
930
|
+
const client = getClient();
|
|
931
|
+
const provider_ = (_client$webSocketProv = client.webSocketProvider) !== null && _client$webSocketProv !== void 0 ? _client$webSocketProv : client.provider;
|
|
874
932
|
if (args.listen) createListener(provider_);
|
|
875
933
|
const unsubscribe = client.subscribe(_ref => {
|
|
876
934
|
let {
|
|
@@ -904,6 +962,7 @@ function watchReadContract(contractConfig, functionName) {
|
|
|
904
962
|
|
|
905
963
|
let config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
906
964
|
let callback = arguments.length > 3 ? arguments[3] : undefined;
|
|
965
|
+
const client = getClient();
|
|
907
966
|
|
|
908
967
|
const handleChange = async () => callback(await readContract(contractConfig, functionName, config));
|
|
909
968
|
|
|
@@ -927,17 +986,17 @@ async function writeContract(contractConfig, functionName) {
|
|
|
927
986
|
args,
|
|
928
987
|
overrides
|
|
929
988
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
930
|
-
const
|
|
931
|
-
|
|
932
|
-
} = client;
|
|
933
|
-
const contract = getContract(contractConfig);
|
|
934
|
-
if (!connector) throw new base.ConnectorNotFoundError();
|
|
989
|
+
const client = getClient();
|
|
990
|
+
if (!client.connector) throw new base.ConnectorNotFoundError();
|
|
935
991
|
const params = [...(Array.isArray(args) ? args : args ? [args] : []), ...(overrides ? [overrides] : [])];
|
|
936
992
|
|
|
937
993
|
try {
|
|
938
|
-
const signer = await connector.getSigner();
|
|
939
|
-
const
|
|
940
|
-
const
|
|
994
|
+
const signer = await client.connector.getSigner();
|
|
995
|
+
const contract = getContract(contractConfig);
|
|
996
|
+
const contractWithSigner = contract.connect(signer);
|
|
997
|
+
const contractFunction = contractWithSigner[functionName];
|
|
998
|
+
if (!contractFunction) console.warn("\"".concat(functionName, "\" does not in interface for contract \"").concat(contractConfig.addressOrName, "\""));
|
|
999
|
+
const response = await contractFunction(...params);
|
|
941
1000
|
return response;
|
|
942
1001
|
} catch (error_) {
|
|
943
1002
|
let error = error_;
|
|
@@ -948,9 +1007,13 @@ async function writeContract(contractConfig, functionName) {
|
|
|
948
1007
|
|
|
949
1008
|
async function fetchEnsAddress(_ref) {
|
|
950
1009
|
let {
|
|
1010
|
+
chainId,
|
|
951
1011
|
name
|
|
952
1012
|
} = _ref;
|
|
953
|
-
const
|
|
1013
|
+
const provider = getProvider({
|
|
1014
|
+
chainId
|
|
1015
|
+
});
|
|
1016
|
+
const address = await provider.resolveName(name);
|
|
954
1017
|
|
|
955
1018
|
try {
|
|
956
1019
|
return address ? utils.getAddress(address) : null;
|
|
@@ -961,31 +1024,45 @@ async function fetchEnsAddress(_ref) {
|
|
|
961
1024
|
|
|
962
1025
|
async function fetchEnsAvatar(_ref) {
|
|
963
1026
|
let {
|
|
964
|
-
addressOrName
|
|
1027
|
+
addressOrName,
|
|
1028
|
+
chainId
|
|
965
1029
|
} = _ref;
|
|
966
|
-
|
|
1030
|
+
const provider = getProvider({
|
|
1031
|
+
chainId
|
|
1032
|
+
}); // TODO: Update with more advanced logic
|
|
967
1033
|
// https://github.com/ensdomains/ens-avatar
|
|
968
|
-
|
|
1034
|
+
|
|
1035
|
+
const avatar = await provider.getAvatar(addressOrName);
|
|
969
1036
|
return avatar;
|
|
970
1037
|
}
|
|
971
1038
|
|
|
972
1039
|
async function fetchEnsName(_ref) {
|
|
973
1040
|
let {
|
|
974
|
-
address
|
|
1041
|
+
address,
|
|
1042
|
+
chainId
|
|
975
1043
|
} = _ref;
|
|
976
|
-
const
|
|
1044
|
+
const provider = getProvider({
|
|
1045
|
+
chainId
|
|
1046
|
+
});
|
|
1047
|
+
const ensName = await provider.lookupAddress(address);
|
|
977
1048
|
return ensName;
|
|
978
1049
|
}
|
|
979
1050
|
|
|
980
1051
|
async function fetchEnsResolver(_ref) {
|
|
981
1052
|
let {
|
|
1053
|
+
chainId,
|
|
982
1054
|
name
|
|
983
1055
|
} = _ref;
|
|
984
|
-
const
|
|
1056
|
+
const provider = getProvider({
|
|
1057
|
+
chainId
|
|
1058
|
+
});
|
|
1059
|
+
const resolver = await provider.getResolver(name);
|
|
985
1060
|
return resolver;
|
|
986
1061
|
}
|
|
987
1062
|
|
|
988
1063
|
function watchEnsAddress(args, callback) {
|
|
1064
|
+
const client = getClient();
|
|
1065
|
+
|
|
989
1066
|
const handleChange = async () => callback(await fetchEnsAddress(args));
|
|
990
1067
|
|
|
991
1068
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -998,6 +1075,8 @@ function watchEnsAddress(args, callback) {
|
|
|
998
1075
|
}
|
|
999
1076
|
|
|
1000
1077
|
function watchEnsAvatar(args, callback) {
|
|
1078
|
+
const client = getClient();
|
|
1079
|
+
|
|
1001
1080
|
const handleChange = async () => callback(await fetchEnsAvatar(args));
|
|
1002
1081
|
|
|
1003
1082
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1010,6 +1089,8 @@ function watchEnsAvatar(args, callback) {
|
|
|
1010
1089
|
}
|
|
1011
1090
|
|
|
1012
1091
|
function watchEnsName(args, callback) {
|
|
1092
|
+
const client = getClient();
|
|
1093
|
+
|
|
1013
1094
|
const handleChange = async () => callback(await fetchEnsName(args));
|
|
1014
1095
|
|
|
1015
1096
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1022,6 +1103,8 @@ function watchEnsName(args, callback) {
|
|
|
1022
1103
|
}
|
|
1023
1104
|
|
|
1024
1105
|
function watchEnsResolver(args, callback) {
|
|
1106
|
+
const client = getClient();
|
|
1107
|
+
|
|
1025
1108
|
const handleChange = async () => callback(await fetchEnsResolver(args));
|
|
1026
1109
|
|
|
1027
1110
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1035,9 +1118,13 @@ function watchEnsResolver(args, callback) {
|
|
|
1035
1118
|
|
|
1036
1119
|
async function fetchFeeData() {
|
|
1037
1120
|
let {
|
|
1121
|
+
chainId,
|
|
1038
1122
|
formatUnits: units = 'wei'
|
|
1039
1123
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1040
|
-
const
|
|
1124
|
+
const provider = getProvider({
|
|
1125
|
+
chainId
|
|
1126
|
+
});
|
|
1127
|
+
const feeData = await provider.getFeeData();
|
|
1041
1128
|
const formatted = {
|
|
1042
1129
|
gasPrice: utils.formatUnits(feeData.gasPrice, units),
|
|
1043
1130
|
maxFeePerGas: utils.formatUnits(feeData.maxFeePerGas, units),
|
|
@@ -1049,6 +1136,8 @@ async function fetchFeeData() {
|
|
|
1049
1136
|
}
|
|
1050
1137
|
|
|
1051
1138
|
function watchFeeData(args, callback) {
|
|
1139
|
+
const client = getClient();
|
|
1140
|
+
|
|
1052
1141
|
const handleChange = async () => callback(await fetchFeeData(args));
|
|
1053
1142
|
|
|
1054
1143
|
const unwatch = args.listenToBlock ? watchBlockNumber({
|
|
@@ -1066,23 +1155,15 @@ function watchFeeData(args, callback) {
|
|
|
1066
1155
|
};
|
|
1067
1156
|
}
|
|
1068
1157
|
|
|
1069
|
-
function getProvider() {
|
|
1070
|
-
return getClient().provider;
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
|
-
function getWebSocketProvider() {
|
|
1074
|
-
return getClient().provider;
|
|
1075
|
-
}
|
|
1076
|
-
|
|
1077
1158
|
async function fetchToken(_ref) {
|
|
1078
1159
|
let {
|
|
1079
1160
|
address,
|
|
1161
|
+
chainId,
|
|
1080
1162
|
formatUnits: units = 'ether'
|
|
1081
1163
|
} = _ref;
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
} = client;
|
|
1164
|
+
const provider = getProvider({
|
|
1165
|
+
chainId
|
|
1166
|
+
});
|
|
1086
1167
|
const contract = new ethers$1.Contract(address, erc20ABI, provider);
|
|
1087
1168
|
const [symbol, decimals, totalSupply] = await Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]);
|
|
1088
1169
|
const token = {
|
|
@@ -1098,6 +1179,8 @@ async function fetchToken(_ref) {
|
|
|
1098
1179
|
}
|
|
1099
1180
|
|
|
1100
1181
|
function watchToken(args, callback) {
|
|
1182
|
+
const client = getClient();
|
|
1183
|
+
|
|
1101
1184
|
const handleChange = async () => callback(await fetchToken(args));
|
|
1102
1185
|
|
|
1103
1186
|
const unsubscribe = client.subscribe(_ref => {
|
|
@@ -1123,9 +1206,7 @@ async function sendTransaction(args) {
|
|
|
1123
1206
|
}
|
|
1124
1207
|
|
|
1125
1208
|
async function waitForTransaction(args) {
|
|
1126
|
-
const
|
|
1127
|
-
provider
|
|
1128
|
-
} = client;
|
|
1209
|
+
const provider = getProvider();
|
|
1129
1210
|
let promise; // eslint-disable-next-line testing-library/await-async-utils
|
|
1130
1211
|
|
|
1131
1212
|
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');
|