@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.
- package/contexts/WalletContext.jsx +78 -67
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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
|
-
|
|
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
|
|
687
|
-
return __generator(this, function (
|
|
688
|
-
switch (
|
|
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
|
-
|
|
697
|
+
_f.label = 1;
|
|
698
698
|
case 1:
|
|
699
|
-
|
|
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*/,
|
|
708
|
+
if (!sessionAddress) return [3 /*break*/, 21];
|
|
709
709
|
return [4 /*yield*/, getWalletConnectProvider()];
|
|
710
710
|
case 2:
|
|
711
|
-
provider =
|
|
711
|
+
provider = _f.sent();
|
|
712
712
|
transaction.setSender(sessionAddress);
|
|
713
713
|
return [4 /*yield*/, transaction.build({ client: suiClient })];
|
|
714
714
|
case 3:
|
|
715
|
-
txBytes =
|
|
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:
|
|
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
|
-
|
|
731
|
-
|
|
732
|
-
|
|
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 = (
|
|
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
|
-
|
|
770
|
-
case
|
|
771
|
-
if (!(_i < methods_1.length)) return [3 /*break*/,
|
|
780
|
+
_f.label = 8;
|
|
781
|
+
case 8:
|
|
782
|
+
if (!(_i < methods_1.length)) return [3 /*break*/, 16];
|
|
772
783
|
method = methods_1[_i];
|
|
773
|
-
|
|
774
|
-
case
|
|
775
|
-
|
|
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*/,
|
|
788
|
+
if (!(method === WC_SUI_METHODS.SIGN_TRANSACTION)) return [3 /*break*/, 11];
|
|
778
789
|
return [4 /*yield*/, wcRequest(method, params)];
|
|
779
|
-
case
|
|
780
|
-
signRes =
|
|
790
|
+
case 10:
|
|
791
|
+
signRes = _f.sent();
|
|
781
792
|
console.log("[WalletContext] WalletConnect \u2014 ".concat(method, " succeeded"));
|
|
782
|
-
return [3 /*break*/,
|
|
783
|
-
case
|
|
784
|
-
case
|
|
785
|
-
res_1 =
|
|
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*/,
|
|
789
|
-
case
|
|
790
|
-
case
|
|
791
|
-
err_5 =
|
|
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*/,
|
|
794
|
-
case
|
|
804
|
+
return [3 /*break*/, 15];
|
|
805
|
+
case 15:
|
|
795
806
|
_i++;
|
|
796
|
-
return [3 /*break*/,
|
|
797
|
-
case
|
|
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*/,
|
|
811
|
+
if (!execDigest) return [3 /*break*/, 18];
|
|
801
812
|
return [4 /*yield*/, waitForTransactionWithCheck(execDigest)];
|
|
802
|
-
case
|
|
803
|
-
case
|
|
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
|
|
814
|
-
execRes =
|
|
824
|
+
case 19:
|
|
825
|
+
execRes = _f.sent();
|
|
815
826
|
return [4 /*yield*/, waitForTransactionWithCheck(execRes.digest)];
|
|
816
|
-
case
|
|
817
|
-
case
|
|
818
|
-
if (!isInMsafeApp()) return [3 /*break*/,
|
|
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*/,
|
|
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
|
|
833
|
-
|
|
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
|
|
839
|
-
case
|
|
849
|
+
case 23: throw new Error("MSafe wallet not found. Please reload the page inside MSafe.");
|
|
850
|
+
case 24:
|
|
840
851
|
usedSignOnly = false;
|
|
841
|
-
|
|
842
|
-
case
|
|
843
|
-
|
|
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
|
|
848
|
-
signedTransaction =
|
|
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
|
|
856
|
-
res1 =
|
|
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
|
|
860
|
-
case
|
|
861
|
-
err_6 =
|
|
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*/,
|
|
869
|
-
case
|
|
879
|
+
return [3 /*break*/, 30];
|
|
880
|
+
case 30: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
|
|
870
881
|
transaction: transaction,
|
|
871
882
|
})];
|
|
872
|
-
case
|
|
873
|
-
res =
|
|
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
|
|
879
|
-
case
|
|
880
|
-
err_7 =
|
|
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
|
|
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.
|
|
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"}}
|