wagmi 0.0.13 → 0.0.17

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Tom Meagher
3
+ Copyright (c) 2022 Tom Meagher
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  **React Hooks library for Ethereum, built on [ethers.js](https://github.com/ethers-io/ethers.js).**
19
19
 
20
- šŸš€   Hooks for connecting wallets, signing messages, sending transactions, etc.
20
+ šŸš€   20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
21
21
 
22
22
  šŸ’¼   Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet
23
23
 
@@ -60,7 +60,7 @@ const App = () => (
60
60
  ```tsx
61
61
  import { useAccount } from 'wagmi'
62
62
 
63
- const App = () => {
63
+ const Page = () => {
64
64
  const [{ data, error, loading }, disconnect] = useAccount({
65
65
  fetchEns: true,
66
66
  })
@@ -24,8 +24,14 @@ export declare const useBalance: ({ addressOrName, formatUnits, skip, token, wat
24
24
  addressOrName: string;
25
25
  formatUnits?: Config['formatUnits'];
26
26
  token?: Config['token'];
27
- } | undefined) => Promise<Error | {
28
- formatted: string;
29
- symbol: string;
30
- value: BigNumber;
27
+ } | undefined) => Promise<{
28
+ data: {
29
+ formatted: string;
30
+ symbol: string;
31
+ value: BigNumber;
32
+ };
33
+ error: undefined;
34
+ } | {
35
+ data: undefined;
36
+ error: Error;
31
37
  }>];
@@ -7,7 +7,10 @@ export declare const useConnect: () => readonly [{
7
7
  };
8
8
  readonly error: Error | undefined;
9
9
  readonly loading: boolean;
10
- }, (connector: Connector) => Promise<Error | {
11
- connector: Connector<any, any>;
10
+ }, (connector: Connector) => Promise<{
12
11
  data: import("wagmi-private").Data<any>;
12
+ error: undefined;
13
+ } | {
14
+ data: undefined;
15
+ error: Error;
13
16
  } | undefined>];
@@ -21,4 +21,10 @@ export declare const useNetwork: () => readonly [{
21
21
  };
22
22
  readonly error: Error | undefined;
23
23
  readonly loading: boolean | undefined;
24
- }, ((chainId: number) => Promise<boolean | Error>) | undefined];
24
+ }, ((chainId: number) => Promise<false | {
25
+ data: boolean;
26
+ error: undefined;
27
+ } | {
28
+ data: undefined;
29
+ error: Error;
30
+ }>) | undefined];
@@ -9,4 +9,10 @@ export declare const useSignMessage: ({ message }?: Config) => readonly [{
9
9
  readonly loading: boolean | undefined;
10
10
  }, (config?: {
11
11
  message?: Config['message'];
12
- } | undefined) => Promise<string | Error>];
12
+ } | undefined) => Promise<{
13
+ data: string;
14
+ error: undefined;
15
+ } | {
16
+ data: undefined;
17
+ error: Error;
18
+ }>];
@@ -1,8 +1,8 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { Config as UseContractConfig } from './useContract';
3
3
  declare type Config = {
4
- /** Subscribe to changes */
5
- watch?: boolean;
4
+ /** Receive only a single event */
5
+ once?: boolean;
6
6
  };
7
- export declare const useContractEvent: <Contract extends ethers.Contract = ethers.Contract>(contractConfig: UseContractConfig, eventName: Parameters<Contract["on"]>[0], listener: Parameters<Contract["on"]>[1], { watch }?: Config) => void;
7
+ export declare const useContractEvent: <Contract extends ethers.Contract = ethers.Contract>(contractConfig: UseContractConfig, eventName: Parameters<Contract["on"]>[0], listener: Parameters<Contract["on"]>[1], { once }?: Config) => void;
8
8
  export {};
@@ -12,6 +12,12 @@ export declare const useContractRead: <Contract extends ethers.Contract = ethers
12
12
  readonly loading: boolean | undefined;
13
13
  }, (config?: {
14
14
  args?: Config['args'];
15
- overrides: Config['overrides'];
16
- } | undefined) => Promise<any>];
15
+ overrides?: Config['overrides'];
16
+ } | undefined) => Promise<{
17
+ data: ethers.utils.Result;
18
+ error: undefined;
19
+ } | {
20
+ data: undefined;
21
+ error: Error;
22
+ }>];
17
23
  export {};
@@ -10,6 +10,12 @@ export declare const useContractWrite: <Contract extends ethers.Contract = ether
10
10
  readonly loading: boolean | undefined;
11
11
  }, (config?: {
12
12
  args?: Config['args'];
13
- overrides: Config['overrides'];
14
- } | undefined) => Promise<any>];
13
+ overrides?: Config['overrides'];
14
+ } | undefined) => Promise<{
15
+ data: ethers.providers.TransactionResponse;
16
+ error: undefined;
17
+ } | {
18
+ data: undefined;
19
+ error: Error;
20
+ }>];
15
21
  export {};
@@ -25,12 +25,18 @@ export declare const useToken: ({ address, formatUnits, skip, }?: Config) => rea
25
25
  }) => Promise<boolean | Error>, (config?: {
26
26
  address: string;
27
27
  formatUnits?: Config['formatUnits'];
28
- } | undefined) => Promise<Error | {
29
- address: string;
30
- decimals: any;
31
- symbol: any;
32
- totalSupply: {
33
- formatted: string;
34
- value: any;
28
+ } | undefined) => Promise<{
29
+ data: {
30
+ address: string;
31
+ decimals: any;
32
+ symbol: any;
33
+ totalSupply: {
34
+ formatted: string;
35
+ value: any;
36
+ };
35
37
  };
38
+ error: undefined;
39
+ } | {
40
+ data: undefined;
41
+ error: Error;
36
42
  }>];
@@ -10,5 +10,11 @@ export declare const useEnsLookup: ({ address, skip }?: Config) => readonly [{
10
10
  readonly error: Error | undefined;
11
11
  }, (config?: {
12
12
  address: string;
13
- } | undefined) => Promise<string | Error | null>];
13
+ } | undefined) => Promise<{
14
+ data: string | null;
15
+ error: undefined;
16
+ } | {
17
+ data: undefined;
18
+ error: Error;
19
+ }>];
14
20
  export {};
@@ -11,5 +11,11 @@ export declare const useEnsResolver: ({ name, skip }?: Config) => readonly [{
11
11
  readonly error: Error | undefined;
12
12
  }, (config?: {
13
13
  name: Config['name'];
14
- } | undefined) => Promise<Error | import("@ethersproject/providers").Resolver | null>];
14
+ } | undefined) => Promise<{
15
+ data: import("@ethersproject/providers").Resolver | null;
16
+ error: undefined;
17
+ } | {
18
+ data: undefined;
19
+ error: Error;
20
+ }>];
15
21
  export {};
@@ -8,5 +8,11 @@ export declare const useBlockNumber: ({ skip, watch }?: Config) => readonly [{
8
8
  readonly data: number | undefined;
9
9
  readonly error: Error | undefined;
10
10
  readonly loading: boolean | undefined;
11
- }, () => Promise<number | Error>];
11
+ }, () => Promise<{
12
+ data: number;
13
+ error: undefined;
14
+ } | {
15
+ data: undefined;
16
+ error: Error;
17
+ }>];
12
18
  export {};
@@ -21,5 +21,11 @@ export declare const useFeeData: ({ formatUnits, skip, watch, }?: Config) => rea
21
21
  } | undefined;
22
22
  readonly loading: boolean | undefined;
23
23
  readonly error: Error | undefined;
24
- }, () => Promise<Error | FeeData>];
24
+ }, () => Promise<{
25
+ data: FeeData;
26
+ error: undefined;
27
+ } | {
28
+ data: undefined;
29
+ error: Error;
30
+ }>];
25
31
  export {};
@@ -9,4 +9,10 @@ export declare const useTransaction: ({ request }?: Config) => readonly [{
9
9
  readonly loading: boolean | undefined;
10
10
  }, (config?: {
11
11
  request: Config['request'];
12
- } | undefined) => Promise<Error | TransactionResponse>];
12
+ } | undefined) => Promise<{
13
+ data: TransactionResponse;
14
+ error: undefined;
15
+ } | {
16
+ data: undefined;
17
+ error: Error;
18
+ }>];
@@ -22,4 +22,10 @@ export declare const useWaitForTransaction: ({ confirmations, hash, skip, timeou
22
22
  hash?: Config['hash'];
23
23
  timeout?: Config['timeout'];
24
24
  wait?: Config['wait'];
25
- } | undefined) => Promise<Error | TransactionReceipt>];
25
+ } | undefined) => Promise<{
26
+ data: TransactionReceipt;
27
+ error: undefined;
28
+ } | {
29
+ data: undefined;
30
+ error: Error;
31
+ }>];
@@ -246,14 +246,20 @@ var useEnsLookup = function useEnsLookup() {
246
246
  ens,
247
247
  loading: false
248
248
  }));
249
- return ens;
249
+ return {
250
+ data: ens,
251
+ error: undefined
252
+ };
250
253
  } catch (error_) {
251
254
  var error = error_;
252
255
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
253
256
  error,
254
257
  loading: false
255
258
  }));
256
- return error;
259
+ return {
260
+ data: undefined,
261
+ error
262
+ };
257
263
  }
258
264
  });
259
265
 
@@ -310,14 +316,20 @@ var useEnsResolver = function useEnsResolver() {
310
316
  loading: false,
311
317
  resolver
312
318
  }));
313
- return resolver;
319
+ return {
320
+ data: resolver,
321
+ error: undefined
322
+ };
314
323
  } catch (error_) {
315
324
  var error = error_;
316
325
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
317
326
  error,
318
327
  loading: false
319
328
  }));
320
- return error;
329
+ return {
330
+ data: undefined,
331
+ error
332
+ };
321
333
  }
322
334
  });
323
335
 
@@ -424,14 +436,20 @@ var useBlockNumber = function useBlockNumber() {
424
436
  blockNumber,
425
437
  loading: false
426
438
  }));
427
- return blockNumber;
439
+ return {
440
+ data: blockNumber,
441
+ error: undefined
442
+ };
428
443
  } catch (error_) {
429
444
  var error = error_;
430
445
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
431
446
  error,
432
447
  loading: false
433
448
  }));
434
- return error;
449
+ return {
450
+ data: undefined,
451
+ error
452
+ };
435
453
  }
436
454
  }), [provider]);
437
455
  /* eslint-disable react-hooks/exhaustive-deps */
@@ -500,14 +518,20 @@ var useFeeData = function useFeeData() {
500
518
  feeData,
501
519
  loading: false
502
520
  }));
503
- return feeData;
521
+ return {
522
+ data: feeData,
523
+ error: undefined
524
+ };
504
525
  } catch (error_) {
505
526
  var error = error_;
506
527
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
507
528
  error,
508
529
  loading: false
509
530
  }));
510
- return error;
531
+ return {
532
+ data: undefined,
533
+ error
534
+ };
511
535
  }
512
536
  }), [provider]); // Fetch feeData on mount or when chain changes
513
537
 
@@ -608,14 +632,20 @@ var useBalance = function useBalance() {
608
632
  balance,
609
633
  loading: false
610
634
  }));
611
- return balance;
635
+ return {
636
+ data: balance,
637
+ error: undefined
638
+ };
612
639
  } catch (error_) {
613
640
  var error = error_;
614
641
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
615
642
  error,
616
643
  loading: false
617
644
  }));
618
- return error;
645
+ return {
646
+ data: undefined,
647
+ error
648
+ };
619
649
  }
620
650
  });
621
651
 
@@ -695,8 +725,8 @@ var useConnect = () => {
695
725
  loading: false
696
726
  }));
697
727
  return {
698
- connector,
699
- data
728
+ data,
729
+ error: undefined
700
730
  };
701
731
  } catch (error_) {
702
732
  var error = error_;
@@ -705,7 +735,10 @@ var useConnect = () => {
705
735
  error,
706
736
  loading: false
707
737
  }));
708
- return error;
738
+ return {
739
+ data: undefined,
740
+ error
741
+ };
709
742
  }
710
743
  });
711
744
 
@@ -766,14 +799,20 @@ var useNetwork = () => {
766
799
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
767
800
  loading: false
768
801
  }));
769
- return true;
802
+ return {
803
+ data: true,
804
+ error: undefined
805
+ };
770
806
  } catch (error_) {
771
807
  var error = error_;
772
808
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
773
809
  error,
774
810
  loading: false
775
811
  }));
776
- return error;
812
+ return {
813
+ data: undefined,
814
+ error
815
+ };
777
816
  }
778
817
  });
779
818
 
@@ -825,7 +864,10 @@ var useSignMessage = function useSignMessage() {
825
864
  signature,
826
865
  loading: false
827
866
  }));
828
- return signature;
867
+ return {
868
+ data: signature,
869
+ error: undefined
870
+ };
829
871
  } catch (error_) {
830
872
  var error = error_;
831
873
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -833,7 +875,10 @@ var useSignMessage = function useSignMessage() {
833
875
  error,
834
876
  loading: false
835
877
  }));
836
- return error;
878
+ return {
879
+ data: undefined,
880
+ error
881
+ };
837
882
  }
838
883
  });
839
884
 
@@ -880,10 +925,8 @@ var useContract = _ref2 => {
880
925
 
881
926
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
882
927
  var {
883
- watch
884
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
885
- watch: true
886
- };
928
+ once
929
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
887
930
  var provider = useProvider();
888
931
  var webSocketProvider = useWebSocketProvider();
889
932
  var contract = useContract(_objectSpread2({
@@ -903,7 +946,7 @@ var useContractEvent = function useContractEvent(contractConfig, eventName, list
903
946
  };
904
947
 
905
948
  var contract_ = ethers.ethers.Contract;
906
- if (!watch) contract_.once(eventName, handler);else contract_.on(eventName, handler);
949
+ if (once) contract_.once(eventName, handler);else contract_.on(eventName, handler);
907
950
  return () => {
908
951
  contract_.off(eventName, handler);
909
952
  return;
@@ -949,14 +992,20 @@ var useContractRead = function useContractRead(contractConfig, functionName) {
949
992
  loading: false,
950
993
  response
951
994
  }));
952
- return response;
995
+ return {
996
+ data: response,
997
+ error: undefined
998
+ };
953
999
  } catch (error_) {
954
1000
  var error = error_;
955
1001
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
956
1002
  error,
957
1003
  loading: false
958
1004
  }));
959
- return error;
1005
+ return {
1006
+ data: undefined,
1007
+ error
1008
+ };
960
1009
  }
961
1010
  });
962
1011
 
@@ -1033,7 +1082,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1033
1082
  loading: false,
1034
1083
  response
1035
1084
  }));
1036
- return response;
1085
+ return {
1086
+ data: response,
1087
+ error: undefined
1088
+ };
1037
1089
  } catch (error_) {
1038
1090
  var error = error_;
1039
1091
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -1041,7 +1093,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1041
1093
  error,
1042
1094
  loading: false
1043
1095
  }));
1044
- return error;
1096
+ return {
1097
+ data: undefined,
1098
+ error
1099
+ };
1045
1100
  }
1046
1101
  });
1047
1102
 
@@ -1104,14 +1159,20 @@ var useToken = function useToken() {
1104
1159
  token,
1105
1160
  loading: false
1106
1161
  }));
1107
- return token;
1162
+ return {
1163
+ data: token,
1164
+ error: undefined
1165
+ };
1108
1166
  } catch (error_) {
1109
1167
  var error = error_;
1110
1168
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1111
1169
  error,
1112
1170
  loading: false
1113
1171
  }));
1114
- return error;
1172
+ return {
1173
+ data: undefined,
1174
+ error
1175
+ };
1115
1176
  }
1116
1177
  });
1117
1178
 
@@ -1190,7 +1251,10 @@ var useTransaction = function useTransaction() {
1190
1251
  loading: false,
1191
1252
  transaction
1192
1253
  }));
1193
- return transaction;
1254
+ return {
1255
+ data: transaction,
1256
+ error: undefined
1257
+ };
1194
1258
  } catch (error_) {
1195
1259
  var error = error_;
1196
1260
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -1198,7 +1262,10 @@ var useTransaction = function useTransaction() {
1198
1262
  error,
1199
1263
  loading: false
1200
1264
  }));
1201
- return error;
1265
+ return {
1266
+ data: undefined,
1267
+ error
1268
+ };
1202
1269
  }
1203
1270
  });
1204
1271
 
@@ -1247,14 +1314,20 @@ var useWaitForTransaction = function useWaitForTransaction() {
1247
1314
  loading: false,
1248
1315
  receipt
1249
1316
  }));
1250
- return receipt;
1317
+ return {
1318
+ data: receipt,
1319
+ error: undefined
1320
+ };
1251
1321
  } catch (error_) {
1252
1322
  var error = error_;
1253
1323
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1254
1324
  error,
1255
1325
  loading: false
1256
1326
  }));
1257
- return error;
1327
+ return {
1328
+ data: undefined,
1329
+ error
1330
+ };
1258
1331
  }
1259
1332
  });
1260
1333
 
@@ -246,14 +246,20 @@ var useEnsLookup = function useEnsLookup() {
246
246
  ens,
247
247
  loading: false
248
248
  }));
249
- return ens;
249
+ return {
250
+ data: ens,
251
+ error: undefined
252
+ };
250
253
  } catch (error_) {
251
254
  var error = error_;
252
255
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
253
256
  error,
254
257
  loading: false
255
258
  }));
256
- return error;
259
+ return {
260
+ data: undefined,
261
+ error
262
+ };
257
263
  }
258
264
  });
259
265
 
@@ -310,14 +316,20 @@ var useEnsResolver = function useEnsResolver() {
310
316
  loading: false,
311
317
  resolver
312
318
  }));
313
- return resolver;
319
+ return {
320
+ data: resolver,
321
+ error: undefined
322
+ };
314
323
  } catch (error_) {
315
324
  var error = error_;
316
325
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
317
326
  error,
318
327
  loading: false
319
328
  }));
320
- return error;
329
+ return {
330
+ data: undefined,
331
+ error
332
+ };
321
333
  }
322
334
  });
323
335
 
@@ -424,14 +436,20 @@ var useBlockNumber = function useBlockNumber() {
424
436
  blockNumber,
425
437
  loading: false
426
438
  }));
427
- return blockNumber;
439
+ return {
440
+ data: blockNumber,
441
+ error: undefined
442
+ };
428
443
  } catch (error_) {
429
444
  var error = error_;
430
445
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
431
446
  error,
432
447
  loading: false
433
448
  }));
434
- return error;
449
+ return {
450
+ data: undefined,
451
+ error
452
+ };
435
453
  }
436
454
  }), [provider]);
437
455
  /* eslint-disable react-hooks/exhaustive-deps */
@@ -500,14 +518,20 @@ var useFeeData = function useFeeData() {
500
518
  feeData,
501
519
  loading: false
502
520
  }));
503
- return feeData;
521
+ return {
522
+ data: feeData,
523
+ error: undefined
524
+ };
504
525
  } catch (error_) {
505
526
  var error = error_;
506
527
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
507
528
  error,
508
529
  loading: false
509
530
  }));
510
- return error;
531
+ return {
532
+ data: undefined,
533
+ error
534
+ };
511
535
  }
512
536
  }), [provider]); // Fetch feeData on mount or when chain changes
513
537
 
@@ -608,14 +632,20 @@ var useBalance = function useBalance() {
608
632
  balance,
609
633
  loading: false
610
634
  }));
611
- return balance;
635
+ return {
636
+ data: balance,
637
+ error: undefined
638
+ };
612
639
  } catch (error_) {
613
640
  var error = error_;
614
641
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
615
642
  error,
616
643
  loading: false
617
644
  }));
618
- return error;
645
+ return {
646
+ data: undefined,
647
+ error
648
+ };
619
649
  }
620
650
  });
621
651
 
@@ -695,8 +725,8 @@ var useConnect = () => {
695
725
  loading: false
696
726
  }));
697
727
  return {
698
- connector,
699
- data
728
+ data,
729
+ error: undefined
700
730
  };
701
731
  } catch (error_) {
702
732
  var error = error_;
@@ -705,7 +735,10 @@ var useConnect = () => {
705
735
  error,
706
736
  loading: false
707
737
  }));
708
- return error;
738
+ return {
739
+ data: undefined,
740
+ error
741
+ };
709
742
  }
710
743
  });
711
744
 
@@ -766,14 +799,20 @@ var useNetwork = () => {
766
799
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
767
800
  loading: false
768
801
  }));
769
- return true;
802
+ return {
803
+ data: true,
804
+ error: undefined
805
+ };
770
806
  } catch (error_) {
771
807
  var error = error_;
772
808
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
773
809
  error,
774
810
  loading: false
775
811
  }));
776
- return error;
812
+ return {
813
+ data: undefined,
814
+ error
815
+ };
777
816
  }
778
817
  });
779
818
 
@@ -825,7 +864,10 @@ var useSignMessage = function useSignMessage() {
825
864
  signature,
826
865
  loading: false
827
866
  }));
828
- return signature;
867
+ return {
868
+ data: signature,
869
+ error: undefined
870
+ };
829
871
  } catch (error_) {
830
872
  var error = error_;
831
873
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -833,7 +875,10 @@ var useSignMessage = function useSignMessage() {
833
875
  error,
834
876
  loading: false
835
877
  }));
836
- return error;
878
+ return {
879
+ data: undefined,
880
+ error
881
+ };
837
882
  }
838
883
  });
839
884
 
@@ -880,10 +925,8 @@ var useContract = _ref2 => {
880
925
 
881
926
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
882
927
  var {
883
- watch
884
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
885
- watch: true
886
- };
928
+ once
929
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
887
930
  var provider = useProvider();
888
931
  var webSocketProvider = useWebSocketProvider();
889
932
  var contract = useContract(_objectSpread2({
@@ -903,7 +946,7 @@ var useContractEvent = function useContractEvent(contractConfig, eventName, list
903
946
  };
904
947
 
905
948
  var contract_ = ethers.ethers.Contract;
906
- if (!watch) contract_.once(eventName, handler);else contract_.on(eventName, handler);
949
+ if (once) contract_.once(eventName, handler);else contract_.on(eventName, handler);
907
950
  return () => {
908
951
  contract_.off(eventName, handler);
909
952
  return;
@@ -949,14 +992,20 @@ var useContractRead = function useContractRead(contractConfig, functionName) {
949
992
  loading: false,
950
993
  response
951
994
  }));
952
- return response;
995
+ return {
996
+ data: response,
997
+ error: undefined
998
+ };
953
999
  } catch (error_) {
954
1000
  var error = error_;
955
1001
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
956
1002
  error,
957
1003
  loading: false
958
1004
  }));
959
- return error;
1005
+ return {
1006
+ data: undefined,
1007
+ error
1008
+ };
960
1009
  }
961
1010
  });
962
1011
 
@@ -1033,7 +1082,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1033
1082
  loading: false,
1034
1083
  response
1035
1084
  }));
1036
- return response;
1085
+ return {
1086
+ data: response,
1087
+ error: undefined
1088
+ };
1037
1089
  } catch (error_) {
1038
1090
  var error = error_;
1039
1091
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -1041,7 +1093,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1041
1093
  error,
1042
1094
  loading: false
1043
1095
  }));
1044
- return error;
1096
+ return {
1097
+ data: undefined,
1098
+ error
1099
+ };
1045
1100
  }
1046
1101
  });
1047
1102
 
@@ -1104,14 +1159,20 @@ var useToken = function useToken() {
1104
1159
  token,
1105
1160
  loading: false
1106
1161
  }));
1107
- return token;
1162
+ return {
1163
+ data: token,
1164
+ error: undefined
1165
+ };
1108
1166
  } catch (error_) {
1109
1167
  var error = error_;
1110
1168
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1111
1169
  error,
1112
1170
  loading: false
1113
1171
  }));
1114
- return error;
1172
+ return {
1173
+ data: undefined,
1174
+ error
1175
+ };
1115
1176
  }
1116
1177
  });
1117
1178
 
@@ -1190,7 +1251,10 @@ var useTransaction = function useTransaction() {
1190
1251
  loading: false,
1191
1252
  transaction
1192
1253
  }));
1193
- return transaction;
1254
+ return {
1255
+ data: transaction,
1256
+ error: undefined
1257
+ };
1194
1258
  } catch (error_) {
1195
1259
  var error = error_;
1196
1260
  if (error_.code === 4001) error = new wagmiPrivate.UserRejectedRequestError();
@@ -1198,7 +1262,10 @@ var useTransaction = function useTransaction() {
1198
1262
  error,
1199
1263
  loading: false
1200
1264
  }));
1201
- return error;
1265
+ return {
1266
+ data: undefined,
1267
+ error
1268
+ };
1202
1269
  }
1203
1270
  });
1204
1271
 
@@ -1247,14 +1314,20 @@ var useWaitForTransaction = function useWaitForTransaction() {
1247
1314
  loading: false,
1248
1315
  receipt
1249
1316
  }));
1250
- return receipt;
1317
+ return {
1318
+ data: receipt,
1319
+ error: undefined
1320
+ };
1251
1321
  } catch (error_) {
1252
1322
  var error = error_;
1253
1323
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1254
1324
  error,
1255
1325
  loading: false
1256
1326
  }));
1257
- return error;
1327
+ return {
1328
+ data: undefined,
1329
+ error
1330
+ };
1258
1331
  }
1259
1332
  });
1260
1333
 
package/dist/wagmi.esm.js CHANGED
@@ -223,14 +223,20 @@ var useEnsLookup = function useEnsLookup() {
223
223
  ens,
224
224
  loading: false
225
225
  }));
226
- return ens;
226
+ return {
227
+ data: ens,
228
+ error: undefined
229
+ };
227
230
  } catch (error_) {
228
231
  var error = error_;
229
232
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
230
233
  error,
231
234
  loading: false
232
235
  }));
233
- return error;
236
+ return {
237
+ data: undefined,
238
+ error
239
+ };
234
240
  }
235
241
  });
236
242
 
@@ -287,14 +293,20 @@ var useEnsResolver = function useEnsResolver() {
287
293
  loading: false,
288
294
  resolver
289
295
  }));
290
- return resolver;
296
+ return {
297
+ data: resolver,
298
+ error: undefined
299
+ };
291
300
  } catch (error_) {
292
301
  var error = error_;
293
302
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
294
303
  error,
295
304
  loading: false
296
305
  }));
297
- return error;
306
+ return {
307
+ data: undefined,
308
+ error
309
+ };
298
310
  }
299
311
  });
300
312
 
@@ -401,14 +413,20 @@ var useBlockNumber = function useBlockNumber() {
401
413
  blockNumber,
402
414
  loading: false
403
415
  }));
404
- return blockNumber;
416
+ return {
417
+ data: blockNumber,
418
+ error: undefined
419
+ };
405
420
  } catch (error_) {
406
421
  var error = error_;
407
422
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
408
423
  error,
409
424
  loading: false
410
425
  }));
411
- return error;
426
+ return {
427
+ data: undefined,
428
+ error
429
+ };
412
430
  }
413
431
  }), [provider]);
414
432
  /* eslint-disable react-hooks/exhaustive-deps */
@@ -477,14 +495,20 @@ var useFeeData = function useFeeData() {
477
495
  feeData,
478
496
  loading: false
479
497
  }));
480
- return feeData;
498
+ return {
499
+ data: feeData,
500
+ error: undefined
501
+ };
481
502
  } catch (error_) {
482
503
  var error = error_;
483
504
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
484
505
  error,
485
506
  loading: false
486
507
  }));
487
- return error;
508
+ return {
509
+ data: undefined,
510
+ error
511
+ };
488
512
  }
489
513
  }), [provider]); // Fetch feeData on mount or when chain changes
490
514
 
@@ -585,14 +609,20 @@ var useBalance = function useBalance() {
585
609
  balance,
586
610
  loading: false
587
611
  }));
588
- return balance;
612
+ return {
613
+ data: balance,
614
+ error: undefined
615
+ };
589
616
  } catch (error_) {
590
617
  var error = error_;
591
618
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
592
619
  error,
593
620
  loading: false
594
621
  }));
595
- return error;
622
+ return {
623
+ data: undefined,
624
+ error
625
+ };
596
626
  }
597
627
  });
598
628
 
@@ -672,8 +702,8 @@ var useConnect = () => {
672
702
  loading: false
673
703
  }));
674
704
  return {
675
- connector,
676
- data
705
+ data,
706
+ error: undefined
677
707
  };
678
708
  } catch (error_) {
679
709
  var error = error_;
@@ -682,7 +712,10 @@ var useConnect = () => {
682
712
  error,
683
713
  loading: false
684
714
  }));
685
- return error;
715
+ return {
716
+ data: undefined,
717
+ error
718
+ };
686
719
  }
687
720
  });
688
721
 
@@ -743,14 +776,20 @@ var useNetwork = () => {
743
776
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
744
777
  loading: false
745
778
  }));
746
- return true;
779
+ return {
780
+ data: true,
781
+ error: undefined
782
+ };
747
783
  } catch (error_) {
748
784
  var error = error_;
749
785
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
750
786
  error,
751
787
  loading: false
752
788
  }));
753
- return error;
789
+ return {
790
+ data: undefined,
791
+ error
792
+ };
754
793
  }
755
794
  });
756
795
 
@@ -802,7 +841,10 @@ var useSignMessage = function useSignMessage() {
802
841
  signature,
803
842
  loading: false
804
843
  }));
805
- return signature;
844
+ return {
845
+ data: signature,
846
+ error: undefined
847
+ };
806
848
  } catch (error_) {
807
849
  var error = error_;
808
850
  if (error_.code === 4001) error = new UserRejectedRequestError();
@@ -810,7 +852,10 @@ var useSignMessage = function useSignMessage() {
810
852
  error,
811
853
  loading: false
812
854
  }));
813
- return error;
855
+ return {
856
+ data: undefined,
857
+ error
858
+ };
814
859
  }
815
860
  });
816
861
 
@@ -857,10 +902,8 @@ var useContract = _ref2 => {
857
902
 
858
903
  var useContractEvent = function useContractEvent(contractConfig, eventName, listener) {
859
904
  var {
860
- watch
861
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
862
- watch: true
863
- };
905
+ once
906
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
864
907
  var provider = useProvider();
865
908
  var webSocketProvider = useWebSocketProvider();
866
909
  var contract = useContract(_objectSpread2({
@@ -880,7 +923,7 @@ var useContractEvent = function useContractEvent(contractConfig, eventName, list
880
923
  };
881
924
 
882
925
  var contract_ = ethers.Contract;
883
- if (!watch) contract_.once(eventName, handler);else contract_.on(eventName, handler);
926
+ if (once) contract_.once(eventName, handler);else contract_.on(eventName, handler);
884
927
  return () => {
885
928
  contract_.off(eventName, handler);
886
929
  return;
@@ -926,14 +969,20 @@ var useContractRead = function useContractRead(contractConfig, functionName) {
926
969
  loading: false,
927
970
  response
928
971
  }));
929
- return response;
972
+ return {
973
+ data: response,
974
+ error: undefined
975
+ };
930
976
  } catch (error_) {
931
977
  var error = error_;
932
978
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
933
979
  error,
934
980
  loading: false
935
981
  }));
936
- return error;
982
+ return {
983
+ data: undefined,
984
+ error
985
+ };
937
986
  }
938
987
  });
939
988
 
@@ -1010,7 +1059,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1010
1059
  loading: false,
1011
1060
  response
1012
1061
  }));
1013
- return response;
1062
+ return {
1063
+ data: response,
1064
+ error: undefined
1065
+ };
1014
1066
  } catch (error_) {
1015
1067
  var error = error_;
1016
1068
  if (error_.code === 4001) error = new UserRejectedRequestError();
@@ -1018,7 +1070,10 @@ var useContractWrite = function useContractWrite(contractConfig, functionName) {
1018
1070
  error,
1019
1071
  loading: false
1020
1072
  }));
1021
- return error;
1073
+ return {
1074
+ data: undefined,
1075
+ error
1076
+ };
1022
1077
  }
1023
1078
  });
1024
1079
 
@@ -1081,14 +1136,20 @@ var useToken = function useToken() {
1081
1136
  token,
1082
1137
  loading: false
1083
1138
  }));
1084
- return token;
1139
+ return {
1140
+ data: token,
1141
+ error: undefined
1142
+ };
1085
1143
  } catch (error_) {
1086
1144
  var error = error_;
1087
1145
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1088
1146
  error,
1089
1147
  loading: false
1090
1148
  }));
1091
- return error;
1149
+ return {
1150
+ data: undefined,
1151
+ error
1152
+ };
1092
1153
  }
1093
1154
  });
1094
1155
 
@@ -1167,7 +1228,10 @@ var useTransaction = function useTransaction() {
1167
1228
  loading: false,
1168
1229
  transaction
1169
1230
  }));
1170
- return transaction;
1231
+ return {
1232
+ data: transaction,
1233
+ error: undefined
1234
+ };
1171
1235
  } catch (error_) {
1172
1236
  var error = error_;
1173
1237
  if (error_.code === 4001) error = new UserRejectedRequestError();
@@ -1175,7 +1239,10 @@ var useTransaction = function useTransaction() {
1175
1239
  error,
1176
1240
  loading: false
1177
1241
  }));
1178
- return error;
1242
+ return {
1243
+ data: undefined,
1244
+ error
1245
+ };
1179
1246
  }
1180
1247
  });
1181
1248
 
@@ -1224,14 +1291,20 @@ var useWaitForTransaction = function useWaitForTransaction() {
1224
1291
  loading: false,
1225
1292
  receipt
1226
1293
  }));
1227
- return receipt;
1294
+ return {
1295
+ data: receipt,
1296
+ error: undefined
1297
+ };
1228
1298
  } catch (error_) {
1229
1299
  var error = error_;
1230
1300
  setState(x => _objectSpread2(_objectSpread2({}, x), {}, {
1231
1301
  error,
1232
1302
  loading: false
1233
1303
  }));
1234
- return error;
1304
+ return {
1305
+ data: undefined,
1306
+ error
1307
+ };
1235
1308
  }
1236
1309
  });
1237
1310
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "wagmi",
3
3
  "description": "React Hooks library for Ethereum",
4
4
  "license": "MIT",
5
- "version": "0.0.13",
5
+ "version": "0.0.17",
6
6
  "ethereum": "awkweb.eth",
7
7
  "repository": "tmm/wagmi",
8
8
  "homepage": "https://wagmi-xyz.vercel.app",
@@ -31,7 +31,7 @@
31
31
  "dependencies": {
32
32
  "@walletconnect/ethereum-provider": "^1.6.6",
33
33
  "@ethersproject/providers": "^5.5.1",
34
- "wagmi-private": "0.0.13",
34
+ "wagmi-private": "0.0.17",
35
35
  "walletlink": "^2.2.8"
36
36
  },
37
37
  "devDependencies": {
@@ -41,7 +41,7 @@
41
41
  "ethers": "^5.5.1",
42
42
  "react": "^17.0.0",
43
43
  "walletlink": "^2.2.8",
44
- "wagmi-testing": "0.0.13"
44
+ "wagmi-testing": "0.0.17"
45
45
  },
46
- "readme": "<p>\n <a aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/wagmi\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/v/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n <a aria-label=\"License\" href=\"/LICENSE\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/l/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n</p>\n\n# wagmi\n\n**React Hooks library for Ethereum, built on [ethers.js](https://github.com/ethers-io/ethers.js).**\n\nšŸš€ &nbsp; Hooks for connecting wallets, signing messages, sending transactions, etc.\n\nšŸ’¼ &nbsp; Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet\n\nšŸŒ€ &nbsp; Auto-refresh data on wallet and network changes\n\nšŸ¦„ &nbsp; TypeScript ready\n\nšŸ’Ø &nbsp; Zero-dependencies (besides ethers.js peer dependency)\n\n🌳 &nbsp; Test suite and documentation\n\nšŸ“– &nbsp; MIT License\n\n## Documentation\n\nVisit https://wagmi-xyz.vercel.app to view the full documentation.\n\n## Usage\n\n1. Install the dependencies.\n\n```bash\npnpm add wagmi ethers\n```\n\n2. Wrap your app with the `Provider` component.\n\n```tsx\nimport { Provider } from 'wagmi'\n\nconst App = () => (\n <Provider>\n <YourRoutes />\n </Provider>\n)\n```\n\n3. Use hooks.\n\n```tsx\nimport { useAccount } from 'wagmi'\n\nconst App = () => {\n const [{ data, error, loading }, disconnect] = useAccount({\n fetchEns: true,\n })\n\n return ...\n}\n```\n\nEvery component inside the `Provider` is set up with the default `InjectedConnector` for connecting wallets and ethers.js [Default Provider](https://docs.ethers.io/v5/api/providers/#providers-getDefaultProvider) for fetching data.\n\nWant to learn more? Check out the [guides](https://wagmi-xyz.vercel.app/guides/connect-wallet) or browse the [API docs](https://wagmi-xyz.vercel.app/docs/provider).\n\n## Thanks\n\n- [ricmoo.eth](https://twitter.com/ricmoo) for creating and continued work on [ethers.js](https://github.com/ethers-io/ethers.js)\n- [Mirror](https://mirror.xyz) for creating space to do good work\n\n## License\n\nMIT.\n\n<br />\n\nwagmi\n"
46
+ "readme": "<p>\n <a aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/wagmi\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/v/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n <a aria-label=\"License\" href=\"/LICENSE\">\n <img\n alt=\"\"\n src=\"https://img.shields.io/npm/l/wagmi.svg?style=for-the-badge&labelColor=161c22\"\n />\n </a>\n</p>\n\n# wagmi\n\n**React Hooks library for Ethereum, built on [ethers.js](https://github.com/ethers-io/ethers.js).**\n\nšŸš€ &nbsp; 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.\n\nšŸ’¼ &nbsp; Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet\n\nšŸŒ€ &nbsp; Auto-refresh data on wallet and network changes\n\nšŸ¦„ &nbsp; TypeScript ready\n\nšŸ’Ø &nbsp; Zero-dependencies (besides ethers.js peer dependency)\n\n🌳 &nbsp; Test suite and documentation\n\nšŸ“– &nbsp; MIT License\n\n## Documentation\n\nVisit https://wagmi-xyz.vercel.app to view the full documentation.\n\n## Usage\n\n1. Install the dependencies.\n\n```bash\npnpm add wagmi ethers\n```\n\n2. Wrap your app with the `Provider` component.\n\n```tsx\nimport { Provider } from 'wagmi'\n\nconst App = () => (\n <Provider>\n <YourRoutes />\n </Provider>\n)\n```\n\n3. Use hooks.\n\n```tsx\nimport { useAccount } from 'wagmi'\n\nconst Page = () => {\n const [{ data, error, loading }, disconnect] = useAccount({\n fetchEns: true,\n })\n\n return ...\n}\n```\n\nEvery component inside the `Provider` is set up with the default `InjectedConnector` for connecting wallets and ethers.js [Default Provider](https://docs.ethers.io/v5/api/providers/#providers-getDefaultProvider) for fetching data.\n\nWant to learn more? Check out the [guides](https://wagmi-xyz.vercel.app/guides/connect-wallet) or browse the [API docs](https://wagmi-xyz.vercel.app/docs/provider).\n\n## Thanks\n\n- [ricmoo.eth](https://twitter.com/ricmoo) for creating and continued work on [ethers.js](https://github.com/ethers-io/ethers.js)\n- [Mirror](https://mirror.xyz) for creating space to do good work\n\n## License\n\nMIT.\n\n<br />\n\nwagmi\n"
47
47
  }