@suilend/sui-fe-next 2.0.25 → 2.0.27

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.
@@ -396,7 +396,7 @@ function Inner(_a) {
396
396
  method: WC_SUI_METHODS.SIGN_PERSONAL_MESSAGE,
397
397
  params: {
398
398
  message: message.toString(),
399
- address: wcRawAddress !== null && wcRawAddress !== void 0 ? wcRawAddress : sessionAddress,
399
+ account: wcRawAddress !== null && wcRawAddress !== void 0 ? wcRawAddress : sessionAddress,
400
400
  },
401
401
  }, "sui:mainnet")];
402
402
  case 2:
@@ -489,6 +489,7 @@ function Inner(_a) {
489
489
  }
490
490
  });
491
491
  }); }, [rpc.url, connectWallet, disconnectWallet]);
492
+ var PREFERRED_ACCOUNT_KEY = "suilend:preferred-account-address";
492
493
  var disconnectWalletWrapper = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
493
494
  var provider, err_2;
494
495
  return __generator(this, function (_a) {
@@ -509,7 +510,12 @@ function Inner(_a) {
509
510
  _a.sent();
510
511
  showInfoToast("Disconnected wallet");
511
512
  _a.label = 5;
512
- case 5: return [3 /*break*/, 7];
513
+ case 5:
514
+ try {
515
+ localStorage.removeItem(PREFERRED_ACCOUNT_KEY);
516
+ }
517
+ catch (_b) { }
518
+ return [3 /*break*/, 7];
513
519
  case 6:
514
520
  err_2 = _a.sent();
515
521
  showErrorToast("Failed to disconnect wallet", err_2);
@@ -548,6 +554,10 @@ function Inner(_a) {
548
554
  if (!matchingAccount)
549
555
  throw new Error("Account not found");
550
556
  dAppKit.switchAccount({ account: matchingAccount });
557
+ try {
558
+ localStorage.setItem(PREFERRED_ACCOUNT_KEY, _account.address);
559
+ }
560
+ catch (_d) { }
551
561
  showInfoToast("Switched to ".concat(accountLabel), {
552
562
  description: (_account === null || _account === void 0 ? void 0 : _account.label)
553
563
  ? (addressNameServiceName !== null && addressNameServiceName !== void 0 ? addressNameServiceName : formatAddress(_account.address))
@@ -559,6 +569,23 @@ function Inner(_a) {
559
569
  console.error(err);
560
570
  }
561
571
  }, [dAppKit, (_e = walletConnection.wallet) === null || _e === void 0 ? void 0 : _e.accounts]);
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]);
562
589
  // LaunchDarkly
563
590
  var ldClient = useLDClient();
564
591
  var ldKeyRef = useRef(undefined);
@@ -682,7 +709,7 @@ function Inner(_a) {
682
709
  });
683
710
  }); }, [suiClient]);
684
711
  var signExecuteAndWaitForTransaction = useCallback(function (transaction, onSetGasBudget, onSign, onExecute) { return __awaiter(_this, void 0, void 0, function () {
685
- var _address, provider, txBytes, txBase64, params, topic_1, signClient_1, pingErr_1, debugHandler, pendingBefore, wcRequest, methods, signRes, execDigest, _i, methods_1, method, res_1, err_5, execRes, msafeWallet, msafeFeature, msafeAccount, usedSignOnly, signedTransaction, res1, err_6, message, res, digest, err_7;
712
+ var _address, provider_1, txBytes, txBase64, wcAddress, params, topic, signClient, pingErr_1, debugHandler, pendingBefore, wcRequest, methods, signRes, execDigest, _i, methods_1, method, res_1, err_5, execRes, msafeWallet, msafeFeature, msafeAccount, usedSignOnly, signedTransaction, res1, err_6, message, res, digest, err_7;
686
713
  var _a, _b, _c, _d, _e;
687
714
  return __generator(this, function (_f) {
688
715
  switch (_f.label) {
@@ -708,30 +735,31 @@ function Inner(_a) {
708
735
  if (!sessionAddress) return [3 /*break*/, 21];
709
736
  return [4 /*yield*/, getWalletConnectProvider()];
710
737
  case 2:
711
- provider = _f.sent();
738
+ provider_1 = _f.sent();
712
739
  transaction.setSender(sessionAddress);
713
740
  return [4 /*yield*/, transaction.build({ client: suiClient })];
714
741
  case 3:
715
742
  txBytes = _f.sent();
716
743
  txBase64 = toBase64(txBytes);
744
+ wcAddress = wcRawAddress !== null && wcRawAddress !== void 0 ? wcRawAddress : sessionAddress;
717
745
  params = {
718
746
  transaction: txBase64,
719
- address: wcRawAddress !== null && wcRawAddress !== void 0 ? wcRawAddress : sessionAddress,
747
+ account: wcAddress,
720
748
  };
721
- topic_1 = (_a = provider.session) === null || _a === void 0 ? void 0 : _a.topic;
722
- console.log("[WalletContext] WalletConnect — session topic:", topic_1);
723
- console.log("[WalletContext] WalletConnect — session namespaces:", JSON.stringify((_b = provider.session) === null || _b === void 0 ? void 0 : _b.namespaces));
749
+ topic = (_a = provider_1.session) === null || _a === void 0 ? void 0 : _a.topic;
750
+ console.log("[WalletContext] WalletConnect — session topic:", topic);
751
+ console.log("[WalletContext] WalletConnect — session namespaces:", JSON.stringify((_b = provider_1.session) === null || _b === void 0 ? void 0 : _b.namespaces));
724
752
  console.log("[WalletContext] WalletConnect — request params:", params);
725
- if (!topic_1)
753
+ if (!topic)
726
754
  throw new Error("WalletConnect session not found");
727
- signClient_1 = provider.client;
755
+ signClient = provider_1.client;
728
756
  // Debug: full session dump
729
- console.log("[WalletContext] WalletConnect — full session:", JSON.stringify(provider.session, null, 2));
730
- console.log("[WalletContext] WalletConnect — relay connected:", signClient_1.core.relayer.connected);
757
+ console.log("[WalletContext] WalletConnect — full session:", JSON.stringify(provider_1.session, null, 2));
758
+ console.log("[WalletContext] WalletConnect — relay connected:", signClient.core.relayer.connected);
731
759
  _f.label = 4;
732
760
  case 4:
733
761
  _f.trys.push([4, 6, , 7]);
734
- return [4 /*yield*/, signClient_1.ping({ topic: topic_1 })];
762
+ return [4 /*yield*/, signClient.ping({ topic: topic })];
735
763
  case 5:
736
764
  _f.sent();
737
765
  console.log("[WalletContext] WalletConnect — ping succeeded (peer is alive)");
@@ -744,8 +772,8 @@ function Inner(_a) {
744
772
  debugHandler = function (event) {
745
773
  console.log("[WalletContext] WalletConnect — relay message received:", event);
746
774
  };
747
- signClient_1.core.relayer.on("message", debugHandler);
748
- pendingBefore = (_e = (_d = (_c = signClient_1.pendingRequest).getAll) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : [];
775
+ signClient.core.relayer.on("message", debugHandler);
776
+ pendingBefore = (_e = (_d = (_c = signClient.pendingRequest).getAll) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : [];
749
777
  console.log("[WalletContext] WalletConnect — pending requests before:", Array.isArray(pendingBefore) ? pendingBefore.length : pendingBefore);
750
778
  wcRequest = function (method, requestParams, timeoutMs) {
751
779
  if (timeoutMs === void 0) { timeoutMs = 15000; }
@@ -758,14 +786,9 @@ function Inner(_a) {
758
786
  method: method,
759
787
  params: requestParams,
760
788
  chainId: "sui:mainnet",
761
- topic: topic_1,
762
789
  }));
763
- signClient_1
764
- .request({
765
- topic: topic_1,
766
- chainId: "sui:mainnet",
767
- request: { method: method, params: requestParams },
768
- })
790
+ provider_1
791
+ .request({ method: method, params: requestParams }, "sui:mainnet")
769
792
  .then(function (res) {
770
793
  clearTimeout(timer);
771
794
  resolve(res);
@@ -813,7 +836,7 @@ function Inner(_a) {
813
836
  return [3 /*break*/, 8];
814
837
  case 16:
815
838
  // Cleanup debug listener
816
- signClient_1.core.relayer.off("message", debugHandler);
839
+ signClient.core.relayer.off("message", debugHandler);
817
840
  if (!execDigest) return [3 /*break*/, 18];
818
841
  return [4 /*yield*/, waitForTransactionWithCheck(execDigest)];
819
842
  case 17: return [2 /*return*/, _f.sent()];
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe-next","version":"2.0.25","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"}}
1
+ {"name":"@suilend/sui-fe-next","version":"2.0.27","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"}}