@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.
- package/CHANGELOG.md +31 -0
- package/dist/esm/interface.d.ts +5 -4
- package/dist/esm/wagmi-provider/config-provider.d.ts +6 -4
- package/dist/esm/wagmi-provider/config-provider.js +41 -41
- package/dist/esm/wagmi-provider/index.d.ts +8 -5
- package/dist/esm/wagmi-provider/index.js +27 -54
- package/dist/esm/wagmi-provider/methods/addNameToAccount.d.ts +2 -1
- package/dist/esm/wagmi-provider/methods/addNameToAccount.js +4 -4
- package/dist/esm/wagmi-provider/methods/getNFTMetadata.d.ts +2 -1
- package/dist/esm/wagmi-provider/methods/getNFTMetadata.js +3 -3
- package/dist/esm/wallets/coinbase-wallet.d.ts +2 -2
- package/dist/esm/wallets/coinbase-wallet.js +25 -23
- package/dist/esm/wallets/index.d.ts +1 -0
- package/dist/esm/wallets/index.js +2 -1
- package/dist/esm/wallets/meta-mask.d.ts +2 -2
- package/dist/esm/wallets/meta-mask.js +44 -42
- package/dist/esm/wallets/okx-wallet.d.ts +2 -0
- package/dist/esm/wallets/okx-wallet.js +11 -0
- package/dist/esm/wallets/safeheron.d.ts +2 -2
- package/dist/esm/wallets/safeheron.js +50 -40
- package/dist/esm/wallets/token-pocket.d.ts +2 -2
- package/dist/esm/wallets/token-pocket.js +9 -1
- package/dist/esm/wallets/universal-wallet.d.ts +2 -2
- package/dist/esm/wallets/universal-wallet.js +72 -33
- package/dist/esm/wallets/wallet-connect.d.ts +6 -1
- package/dist/esm/wallets/wallet-connect.js +57 -47
- package/dist/lib/interface.d.ts +5 -4
- package/dist/lib/wagmi-provider/config-provider.d.ts +6 -4
- package/dist/lib/wagmi-provider/config-provider.js +26 -29
- package/dist/lib/wagmi-provider/index.d.ts +8 -5
- package/dist/lib/wagmi-provider/index.js +21 -35
- package/dist/lib/wagmi-provider/methods/addNameToAccount.d.ts +2 -1
- package/dist/lib/wagmi-provider/methods/addNameToAccount.js +2 -2
- package/dist/lib/wagmi-provider/methods/getNFTMetadata.d.ts +2 -1
- package/dist/lib/wagmi-provider/methods/getNFTMetadata.js +2 -2
- package/dist/lib/wallets/coinbase-wallet.d.ts +2 -2
- package/dist/lib/wallets/coinbase-wallet.js +15 -11
- package/dist/lib/wallets/index.d.ts +1 -0
- package/dist/lib/wallets/index.js +11 -0
- package/dist/lib/wallets/meta-mask.d.ts +2 -2
- package/dist/lib/wallets/meta-mask.js +18 -14
- package/dist/lib/wallets/okx-wallet.d.ts +2 -0
- package/dist/lib/wallets/okx-wallet.js +15 -0
- package/dist/lib/wallets/safeheron.d.ts +2 -2
- package/dist/lib/wallets/safeheron.js +18 -14
- package/dist/lib/wallets/token-pocket.d.ts +2 -2
- package/dist/lib/wallets/token-pocket.js +7 -1
- package/dist/lib/wallets/universal-wallet.d.ts +2 -2
- package/dist/lib/wallets/universal-wallet.js +14 -14
- package/dist/lib/wallets/wallet-connect.d.ts +6 -1
- package/dist/lib/wallets/wallet-connect.js +28 -20
- 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
|
-
|
|
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
|
-
|
|
33
|
-
} = (0, _wagmi.
|
|
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.
|
|
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 '
|
|
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
|
-
|
|
72
|
-
if (
|
|
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(
|
|
75
|
+
return factory.create(connectors);
|
|
84
76
|
}).filter(item => item !== null);
|
|
85
77
|
return allWallet;
|
|
86
|
-
}, [availableConnectors,
|
|
78
|
+
}, [availableConnectors, walletFactorys]);
|
|
87
79
|
const chainList = _react.default.useMemo(() => {
|
|
88
80
|
return availableChains.map(item => {
|
|
89
|
-
const c =
|
|
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,
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
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
|
|
3
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
4
|
+
import type { Config } from 'wagmi';
|
|
4
5
|
import type { WalletFactory } from '../interface';
|
|
5
|
-
export type WagmiWeb3ConfigProviderProps
|
|
6
|
-
config: Config
|
|
6
|
+
export type WagmiWeb3ConfigProviderProps = {
|
|
7
|
+
config: Config;
|
|
7
8
|
locale?: Locale;
|
|
8
|
-
|
|
9
|
+
wallets?: WalletFactory[];
|
|
10
|
+
chains?: Chain[];
|
|
9
11
|
ens?: boolean;
|
|
12
|
+
queryClient?: QueryClient;
|
|
10
13
|
balance?: boolean;
|
|
11
14
|
};
|
|
12
|
-
export declare function WagmiWeb3ConfigProvider
|
|
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
|
-
|
|
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
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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)(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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 {
|
|
2
|
-
export declare const CoinbaseWallet:
|
|
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 =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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;
|
|
@@ -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 {
|
|
2
|
-
export declare const MetaMask:
|
|
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 =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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,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 {
|
|
2
|
-
export declare const SafeheronWallet:
|
|
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 =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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 {
|
|
2
|
-
export declare const TokenPocket:
|
|
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 =
|
|
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
|
-
|
|
6
|
+
connectors: string[];
|
|
7
7
|
constructor(wallet: WalletMetadata);
|
|
8
|
-
create: (
|
|
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
|
-
|
|
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.
|
|
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.
|
|
18
|
+
this.connectors.push('WalletConnect');
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
create =
|
|
22
|
-
const
|
|
23
|
-
const
|
|
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
|
|
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?.
|
|
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
|
-
|
|
50
|
+
const installed = await hasExtensionInstalled();
|
|
51
|
+
return !!(installed || walletConnector);
|
|
52
52
|
},
|
|
53
|
-
getQrCode: walletConnector
|
|
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
|
-
|
|
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 =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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.
|
|
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
|
-
"@
|
|
35
|
-
"
|
|
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": "^
|
|
46
|
+
"wagmi": "^2.0.0"
|
|
45
47
|
},
|
|
46
48
|
"publishConfig": {
|
|
47
49
|
"registry": "https://registry.npmjs.org",
|