@ant-design/web3-wagmi 1.1.2 → 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.
- package/CHANGELOG.md +33 -0
- package/dist/esm/interface.d.ts +7 -3
- package/dist/esm/wagmi-provider/config-provider.d.ts +7 -5
- package/dist/esm/wagmi-provider/config-provider.js +64 -31
- package/dist/esm/wagmi-provider/index.d.ts +8 -5
- package/dist/esm/wagmi-provider/index.js +28 -48
- 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 +4 -4
- 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 -24
- package/dist/esm/wallets/safeheron.d.ts +2 -2
- package/dist/esm/wallets/safeheron.js +50 -23
- package/dist/esm/wallets/token-pocket.d.ts +2 -2
- package/dist/esm/wallets/token-pocket.js +3 -26
- package/dist/esm/wallets/universal-wallet.d.ts +9 -0
- package/dist/esm/wallets/universal-wallet.js +151 -0
- 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 +7 -3
- package/dist/lib/wagmi-provider/config-provider.d.ts +7 -5
- package/dist/lib/wagmi-provider/config-provider.js +38 -20
- package/dist/lib/wagmi-provider/index.d.ts +8 -5
- package/dist/lib/wagmi-provider/index.js +22 -29
- 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 -11
- package/dist/lib/wallets/safeheron.d.ts +2 -2
- package/dist/lib/wallets/safeheron.js +18 -11
- package/dist/lib/wallets/token-pocket.d.ts +2 -2
- package/dist/lib/wallets/token-pocket.js +8 -11
- package/dist/lib/wallets/universal-wallet.d.ts +9 -0
- package/dist/lib/wallets/universal-wallet.js +57 -0
- 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,23 +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
|
-
|
|
61
|
-
|
|
60
|
+
availableConnectors.forEach(connector => {
|
|
61
|
+
// check use assets config and console.error for alert
|
|
62
|
+
const walletFactory = walletFactorys?.find(item => item.connectors?.includes(connector.name));
|
|
62
63
|
if (!walletFactory?.create) {
|
|
63
|
-
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'.`);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// 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);
|
|
71
|
+
if (connectors.length === 0) {
|
|
72
|
+
// Not config connector for this wallet factory, ignore it.
|
|
64
73
|
return null;
|
|
65
74
|
}
|
|
66
|
-
return
|
|
75
|
+
return factory.create(connectors);
|
|
67
76
|
}).filter(item => item !== null);
|
|
68
|
-
|
|
77
|
+
return allWallet;
|
|
78
|
+
}, [availableConnectors, walletFactorys]);
|
|
69
79
|
const chainList = _react.default.useMemo(() => {
|
|
70
80
|
return availableChains.map(item => {
|
|
71
|
-
const c =
|
|
81
|
+
const c = chainAssets?.find(asset => {
|
|
72
82
|
return asset.id === item.id;
|
|
73
83
|
});
|
|
74
84
|
if (c?.id) {
|
|
@@ -82,7 +92,7 @@ const AntDesignWeb3ConfigProvider = props => {
|
|
|
82
92
|
return null;
|
|
83
93
|
}
|
|
84
94
|
}).filter(item => item !== null);
|
|
85
|
-
}, [availableChains,
|
|
95
|
+
}, [availableChains, chainAssets]);
|
|
86
96
|
_react.default.useEffect(() => {
|
|
87
97
|
if (!chain && currentChain) {
|
|
88
98
|
// not connected any chain, keep current chain
|
|
@@ -92,7 +102,7 @@ const AntDesignWeb3ConfigProvider = props => {
|
|
|
92
102
|
if (!currentWagmiChain) {
|
|
93
103
|
return;
|
|
94
104
|
}
|
|
95
|
-
let c =
|
|
105
|
+
let c = chainAssets?.find(item => item.id === currentWagmiChain?.id);
|
|
96
106
|
if (!c?.id) {
|
|
97
107
|
c = {
|
|
98
108
|
id: currentWagmiChain.id,
|
|
@@ -101,7 +111,7 @@ const AntDesignWeb3ConfigProvider = props => {
|
|
|
101
111
|
}
|
|
102
112
|
setCurrentChain(c);
|
|
103
113
|
return;
|
|
104
|
-
}, [chain,
|
|
114
|
+
}, [chain, chainAssets, availableChains, currentChain]);
|
|
105
115
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_web3Common.Web3ConfigProvider, {
|
|
106
116
|
locale: locale,
|
|
107
117
|
availableChains: chainList,
|
|
@@ -115,7 +125,13 @@ const AntDesignWeb3ConfigProvider = props => {
|
|
|
115
125
|
} : undefined,
|
|
116
126
|
availableWallets: wallets,
|
|
117
127
|
connect: async wallet => {
|
|
118
|
-
|
|
128
|
+
let connector = await wallet?.getWagmiConnector?.();
|
|
129
|
+
if (!connector) {
|
|
130
|
+
connector = availableConnectors.find(item => item.name === wallet?.name);
|
|
131
|
+
}
|
|
132
|
+
if (!connector) {
|
|
133
|
+
throw new Error(`Can not find connector for ${wallet?.name}`);
|
|
134
|
+
}
|
|
119
135
|
await connectAsync({
|
|
120
136
|
connector,
|
|
121
137
|
chainId: currentChain?.id
|
|
@@ -129,13 +145,15 @@ const AntDesignWeb3ConfigProvider = props => {
|
|
|
129
145
|
// hava not connected any chain
|
|
130
146
|
setCurrentChain(c);
|
|
131
147
|
} else {
|
|
132
|
-
|
|
148
|
+
switchChain?.({
|
|
149
|
+
chainId: c.id
|
|
150
|
+
});
|
|
133
151
|
}
|
|
134
152
|
},
|
|
135
153
|
getNFTMetadata: async ({
|
|
136
154
|
address: contractAddress,
|
|
137
155
|
tokenId
|
|
138
|
-
}) => (0, _methods.getNFTMetadata)(contractAddress, tokenId, chain?.id),
|
|
156
|
+
}) => (0, _methods.getNFTMetadata)(config, contractAddress, tokenId, chain?.id),
|
|
139
157
|
children: children
|
|
140
158
|
});
|
|
141
159
|
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PublicClient, WebSocketPublicClient, Config } from 'wagmi';
|
|
3
2
|
import type { Chain, Locale } from '@ant-design/web3-common';
|
|
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;
|
|
@@ -5,51 +5,44 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.WagmiWeb3ConfigProvider = WagmiWeb3ConfigProvider;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _web3Assets = require("@ant-design/web3-assets");
|
|
9
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
8
10
|
var _wagmi = require("wagmi");
|
|
9
11
|
var _configProvider = require("./config-provider");
|
|
10
|
-
var _web3Assets = require("@ant-design/web3-assets");
|
|
11
|
-
var _wallets = require("../wallets");
|
|
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
|
-
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, {
|
|
43
32
|
config: config,
|
|
44
33
|
...restProps,
|
|
45
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
+
})
|
|
53
46
|
})
|
|
54
47
|
});
|
|
55
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;
|
|
@@ -57,4 +57,15 @@ Object.keys(_safeheron).forEach(function (key) {
|
|
|
57
57
|
return _safeheron[key];
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
});
|
|
61
|
+
var _universalWallet = require("./universal-wallet");
|
|
62
|
+
Object.keys(_universalWallet).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _universalWallet[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _universalWallet[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
60
71
|
});
|
|
@@ -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,14 +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
|
-
|
|
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 {
|
|
2
|
-
export declare const SafeheronWallet:
|
|
1
|
+
import type { EthereumWallet } from '../interface';
|
|
2
|
+
export declare const SafeheronWallet: EthereumWallet;
|
|
@@ -5,14 +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
|
-
|
|
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;
|
|
@@ -5,14 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TokenPocket = void 0;
|
|
7
7
|
var _web3Assets = require("@ant-design/web3-assets");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
};
|
|
8
|
+
var _universalWallet = require("./universal-wallet");
|
|
9
|
+
const TokenPocket = metadata => {
|
|
10
|
+
return new _universalWallet.UniversalWallet({
|
|
11
|
+
..._web3Assets.metadata_TokenPocket,
|
|
12
|
+
...metadata
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
exports.TokenPocket = TokenPocket;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WalletMetadata } from '@ant-design/web3-common';
|
|
2
|
+
import type { Connector } from 'wagmi';
|
|
3
|
+
import type { WalletFactory, WalletUseInWagmiAdapter } from '../interface';
|
|
4
|
+
export declare class UniversalWallet implements WalletFactory {
|
|
5
|
+
private wallet;
|
|
6
|
+
connectors: string[];
|
|
7
|
+
constructor(wallet: WalletMetadata);
|
|
8
|
+
create: (connectors?: readonly Connector[]) => WalletUseInWagmiAdapter;
|
|
9
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UniversalWallet = void 0;
|
|
7
|
+
class UniversalWallet {
|
|
8
|
+
connectors = [];
|
|
9
|
+
constructor(wallet) {
|
|
10
|
+
this.wallet = wallet;
|
|
11
|
+
if (wallet.extensions) {
|
|
12
|
+
// support injected connector
|
|
13
|
+
// https://wagmi.sh/react/connectors/injected
|
|
14
|
+
this.connectors.push(wallet.name);
|
|
15
|
+
}
|
|
16
|
+
if (wallet.app) {
|
|
17
|
+
// support WalletConnect https://wagmi.sh/react/connectors/walletConnect
|
|
18
|
+
this.connectors.push('WalletConnect');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
create = connectors => {
|
|
22
|
+
const walletConnector = connectors?.find(item => item.name === 'WalletConnect');
|
|
23
|
+
const injectedConnector = connectors?.find(item => item.name === this.wallet.name);
|
|
24
|
+
const getQrCode = async () => {
|
|
25
|
+
const provider = await walletConnector?.getProvider();
|
|
26
|
+
return new Promise(resolve => {
|
|
27
|
+
provider?.on('display_uri', uri => {
|
|
28
|
+
resolve({
|
|
29
|
+
uri
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const hasExtensionInstalled = async () => {
|
|
35
|
+
const provider = await injectedConnector?.getProvider();
|
|
36
|
+
return !!provider;
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
...this.wallet,
|
|
40
|
+
getWagmiConnector: async () => {
|
|
41
|
+
if (await hasExtensionInstalled()) {
|
|
42
|
+
return injectedConnector;
|
|
43
|
+
}
|
|
44
|
+
return walletConnector;
|
|
45
|
+
},
|
|
46
|
+
hasExtensionInstalled: async () => {
|
|
47
|
+
return hasExtensionInstalled();
|
|
48
|
+
},
|
|
49
|
+
hasWalletReady: async () => {
|
|
50
|
+
const installed = await hasExtensionInstalled();
|
|
51
|
+
return !!(installed || walletConnector);
|
|
52
|
+
},
|
|
53
|
+
getQrCode: walletConnector ? getQrCode : undefined
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.UniversalWallet = UniversalWallet;
|
|
@@ -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": "
|
|
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
|
-
"@
|
|
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.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": "^
|
|
46
|
+
"wagmi": "^2.0.0"
|
|
45
47
|
},
|
|
46
48
|
"publishConfig": {
|
|
47
49
|
"registry": "https://registry.npmjs.org",
|