@suilend/sui-fe-next 2.0.22 → 2.0.24

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; }
@@ -743,11 +754,17 @@ function Inner(_a) {
743
754
  reject(new Error("WalletConnect request \"".concat(method, "\" timed out after ").concat(timeoutMs / 1000, "s \u2014 the wallet did not respond. ") +
744
755
  "This usually means the wallet does not support this method."));
745
756
  }, timeoutMs);
757
+ console.log("[WalletContext] WalletConnect \u2014 sending request:", JSON.stringify({
758
+ method: method,
759
+ params: requestParams,
760
+ chainId: "sui:mainnet",
761
+ topic: topic_1,
762
+ }));
746
763
  signClient_1
747
764
  .request({
748
765
  topic: topic_1,
749
766
  chainId: "sui:mainnet",
750
- request: { method: method, params: requestParams },
767
+ request: { method: method, params: [requestParams] },
751
768
  })
752
769
  .then(function (res) {
753
770
  clearTimeout(timer);
@@ -766,41 +783,41 @@ function Inner(_a) {
766
783
  signRes = null;
767
784
  execDigest = null;
768
785
  _i = 0, methods_1 = methods;
769
- _h.label = 4;
770
- case 4:
771
- if (!(_i < methods_1.length)) return [3 /*break*/, 12];
786
+ _f.label = 8;
787
+ case 8:
788
+ if (!(_i < methods_1.length)) return [3 /*break*/, 16];
772
789
  method = methods_1[_i];
773
- _h.label = 5;
774
- case 5:
775
- _h.trys.push([5, 10, , 11]);
790
+ _f.label = 9;
791
+ case 9:
792
+ _f.trys.push([9, 14, , 15]);
776
793
  console.log("[WalletContext] WalletConnect \u2014 trying ".concat(method));
777
- if (!(method === WC_SUI_METHODS.SIGN_TRANSACTION)) return [3 /*break*/, 7];
794
+ if (!(method === WC_SUI_METHODS.SIGN_TRANSACTION)) return [3 /*break*/, 11];
778
795
  return [4 /*yield*/, wcRequest(method, params)];
779
- case 6:
780
- signRes = _h.sent();
796
+ case 10:
797
+ signRes = _f.sent();
781
798
  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();
799
+ return [3 /*break*/, 16];
800
+ case 11: return [4 /*yield*/, wcRequest(method, params)];
801
+ case 12:
802
+ res_1 = _f.sent();
786
803
  console.log("[WalletContext] WalletConnect \u2014 ".concat(method, " succeeded, digest:"), res_1.digest);
787
804
  execDigest = res_1.digest;
788
- return [3 /*break*/, 12];
789
- case 9: return [3 /*break*/, 11];
790
- case 10:
791
- err_5 = _h.sent();
805
+ return [3 /*break*/, 16];
806
+ case 13: return [3 /*break*/, 15];
807
+ case 14:
808
+ err_5 = _f.sent();
792
809
  console.warn("[WalletContext] WalletConnect \u2014 ".concat(method, " failed:"), err_5);
793
- return [3 /*break*/, 11];
794
- case 11:
810
+ return [3 /*break*/, 15];
811
+ case 15:
795
812
  _i++;
796
- return [3 /*break*/, 4];
797
- case 12:
813
+ return [3 /*break*/, 8];
814
+ case 16:
798
815
  // Cleanup debug listener
799
816
  signClient_1.core.relayer.off("message", debugHandler);
800
- if (!execDigest) return [3 /*break*/, 14];
817
+ if (!execDigest) return [3 /*break*/, 18];
801
818
  return [4 /*yield*/, waitForTransactionWithCheck(execDigest)];
802
- case 13: return [2 /*return*/, _h.sent()];
803
- case 14:
819
+ case 17: return [2 /*return*/, _f.sent()];
820
+ case 18:
804
821
  if (!signRes) {
805
822
  throw new Error("WalletConnect: wallet did not respond to any signing method. " +
806
823
  "Check that the wallet supports Sui transactions and that the session is active.");
@@ -810,17 +827,17 @@ function Inner(_a) {
810
827
  transactionBlock: signRes.transactionBytes,
811
828
  signature: signRes.signature,
812
829
  })];
813
- case 15:
814
- execRes = _h.sent();
830
+ case 19:
831
+ execRes = _f.sent();
815
832
  return [4 /*yield*/, waitForTransactionWithCheck(execRes.digest)];
816
- case 16: return [2 /*return*/, _h.sent()];
817
- case 17:
818
- if (!isInMsafeApp()) return [3 /*break*/, 20];
833
+ case 20: return [2 /*return*/, _f.sent()];
834
+ case 21:
835
+ if (!isInMsafeApp()) return [3 /*break*/, 24];
819
836
  msafeWallet = getWallets()
820
837
  .get()
821
838
  .find(function (w) { return w.name === WalletName.MSAFE_WALLET; });
822
839
  msafeFeature = msafeWallet === null || msafeWallet === void 0 ? void 0 : msafeWallet.features["sui:signAndExecuteTransactionBlock"];
823
- if (!(msafeFeature && account)) return [3 /*break*/, 19];
840
+ if (!(msafeFeature && account)) return [3 /*break*/, 23];
824
841
  msafeAccount = msafeWallet.accounts.find(function (a) { return a.address === account.address; });
825
842
  if (!msafeAccount)
826
843
  throw new Error("MSafe account not found");
@@ -829,58 +846,58 @@ function Inner(_a) {
829
846
  account: msafeAccount,
830
847
  chain: "sui:mainnet",
831
848
  })];
832
- case 18:
833
- _h.sent();
849
+ case 22:
850
+ _f.sent();
834
851
  // MSafe proposes the transaction to the multisig queue;
835
852
  // the promise never resolves (only rejects on cancel).
836
853
  // If we reach here the proposal was accepted.
837
854
  throw new Error("Unreachable");
838
- case 19: throw new Error("MSafe wallet not found. Please reload the page inside MSafe.");
839
- case 20:
855
+ case 23: throw new Error("MSafe wallet not found. Please reload the page inside MSafe.");
856
+ case 24:
840
857
  usedSignOnly = false;
841
- _h.label = 21;
842
- case 21:
843
- _h.trys.push([21, 25, , 26]);
858
+ _f.label = 25;
859
+ case 25:
860
+ _f.trys.push([25, 29, , 30]);
844
861
  return [4 /*yield*/, dAppKit.signTransaction({
845
862
  transaction: transaction,
846
863
  })];
847
- case 22:
848
- signedTransaction = _h.sent();
864
+ case 26:
865
+ signedTransaction = _f.sent();
849
866
  usedSignOnly = true;
850
867
  onSign === null || onSign === void 0 ? void 0 : onSign(signedTransaction);
851
868
  return [4 /*yield*/, suiClient.executeTransactionBlock({
852
869
  transactionBlock: signedTransaction.bytes,
853
870
  signature: signedTransaction.signature,
854
871
  })];
855
- case 23:
856
- res1 = _h.sent();
872
+ case 27:
873
+ res1 = _f.sent();
857
874
  onExecute === null || onExecute === void 0 ? void 0 : onExecute(res1);
858
875
  return [4 /*yield*/, waitForTransactionWithCheck(res1.digest)];
859
- case 24: return [2 /*return*/, _h.sent()];
860
- case 25:
861
- err_6 = _h.sent();
876
+ case 28: return [2 /*return*/, _f.sent()];
877
+ case 29:
878
+ err_6 = _f.sent();
862
879
  if (usedSignOnly)
863
880
  throw err_6;
864
881
  message = err_6 instanceof Error ? err_6.message : String(err_6);
865
882
  if (!message.includes("does not support"))
866
883
  throw err_6;
867
884
  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({
885
+ return [3 /*break*/, 30];
886
+ case 30: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
870
887
  transaction: transaction,
871
888
  })];
872
- case 27:
873
- res = _h.sent();
889
+ case 31:
890
+ res = _f.sent();
874
891
  digest = res.$kind === "Transaction"
875
892
  ? res.Transaction.digest
876
893
  : res.FailedTransaction.digest;
877
894
  return [4 /*yield*/, waitForTransactionWithCheck(digest)];
878
- case 28: return [2 /*return*/, _h.sent()];
879
- case 29:
880
- err_7 = _h.sent();
895
+ case 32: return [2 /*return*/, _f.sent()];
896
+ case 33:
897
+ err_7 = _f.sent();
881
898
  console.error(err_7);
882
899
  throw err_7;
883
- case 30: return [2 /*return*/];
900
+ case 34: return [2 /*return*/];
884
901
  }
885
902
  });
886
903
  }); }, [
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.24","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"}}