@suilend/sui-fe-next 2.0.27 → 2.0.28
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/contexts/WalletContext.jsx +17 -34
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -57,7 +57,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
57
57
|
var _a, _b;
|
|
58
58
|
import { useRouter } from "next/router";
|
|
59
59
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
60
|
-
import { createDAppKit } from "@mysten/dapp-kit-core";
|
|
60
|
+
import { createDAppKit, getWalletUniqueIdentifier, } from "@mysten/dapp-kit-core";
|
|
61
61
|
import { DAppKitProvider, useCurrentAccount, useCurrentWallet, useDAppKit, useWalletConnection, useWallets, } from "@mysten/dapp-kit-react";
|
|
62
62
|
import { SuiJsonRpcClient, } from "@mysten/sui/jsonRpc";
|
|
63
63
|
import { Transaction } from "@mysten/sui/transactions";
|
|
@@ -212,16 +212,16 @@ export var useWalletContext = function () { return useContext(WalletContext); };
|
|
|
212
212
|
function Inner(_a) {
|
|
213
213
|
var _b;
|
|
214
214
|
var _this = this;
|
|
215
|
-
var _c, _d
|
|
215
|
+
var _c, _d;
|
|
216
216
|
var appName = _a.appName, children = _a.children;
|
|
217
217
|
var router = useRouter();
|
|
218
218
|
var queryParams = (_b = {},
|
|
219
219
|
_b[WalletContextQueryParams.WALLET] = router.query[WalletContextQueryParams.WALLET],
|
|
220
220
|
_b);
|
|
221
|
-
var
|
|
221
|
+
var _e = useSettingsContext(), rpc = _e.rpc, suiClient = _e.suiClient;
|
|
222
222
|
// WalletConnect via @walletconnect/universal-provider
|
|
223
223
|
// Matches the reference implementation: https://github.com/WalletConnect/react-core-up-sui
|
|
224
|
-
var
|
|
224
|
+
var _f = useState(), wcSession = _f[0], setWcSession = _f[1];
|
|
225
225
|
// Raw address as returned by the wallet (e.g. Fireblocks returns an
|
|
226
226
|
// EVM-length address). We must send this back in WalletConnect request
|
|
227
227
|
// params so the wallet recognises it as its own account.
|
|
@@ -369,7 +369,7 @@ function Inner(_a) {
|
|
|
369
369
|
wallets__web,
|
|
370
370
|
]);
|
|
371
371
|
// Wallet
|
|
372
|
-
var
|
|
372
|
+
var _g = useState(false), isConnectWalletDropdownOpen = _g[0], setIsConnectWalletDropdownOpen = _g[1];
|
|
373
373
|
var rawWallet = useCurrentWallet();
|
|
374
374
|
var wallet = useMemo(function () {
|
|
375
375
|
if (sessionAddress) {
|
|
@@ -489,7 +489,6 @@ function Inner(_a) {
|
|
|
489
489
|
}
|
|
490
490
|
});
|
|
491
491
|
}); }, [rpc.url, connectWallet, disconnectWallet]);
|
|
492
|
-
var PREFERRED_ACCOUNT_KEY = "suilend:preferred-account-address";
|
|
493
492
|
var disconnectWalletWrapper = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
494
493
|
var provider, err_2;
|
|
495
494
|
return __generator(this, function (_a) {
|
|
@@ -510,12 +509,7 @@ function Inner(_a) {
|
|
|
510
509
|
_a.sent();
|
|
511
510
|
showInfoToast("Disconnected wallet");
|
|
512
511
|
_a.label = 5;
|
|
513
|
-
case 5:
|
|
514
|
-
try {
|
|
515
|
-
localStorage.removeItem(PREFERRED_ACCOUNT_KEY);
|
|
516
|
-
}
|
|
517
|
-
catch (_b) { }
|
|
518
|
-
return [3 /*break*/, 7];
|
|
512
|
+
case 5: return [3 /*break*/, 7];
|
|
519
513
|
case 6:
|
|
520
514
|
err_2 = _a.sent();
|
|
521
515
|
showErrorToast("Failed to disconnect wallet", err_2);
|
|
@@ -546,18 +540,24 @@ function Inner(_a) {
|
|
|
546
540
|
? walletConnectSignPersonalMessage
|
|
547
541
|
: function (message) { return signPersonalMessageRaw({ message: message }); };
|
|
548
542
|
}, [sessionAddress, walletConnectSignPersonalMessage, signPersonalMessageRaw]);
|
|
543
|
+
var DAPP_KIT_STORAGE_KEY = "mysten-dapp-kit:selected-wallet-and-address";
|
|
549
544
|
var switchAccountWrapper = useCallback(function (_account, addressNameServiceName) {
|
|
550
|
-
var _a, _b, _c;
|
|
545
|
+
var _a, _b, _c, _d;
|
|
551
546
|
var accountLabel = (_b = (_a = _account === null || _account === void 0 ? void 0 : _account.label) !== null && _a !== void 0 ? _a : addressNameServiceName) !== null && _b !== void 0 ? _b : formatAddress(_account.address);
|
|
552
547
|
try {
|
|
553
548
|
var matchingAccount = (_c = walletConnection.wallet) === null || _c === void 0 ? void 0 : _c.accounts.find(function (a) { return a.address === _account.address; });
|
|
554
549
|
if (!matchingAccount)
|
|
555
550
|
throw new Error("Account not found");
|
|
556
551
|
dAppKit.switchAccount({ account: matchingAccount });
|
|
552
|
+
// Persist to dapp-kit's own storage key so autoconnect restores
|
|
553
|
+
// the correct account on page reload.
|
|
557
554
|
try {
|
|
558
|
-
|
|
555
|
+
var walletId = getWalletUniqueIdentifier(matchingAccount);
|
|
556
|
+
var intents = (_d = walletConnection.supportedIntents) !== null && _d !== void 0 ? _d : [];
|
|
557
|
+
var storageValue = "".concat(walletId.replace(":", "_"), ":").concat(matchingAccount.address, ":").concat(intents.join(","), ":");
|
|
558
|
+
localStorage.setItem(DAPP_KIT_STORAGE_KEY, storageValue);
|
|
559
559
|
}
|
|
560
|
-
catch (
|
|
560
|
+
catch (_e) { }
|
|
561
561
|
showInfoToast("Switched to ".concat(accountLabel), {
|
|
562
562
|
description: (_account === null || _account === void 0 ? void 0 : _account.label)
|
|
563
563
|
? (addressNameServiceName !== null && addressNameServiceName !== void 0 ? addressNameServiceName : formatAddress(_account.address))
|
|
@@ -568,24 +568,7 @@ function Inner(_a) {
|
|
|
568
568
|
showErrorToast("Failed to switch to ".concat(accountLabel), err);
|
|
569
569
|
console.error(err);
|
|
570
570
|
}
|
|
571
|
-
}, [dAppKit,
|
|
572
|
-
// After autoconnect restores the wallet, check if the user had previously
|
|
573
|
-
// selected a different account and switch to it.
|
|
574
|
-
var hasRestoredPreferredAccount = useRef(false);
|
|
575
|
-
useEffect(function () {
|
|
576
|
-
if (hasRestoredPreferredAccount.current)
|
|
577
|
-
return;
|
|
578
|
-
if (!walletConnection.wallet || !accountRes)
|
|
579
|
-
return;
|
|
580
|
-
var preferred = localStorage.getItem(PREFERRED_ACCOUNT_KEY);
|
|
581
|
-
if (!preferred || preferred === accountRes.address)
|
|
582
|
-
return;
|
|
583
|
-
var match = walletConnection.wallet.accounts.find(function (a) { return a.address === preferred; });
|
|
584
|
-
if (!match)
|
|
585
|
-
return;
|
|
586
|
-
hasRestoredPreferredAccount.current = true;
|
|
587
|
-
dAppKit.switchAccount({ account: match });
|
|
588
|
-
}, [walletConnection.wallet, accountRes, dAppKit]);
|
|
571
|
+
}, [dAppKit, walletConnection]);
|
|
589
572
|
// LaunchDarkly
|
|
590
573
|
var ldClient = useLDClient();
|
|
591
574
|
var ldKeyRef = useRef(undefined);
|
|
@@ -935,7 +918,7 @@ function Inner(_a) {
|
|
|
935
918
|
waitForTransactionWithCheck,
|
|
936
919
|
]);
|
|
937
920
|
// Using Ledger
|
|
938
|
-
var
|
|
921
|
+
var _h = useLocalStorage("isUsingLedger-".concat(impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address), false), isUsingLedger = _h[0], setIsUsingLedger = _h[1];
|
|
939
922
|
// Context
|
|
940
923
|
var contextValue = useMemo(function () {
|
|
941
924
|
return {
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sui-fe-next","version":"2.0.
|
|
1
|
+
{"name":"@suilend/sui-fe-next","version":"2.0.28","private":false,"description":"A collection of TypeScript frontend components and hooks","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./contexts/WalletContext":"./contexts/WalletContext.jsx","./contexts/SettingsContext":"./contexts/SettingsContext.jsx","./contexts":"./contexts/index.js","./fetchers":"./fetchers/index.js","./fetchers/useFetchBalances":"./fetchers/useFetchBalances.js","./hooks/useRefreshOnBalancesChange":"./hooks/useRefreshOnBalancesChange.js","./hooks/useLedgerHashDialog":"./hooks/useLedgerHashDialog.js","./hooks/useIsAndroid":"./hooks/useIsAndroid.jsx","./hooks/useCoinMetadataMap":"./hooks/useCoinMetadataMap.js","./hooks":"./hooks/index.js","./hooks/useIsTouchscreen":"./hooks/useIsTouchscreen.jsx","./hooks/useIsiOS":"./hooks/useIsiOS.jsx","./hooks/keypair":"./hooks/keypair.js","./lib/track":"./lib/track.js","./lib":"./lib/index.js","./lib/router":"./lib/router.js","./lib/toasts":"./lib/toasts.jsx","./lib/connector":"./lib/connector.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix src/","prettier":"prettier --write src/","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ./release.js && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/suilend/sui-fe.git"},"bugs":{"url":"https://github.com/suilend/sui-fe/issues"},"dependencies":{"@reown/appkit":"1.8.2","@tanstack/react-query":"^5.60.2","@wallet-standard/app":"^1.1.0","@walletconnect/universal-provider":"2.21.1","bignumber.js":"^9.1.2","launchdarkly-react-client-sdk":"^3.6.0","lodash":"^4.17.21","mixpanel-browser":"^2.72.0","next":"^15.0.3","react":"18.3.1","react-dom":"18.3.1","react-responsive":"^10.0.0","sonner":"1.4.41","swr":"^2.2.5","tailwind-merge":"^2.5.4","usehooks-ts":"^3.1.1"},"devDependencies":{"@tsconfig/next":"^2.0.3","@types/lodash":"^4.17.13","@types/node":"^22.9.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","eslint":"^9.14.0","eslint-config-next":"^15.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.1","prettier":"^3.3.3","ts-node":"^10.9.2","typescript":"^5.6.3"},"peerDependencies":{"@mysten/dapp-kit-core":"1.0.3","@mysten/dapp-kit-react":"1.0.1","@mysten/sui":"2.3.1","@mysten/wallet-standard":"0.20.0","@suilend/sui-fe":"^2.0.10"}}
|