@suilend/sui-fe-next 2.0.12 → 2.0.14

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.
@@ -66,7 +66,7 @@ import BigNumber from "bignumber.js";
66
66
  import { useLDClient } from "launchdarkly-react-client-sdk";
67
67
  import { useLocalStorage } from "usehooks-ts";
68
68
  import { API_URL, formatAddress, isInMsafeApp } from "@suilend/sui-fe";
69
- import { getUniversalConnector } from "../lib/connector";
69
+ import { WC_SUI_METHODS, getWalletConnectProvider } from "../lib/connector";
70
70
  import { showErrorToast, showInfoToast } from "../lib/toasts";
71
71
  import { useSettingsContext } from "./SettingsContext";
72
72
  export var WalletType;
@@ -211,34 +211,37 @@ export var useWalletContext = function () { return useContext(WalletContext); };
211
211
  function Inner(_a) {
212
212
  var _b;
213
213
  var _this = this;
214
- var _c, _d, _e, _f, _g, _h;
214
+ var _c, _d, _e;
215
215
  var appName = _a.appName, children = _a.children;
216
216
  var router = useRouter();
217
217
  var queryParams = (_b = {},
218
218
  _b[WalletContextQueryParams.WALLET] = router.query[WalletContextQueryParams.WALLET],
219
219
  _b);
220
- var _j = useSettingsContext(), suiClient = _j.suiClient, rpc = _j.rpc;
221
- // Only used for wallet connect
222
- var _k = useState(), universalConnector = _k[0], setUniversalConnector = _k[1];
223
- var _l = useState(), session = _l[0], setSession = _l[1];
224
- var sessionAddressWithout0x = (_e = (_d = (_c = session === null || session === void 0 ? void 0 : session.namespaces) === null || _c === void 0 ? void 0 : _c.sui) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[0];
225
- var sessionAddress = sessionAddressWithout0x
226
- ? sessionAddressWithout0x.split(":").pop()
227
- : undefined;
220
+ var suiClient = useSettingsContext().suiClient;
221
+ // WalletConnect via @walletconnect/universal-provider
222
+ // Matches the reference implementation: https://github.com/WalletConnect/react-core-up-sui
223
+ var _f = useState(), wcSession = _f[0], setWcSession = _f[1];
224
+ var sessionAddress = useMemo(function () {
225
+ var _a, _b, _c;
226
+ var raw = (_c = (_b = (_a = wcSession === null || wcSession === void 0 ? void 0 : wcSession.namespaces) === null || _a === void 0 ? void 0 : _a.sui) === null || _b === void 0 ? void 0 : _b.accounts) === null || _c === void 0 ? void 0 : _c[0];
227
+ return raw ? raw.split(":").pop() : undefined;
228
+ }, [wcSession]);
228
229
  useEffect(function () {
229
230
  (function () { return __awaiter(_this, void 0, void 0, function () {
230
- var connector;
231
+ var provider;
231
232
  return __generator(this, function (_a) {
232
233
  switch (_a.label) {
233
- case 0: return [4 /*yield*/, getUniversalConnector(rpc.url)];
234
+ case 0: return [4 /*yield*/, getWalletConnectProvider()];
234
235
  case 1:
235
- connector = _a.sent();
236
- setUniversalConnector(connector);
236
+ provider = _a.sent();
237
+ if (provider.session) {
238
+ setWcSession(provider.session);
239
+ }
237
240
  return [2 /*return*/];
238
241
  }
239
242
  });
240
243
  }); })();
241
- }, [rpc.url]);
244
+ }, []);
242
245
  // Impersonated address
243
246
  var impersonatedAddress = queryParams[WalletContextQueryParams.WALLET];
244
247
  // Wallets
@@ -352,7 +355,7 @@ function Inner(_a) {
352
355
  wallets__web,
353
356
  ]);
354
357
  // Wallet
355
- var _m = useState(false), isConnectWalletDropdownOpen = _m[0], setIsConnectWalletDropdownOpen = _m[1];
358
+ var _g = useState(false), isConnectWalletDropdownOpen = _g[0], setIsConnectWalletDropdownOpen = _g[1];
356
359
  var rawWallet = useCurrentWallet();
357
360
  var wallet = useMemo(function () {
358
361
  if (sessionAddress) {
@@ -366,17 +369,20 @@ function Inner(_a) {
366
369
  var disconnectWallet = dAppKit.disconnectWallet;
367
370
  var signPersonalMessageRaw = dAppKit.signPersonalMessage;
368
371
  var walletConnectSignPersonalMessage = useCallback(function (message) { return __awaiter(_this, void 0, void 0, function () {
369
- var res;
372
+ var provider, res;
370
373
  return __generator(this, function (_a) {
371
374
  switch (_a.label) {
372
375
  case 0:
373
- if (!sessionAddress || !universalConnector)
376
+ if (!sessionAddress)
374
377
  throw new Error("Wallet not connected");
375
- return [4 /*yield*/, universalConnector.request({
376
- method: "sui_signPersonalMessage",
377
- params: { message: message.toString() },
378
- }, "sui:mainnet")];
378
+ return [4 /*yield*/, getWalletConnectProvider()];
379
379
  case 1:
380
+ provider = _a.sent();
381
+ return [4 /*yield*/, provider.request({
382
+ method: WC_SUI_METHODS.SIGN_PERSONAL_MESSAGE,
383
+ params: { message: message.toString(), address: sessionAddress },
384
+ }, "sui:mainnet")];
385
+ case 2:
380
386
  res = _a.sent();
381
387
  return [2 /*return*/, {
382
388
  signature: res.signature,
@@ -384,84 +390,112 @@ function Inner(_a) {
384
390
  }];
385
391
  }
386
392
  });
387
- }); }, [sessionAddress, universalConnector]);
393
+ }); }, [sessionAddress]);
388
394
  var connectWalletWrapper = useCallback(function (_wallet) { return __awaiter(_this, void 0, void 0, function () {
389
- var res, _a, err_1;
390
- return __generator(this, function (_b) {
391
- switch (_b.label) {
395
+ var provider, _a, provider, _b, err_1;
396
+ return __generator(this, function (_c) {
397
+ switch (_c.label) {
392
398
  case 0:
393
- _b.trys.push([0, 8, , 9]);
394
- if (!(_wallet === null || _wallet === void 0 ? void 0 : _wallet.walletConnect)) return [3 /*break*/, 6];
395
- return [4 /*yield*/, universalConnector.connect()];
399
+ _c.trys.push([0, 14, , 15]);
400
+ if (!(_wallet === null || _wallet === void 0 ? void 0 : _wallet.walletConnect)) return [3 /*break*/, 7];
401
+ return [4 /*yield*/, getWalletConnectProvider()];
396
402
  case 1:
397
- res = _b.sent();
398
- _b.label = 2;
403
+ provider = _c.sent();
404
+ return [4 /*yield*/, provider.connect({
405
+ optionalNamespaces: {
406
+ sui: {
407
+ methods: [
408
+ WC_SUI_METHODS.SIGN_TRANSACTION,
409
+ WC_SUI_METHODS.SIGN_AND_EXECUTE_TRANSACTION,
410
+ WC_SUI_METHODS.SIGN_PERSONAL_MESSAGE,
411
+ ],
412
+ chains: ["sui:mainnet"],
413
+ events: [],
414
+ },
415
+ },
416
+ })];
399
417
  case 2:
400
- _b.trys.push([2, 4, , 5]);
401
- return [4 /*yield*/, disconnectWallet()];
418
+ _c.sent();
419
+ _c.label = 3;
402
420
  case 3:
403
- _b.sent();
404
- return [3 /*break*/, 5];
421
+ _c.trys.push([3, 5, , 6]);
422
+ return [4 /*yield*/, disconnectWallet()];
405
423
  case 4:
406
- _a = _b.sent();
407
- return [3 /*break*/, 5];
424
+ _c.sent();
425
+ return [3 /*break*/, 6];
408
426
  case 5:
409
- setSession(res.session);
410
- return [2 /*return*/];
427
+ _a = _c.sent();
428
+ return [3 /*break*/, 6];
411
429
  case 6:
430
+ setWcSession(provider.session);
431
+ return [2 /*return*/];
432
+ case 7:
412
433
  if (!_wallet.raw)
413
434
  throw new Error("Missing wallet");
414
435
  return [4 /*yield*/, connectWallet({ wallet: _wallet.raw })];
415
- case 7:
416
- _b.sent();
417
- try {
418
- universalConnector.disconnect();
419
- }
420
- catch (_c) {
421
- // WalletConnect may not have an active session — safe to ignore
422
- }
423
- setSession(null);
436
+ case 8:
437
+ _c.sent();
438
+ _c.label = 9;
439
+ case 9:
440
+ _c.trys.push([9, 12, , 13]);
441
+ return [4 /*yield*/, getWalletConnectProvider()];
442
+ case 10:
443
+ provider = _c.sent();
444
+ return [4 /*yield*/, provider.disconnect()];
445
+ case 11:
446
+ _c.sent();
447
+ return [3 /*break*/, 13];
448
+ case 12:
449
+ _b = _c.sent();
450
+ return [3 /*break*/, 13];
451
+ case 13:
452
+ setWcSession(null);
424
453
  showInfoToast("Connected ".concat(_wallet.name));
425
454
  setIsConnectWalletDropdownOpen(false);
426
- return [3 /*break*/, 9];
427
- case 8:
428
- err_1 = _b.sent();
455
+ return [3 /*break*/, 15];
456
+ case 14:
457
+ err_1 = _c.sent();
429
458
  showErrorToast("Failed to connect ".concat(_wallet.name), err_1);
430
459
  console.error(err_1);
431
- return [3 /*break*/, 9];
432
- case 9: return [2 /*return*/];
460
+ return [3 /*break*/, 15];
461
+ case 15: return [2 /*return*/];
433
462
  }
434
463
  });
435
- }); }, [connectWallet, disconnectWallet, universalConnector]);
464
+ }); }, [connectWallet, disconnectWallet]);
436
465
  var disconnectWalletWrapper = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
437
- var err_2;
466
+ var provider, err_2;
438
467
  return __generator(this, function (_a) {
439
468
  switch (_a.label) {
440
469
  case 0:
441
- _a.trys.push([0, 4, , 5]);
442
- if (!sessionAddress) return [3 /*break*/, 1];
443
- universalConnector.disconnect();
444
- setSession(null);
445
- return [3 /*break*/, 3];
446
- case 1: return [4 /*yield*/, disconnectWallet()];
470
+ _a.trys.push([0, 6, , 7]);
471
+ if (!sessionAddress) return [3 /*break*/, 3];
472
+ return [4 /*yield*/, getWalletConnectProvider()];
473
+ case 1:
474
+ provider = _a.sent();
475
+ return [4 /*yield*/, provider.disconnect()];
447
476
  case 2:
448
477
  _a.sent();
449
- showInfoToast("Disconnected wallet");
450
- _a.label = 3;
451
- case 3: return [3 /*break*/, 5];
478
+ setWcSession(null);
479
+ return [3 /*break*/, 5];
480
+ case 3: return [4 /*yield*/, disconnectWallet()];
452
481
  case 4:
482
+ _a.sent();
483
+ showInfoToast("Disconnected wallet");
484
+ _a.label = 5;
485
+ case 5: return [3 /*break*/, 7];
486
+ case 6:
453
487
  err_2 = _a.sent();
454
488
  showErrorToast("Failed to disconnect wallet", err_2);
455
489
  console.error(err_2);
456
- return [3 /*break*/, 5];
457
- case 5: return [2 /*return*/];
490
+ return [3 /*break*/, 7];
491
+ case 7: return [2 /*return*/];
458
492
  }
459
493
  });
460
- }); }, [sessionAddress, universalConnector, disconnectWallet]);
494
+ }); }, [sessionAddress, disconnectWallet]);
461
495
  // Accounts
462
496
  var walletConnection = useWalletConnection();
463
- var accountsRes = useMemo(function () { var _a, _b; return (_b = (_a = walletConnection.wallet) === null || _a === void 0 ? void 0 : _a.accounts) !== null && _b !== void 0 ? _b : []; }, [(_f = walletConnection.wallet) === null || _f === void 0 ? void 0 : _f.accounts]);
464
- var accountRes = (_g = useCurrentAccount()) !== null && _g !== void 0 ? _g : undefined;
497
+ var accountsRes = useMemo(function () { var _a, _b; return (_b = (_a = walletConnection.wallet) === null || _a === void 0 ? void 0 : _a.accounts) !== null && _b !== void 0 ? _b : []; }, [(_c = walletConnection.wallet) === null || _c === void 0 ? void 0 : _c.accounts]);
498
+ var accountRes = (_d = useCurrentAccount()) !== null && _d !== void 0 ? _d : undefined;
465
499
  var walletConnectAccount = useMemo(function () {
466
500
  return sessionAddress
467
501
  ? {
@@ -497,7 +531,7 @@ function Inner(_a) {
497
531
  showErrorToast("Failed to switch to ".concat(accountLabel), err);
498
532
  console.error(err);
499
533
  }
500
- }, [dAppKit, (_h = walletConnection.wallet) === null || _h === void 0 ? void 0 : _h.accounts]);
534
+ }, [dAppKit, (_e = walletConnection.wallet) === null || _e === void 0 ? void 0 : _e.accounts]);
501
535
  // LaunchDarkly
502
536
  var ldClient = useLDClient();
503
537
  var ldKeyRef = useRef(undefined);
@@ -621,7 +655,7 @@ function Inner(_a) {
621
655
  });
622
656
  }); }, [suiClient]);
623
657
  var signExecuteAndWaitForTransaction = useCallback(function (transaction, onSetGasBudget, onSign, onExecute) { return __awaiter(_this, void 0, void 0, function () {
624
- var _address, txBytes, txBase64, params, res_1, signAndExecErr_1, signRes, execRes, usedSignOnly, signedTransaction, res1, err_5, message, res, digest, err_6;
658
+ var _address, provider, txBytes, txBase64, params, res_1, signAndExecErr_1, signRes, execRes, usedSignOnly, signedTransaction, res1, err_5, message, res, digest, err_6;
625
659
  return __generator(this, function (_a) {
626
660
  switch (_a.label) {
627
661
  case 0:
@@ -634,7 +668,7 @@ function Inner(_a) {
634
668
  }
635
669
  _a.label = 1;
636
670
  case 1:
637
- _a.trys.push([1, 20, , 21]);
671
+ _a.trys.push([1, 21, , 22]);
638
672
  // Gas budget
639
673
  if (gasBudget !== "")
640
674
  transaction.setGasBudget(+new BigNumber(gasBudget)
@@ -643,63 +677,60 @@ function Inner(_a) {
643
677
  onSetGasBudget === null || onSetGasBudget === void 0 ? void 0 : onSetGasBudget(transaction);
644
678
  // Log
645
679
  console.log("[WalletContext] signExecuteAndWaitForTransaction - transaction.getData():", transaction.getData());
646
- if (!(sessionAddress && universalConnector)) return [3 /*break*/, 11];
647
- // WalletConnect Sui spec defines two transaction methods:
648
- // 1. sui_signAndExecuteTransaction — wallet signs + submits, returns { digest }
649
- // 2. sui_signTransaction — wallet signs only, returns { transactionBytes, signature }
650
- // Fireblocks and most institutional wallets prefer (1).
651
- // Ref: https://docs.walletconnect.network/wallet-sdk/chain-support/sui
652
- // https://github.com/WalletConnect/react-core-up-sui
680
+ if (!sessionAddress) return [3 /*break*/, 12];
681
+ return [4 /*yield*/, getWalletConnectProvider()];
682
+ case 2:
683
+ provider = _a.sent();
653
684
  transaction.setSender(sessionAddress);
654
685
  return [4 /*yield*/, transaction.build({ client: suiClient })];
655
- case 2:
686
+ case 3:
656
687
  txBytes = _a.sent();
657
688
  txBase64 = toBase64(txBytes);
658
689
  params = {
659
690
  transaction: txBase64,
660
691
  address: sessionAddress,
661
692
  };
662
- _a.label = 3;
663
- case 3:
664
- _a.trys.push([3, 6, , 7]);
693
+ _a.label = 4;
694
+ case 4:
695
+ _a.trys.push([4, 7, , 8]);
665
696
  console.log("[WalletContext] WalletConnect — trying sui_signAndExecuteTransaction");
666
- return [4 /*yield*/, universalConnector.request({
667
- method: "sui_signAndExecuteTransaction",
697
+ return [4 /*yield*/, provider.request({
698
+ method: WC_SUI_METHODS.SIGN_AND_EXECUTE_TRANSACTION,
668
699
  params: params,
669
700
  }, "sui:mainnet")];
670
- case 4:
701
+ case 5:
671
702
  res_1 = _a.sent();
672
703
  console.log("[WalletContext] WalletConnect — sui_signAndExecuteTransaction succeeded, digest:", res_1.digest);
673
704
  return [4 /*yield*/, waitForTransactionWithCheck(res_1.digest)];
674
- case 5: return [2 /*return*/, _a.sent()];
675
- case 6:
705
+ case 6: return [2 /*return*/, _a.sent()];
706
+ case 7:
676
707
  signAndExecErr_1 = _a.sent();
677
708
  console.warn("[WalletContext] WalletConnect — sui_signAndExecuteTransaction failed:", signAndExecErr_1);
678
- return [3 /*break*/, 7];
679
- case 7:
709
+ return [3 /*break*/, 8];
710
+ case 8:
680
711
  // Fallback: sign-only, then dApp-side execute
681
712
  console.log("[WalletContext] WalletConnect — trying sui_signTransaction (sign-only fallback)");
682
- return [4 /*yield*/, universalConnector.request({ method: "sui_signTransaction", params: params }, "sui:mainnet")];
683
- case 8:
713
+ return [4 /*yield*/, provider.request({ method: WC_SUI_METHODS.SIGN_TRANSACTION, params: params }, "sui:mainnet")];
714
+ case 9:
684
715
  signRes = _a.sent();
685
716
  console.log("[WalletContext] WalletConnect — sui_signTransaction succeeded, executing on-chain");
686
717
  return [4 /*yield*/, suiClient.executeTransactionBlock({
687
718
  transactionBlock: signRes.transactionBytes,
688
719
  signature: signRes.signature,
689
720
  })];
690
- case 9:
721
+ case 10:
691
722
  execRes = _a.sent();
692
723
  return [4 /*yield*/, waitForTransactionWithCheck(execRes.digest)];
693
- case 10: return [2 /*return*/, _a.sent()];
694
- case 11:
695
- usedSignOnly = false;
696
- _a.label = 12;
724
+ case 11: return [2 /*return*/, _a.sent()];
697
725
  case 12:
698
- _a.trys.push([12, 16, , 17]);
726
+ usedSignOnly = false;
727
+ _a.label = 13;
728
+ case 13:
729
+ _a.trys.push([13, 17, , 18]);
699
730
  return [4 /*yield*/, dAppKit.signTransaction({
700
731
  transaction: transaction,
701
732
  })];
702
- case 13:
733
+ case 14:
703
734
  signedTransaction = _a.sent();
704
735
  usedSignOnly = true;
705
736
  onSign === null || onSign === void 0 ? void 0 : onSign(signedTransaction);
@@ -707,12 +738,12 @@ function Inner(_a) {
707
738
  transactionBlock: signedTransaction.bytes,
708
739
  signature: signedTransaction.signature,
709
740
  })];
710
- case 14:
741
+ case 15:
711
742
  res1 = _a.sent();
712
743
  onExecute === null || onExecute === void 0 ? void 0 : onExecute(res1);
713
744
  return [4 /*yield*/, waitForTransactionWithCheck(res1.digest)];
714
- case 15: return [2 /*return*/, _a.sent()];
715
- case 16:
745
+ case 16: return [2 /*return*/, _a.sent()];
746
+ case 17:
716
747
  err_5 = _a.sent();
717
748
  if (usedSignOnly)
718
749
  throw err_5;
@@ -720,26 +751,25 @@ function Inner(_a) {
720
751
  if (!message.includes("does not support"))
721
752
  throw err_5;
722
753
  console.warn("[WalletContext] Wallet does not support sign-only, falling back to signAndExecuteTransaction");
723
- return [3 /*break*/, 17];
724
- case 17: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
754
+ return [3 /*break*/, 18];
755
+ case 18: return [4 /*yield*/, dAppKit.signAndExecuteTransaction({
725
756
  transaction: transaction,
726
757
  })];
727
- case 18:
758
+ case 19:
728
759
  res = _a.sent();
729
760
  digest = res.$kind === "Transaction"
730
761
  ? res.Transaction.digest
731
762
  : res.FailedTransaction.digest;
732
763
  return [4 /*yield*/, waitForTransactionWithCheck(digest)];
733
- case 19: return [2 /*return*/, _a.sent()];
734
- case 20:
764
+ case 20: return [2 /*return*/, _a.sent()];
765
+ case 21:
735
766
  err_6 = _a.sent();
736
767
  console.error(err_6);
737
768
  throw err_6;
738
- case 21: return [2 /*return*/];
769
+ case 22: return [2 /*return*/];
739
770
  }
740
771
  });
741
772
  }); }, [
742
- universalConnector,
743
773
  sessionAddress,
744
774
  gasBudget,
745
775
  impersonatedAddress,
@@ -750,7 +780,7 @@ function Inner(_a) {
750
780
  waitForTransactionWithCheck,
751
781
  ]);
752
782
  // Using Ledger
753
- var _o = useLocalStorage("isUsingLedger-".concat(impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address), false), isUsingLedger = _o[0], setIsUsingLedger = _o[1];
783
+ 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];
754
784
  // Context
755
785
  var contextValue = useMemo(function () {
756
786
  return {
@@ -1,3 +1,8 @@
1
- import { UniversalConnector } from "@reown/appkit-universal-connector";
1
+ import UniversalProvider from "@walletconnect/universal-provider";
2
2
  export declare const projectId = "eebad6a56ec8b3f08b70175934d35a9d";
3
- export declare function getUniversalConnector(rpcUrl: string): Promise<UniversalConnector>;
3
+ export declare function getWalletConnectProvider(): Promise<UniversalProvider>;
4
+ export declare const WC_SUI_METHODS: {
5
+ readonly SIGN_TRANSACTION: "sui_signTransaction";
6
+ readonly SIGN_AND_EXECUTE_TRANSACTION: "sui_signAndExecuteTransaction";
7
+ readonly SIGN_PERSONAL_MESSAGE: "sui_signPersonalMessage";
8
+ };
package/lib/connector.js CHANGED
@@ -34,48 +34,34 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
- import { UniversalConnector } from "@reown/appkit-universal-connector";
38
- // Get projectId from https://dashboard.reown.com
37
+ import UniversalProvider from "@walletconnect/universal-provider";
39
38
  export var projectId = "eebad6a56ec8b3f08b70175934d35a9d";
40
- export function getUniversalConnector(rpcUrl) {
39
+ var provider;
40
+ export function getWalletConnectProvider() {
41
41
  return __awaiter(this, void 0, void 0, function () {
42
- var universalConnector;
43
42
  return __generator(this, function (_a) {
44
43
  switch (_a.label) {
45
- case 0: return [4 /*yield*/, UniversalConnector.init({
46
- projectId: projectId,
47
- metadata: {
48
- name: "Suilend",
49
- description: "Sui's DeFi Suite",
50
- url: "https://suilend.fi/",
51
- icons: ["https://appkit.reown.com/icon.png"],
52
- },
53
- networks: [
54
- {
55
- methods: [
56
- "sui_signPersonalMessage",
57
- "sui_signTransaction",
58
- "sui_signAndExecuteTransaction",
59
- ],
60
- chains: [
61
- {
62
- id: 784,
63
- chainNamespace: "sui",
64
- caipNetworkId: "sui:mainnet",
65
- name: "Sui",
66
- nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
67
- rpcUrls: { default: { http: [rpcUrl] } },
68
- },
69
- ],
70
- events: [],
71
- namespace: "sui",
44
+ case 0:
45
+ if (!!provider) return [3 /*break*/, 2];
46
+ return [4 /*yield*/, UniversalProvider.init({
47
+ projectId: projectId,
48
+ metadata: {
49
+ name: "Suilend",
50
+ description: "Sui's DeFi Suite",
51
+ url: "https://suilend.fi/",
52
+ icons: ["https://suilend.fi/favicon.ico"],
72
53
  },
73
- ],
74
- })];
54
+ })];
75
55
  case 1:
76
- universalConnector = _a.sent();
77
- return [2 /*return*/, universalConnector];
56
+ provider = _a.sent();
57
+ _a.label = 2;
58
+ case 2: return [2 /*return*/, provider];
78
59
  }
79
60
  });
80
61
  });
81
62
  }
63
+ export var WC_SUI_METHODS = {
64
+ SIGN_TRANSACTION: "sui_signTransaction",
65
+ SIGN_AND_EXECUTE_TRANSACTION: "sui_signAndExecuteTransaction",
66
+ SIGN_PERSONAL_MESSAGE: "sui_signPersonalMessage",
67
+ };
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe-next","version":"2.0.12","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.10","@reown/appkit-common":"^1.8.10","@reown/appkit-universal-connector":"^1.8.19","@tanstack/react-query":"^5.60.2","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.14","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","@walletconnect/universal-provider":"2.21.1","@tanstack/react-query":"^5.60.2","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"}}