@ant-design/web3-wagmi 2.1.0 → 2.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @ant-design/web3-wagmi
2
2
 
3
+ ## 2.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - fe1ec95: feat: support EIP6963 wallet
8
+
9
+ ### Patch Changes
10
+
11
+ - 1e663c3: chore: Optimize import type
12
+
13
+ ## 2.1.1
14
+
15
+ ### Patch Changes
16
+
17
+ - cf6c520: fix: Add exports field for fix require bug in nextjs
18
+ - Updated dependencies [cf6c520]
19
+ - @ant-design/web3-assets@1.2.1
20
+ - @ant-design/web3-common@1.3.2
21
+
3
22
  ## 2.1.0
4
23
 
5
24
  ### Minor Changes
@@ -8,3 +8,6 @@ export interface WalletFactory {
8
8
  connectors: Connector['name'][];
9
9
  create: (connector?: readonly Connector[]) => WalletUseInWagmiAdapter;
10
10
  }
11
+ export type EIP6963Config = boolean | {
12
+ autoAddInjectedWallets?: boolean;
13
+ };
@@ -1,3 +1,5 @@
1
1
  import debug from 'debug';
2
+ import type { Connector as WagmiConnector } from 'wagmi';
2
3
  declare const createDebug: (namespace: string) => debug.Debugger;
3
- export { createDebug };
4
+ declare const isEIP6963Connector: (connector: WagmiConnector) => boolean;
5
+ export { createDebug, isEIP6963Connector };
package/dist/esm/utils.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import debug from 'debug';
2
+ import { injected } from 'wagmi/connectors';
2
3
  var createDebug = function createDebug(namespace) {
3
4
  return debug("antd-web3:wagmi:".concat(namespace));
4
5
  };
5
- export { createDebug };
6
+ var isEIP6963Connector = function isEIP6963Connector(connector) {
7
+ if (connector.type === injected.type && connector.icon && connector.id && connector.name) {
8
+ return true;
9
+ }
10
+ return false;
11
+ };
12
+ export { createDebug, isEIP6963Connector };
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { type Chain, type Locale } from '@ant-design/web3-common';
3
- import { Chain as WagmiChain } from 'viem';
3
+ import type { Chain as WagmiChain } from 'viem';
4
4
  import { type Connector as WagmiConnector } from 'wagmi';
5
- import type { WalletFactory } from '../interface';
5
+ import type { EIP6963Config, WalletFactory } from '../interface';
6
6
  export interface AntDesignWeb3ConfigProviderProps {
7
7
  chainAssets: Chain[];
8
8
  walletFactorys: WalletFactory[];
@@ -10,6 +10,7 @@ export interface AntDesignWeb3ConfigProviderProps {
10
10
  children?: React.ReactNode;
11
11
  ens?: boolean;
12
12
  balance?: boolean;
13
+ eip6963?: EIP6963Config;
13
14
  readonly availableChains: readonly WagmiChain[];
14
15
  readonly availableConnectors: readonly WagmiConnector[];
15
16
  }
@@ -1,3 +1,7 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
1
5
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
6
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
7
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -11,6 +15,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
15
  import React from 'react';
12
16
  import { fillAddressWith0x, Web3ConfigProvider } from '@ant-design/web3-common';
13
17
  import { useAccount, useBalance, useConfig, useConnect, useDisconnect, useSwitchChain } from 'wagmi';
18
+ import { isEIP6963Connector } from "../utils";
19
+ import { EIP6963Wallet } from "../wallets/eip6963";
14
20
  import { addNameToAccount, getNFTMetadata } from "./methods";
15
21
  import { jsx as _jsx } from "react/jsx-runtime";
16
22
  export var AntDesignWeb3ConfigProvider = function AntDesignWeb3ConfigProvider(props) {
@@ -22,7 +28,8 @@ export var AntDesignWeb3ConfigProvider = function AntDesignWeb3ConfigProvider(pr
22
28
  availableConnectors = props.availableConnectors,
23
29
  ens = props.ens,
24
30
  balance = props.balance,
25
- locale = props.locale;
31
+ locale = props.locale,
32
+ eip6963 = props.eip6963;
26
33
  var _useAccount = useAccount(),
27
34
  address = _useAccount.address,
28
35
  isDisconnected = _useAccount.isDisconnected,
@@ -88,25 +95,44 @@ export var AntDesignWeb3ConfigProvider = function AntDesignWeb3ConfigProvider(pr
88
95
  }();
89
96
  updateAccounts();
90
97
  }, [address, isDisconnected, chain, ens]);
98
+ var findConnectorByName = function findConnectorByName(name) {
99
+ var commonConnector = availableConnectors.find(function (item) {
100
+ return item.name === name && !isEIP6963Connector(item);
101
+ });
102
+ if (!eip6963) {
103
+ return commonConnector;
104
+ }
105
+ var eip6963Connector = availableConnectors.find(function (item) {
106
+ return item.name === name && isEIP6963Connector(item);
107
+ });
108
+ return eip6963Connector || commonConnector;
109
+ };
91
110
  var wallets = React.useMemo(function () {
111
+ var autoAddEIP6963Wallets = [];
92
112
  availableConnectors.forEach(function (connector) {
93
- // check use assets config and console.error for alert
94
- var walletFactory = walletFactorys === null || walletFactorys === void 0 ? void 0 : walletFactorys.find(function (item) {
95
- var _item$connectors;
96
- return (_item$connectors = item.connectors) === null || _item$connectors === void 0 ? void 0 : _item$connectors.includes(connector.name);
113
+ if (isEIP6963Connector(connector)) {
114
+ // check is need auto add eip6963 wallet
115
+ if (_typeof(eip6963) === 'object' && eip6963 !== null && eip6963 !== void 0 && eip6963.autoAddInjectedWallets && !walletFactorys.find(function (item) {
116
+ return item.connectors.includes(connector.name);
117
+ })) {
118
+ // not config wallet and find the wallet in connectors, auto add it
119
+ autoAddEIP6963Wallets.push(EIP6963Wallet().create([connector]));
120
+ }
121
+ // Do not need check eip6963 wallet
122
+ return;
123
+ }
124
+ var walletFactory = walletFactorys.find(function (factory) {
125
+ return factory.connectors.includes(connector.name);
97
126
  });
98
127
  if (!(walletFactory !== null && walletFactory !== void 0 && walletFactory.create)) {
128
+ // check user wallets config and console.error for alert
99
129
  console.error("Can not find wallet factory for ".concat(connector.name, ", you should config it in WagmiWeb3ConfigProvider 'wallets'."));
100
130
  }
101
131
  });
102
132
 
103
133
  // Generate Wallet for @ant-design/web3
104
- var allWallet = walletFactorys === null || walletFactorys === void 0 ? void 0 : walletFactorys.map(function (factory) {
105
- var connectors = factory.connectors.map(function (name) {
106
- return availableConnectors.find(function (item) {
107
- return item.name === name;
108
- });
109
- }).filter(function (item) {
134
+ var supportWallets = walletFactorys.map(function (factory) {
135
+ var connectors = factory.connectors.map(findConnectorByName).filter(function (item) {
110
136
  return !!item;
111
137
  });
112
138
  if (connectors.length === 0) {
@@ -117,8 +143,8 @@ export var AntDesignWeb3ConfigProvider = function AntDesignWeb3ConfigProvider(pr
117
143
  }).filter(function (item) {
118
144
  return item !== null;
119
145
  });
120
- return allWallet;
121
- }, [availableConnectors, walletFactorys]);
146
+ return [].concat(_toConsumableArray(supportWallets), autoAddEIP6963Wallets);
147
+ }, [availableConnectors, walletFactorys, eip6963]);
122
148
  var chainList = React.useMemo(function () {
123
149
  return availableChains.map(function (item) {
124
150
  var c = chainAssets === null || chainAssets === void 0 ? void 0 : chainAssets.find(function (asset) {
@@ -183,10 +209,8 @@ export var AntDesignWeb3ConfigProvider = function AntDesignWeb3ConfigProvider(pr
183
209
  return wallet === null || wallet === void 0 || (_getWagmiConnector = (_ref3 = wallet).getWagmiConnector) === null || _getWagmiConnector === void 0 ? void 0 : _getWagmiConnector.call(_ref3);
184
210
  case 2:
185
211
  connector = _context2.sent;
186
- if (!connector) {
187
- connector = availableConnectors.find(function (item) {
188
- return item.name === (wallet === null || wallet === void 0 ? void 0 : wallet.name);
189
- });
212
+ if (!connector && wallet) {
213
+ connector = findConnectorByName(wallet.name);
190
214
  }
191
215
  if (connector) {
192
216
  _context2.next = 6;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { Chain, Locale } from '@ant-design/web3-common';
3
3
  import { QueryClient } from '@tanstack/react-query';
4
4
  import type { Config } from 'wagmi';
5
- import type { WalletFactory } from '../interface';
5
+ import type { EIP6963Config, WalletFactory } from '../interface';
6
6
  export type WagmiWeb3ConfigProviderProps = {
7
7
  config: Config;
8
8
  locale?: Locale;
@@ -11,5 +11,6 @@ export type WagmiWeb3ConfigProviderProps = {
11
11
  ens?: boolean;
12
12
  queryClient?: QueryClient;
13
13
  balance?: boolean;
14
+ eip6963?: EIP6963Config;
14
15
  };
15
- export declare function WagmiWeb3ConfigProvider({ children, wallets, chains, ens, locale, balance, config, queryClient, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps>): React.ReactElement;
16
+ export declare function WagmiWeb3ConfigProvider({ children, wallets, chains, ens, locale, balance, config, queryClient, eip6963, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps>): React.ReactElement;
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["children", "wallets", "chains", "ens", "locale", "balance", "config", "queryClient"];
2
+ var _excluded = ["children", "wallets", "chains", "ens", "locale", "balance", "config", "queryClient", "eip6963"];
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -31,6 +31,7 @@ export function WagmiWeb3ConfigProvider(_ref) {
31
31
  balance = _ref.balance,
32
32
  config = _ref.config,
33
33
  queryClient = _ref.queryClient,
34
+ eip6963 = _ref.eip6963,
34
35
  restProps = _objectWithoutProperties(_ref, _excluded);
35
36
  var chainAssets = [].concat(_toConsumableArray(chains), [Mainnet]);
36
37
  var mergedQueryClient = React.useMemo(function () {
@@ -49,6 +50,7 @@ export function WagmiWeb3ConfigProvider(_ref) {
49
50
  availableConnectors: config.connectors,
50
51
  ens: ens,
51
52
  balance: balance,
53
+ eip6963: eip6963,
52
54
  children: children
53
55
  })
54
56
  })
@@ -0,0 +1,3 @@
1
+ import type { EthereumWallet } from '../interface';
2
+ export declare const EIP6963_CONNECTOR = "EIP6963";
3
+ export declare const EIP6963Wallet: EthereumWallet;
@@ -0,0 +1,68 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
+ export var EIP6963_CONNECTOR = 'EIP6963';
11
+
12
+ // EIP6963Wallet not export from @ant-design/web3-wagmi, only used in internal
13
+ export var EIP6963Wallet = function EIP6963Wallet(metadata) {
14
+ return {
15
+ connectors: [EIP6963_CONNECTOR],
16
+ create: function create(connectors) {
17
+ var connector = connectors === null || connectors === void 0 ? void 0 : connectors[0];
18
+ var metadata_eip6963 = {
19
+ icon: connector === null || connector === void 0 ? void 0 : connector.icon,
20
+ name: connector.name,
21
+ remark: "Wallet ".concat(connector === null || connector === void 0 ? void 0 : connector.name, " detected"),
22
+ key: connector === null || connector === void 0 ? void 0 : connector.id
23
+ };
24
+ return _objectSpread(_objectSpread({}, metadata_eip6963), {}, {
25
+ hasWalletReady: function () {
26
+ var _hasWalletReady = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
27
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
28
+ while (1) switch (_context.prev = _context.next) {
29
+ case 0:
30
+ _context.next = 2;
31
+ return connector === null || connector === void 0 ? void 0 : connector.getProvider();
32
+ case 2:
33
+ return _context.abrupt("return", !!_context.sent);
34
+ case 3:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }, _callee);
39
+ }));
40
+ function hasWalletReady() {
41
+ return _hasWalletReady.apply(this, arguments);
42
+ }
43
+ return hasWalletReady;
44
+ }(),
45
+ hasExtensionInstalled: function () {
46
+ var _hasExtensionInstalled = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
47
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
48
+ while (1) switch (_context2.prev = _context2.next) {
49
+ case 0:
50
+ _context2.next = 2;
51
+ return connector === null || connector === void 0 ? void 0 : connector.getProvider();
52
+ case 2:
53
+ return _context2.abrupt("return", !!_context2.sent);
54
+ case 3:
55
+ case "end":
56
+ return _context2.stop();
57
+ }
58
+ }, _callee2);
59
+ }));
60
+ function hasExtensionInstalled() {
61
+ return _hasExtensionInstalled.apply(this, arguments);
62
+ }
63
+ return hasExtensionInstalled;
64
+ }()
65
+ }, metadata);
66
+ }
67
+ };
68
+ };
@@ -1,2 +1,2 @@
1
- import { EthereumWallet } from '../interface';
1
+ import type { EthereumWallet } from '../interface';
2
2
  export declare const OkxWallet: EthereumWallet;
@@ -1,2 +1,2 @@
1
- import { EthereumWallet } from '../interface';
1
+ import type { EthereumWallet } from '../interface';
2
2
  export declare const TokenPocket: EthereumWallet;
@@ -1,4 +1,4 @@
1
- import { WalletMetadata } from '@ant-design/web3-common';
1
+ import type { WalletMetadata } from '@ant-design/web3-common';
2
2
  import type { WalletFactory } from '../interface';
3
3
  type EthereumWalletConnect = (metadata?: Partial<WalletMetadata> & {
4
4
  useWalletConnectOfficialModal?: boolean;
@@ -8,3 +8,6 @@ export interface WalletFactory {
8
8
  connectors: Connector['name'][];
9
9
  create: (connector?: readonly Connector[]) => WalletUseInWagmiAdapter;
10
10
  }
11
+ export type EIP6963Config = boolean | {
12
+ autoAddInjectedWallets?: boolean;
13
+ };
@@ -1,3 +1,5 @@
1
1
  import debug from 'debug';
2
+ import type { Connector as WagmiConnector } from 'wagmi';
2
3
  declare const createDebug: (namespace: string) => debug.Debugger;
3
- export { createDebug };
4
+ declare const isEIP6963Connector: (connector: WagmiConnector) => boolean;
5
+ export { createDebug, isEIP6963Connector };
package/dist/lib/utils.js CHANGED
@@ -3,10 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createDebug = void 0;
6
+ exports.isEIP6963Connector = exports.createDebug = void 0;
7
7
  var _debug = _interopRequireDefault(require("debug"));
8
+ var _connectors = require("wagmi/connectors");
8
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
10
  const createDebug = namespace => {
10
11
  return (0, _debug.default)(`antd-web3:wagmi:${namespace}`);
11
12
  };
12
- exports.createDebug = createDebug;
13
+ exports.createDebug = createDebug;
14
+ const isEIP6963Connector = connector => {
15
+ if (connector.type === _connectors.injected.type && connector.icon && connector.id && connector.name) {
16
+ return true;
17
+ }
18
+ return false;
19
+ };
20
+ exports.isEIP6963Connector = isEIP6963Connector;
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { type Chain, type Locale } from '@ant-design/web3-common';
3
- import { Chain as WagmiChain } from 'viem';
3
+ import type { Chain as WagmiChain } from 'viem';
4
4
  import { type Connector as WagmiConnector } from 'wagmi';
5
- import type { WalletFactory } from '../interface';
5
+ import type { EIP6963Config, WalletFactory } from '../interface';
6
6
  export interface AntDesignWeb3ConfigProviderProps {
7
7
  chainAssets: Chain[];
8
8
  walletFactorys: WalletFactory[];
@@ -10,6 +10,7 @@ export interface AntDesignWeb3ConfigProviderProps {
10
10
  children?: React.ReactNode;
11
11
  ens?: boolean;
12
12
  balance?: boolean;
13
+ eip6963?: EIP6963Config;
13
14
  readonly availableChains: readonly WagmiChain[];
14
15
  readonly availableConnectors: readonly WagmiConnector[];
15
16
  }
@@ -7,6 +7,8 @@ exports.AntDesignWeb3ConfigProvider = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _web3Common = require("@ant-design/web3-common");
9
9
  var _wagmi = require("wagmi");
10
+ var _utils = require("../utils");
11
+ var _eip = require("../wallets/eip6963");
10
12
  var _methods = require("./methods");
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -19,7 +21,8 @@ const AntDesignWeb3ConfigProvider = props => {
19
21
  availableConnectors,
20
22
  ens,
21
23
  balance,
22
- locale
24
+ locale,
25
+ eip6963
23
26
  } = props;
24
27
  const {
25
28
  address,
@@ -56,26 +59,44 @@ const AntDesignWeb3ConfigProvider = props => {
56
59
  };
57
60
  updateAccounts();
58
61
  }, [address, isDisconnected, chain, ens]);
62
+ const findConnectorByName = name => {
63
+ const commonConnector = availableConnectors.find(item => item.name === name && !(0, _utils.isEIP6963Connector)(item));
64
+ if (!eip6963) {
65
+ return commonConnector;
66
+ }
67
+ const eip6963Connector = availableConnectors.find(item => item.name === name && (0, _utils.isEIP6963Connector)(item));
68
+ return eip6963Connector || commonConnector;
69
+ };
59
70
  const wallets = _react.default.useMemo(() => {
71
+ const autoAddEIP6963Wallets = [];
60
72
  availableConnectors.forEach(connector => {
61
- // check use assets config and console.error for alert
62
- const walletFactory = walletFactorys?.find(item => item.connectors?.includes(connector.name));
73
+ if ((0, _utils.isEIP6963Connector)(connector)) {
74
+ // check is need auto add eip6963 wallet
75
+ if (typeof eip6963 === 'object' && eip6963?.autoAddInjectedWallets && !walletFactorys.find(item => item.connectors.includes(connector.name))) {
76
+ // not config wallet and find the wallet in connectors, auto add it
77
+ autoAddEIP6963Wallets.push((0, _eip.EIP6963Wallet)().create([connector]));
78
+ }
79
+ // Do not need check eip6963 wallet
80
+ return;
81
+ }
82
+ const walletFactory = walletFactorys.find(factory => factory.connectors.includes(connector.name));
63
83
  if (!walletFactory?.create) {
84
+ // check user wallets config and console.error for alert
64
85
  console.error(`Can not find wallet factory for ${connector.name}, you should config it in WagmiWeb3ConfigProvider 'wallets'.`);
65
86
  }
66
87
  });
67
88
 
68
89
  // Generate Wallet for @ant-design/web3
69
- const allWallet = walletFactorys?.map(factory => {
70
- const connectors = factory.connectors.map(name => availableConnectors.find(item => item.name === name)).filter(item => !!item);
90
+ const supportWallets = walletFactorys.map(factory => {
91
+ const connectors = factory.connectors.map(findConnectorByName).filter(item => !!item);
71
92
  if (connectors.length === 0) {
72
93
  // Not config connector for this wallet factory, ignore it.
73
94
  return null;
74
95
  }
75
96
  return factory.create(connectors);
76
97
  }).filter(item => item !== null);
77
- return allWallet;
78
- }, [availableConnectors, walletFactorys]);
98
+ return [...supportWallets, ...autoAddEIP6963Wallets];
99
+ }, [availableConnectors, walletFactorys, eip6963]);
79
100
  const chainList = _react.default.useMemo(() => {
80
101
  return availableChains.map(item => {
81
102
  const c = chainAssets?.find(asset => {
@@ -126,8 +147,8 @@ const AntDesignWeb3ConfigProvider = props => {
126
147
  availableWallets: wallets,
127
148
  connect: async wallet => {
128
149
  let connector = await wallet?.getWagmiConnector?.();
129
- if (!connector) {
130
- connector = availableConnectors.find(item => item.name === wallet?.name);
150
+ if (!connector && wallet) {
151
+ connector = findConnectorByName(wallet.name);
131
152
  }
132
153
  if (!connector) {
133
154
  throw new Error(`Can not find connector for ${wallet?.name}`);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { Chain, Locale } from '@ant-design/web3-common';
3
3
  import { QueryClient } from '@tanstack/react-query';
4
4
  import type { Config } from 'wagmi';
5
- import type { WalletFactory } from '../interface';
5
+ import type { EIP6963Config, WalletFactory } from '../interface';
6
6
  export type WagmiWeb3ConfigProviderProps = {
7
7
  config: Config;
8
8
  locale?: Locale;
@@ -11,5 +11,6 @@ export type WagmiWeb3ConfigProviderProps = {
11
11
  ens?: boolean;
12
12
  queryClient?: QueryClient;
13
13
  balance?: boolean;
14
+ eip6963?: EIP6963Config;
14
15
  };
15
- export declare function WagmiWeb3ConfigProvider({ children, wallets, chains, ens, locale, balance, config, queryClient, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps>): React.ReactElement;
16
+ export declare function WagmiWeb3ConfigProvider({ children, wallets, chains, ens, locale, balance, config, queryClient, eip6963, ...restProps }: React.PropsWithChildren<WagmiWeb3ConfigProviderProps>): React.ReactElement;
@@ -22,6 +22,7 @@ function WagmiWeb3ConfigProvider({
22
22
  balance,
23
23
  config,
24
24
  queryClient,
25
+ eip6963,
25
26
  ...restProps
26
27
  }) {
27
28
  const chainAssets = [...chains, _web3Assets.Mainnet];
@@ -41,6 +42,7 @@ function WagmiWeb3ConfigProvider({
41
42
  availableConnectors: config.connectors,
42
43
  ens: ens,
43
44
  balance: balance,
45
+ eip6963: eip6963,
44
46
  children: children
45
47
  })
46
48
  })
@@ -0,0 +1,3 @@
1
+ import type { EthereumWallet } from '../interface';
2
+ export declare const EIP6963_CONNECTOR = "EIP6963";
3
+ export declare const EIP6963Wallet: EthereumWallet;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EIP6963_CONNECTOR = exports.EIP6963Wallet = void 0;
7
+ const EIP6963_CONNECTOR = exports.EIP6963_CONNECTOR = 'EIP6963';
8
+
9
+ // EIP6963Wallet not export from @ant-design/web3-wagmi, only used in internal
10
+ const EIP6963Wallet = metadata => {
11
+ return {
12
+ connectors: [EIP6963_CONNECTOR],
13
+ create: connectors => {
14
+ const connector = connectors?.[0];
15
+ const metadata_eip6963 = {
16
+ icon: connector?.icon,
17
+ name: connector.name,
18
+ remark: `Wallet ${connector?.name} detected`,
19
+ key: connector?.id
20
+ };
21
+ return {
22
+ ...metadata_eip6963,
23
+ hasWalletReady: async () => {
24
+ return !!(await connector?.getProvider());
25
+ },
26
+ hasExtensionInstalled: async () => {
27
+ return !!(await connector?.getProvider());
28
+ },
29
+ ...metadata
30
+ };
31
+ }
32
+ };
33
+ };
34
+ exports.EIP6963Wallet = EIP6963Wallet;
@@ -1,2 +1,2 @@
1
- import { EthereumWallet } from '../interface';
1
+ import type { EthereumWallet } from '../interface';
2
2
  export declare const OkxWallet: EthereumWallet;
@@ -1,2 +1,2 @@
1
- import { EthereumWallet } from '../interface';
1
+ import type { EthereumWallet } from '../interface';
2
2
  export declare const TokenPocket: EthereumWallet;
@@ -1,4 +1,4 @@
1
- import { WalletMetadata } from '@ant-design/web3-common';
1
+ import type { WalletMetadata } from '@ant-design/web3-common';
2
2
  import type { WalletFactory } from '../interface';
3
3
  type EthereumWalletConnect = (metadata?: Partial<WalletMetadata> & {
4
4
  useWalletConnectOfficialModal?: boolean;
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "@ant-design/web3-wagmi",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "main": "dist/lib/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "typings": "dist/esm/index.d.ts",
7
+ "exports": {
8
+ "import": "./dist/esm/index.js",
9
+ "require": "./dist/lib/index.js",
10
+ "types": "./dist/esm/index.d.ts"
11
+ },
7
12
  "files": [
8
13
  "dist",
9
14
  "CHANGELOG.md",
@@ -34,8 +39,8 @@
34
39
  "@wagmi/core": "^2.0.0",
35
40
  "viem": "2.0.0",
36
41
  "@tanstack/react-query": "^5.17.0",
37
- "@ant-design/web3-assets": "1.2.0",
38
- "@ant-design/web3-common": "1.3.1"
42
+ "@ant-design/web3-assets": "1.2.1",
43
+ "@ant-design/web3-common": "1.3.2"
39
44
  },
40
45
  "devDependencies": {
41
46
  "@types/debug": "^4.1.12",