@suilend/sui-fe-next 2.0.22 → 2.0.23

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.
@@ -426,7 +426,7 @@ function Inner(_a) {
426
426
  case 3:
427
427
  _c.trys.push([3, , 5, 6]);
428
428
  return [4 /*yield*/, provider.connect({
429
- optionalNamespaces: {
429
+ namespaces: {
430
430
  sui: {
431
431
  methods: [
432
432
  WC_SUI_METHODS.SIGN_TRANSACTION,
@@ -682,10 +682,10 @@ function Inner(_a) {
682
682
  });
683
683
  }); }, [suiClient]);
684
684
  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, 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
- var _a, _b, _c, _d, _e, _f, _g;
687
- return __generator(this, function (_h) {
688
- switch (_h.label) {
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;
686
+ var _a, _b, _c, _d, _e;
687
+ return __generator(this, function (_f) {
688
+ switch (_f.label) {
689
689
  case 0:
690
690
  _address = impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address;
691
691
  if (_address) {
@@ -694,9 +694,9 @@ function Inner(_a) {
694
694
  }
695
695
  catch (err) { }
696
696
  }
697
- _h.label = 1;
697
+ _f.label = 1;
698
698
  case 1:
699
- _h.trys.push([1, 29, , 30]);
699
+ _f.trys.push([1, 33, , 34]);
700
700
  // Gas budget
701
701
  if (gasBudget !== "")
702
702
  transaction.setGasBudget(+new BigNumber(gasBudget)
@@ -705,14 +705,14 @@ function Inner(_a) {
705
705
  onSetGasBudget === null || onSetGasBudget === void 0 ? void 0 : onSetGasBudget(transaction);
706
706
  // Log
707
707
  console.log("[WalletContext] signExecuteAndWaitForTransaction - transaction.getData():", transaction.getData());
708
- if (!sessionAddress) return [3 /*break*/, 17];
708
+ if (!sessionAddress) return [3 /*break*/, 21];
709
709
  return [4 /*yield*/, getWalletConnectProvider()];
710
710
  case 2:
711
- provider = _h.sent();
711
+ provider = _f.sent();
712
712
  transaction.setSender(sessionAddress);
713
713
  return [4 /*yield*/, transaction.build({ client: suiClient })];
714
714
  case 3:
715
- txBytes = _h.sent();
715
+ txBytes = _f.sent();
716
716
  txBase64 = toBase64(txBytes);
717
717
  params = {
718
718
  transaction: txBase64,
@@ -725,16 +725,27 @@ function Inner(_a) {
725
725
  if (!topic_1)
726
726
  throw new Error("WalletConnect session not found");
727
727
  signClient_1 = provider.client;
728
- // Debug: check relay connectivity and session health
728
+ // Debug: full session dump
729
+ console.log("[WalletContext] WalletConnect — full session:", JSON.stringify(provider.session, null, 2));
729
730
  console.log("[WalletContext] WalletConnect — relay connected:", signClient_1.core.relayer.connected);
730
- console.log("[WalletContext] WalletConnect — session expiry:", (_c = provider.session) === null || _c === void 0 ? void 0 : _c.expiry, "now:", Math.floor(Date.now() / 1000), "expired:", ((_d = provider.session) === null || _d === void 0 ? void 0 : _d.expiry)
731
- ? provider.session.expiry < Math.floor(Date.now() / 1000)
732
- : "unknown");
731
+ _f.label = 4;
732
+ case 4:
733
+ _f.trys.push([4, 6, , 7]);
734
+ return [4 /*yield*/, signClient_1.ping({ topic: topic_1 })];
735
+ case 5:
736
+ _f.sent();
737
+ console.log("[WalletContext] WalletConnect — ping succeeded (peer is alive)");
738
+ return [3 /*break*/, 7];
739
+ case 6:
740
+ pingErr_1 = _f.sent();
741
+ console.error("[WalletContext] WalletConnect — ping FAILED (peer may be offline):", pingErr_1);
742
+ return [3 /*break*/, 7];
743
+ case 7:
733
744
  debugHandler = function (event) {
734
745
  console.log("[WalletContext] WalletConnect — relay message received:", event);
735
746
  };
736
747
  signClient_1.core.relayer.on("message", debugHandler);
737
- pendingBefore = (_g = (_f = (_e = signClient_1.pendingRequest).getAll) === null || _f === void 0 ? void 0 : _f.call(_e)) !== null && _g !== void 0 ? _g : [];
748
+ pendingBefore = (_e = (_d = (_c = signClient_1.pendingRequest).getAll) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : [];
738
749
  console.log("[WalletContext] WalletConnect — pending requests before:", Array.isArray(pendingBefore) ? pendingBefore.length : pendingBefore);
739
750
  wcRequest = function (method, requestParams, timeoutMs) {
740
751
  if (timeoutMs === void 0) { timeoutMs = 15000; }
@@ -766,41 +777,41 @@ function Inner(_a) {
766
777
  signRes = null;
767
778
  execDigest = null;
768
779
  _i = 0, methods_1 = methods;
769
- _h.label = 4;
770
- case 4:
771
- if (!(_i < methods_1.length)) return [3 /*break*/, 12];
780
+ _f.label = 8;
781
+ case 8:
782
+ if (!(_i < methods_1.length)) return [3 /*break*/, 16];
772
783
  method = methods_1[_i];
773
- _h.label = 5;
774
- case 5:
775
- _h.trys.push([5, 10, , 11]);
784
+ _f.label = 9;
785
+ case 9:
786
+ _f.trys.push([9, 14, , 15]);
776
787
  console.log("[WalletContext] WalletConnect \u2014 trying ".concat(method));
777
- if (!(method === WC_SUI_METHODS.SIGN_TRANSACTION)) return [3 /*break*/, 7];
788
+ if (!(method === WC_SUI_METHODS.SIGN_TRANSACTION)) return [3 /*break*/, 11];
778
789
  return [4 /*yield*/, wcRequest(method, params)];
779
- case 6:
780
- signRes = _h.sent();
790
+ case 10:
791
+ signRes = _f.sent();
781
792
  console.log("[WalletContext] WalletConnect \u2014 ".concat(method, " succeeded"));
782
- return [3 /*break*/, 12];
783
- case 7: return [4 /*yield*/, wcRequest(method, params)];
784
- case 8:
785
- res_1 = _h.sent();
793
+ return [3 /*break*/, 16];
794
+ case 11: return [4 /*yield*/, wcRequest(method, params)];
795
+ case 12:
796
+ res_1 = _f.sent();
786
797
  console.log("[WalletContext] WalletConnect \u2014 ".concat(method, " succeeded, digest:"), res_1.digest);
787
798
  execDigest = res_1.digest;
788
- return [3 /*break*/, 12];
789
- case 9: return [3 /*break*/, 11];
790
- case 10:
791
- err_5 = _h.sent();
799
+ return [3 /*break*/, 16];
800
+ case 13: return [3 /*break*/, 15];
801
+ case 14:
802
+ err_5 = _f.sent();
792
803
  console.warn("[WalletContext] WalletConnect \u2014 ".concat(method, " failed:"), err_5);
793
- return [3 /*break*/, 11];
794
- case 11:
804
+ return [3 /*break*/, 15];
805
+ case 15:
795
806
  _i++;
796
- return [3 /*break*/, 4];
797
- case 12:
807
+ return [3 /*break*/, 8];
808
+ case 16:
798
809
  // Cleanup debug listener
799
810
  signClient_1.core.relayer.off("message", debugHandler);
800
- if (!execDigest) return [3 /*break*/, 14];
811
+ if (!execDigest) return [3 /*break*/, 18];
801
812
  return [4 /*yield*/, waitForTransactionWithCheck(execDigest)];
802
- case 13: return [2 /*return*/, _h.sent()];
803
- case 14:
813
+ case 17: return [2 /*return*/, _f.sent()];
814
+ case 18:
804
815
  if (!signRes) {
805
816
  throw new Error("WalletConnect: wallet did not respond to any signing method. " +
806
817
  "Check that the wallet supports Sui transactions and that the session is active.");
@@ -810,17 +821,17 @@ function Inner(_a) {
810
821
  transactionBlock: signRes.transactionBytes,
811
822
  signature: signRes.signature,
812
823
  })];
813
- case 15:
814
- execRes = _h.sent();
824
+ case 19:
825
+ execRes = _f.sent();
815
826
  return [4 /*yield*/, waitForTransactionWithCheck(execRes.digest)];
816
- case 16: return [2 /*return*/, _h.sent()];
817
- case 17:
818
- if (!isInMsafeApp()) return [3 /*break*/, 20];
827
+ case 20: return [2 /*return*/, _f.sent()];
828
+ case 21:
829
+ if (!isInMsafeApp()) return [3 /*break*/, 24];
819
830
  msafeWallet = getWallets()
820
831
  .get()
821
832
  .find(function (w) { return w.name === WalletName.MSAFE_WALLET; });
822
833
  msafeFeature = msafeWallet === null || msafeWallet === void 0 ? void 0 : msafeWallet.features["sui:signAndExecuteTransactionBlock"];
823
- if (!(msafeFeature && account)) return [3 /*break*/, 19];
834
+ if (!(msafeFeature && account)) return [3 /*break*/, 23];
824
835
  msafeAccount = msafeWallet.accounts.find(function (a) { return a.address === account.address; });
825
836
  if (!msafeAccount)
826
837
  throw new Error("MSafe account not found");
@@ -829,58 +840,58 @@ function Inner(_a) {
829
840
  account: msafeAccount,
830
841
  chain: "sui:mainnet",
831
842
  })];
832
- case 18:
833
- _h.sent();
843
+ case 22:
844
+ _f.sent();
834
845
  // MSafe proposes the transaction to the multisig queue;
835
846
  // the promise never resolves (only rejects on cancel).
836
847
  // If we reach here the proposal was accepted.
837
848
  throw new Error("Unreachable");
838
- case 19: throw new Error("MSafe wallet not found. Please reload the page inside MSafe.");
839
- case 20:
849
+ case 23: throw new Error("MSafe wallet not found. Please reload the page inside MSafe.");
850
+ case 24:
840
851
  usedSignOnly = false;
841
- _h.label = 21;
842
- case 21:
843
- _h.trys.push([21, 25, , 26]);
852
+ _f.label = 25;
853
+ case 25:
854
+ _f.trys.push([25, 29, , 30]);
844
855
  return [4 /*yield*/, dAppKit.signTransaction({
845
856
  transaction: transaction,
846
857
  })];
847
- case 22:
848
- signedTransaction = _h.sent();
858
+ case 26:
859
+ signedTransaction = _f.sent();
849
860
  usedSignOnly = true;
850
861
  onSign === null || onSign === void 0 ? void 0 : onSign(signedTransaction);
851
862
  return [4 /*yield*/, suiClient.executeTransactionBlock({
852
863
  transactionBlock: signedTransaction.bytes,
853
864
  signature: signedTransaction.signature,
854
865
  })];
855
- case 23:
856
- res1 = _h.sent();
866
+ case 27:
867
+ res1 = _f.sent();
857
868
  onExecute === null || onExecute === void 0 ? void 0 : onExecute(res1);
858
869
  return [4 /*yield*/, waitForTransactionWithCheck(res1.digest)];
859
- case 24: return [2 /*return*/, _h.sent()];
860
- case 25:
861
- err_6 = _h.sent();
870
+ case 28: return [2 /*return*/, _f.sent()];
871
+ case 29:
872
+ err_6 = _f.sent();
862
873
  if (usedSignOnly)
863
874
  throw err_6;
864
875
  message = err_6 instanceof Error ? err_6.message : String(err_6);
865
876
  if (!message.includes("does not support"))
866
877
  throw err_6;
867
878
  console.warn("[WalletContext] Wallet does not support sign-only, falling back to signAndExecuteTransaction");
868
- return [3 /*break*/, 26];
869
- case 26: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
879
+ return [3 /*break*/, 30];
880
+ case 30: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
870
881
  transaction: transaction,
871
882
  })];
872
- case 27:
873
- res = _h.sent();
883
+ case 31:
884
+ res = _f.sent();
874
885
  digest = res.$kind === "Transaction"
875
886
  ? res.Transaction.digest
876
887
  : res.FailedTransaction.digest;
877
888
  return [4 /*yield*/, waitForTransactionWithCheck(digest)];
878
- case 28: return [2 /*return*/, _h.sent()];
879
- case 29:
880
- err_7 = _h.sent();
889
+ case 32: return [2 /*return*/, _f.sent()];
890
+ case 33:
891
+ err_7 = _f.sent();
881
892
  console.error(err_7);
882
893
  throw err_7;
883
- case 30: return [2 /*return*/];
894
+ case 34: return [2 /*return*/];
884
895
  }
885
896
  });
886
897
  }); }, [
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe-next","version":"2.0.22","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.23","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"}}