@ant-design/web3-wagmi 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/esm/interface.d.ts +5 -4
  3. package/dist/esm/wagmi-provider/config-provider.d.ts +6 -4
  4. package/dist/esm/wagmi-provider/config-provider.js +41 -41
  5. package/dist/esm/wagmi-provider/index.d.ts +8 -5
  6. package/dist/esm/wagmi-provider/index.js +27 -54
  7. package/dist/esm/wagmi-provider/methods/addNameToAccount.d.ts +2 -1
  8. package/dist/esm/wagmi-provider/methods/addNameToAccount.js +4 -4
  9. package/dist/esm/wagmi-provider/methods/getNFTMetadata.d.ts +2 -1
  10. package/dist/esm/wagmi-provider/methods/getNFTMetadata.js +3 -3
  11. package/dist/esm/wallets/coinbase-wallet.d.ts +2 -2
  12. package/dist/esm/wallets/coinbase-wallet.js +25 -23
  13. package/dist/esm/wallets/index.d.ts +1 -0
  14. package/dist/esm/wallets/index.js +2 -1
  15. package/dist/esm/wallets/meta-mask.d.ts +2 -2
  16. package/dist/esm/wallets/meta-mask.js +44 -42
  17. package/dist/esm/wallets/okx-wallet.d.ts +2 -0
  18. package/dist/esm/wallets/okx-wallet.js +11 -0
  19. package/dist/esm/wallets/safeheron.d.ts +2 -2
  20. package/dist/esm/wallets/safeheron.js +50 -40
  21. package/dist/esm/wallets/token-pocket.d.ts +2 -2
  22. package/dist/esm/wallets/token-pocket.js +9 -1
  23. package/dist/esm/wallets/universal-wallet.d.ts +2 -2
  24. package/dist/esm/wallets/universal-wallet.js +72 -33
  25. package/dist/esm/wallets/wallet-connect.d.ts +6 -1
  26. package/dist/esm/wallets/wallet-connect.js +57 -47
  27. package/dist/lib/interface.d.ts +5 -4
  28. package/dist/lib/wagmi-provider/config-provider.d.ts +6 -4
  29. package/dist/lib/wagmi-provider/config-provider.js +26 -29
  30. package/dist/lib/wagmi-provider/index.d.ts +8 -5
  31. package/dist/lib/wagmi-provider/index.js +21 -35
  32. package/dist/lib/wagmi-provider/methods/addNameToAccount.d.ts +2 -1
  33. package/dist/lib/wagmi-provider/methods/addNameToAccount.js +2 -2
  34. package/dist/lib/wagmi-provider/methods/getNFTMetadata.d.ts +2 -1
  35. package/dist/lib/wagmi-provider/methods/getNFTMetadata.js +2 -2
  36. package/dist/lib/wallets/coinbase-wallet.d.ts +2 -2
  37. package/dist/lib/wallets/coinbase-wallet.js +15 -11
  38. package/dist/lib/wallets/index.d.ts +1 -0
  39. package/dist/lib/wallets/index.js +11 -0
  40. package/dist/lib/wallets/meta-mask.d.ts +2 -2
  41. package/dist/lib/wallets/meta-mask.js +18 -14
  42. package/dist/lib/wallets/okx-wallet.d.ts +2 -0
  43. package/dist/lib/wallets/okx-wallet.js +15 -0
  44. package/dist/lib/wallets/safeheron.d.ts +2 -2
  45. package/dist/lib/wallets/safeheron.js +18 -14
  46. package/dist/lib/wallets/token-pocket.d.ts +2 -2
  47. package/dist/lib/wallets/token-pocket.js +7 -1
  48. package/dist/lib/wallets/universal-wallet.d.ts +2 -2
  49. package/dist/lib/wallets/universal-wallet.js +14 -14
  50. package/dist/lib/wallets/wallet-connect.d.ts +6 -1
  51. package/dist/lib/wallets/wallet-connect.js +28 -20
  52. package/package.json +7 -5
@@ -13,7 +13,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  const AntDesignWeb3ConfigProvider = props => {
14
14
  const {
15
15
  children,
16
- assets,
16
+ chainAssets,
17
+ walletFactorys,
17
18
  availableChains,
18
19
  availableConnectors,
19
20
  ens,
@@ -22,18 +23,17 @@ const AntDesignWeb3ConfigProvider = props => {
22
23
  } = props;
23
24
  const {
24
25
  address,
25
- isDisconnected
26
+ isDisconnected,
27
+ chain
26
28
  } = (0, _wagmi.useAccount)();
29
+ const config = (0, _wagmi.useConfig)();
27
30
  const [account, setAccount] = _react.default.useState();
28
31
  const {
29
32
  connectAsync
30
33
  } = (0, _wagmi.useConnect)();
31
34
  const {
32
- switchNetwork
33
- } = (0, _wagmi.useSwitchNetwork)();
34
- const {
35
- chain
36
- } = (0, _wagmi.useNetwork)();
35
+ switchChain
36
+ } = (0, _wagmi.useSwitchChain)();
37
37
  const {
38
38
  disconnectAsync
39
39
  } = (0, _wagmi.useDisconnect)();
@@ -52,41 +52,33 @@ const AntDesignWeb3ConfigProvider = props => {
52
52
  const a = {
53
53
  address
54
54
  };
55
- setAccount(ens ? await (0, _methods.addNameToAccount)(a) : a);
55
+ setAccount(ens ? await (0, _methods.addNameToAccount)(config, a) : a);
56
56
  };
57
57
  updateAccounts();
58
58
  }, [address, isDisconnected, chain, ens]);
59
59
  const wallets = _react.default.useMemo(() => {
60
- const walletFactorys = assets?.filter(item => item.create);
61
60
  availableConnectors.forEach(connector => {
62
61
  // check use assets config and console.error for alert
63
- const walletFactory = walletFactorys?.find(item => item.name === connector.name || item.name?.includes(connector.name));
62
+ const walletFactory = walletFactorys?.find(item => item.connectors?.includes(connector.name));
64
63
  if (!walletFactory?.create) {
65
- console.error(`Can not find wallet factory for ${connector.name}, you should config it in WagmiWeb3ConfigProvider 'assets'.`);
64
+ console.error(`Can not find wallet factory for ${connector.name}, you should config it in WagmiWeb3ConfigProvider 'wallets'.`);
66
65
  }
67
66
  });
68
67
 
69
68
  // Generate Wallet for @ant-design/web3
70
69
  const allWallet = walletFactorys?.map(factory => {
71
- let connector;
72
- if (typeof factory.name === 'string') {
73
- // this wallet factory only for one connector
74
- connector = availableConnectors.find(item => item.name === factory.name);
75
- } else {
76
- // for multiple connectors
77
- connector = factory.name.map(name => availableConnectors.find(item => item.name === name)).filter(item => item !== undefined);
78
- }
79
- if (!connector || Array.isArray(connector) && connector.length === 0) {
70
+ const connectors = factory.connectors.map(name => availableConnectors.find(item => item.name === name)).filter(item => !!item);
71
+ if (connectors.length === 0) {
80
72
  // Not config connector for this wallet factory, ignore it.
81
73
  return null;
82
74
  }
83
- return factory.create(connector);
75
+ return factory.create(connectors);
84
76
  }).filter(item => item !== null);
85
77
  return allWallet;
86
- }, [availableConnectors, assets]);
78
+ }, [availableConnectors, walletFactorys]);
87
79
  const chainList = _react.default.useMemo(() => {
88
80
  return availableChains.map(item => {
89
- const c = assets?.find(asset => {
81
+ const c = chainAssets?.find(asset => {
90
82
  return asset.id === item.id;
91
83
  });
92
84
  if (c?.id) {
@@ -100,7 +92,7 @@ const AntDesignWeb3ConfigProvider = props => {
100
92
  return null;
101
93
  }
102
94
  }).filter(item => item !== null);
103
- }, [availableChains, assets]);
95
+ }, [availableChains, chainAssets]);
104
96
  _react.default.useEffect(() => {
105
97
  if (!chain && currentChain) {
106
98
  // not connected any chain, keep current chain
@@ -110,7 +102,7 @@ const AntDesignWeb3ConfigProvider = props => {
110
102
  if (!currentWagmiChain) {
111
103
  return;
112
104
  }
113
- let c = assets?.find(item => item.id === currentWagmiChain?.id);
105
+ let c = chainAssets?.find(item => item.id === currentWagmiChain?.id);
114
106
  if (!c?.id) {
115
107
  c = {
116
108
  id: currentWagmiChain.id,
@@ -119,7 +111,7 @@ const AntDesignWeb3ConfigProvider = props => {
119
111
  }
120
112
  setCurrentChain(c);
121
113
  return;
122
- }, [chain, assets, availableChains, currentChain]);
114
+ }, [chain, chainAssets, availableChains, currentChain]);
123
115
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_web3Common.Web3ConfigProvider, {
124
116
  locale: locale,
125
117
  availableChains: chainList,
@@ -133,10 +125,13 @@ const AntDesignWeb3ConfigProvider = props => {
133
125
  } : undefined,
134
126
  availableWallets: wallets,
135
127
  connect: async wallet => {
136
- let connector = wallet?.getWagmiConnector?.();
128
+ let connector = await wallet?.getWagmiConnector?.();
137
129
  if (!connector) {
138
130
  connector = availableConnectors.find(item => item.name === wallet?.name);
139
131
  }
132
+ if (!connector) {
133
+ throw new Error(`Can not find connector for ${wallet?.name}`);
134
+ }
140
135
  await connectAsync({
141
136
  connector,
142
137
  chainId: currentChain?.id
@@ -150,13 +145,15 @@ const AntDesignWeb3ConfigProvider = props => {
150
145
  // hava not connected any chain
151
146
  setCurrentChain(c);
152
147
  } else {
153
- switchNetwork?.(c.id);
148
+ switchChain?.({
149
+ chainId: c.id
150
+ });
154
151
  }
155
152
  },
156
153
  getNFTMetadata: async ({
157
154
  address: contractAddress,
158
155
  tokenId
159
- }) => (0, _methods.getNFTMetadata)(contractAddress, tokenId, chain?.id),
156
+ }) => (0, _methods.getNFTMetadata)(config, contractAddress, tokenId, chain?.id),
160
157
  children: children
161
158
  });
162
159
  };
@@ -1,12 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { Chain, Locale } from '@ant-design/web3-common';
3
- import type { Config, PublicClient, WebSocketPublicClient } from 'wagmi';
3
+ import { QueryClient } from '@tanstack/react-query';
4
+ import type { Config } from 'wagmi';
4
5
  import type { WalletFactory } from '../interface';
5
- export type WagmiWeb3ConfigProviderProps<TPublicClient extends PublicClient = PublicClient, TWebSocketPublicClient extends WebSocketPublicClient = WebSocketPublicClient> = {
6
- config: Config<TPublicClient, TWebSocketPublicClient>;
6
+ export type WagmiWeb3ConfigProviderProps = {
7
+ config: Config;
7
8
  locale?: Locale;
8
- assets?: (Chain | WalletFactory)[];
9
+ wallets?: WalletFactory[];
10
+ chains?: Chain[];
9
11
  ens?: boolean;
12
+ queryClient?: QueryClient;
10
13
  balance?: boolean;
11
14
  };
12
- export declare function WagmiWeb3ConfigProvider<TPublicClient extends PublicClient, TWebSocketPublicClient extends WebSocketPublicClient>({ children, assets, ens, locale, balance, config, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps<TPublicClient, TWebSocketPublicClient>>): React.ReactElement;
15
+ export declare function WagmiWeb3ConfigProvider({ children, wallets, chains, ens, locale, balance, config, queryClient, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps>): React.ReactElement;
@@ -6,57 +6,43 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.WagmiWeb3ConfigProvider = WagmiWeb3ConfigProvider;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _web3Assets = require("@ant-design/web3-assets");
9
+ var _reactQuery = require("@tanstack/react-query");
9
10
  var _wagmi = require("wagmi");
10
- var _wallets = require("../wallets");
11
11
  var _configProvider = require("./config-provider");
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
  // Built in popular chains
15
15
 
16
- // MetaMask built-in
17
-
18
16
  function WagmiWeb3ConfigProvider({
19
17
  children,
20
- assets = [],
18
+ wallets = [],
19
+ chains = [],
21
20
  ens,
22
21
  locale,
23
22
  balance,
24
23
  config,
24
+ queryClient,
25
25
  ...restProps
26
26
  }) {
27
- const availableChains = _react.default.useMemo(() => {
28
- // merge all available chains fro user select
29
- const chains = [];
30
- for (const connector of config.connectors) {
31
- connector.chains.forEach(chain => {
32
- if (chains.find(c => c.id === chain.id)) return;
33
- chains.push(chain);
34
- });
35
- }
36
- config.publicClient.chains?.forEach(chain => {
37
- if (chains.find(c => c.id === chain.id)) return;
38
- chains.push(chain);
39
- });
40
- return chains;
41
- }, [config]);
42
- const assetsWithDefault = [...assets, _web3Assets.Mainnet, _web3Assets.Goerli];
43
- if (!assets.find(item => {
44
- return item.name === 'MetaMask' || Array.isArray(item.name) && item.name.includes('MetaMask');
45
- })) {
46
- // If user not set MetaMask, we will add it to the first
47
- assetsWithDefault.unshift(_wallets.MetaMask);
48
- }
49
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_wagmi.WagmiConfig, {
27
+ const chainAssets = [...chains, _web3Assets.Mainnet];
28
+ const mergedQueryClient = _react.default.useMemo(() => {
29
+ return queryClient ?? new _reactQuery.QueryClient();
30
+ }, [queryClient]);
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_wagmi.WagmiProvider, {
50
32
  config: config,
51
33
  ...restProps,
52
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_configProvider.AntDesignWeb3ConfigProvider, {
53
- locale: locale,
54
- assets: assetsWithDefault,
55
- availableChains: availableChains,
56
- availableConnectors: config.connectors || [],
57
- ens: ens,
58
- balance: balance,
59
- children: children
34
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuery.QueryClientProvider, {
35
+ client: mergedQueryClient,
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_configProvider.AntDesignWeb3ConfigProvider, {
37
+ locale: locale,
38
+ chainAssets: chainAssets,
39
+ walletFactorys: wallets,
40
+ availableChains: config.chains,
41
+ availableConnectors: config.connectors,
42
+ ens: ens,
43
+ balance: balance,
44
+ children: children
45
+ })
60
46
  })
61
47
  });
62
48
  }
@@ -1,2 +1,3 @@
1
1
  import type { Account } from '@ant-design/web3-common';
2
- export declare function addNameToAccount(account: Account, chainId?: number): Promise<Account>;
2
+ import { type Config } from '@wagmi/core';
3
+ export declare function addNameToAccount(config: Config, account: Account, chainId?: number): Promise<Account>;
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.addNameToAccount = addNameToAccount;
7
7
  var _core = require("@wagmi/core");
8
- async function addNameToAccount(account, chainId) {
9
- const name = await (0, _core.fetchEnsName)({
8
+ async function addNameToAccount(config, account, chainId) {
9
+ const name = await (0, _core.getEnsName)(config, {
10
10
  address: account.address,
11
11
  chainId
12
12
  });
@@ -1,2 +1,3 @@
1
1
  import { type NFTMetadata } from '@ant-design/web3-common';
2
- export declare function getNFTMetadata(address: string, tokenId: bigint, chainId?: number): Promise<NFTMetadata>;
2
+ import { type Config } from '@wagmi/core';
3
+ export declare function getNFTMetadata(config: Config, address: string, tokenId: bigint, chainId?: number): Promise<NFTMetadata>;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getNFTMetadata = getNFTMetadata;
7
7
  var _web3Common = require("@ant-design/web3-common");
8
8
  var _core = require("@wagmi/core");
9
- async function getNFTMetadata(address, tokenId, chainId) {
10
- const tokenURI = await (0, _core.readContract)({
9
+ async function getNFTMetadata(config, address, tokenId, chainId) {
10
+ const tokenURI = await (0, _core.readContract)(config, {
11
11
  address: (0, _web3Common.fillAddressWith0x)(address),
12
12
  args: [tokenId],
13
13
  chainId,
@@ -1,2 +1,2 @@
1
- import type { WalletFactory } from '../interface';
2
- export declare const CoinbaseWallet: WalletFactory;
1
+ import type { EthereumWallet } from '../interface';
2
+ export declare const CoinbaseWallet: EthereumWallet;
@@ -5,14 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CoinbaseWallet = void 0;
7
7
  var _web3Assets = require("@ant-design/web3-assets");
8
- const CoinbaseWallet = exports.CoinbaseWallet = {
9
- name: 'Coinbase Wallet',
10
- create: () => {
11
- return {
12
- ..._web3Assets.metadata_CoinbaseWallet,
13
- hasWalletReady: async () => {
14
- return true;
15
- }
16
- };
17
- }
18
- };
8
+ const CoinbaseWallet = metadata => {
9
+ return {
10
+ connectors: ['Coinbase Wallet'],
11
+ create: () => {
12
+ return {
13
+ ..._web3Assets.metadata_CoinbaseWallet,
14
+ hasWalletReady: async () => {
15
+ return true;
16
+ },
17
+ ...metadata
18
+ };
19
+ }
20
+ };
21
+ };
22
+ exports.CoinbaseWallet = CoinbaseWallet;
@@ -4,3 +4,4 @@ export * from './coinbase-wallet';
4
4
  export * from './token-pocket';
5
5
  export * from './safeheron';
6
6
  export * from './universal-wallet';
7
+ export * from './okx-wallet';
@@ -68,4 +68,15 @@ Object.keys(_universalWallet).forEach(function (key) {
68
68
  return _universalWallet[key];
69
69
  }
70
70
  });
71
+ });
72
+ var _okxWallet = require("./okx-wallet");
73
+ Object.keys(_okxWallet).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _okxWallet[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _okxWallet[key];
80
+ }
81
+ });
71
82
  });
@@ -1,2 +1,2 @@
1
- import type { WalletFactory } from '../interface';
2
- export declare const MetaMask: WalletFactory;
1
+ import type { EthereumWallet } from '../interface';
2
+ export declare const MetaMask: EthereumWallet;
@@ -5,17 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.MetaMask = void 0;
7
7
  var _web3Assets = require("@ant-design/web3-assets");
8
- const MetaMask = exports.MetaMask = {
9
- name: 'MetaMask',
10
- create: () => {
11
- return {
12
- ..._web3Assets.metadata_MetaMask,
13
- hasWalletReady: async () => {
14
- return !!window.ethereum?.isMetaMask;
15
- },
16
- hasExtensionInstalled: async () => {
17
- return !!window.ethereum?.isMetaMask;
18
- }
19
- };
20
- }
21
- };
8
+ const MetaMask = metadata => {
9
+ return {
10
+ connectors: ['MetaMask'],
11
+ create: () => {
12
+ return {
13
+ ..._web3Assets.metadata_MetaMask,
14
+ hasWalletReady: async () => {
15
+ return !!window.ethereum?.isMetaMask;
16
+ },
17
+ hasExtensionInstalled: async () => {
18
+ return !!window.ethereum?.isMetaMask;
19
+ },
20
+ ...metadata
21
+ };
22
+ }
23
+ };
24
+ };
25
+ exports.MetaMask = MetaMask;
@@ -0,0 +1,2 @@
1
+ import { EthereumWallet } from '../interface';
2
+ export declare const OkxWallet: EthereumWallet;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OkxWallet = void 0;
7
+ var _web3Assets = require("@ant-design/web3-assets");
8
+ var _universalWallet = require("./universal-wallet");
9
+ const OkxWallet = metadata => {
10
+ return new _universalWallet.UniversalWallet({
11
+ ..._web3Assets.metadata_OkxWallet,
12
+ ...metadata
13
+ });
14
+ };
15
+ exports.OkxWallet = OkxWallet;
@@ -1,2 +1,2 @@
1
- import type { WalletFactory } from '../interface';
2
- export declare const SafeheronWallet: WalletFactory;
1
+ import type { EthereumWallet } from '../interface';
2
+ export declare const SafeheronWallet: EthereumWallet;
@@ -5,17 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SafeheronWallet = void 0;
7
7
  var _web3Assets = require("@ant-design/web3-assets");
8
- const SafeheronWallet = exports.SafeheronWallet = {
9
- name: 'Safeheron',
10
- create: connector => {
11
- return {
12
- ..._web3Assets.metadata_Safeheron,
13
- hasWalletReady: async () => {
14
- return !!connector?.ready;
15
- },
16
- hasExtensionInstalled: async () => {
17
- return !!connector?.ready;
18
- }
19
- };
20
- }
21
- };
8
+ const SafeheronWallet = metadata => {
9
+ return {
10
+ connectors: ['Safeheron'],
11
+ create: connectors => {
12
+ return {
13
+ ..._web3Assets.metadata_Safeheron,
14
+ hasWalletReady: async () => {
15
+ return !!(await connectors?.[0]?.getProvider());
16
+ },
17
+ hasExtensionInstalled: async () => {
18
+ return !!(await connectors?.[0]?.getProvider());
19
+ },
20
+ ...metadata
21
+ };
22
+ }
23
+ };
24
+ };
25
+ exports.SafeheronWallet = SafeheronWallet;
@@ -1,2 +1,2 @@
1
- import { UniversalWallet } from './universal-wallet';
2
- export declare const TokenPocket: UniversalWallet;
1
+ import { EthereumWallet } from '../interface';
2
+ export declare const TokenPocket: EthereumWallet;
@@ -6,4 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.TokenPocket = void 0;
7
7
  var _web3Assets = require("@ant-design/web3-assets");
8
8
  var _universalWallet = require("./universal-wallet");
9
- const TokenPocket = exports.TokenPocket = new _universalWallet.UniversalWallet(_web3Assets.metadata_TokenPocket);
9
+ const TokenPocket = metadata => {
10
+ return new _universalWallet.UniversalWallet({
11
+ ..._web3Assets.metadata_TokenPocket,
12
+ ...metadata
13
+ });
14
+ };
15
+ exports.TokenPocket = TokenPocket;
@@ -3,7 +3,7 @@ import type { Connector } from 'wagmi';
3
3
  import type { WalletFactory, WalletUseInWagmiAdapter } from '../interface';
4
4
  export declare class UniversalWallet implements WalletFactory {
5
5
  private wallet;
6
- name: string[];
6
+ connectors: string[];
7
7
  constructor(wallet: WalletMetadata);
8
- create: (connector?: Connector | Connector[]) => WalletUseInWagmiAdapter;
8
+ create: (connectors?: readonly Connector[]) => WalletUseInWagmiAdapter;
9
9
  }
@@ -5,41 +5,40 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.UniversalWallet = void 0;
7
7
  class UniversalWallet {
8
- name = [];
8
+ connectors = [];
9
9
  constructor(wallet) {
10
10
  this.wallet = wallet;
11
11
  if (wallet.extensions) {
12
12
  // support injected connector
13
13
  // https://wagmi.sh/react/connectors/injected
14
- this.name.push(wallet.name);
14
+ this.connectors.push(wallet.name);
15
15
  }
16
16
  if (wallet.app) {
17
17
  // support WalletConnect https://wagmi.sh/react/connectors/walletConnect
18
- this.name.push('WalletConnect');
18
+ this.connectors.push('WalletConnect');
19
19
  }
20
20
  }
21
- create = connector => {
22
- const connectors = connector;
23
- const walletConnector = connectors.find(item => item.name === 'WalletConnect');
24
- const injectedConnector = connectors.find(item => item.name === this.wallet.name);
21
+ create = connectors => {
22
+ const walletConnector = connectors?.find(item => item.name === 'WalletConnect');
23
+ const injectedConnector = connectors?.find(item => item.name === this.wallet.name);
25
24
  const getQrCode = async () => {
26
25
  const provider = await walletConnector?.getProvider();
27
26
  return new Promise(resolve => {
28
- provider.on('display_uri', uri => {
27
+ provider?.on('display_uri', uri => {
29
28
  resolve({
30
29
  uri
31
30
  });
32
31
  });
33
32
  });
34
33
  };
35
- const hasExtensionInstalled = () => {
36
- const provider = injectedConnector?.options?.getProvider();
34
+ const hasExtensionInstalled = async () => {
35
+ const provider = await injectedConnector?.getProvider();
37
36
  return !!provider;
38
37
  };
39
38
  return {
40
39
  ...this.wallet,
41
- getWagmiConnector: () => {
42
- if (hasExtensionInstalled()) {
40
+ getWagmiConnector: async () => {
41
+ if (await hasExtensionInstalled()) {
43
42
  return injectedConnector;
44
43
  }
45
44
  return walletConnector;
@@ -48,9 +47,10 @@ class UniversalWallet {
48
47
  return hasExtensionInstalled();
49
48
  },
50
49
  hasWalletReady: async () => {
51
- return !!(hasExtensionInstalled() || walletConnector);
50
+ const installed = await hasExtensionInstalled();
51
+ return !!(installed || walletConnector);
52
52
  },
53
- getQrCode: walletConnector?.options?.showQrModal === false ? getQrCode : undefined
53
+ getQrCode: walletConnector ? getQrCode : undefined
54
54
  };
55
55
  };
56
56
  }
@@ -1,2 +1,7 @@
1
+ import { WalletMetadata } from '@ant-design/web3-common';
1
2
  import type { WalletFactory } from '../interface';
2
- export declare const WalletConnect: WalletFactory;
3
+ type EthereumWalletConnect = (metadata?: Partial<WalletMetadata> & {
4
+ useWalletConnectOfficialModal?: boolean;
5
+ }) => WalletFactory;
6
+ export declare const WalletConnect: EthereumWalletConnect;
7
+ export {};
@@ -5,25 +5,33 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.WalletConnect = void 0;
7
7
  var _web3Assets = require("@ant-design/web3-assets");
8
- const WalletConnect = exports.WalletConnect = {
9
- name: 'WalletConnect',
10
- create: connector => {
11
- const getQrCode = async () => {
12
- const provider = await connector?.getProvider();
13
- return new Promise(resolve => {
14
- provider.on('display_uri', uri => {
15
- resolve({
16
- uri
8
+ const WalletConnect = metadata => {
9
+ const {
10
+ useWalletConnectOfficialModal = false,
11
+ ...rest
12
+ } = metadata || {};
13
+ return {
14
+ connectors: ['WalletConnect'],
15
+ create: connectors => {
16
+ const getQrCode = async () => {
17
+ const provider = await connectors?.[0]?.getProvider();
18
+ return new Promise(resolve => {
19
+ provider?.on('display_uri', uri => {
20
+ resolve({
21
+ uri
22
+ });
17
23
  });
18
24
  });
19
- });
20
- };
21
- return {
22
- ..._web3Assets.metadata_WalletConnect,
23
- hasWalletReady: async () => {
24
- return true;
25
- },
26
- getQrCode: connector?.options.showQrModal === false ? getQrCode : undefined
27
- };
28
- }
29
- };
25
+ };
26
+ return {
27
+ ..._web3Assets.metadata_WalletConnect,
28
+ hasWalletReady: async () => {
29
+ return true;
30
+ },
31
+ getQrCode: useWalletConnectOfficialModal ? undefined : getQrCode,
32
+ ...rest
33
+ };
34
+ }
35
+ };
36
+ };
37
+ exports.WalletConnect = WalletConnect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ant-design/web3-wagmi",
3
- "version": "1.2.0",
3
+ "version": "2.1.0",
4
4
  "main": "dist/lib/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "typings": "dist/esm/index.d.ts",
@@ -31,17 +31,19 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "debug": "^4.3.4",
34
- "@ant-design/web3-common": "1.2.0",
35
- "@ant-design/web3-assets": "1.1.3"
34
+ "@wagmi/core": "^2.0.0",
35
+ "viem": "2.0.0",
36
+ "@tanstack/react-query": "^5.17.0",
37
+ "@ant-design/web3-assets": "1.2.0",
38
+ "@ant-design/web3-common": "1.3.1"
36
39
  },
37
40
  "devDependencies": {
38
41
  "@types/debug": "^4.1.12",
39
- "@wagmi/core": "^1.4.12",
40
42
  "father": "^4.3.8",
41
43
  "typescript": "^5.3.3"
42
44
  },
43
45
  "peerDependencies": {
44
- "wagmi": "^1.4.12"
46
+ "wagmi": "^2.0.0"
45
47
  },
46
48
  "publishConfig": {
47
49
  "registry": "https://registry.npmjs.org",