miniwallet 0.1.8 → 0.1.9
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/dist/miniwallet.js +15 -46
- package/package.json +1 -1
package/dist/miniwallet.js
CHANGED
|
@@ -83,7 +83,7 @@ function MiniWalletProvider({ children, chains = [] }) {
|
|
|
83
83
|
const [selectedWalletId, setSelectedWalletId] = useState("");
|
|
84
84
|
const [selectedChainId, setSelectedChainId] = useState(0);
|
|
85
85
|
const [balanceValue, setBalanceValue] = useState("");
|
|
86
|
-
const [connectingWallet
|
|
86
|
+
const [connectingWallet] = useState(null);
|
|
87
87
|
const eip6963ProvidersRef = useRef({});
|
|
88
88
|
const [providersVersion, setProvidersVersion] = useState(0);
|
|
89
89
|
const chainsList = useMemo(() => {
|
|
@@ -107,14 +107,13 @@ function MiniWalletProvider({ children, chains = [] }) {
|
|
|
107
107
|
}, [balanceValue, selectedChain]);
|
|
108
108
|
const connect = useCallback(async (w) => {
|
|
109
109
|
const { id } = w;
|
|
110
|
+
console.log("eip6963Providers: ", eip6963ProvidersRef.current);
|
|
111
|
+
const provider = eip6963ProvidersRef.current[id];
|
|
112
|
+
if (!provider || typeof provider.request !== "function") {
|
|
113
|
+
alert("请安装钱包");
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
110
116
|
try {
|
|
111
|
-
console.log("eip6963Providers: ", eip6963ProvidersRef.current);
|
|
112
|
-
const provider = eip6963ProvidersRef.current[id];
|
|
113
|
-
if (!provider || typeof provider.request !== "function") {
|
|
114
|
-
alert("请安装钱包");
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
setConnectingWallet(w);
|
|
118
117
|
console.log("provider: ", provider);
|
|
119
118
|
const accounts = await provider.request({ method: "eth_requestAccounts" });
|
|
120
119
|
console.log("accounts: ", accounts);
|
|
@@ -124,7 +123,6 @@ function MiniWalletProvider({ children, chains = [] }) {
|
|
|
124
123
|
setSelectedWalletId(id);
|
|
125
124
|
setSelectedChainId(chainId);
|
|
126
125
|
localStorage.setItem("miniwallet:lastWalletId", id);
|
|
127
|
-
setConnectingWallet(null);
|
|
128
126
|
} catch (error) {
|
|
129
127
|
console.log("error: ", error);
|
|
130
128
|
const e = error;
|
|
@@ -135,7 +133,6 @@ function MiniWalletProvider({ children, chains = [] }) {
|
|
|
135
133
|
return;
|
|
136
134
|
}
|
|
137
135
|
alert(`Connect failed${errCode && `\n${errCode}`}${errMsg && `\n${errMsg}`}`);
|
|
138
|
-
setConnectingWallet(null);
|
|
139
136
|
}
|
|
140
137
|
}, []);
|
|
141
138
|
const disconnect = useCallback(async () => {
|
|
@@ -295,9 +292,8 @@ var disconnect_default = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalon
|
|
|
295
292
|
//#endregion
|
|
296
293
|
//#region src/MiniWalletButton.tsx
|
|
297
294
|
function MiniWalletButton({ label = "Connect Wallet" }) {
|
|
298
|
-
const { account, balance, isConnected,
|
|
295
|
+
const { account, balance, isConnected, selectedChain, wallet, switchChain, chains, connect, disconnect } = useMiniWallet();
|
|
299
296
|
const [modalOpen, setModalOpen] = useState(false);
|
|
300
|
-
const [isConnectCalled, setIsConnectCalled] = useState(false);
|
|
301
297
|
const [accountModalOpen, setAccountModalOpen] = useState(false);
|
|
302
298
|
const [copyLabel, setCopyLabel] = useState("复制地址");
|
|
303
299
|
const accountText = useMemo(() => {
|
|
@@ -322,11 +318,8 @@ function MiniWalletButton({ label = "Connect Wallet" }) {
|
|
|
322
318
|
}
|
|
323
319
|
}, [account]);
|
|
324
320
|
useEffect(() => {
|
|
325
|
-
if (
|
|
326
|
-
|
|
327
|
-
setAccountModalOpen(false);
|
|
328
|
-
}
|
|
329
|
-
}, [connectingWallet]);
|
|
321
|
+
if (isConnected) setModalOpen(false);
|
|
322
|
+
}, [isConnected]);
|
|
330
323
|
return isConnected ? /* @__PURE__ */ jsxs("section", {
|
|
331
324
|
className: "inline-flex items-center justify-center text-center",
|
|
332
325
|
children: [
|
|
@@ -441,10 +434,7 @@ function MiniWalletButton({ label = "Connect Wallet" }) {
|
|
|
441
434
|
type: "button",
|
|
442
435
|
"aria-label": "Close",
|
|
443
436
|
className: "cursor-pointer rounded-full p-1 hover:bg-gray-100",
|
|
444
|
-
onClick:
|
|
445
|
-
setIsConnectCalled(false);
|
|
446
|
-
closeModal();
|
|
447
|
-
},
|
|
437
|
+
onClick: closeModal,
|
|
448
438
|
children: /* @__PURE__ */ jsxs("svg", {
|
|
449
439
|
xmlns: "http://www.w3.org/2000/svg",
|
|
450
440
|
viewBox: "0 0 24 24",
|
|
@@ -455,32 +445,11 @@ function MiniWalletButton({ label = "Connect Wallet" }) {
|
|
|
455
445
|
children: [/* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }), /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })]
|
|
456
446
|
})
|
|
457
447
|
})]
|
|
458
|
-
}), /* @__PURE__ */
|
|
448
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
459
449
|
className: "relative w-full space-y-4",
|
|
460
|
-
children:
|
|
461
|
-
className: "absolute inset-0 mb-0 flex flex-col items-center justify-center rounded-xl bg-[rgba(255,255,255,0.9)] text-black",
|
|
462
|
-
children: [
|
|
463
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
464
|
-
"正在连接",
|
|
465
|
-
connectingWallet.name,
|
|
466
|
-
"..."
|
|
467
|
-
] }),
|
|
468
|
-
/* @__PURE__ */ jsx("div", {
|
|
469
|
-
className: "my-1.5 text-xs",
|
|
470
|
-
children: "请在扩展中确认连接"
|
|
471
|
-
}),
|
|
472
|
-
/* @__PURE__ */ jsx("img", {
|
|
473
|
-
src: "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1783646544006'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='78324'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32'%20height='32'%3e%3cpath%20d='M512%20907c-24.852%200-45-20.148-45-45s20.148-45%2045-45c168.446%200%20305-136.554%20305-305S680.446%20207%20512%20207%20207%20343.554%20207%20512c0%2024.852-20.148%2045-45%2045S117%20536.852%20117%20512c0-218.152%20176.848-395%20395-395S907%20293.848%20907%20512%20730.152%20907%20512%20907z'%20fill='%23444444'%20p-id='78325'%3e%3c/path%3e%3c/svg%3e",
|
|
474
|
-
alt: "spin",
|
|
475
|
-
className: "h-8 w-8 animate-[spin_2s_linear_infinite]"
|
|
476
|
-
})
|
|
477
|
-
]
|
|
478
|
-
}), WALLETS.map((w) => /* @__PURE__ */ jsxs("button", {
|
|
450
|
+
children: WALLETS.map((w) => /* @__PURE__ */ jsxs("button", {
|
|
479
451
|
type: "button",
|
|
480
|
-
onClick: () =>
|
|
481
|
-
setIsConnectCalled(true);
|
|
482
|
-
connect(w);
|
|
483
|
-
},
|
|
452
|
+
onClick: () => connect(w),
|
|
484
453
|
className: "flex w-full cursor-pointer items-center gap-2 rounded-xl border border-gray-300 px-4 py-2 hover:bg-gray-100",
|
|
485
454
|
children: [/* @__PURE__ */ jsx("img", {
|
|
486
455
|
src: w.icon,
|
|
@@ -497,7 +466,7 @@ function MiniWalletButton({ label = "Connect Wallet" }) {
|
|
|
497
466
|
]
|
|
498
467
|
})]
|
|
499
468
|
})]
|
|
500
|
-
}, w.id))
|
|
469
|
+
}, w.id))
|
|
501
470
|
})]
|
|
502
471
|
})
|
|
503
472
|
})] });
|