@ant-design/web3-wagmi 1.2.0 → 2.0.1

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 (44) hide show
  1. package/CHANGELOG.md +18 -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/meta-mask.d.ts +2 -2
  14. package/dist/esm/wallets/meta-mask.js +44 -42
  15. package/dist/esm/wallets/safeheron.d.ts +2 -2
  16. package/dist/esm/wallets/safeheron.js +50 -40
  17. package/dist/esm/wallets/token-pocket.d.ts +2 -2
  18. package/dist/esm/wallets/token-pocket.js +9 -1
  19. package/dist/esm/wallets/universal-wallet.d.ts +2 -2
  20. package/dist/esm/wallets/universal-wallet.js +72 -33
  21. package/dist/esm/wallets/wallet-connect.d.ts +6 -1
  22. package/dist/esm/wallets/wallet-connect.js +57 -47
  23. package/dist/lib/interface.d.ts +5 -4
  24. package/dist/lib/wagmi-provider/config-provider.d.ts +6 -4
  25. package/dist/lib/wagmi-provider/config-provider.js +26 -29
  26. package/dist/lib/wagmi-provider/index.d.ts +8 -5
  27. package/dist/lib/wagmi-provider/index.js +21 -35
  28. package/dist/lib/wagmi-provider/methods/addNameToAccount.d.ts +2 -1
  29. package/dist/lib/wagmi-provider/methods/addNameToAccount.js +2 -2
  30. package/dist/lib/wagmi-provider/methods/getNFTMetadata.d.ts +2 -1
  31. package/dist/lib/wagmi-provider/methods/getNFTMetadata.js +2 -2
  32. package/dist/lib/wallets/coinbase-wallet.d.ts +2 -2
  33. package/dist/lib/wallets/coinbase-wallet.js +15 -11
  34. package/dist/lib/wallets/meta-mask.d.ts +2 -2
  35. package/dist/lib/wallets/meta-mask.js +18 -14
  36. package/dist/lib/wallets/safeheron.d.ts +2 -2
  37. package/dist/lib/wallets/safeheron.js +18 -14
  38. package/dist/lib/wallets/token-pocket.d.ts +2 -2
  39. package/dist/lib/wallets/token-pocket.js +7 -1
  40. package/dist/lib/wallets/universal-wallet.d.ts +2 -2
  41. package/dist/lib/wallets/universal-wallet.js +14 -14
  42. package/dist/lib/wallets/wallet-connect.d.ts +6 -1
  43. package/dist/lib/wallets/wallet-connect.js +28 -20
  44. package/package.json +7 -5
@@ -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;
@@ -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;
@@ -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.0.1",
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.1.4",
38
+ "@ant-design/web3-common": "1.3.0"
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",