@suilend/sui-fe-next 0.1.71 → 0.1.74

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.
@@ -7,7 +7,7 @@ export declare enum WalletType {
7
7
  EXTENSION = "extension",
8
8
  WEB = "web"
9
9
  }
10
- export type WalletAccount = Omit<WalletStandardWalletAccount, 'publicKey'> & {
10
+ export type WalletAccount = Omit<WalletStandardWalletAccount, "publicKey"> & {
11
11
  publicKey?: ReadonlyUint8Array;
12
12
  };
13
13
  type WalletPlatform = "iOS" | "android" | "extension";
@@ -159,8 +159,8 @@ var WALLET_DOWNLOAD_URLS_MAP = (_b = {},
159
159
  },
160
160
  _b);
161
161
  export var WALLET_CONNECT_WALLET = {
162
- name: 'WalletConnect',
163
- iconUrl: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAALVBMVEVHcEwIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAkn9m4AAAAD3RSTlMA/1LKYuq+M906IhIJrYixCTN5AAAAqElEQVQokdWRSRbDIAxDg23m4f7HjQyBFtoLxBv0/DFIcF1vrUQilP6RTM70cpRP5qtZVf3OYkAz1NZqF3GDgk6LOC/HBkz7aGMq83Ju5QMIG0uaCq7LVFiDncpOJTZ0ldWnjI4xVh4LpvZEXgPSVZTBFyhp3CdPdDohcMmsVHe5lVVnLTrsIw/lvt6hn2wcsivdGdzzYIPy8fqeeTrgkyHR6qSfX3lH3W4KBAaKxKsVAAAAAElFTkSuQmCC',
162
+ name: "WalletConnect",
163
+ iconUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAALVBMVEVHcEwIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAkn9m4AAAAD3RSTlMA/1LKYuq+M906IhIJrYixCTN5AAAAqElEQVQokdWRSRbDIAxDg23m4f7HjQyBFtoLxBv0/DFIcF1vrUQilP6RTM70cpRP5qtZVf3OYkAz1NZqF3GDgk6LOC/HBkz7aGMq83Ju5QMIG0uaCq7LVFiDncpOJTZ0ldWnjI4xVh4LpvZEXgPSVZTBFyhp3CdPdDohcMmsVHe5lVVnLTrsIw/lvt6hn2wcsivdGdzzYIPy8fqeeTrgkyHR6qSfX3lH3W4KBAaKxKsVAAAAAElFTkSuQmCC",
164
164
  type: WalletType.WEB,
165
165
  isInstalled: true,
166
166
  walletConnect: true,
@@ -224,7 +224,9 @@ function Inner(_a) {
224
224
  var _h = useState(), universalConnector = _h[0], setUniversalConnector = _h[1];
225
225
  var _j = useState(), session = _j[0], setSession = _j[1];
226
226
  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];
227
- var sessionAddress = sessionAddressWithout0x ? sessionAddressWithout0x.split(":").pop() : undefined;
227
+ var sessionAddress = sessionAddressWithout0x
228
+ ? sessionAddressWithout0x.split(":").pop()
229
+ : undefined;
228
230
  useEffect(function () {
229
231
  (function () { return __awaiter(_this, void 0, void 0, function () {
230
232
  var connector;
@@ -233,14 +235,12 @@ function Inner(_a) {
233
235
  case 0: return [4 /*yield*/, getUniversalConnector(rpc.url)];
234
236
  case 1:
235
237
  connector = _a.sent();
236
- console.log('connector', connector, rpc.url);
237
238
  setUniversalConnector(connector);
238
239
  return [2 /*return*/];
239
240
  }
240
241
  });
241
242
  }); })();
242
243
  }, [rpc.url]);
243
- console.log('connector', universalConnector);
244
244
  // Impersonated address
245
245
  var impersonatedAddress = queryParams[WalletContextQueryParams.WALLET];
246
246
  // Wallets
@@ -305,15 +305,18 @@ function Inner(_a) {
305
305
  type: WalletType.EXTENSION,
306
306
  downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.BACKPACK],
307
307
  },
308
+ WALLET_CONNECT_WALLET,
308
309
  msafeWallet,
309
310
  ];
310
311
  }, [getInstalledWallet]);
311
312
  var wallets__extension_installed_default = useMemo(function () {
312
313
  return wallets__extension_default
313
314
  .filter(function (w) {
314
- return w.name === WalletName.MSAFE_WALLET
315
- ? isInMsafeApp()
316
- : !!getInstalledWallet(w.name);
315
+ return w.name === WALLET_CONNECT_WALLET.name
316
+ ? true
317
+ : w.name === WalletName.MSAFE_WALLET
318
+ ? isInMsafeApp()
319
+ : !!getInstalledWallet(w.name);
317
320
  })
318
321
  .map(function (w) { return (__assign(__assign({}, w), { isInstalled: true, raw: getInstalledWallet(w.name) })); });
319
322
  }, [wallets__extension_default, getInstalledWallet]);
@@ -358,7 +361,9 @@ function Inner(_a) {
358
361
  if (sessionAddress) {
359
362
  return WALLET_CONNECT_WALLET;
360
363
  }
361
- return rawWallet ? wallets.find(function (w) { return w.name === rawWallet.name; }) : undefined;
364
+ return rawWallet
365
+ ? wallets.find(function (w) { return w.name === rawWallet.name; })
366
+ : undefined;
362
367
  }, [rawWallet, wallets, sessionAddress]);
363
368
  var connectWallet = useConnectWallet().mutate;
364
369
  var disconnectWallet = useDisconnectWallet().mutate;
@@ -383,7 +388,9 @@ function Inner(_a) {
383
388
  }
384
389
  });
385
390
  }); }, [sessionAddress, universalConnector]);
386
- var signPersonalMessage = sessionAddress ? walletConnectSignPersonalMessage : function (message) { return signPersonalMessageRaw({ message: message, account: account }); };
391
+ var signPersonalMessage = sessionAddress
392
+ ? walletConnectSignPersonalMessage
393
+ : function (message) { return signPersonalMessageRaw({ message: message, account: account }); };
387
394
  var connectWalletWrapper = useCallback(function (_wallet) {
388
395
  try {
389
396
  if (_wallet === null || _wallet === void 0 ? void 0 : _wallet.walletConnect) {
@@ -415,34 +422,58 @@ function Inner(_a) {
415
422
  }, [connectWallet, disconnectWallet, universalConnector]);
416
423
  var disconnectWalletWrapper = useCallback(function () {
417
424
  try {
418
- disconnectWallet(undefined, {
419
- onSuccess: function () {
420
- showInfoToast("Disconnected wallet");
421
- },
422
- onError: function (err) {
423
- showErrorToast("Failed to disconnect wallet", err);
424
- console.error(err);
425
- },
426
- });
425
+ if (sessionAddress) {
426
+ universalConnector.disconnect();
427
+ setSession(null);
428
+ }
429
+ else {
430
+ disconnectWallet(undefined, {
431
+ onSuccess: function () {
432
+ showInfoToast("Disconnected wallet");
433
+ },
434
+ onError: function (err) {
435
+ showErrorToast("Failed to disconnect wallet", err);
436
+ console.error(err);
437
+ },
438
+ });
439
+ }
427
440
  }
428
441
  catch (err) {
429
442
  showErrorToast("Failed to disconnect wallet", err);
430
443
  console.error(err);
431
444
  }
432
- }, [disconnectWallet]);
445
+ }, [disconnectWallet, sessionAddress]);
433
446
  // Accounts
434
447
  var accountsRes = useAccounts();
435
448
  var accountRes = (_f = useCurrentAccount()) !== null && _f !== void 0 ? _f : undefined;
436
449
  var switchAccount = useSwitchAccount().mutate;
437
- var account = sessionAddress ? { address: sessionAddress, publicKey: new Uint8Array(), chains: ['sui:mainnet'], features: [] } : accountRes;
438
- var accounts = sessionAddress ? [{ address: sessionAddress, publicKey: new Uint8Array(), chains: ['sui:mainnet'], features: [] }] : accountsRes;
450
+ var account = sessionAddress
451
+ ? {
452
+ address: sessionAddress,
453
+ publicKey: new Uint8Array(),
454
+ chains: ["sui:mainnet"],
455
+ features: [],
456
+ }
457
+ : accountRes;
458
+ var accounts = sessionAddress
459
+ ? [
460
+ {
461
+ address: sessionAddress,
462
+ publicKey: new Uint8Array(),
463
+ chains: ["sui:mainnet"],
464
+ features: [],
465
+ },
466
+ ]
467
+ : accountsRes;
439
468
  var switchAccountWrapper = useCallback(function (_account, addressNameServiceName) {
440
469
  var _a, _b, _c;
441
470
  var accountLabel = (_b = (_a = _account === null || _account === void 0 ? void 0 : _account.label) !== null && _a !== void 0 ? _a : addressNameServiceName) !== null && _b !== void 0 ? _b : formatAddress(_account.address);
442
471
  try {
443
472
  switchAccount(
444
473
  // only address needed here. rest for type compatibility
445
- { account: __assign(__assign({}, _account), { publicKey: (_c = _account.publicKey) !== null && _c !== void 0 ? _c : new Uint8Array() }) }, {
474
+ {
475
+ account: __assign(__assign({}, _account), { publicKey: (_c = _account.publicKey) !== null && _c !== void 0 ? _c : new Uint8Array() }),
476
+ }, {
446
477
  onSuccess: function () {
447
478
  showInfoToast("Switched to ".concat(accountLabel), {
448
479
  description: (_account === null || _account === void 0 ? void 0 : _account.label)
@@ -686,7 +717,7 @@ function Inner(_a) {
686
717
  var _l = useLocalStorage("isUsingLedger-".concat(impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address), false), isUsingLedger = _l[0], setIsUsingLedger = _l[1];
687
718
  // Context
688
719
  var contextValue = useMemo(function () {
689
- return ({
720
+ return {
690
721
  isImpersonating: !!impersonatedAddress,
691
722
  isConnectWalletDropdownOpen: isConnectWalletDropdownOpen,
692
723
  setIsConnectWalletDropdownOpen: setIsConnectWalletDropdownOpen,
@@ -702,8 +733,8 @@ function Inner(_a) {
702
733
  signExecuteAndWaitForTransaction: signExecuteAndWaitForTransaction,
703
734
  isUsingLedger: isUsingLedger,
704
735
  setIsUsingLedger: setIsUsingLedger,
705
- signPersonalMessage: signPersonalMessage
706
- });
736
+ signPersonalMessage: signPersonalMessage,
737
+ };
707
738
  }, [
708
739
  session,
709
740
  impersonatedAddress,
@@ -719,7 +750,7 @@ function Inner(_a) {
719
750
  signExecuteAndWaitForTransaction,
720
751
  isUsingLedger,
721
752
  setIsUsingLedger,
722
- signPersonalMessage
753
+ signPersonalMessage,
723
754
  ]);
724
755
  return (<WalletContext.Provider value={contextValue}>
725
756
  {children}
@@ -1,3 +1,3 @@
1
- import { UniversalConnector } from '@reown/appkit-universal-connector';
1
+ import { UniversalConnector } from "@reown/appkit-universal-connector";
2
2
  export declare const projectId = "8bd21cb34c6a79f37b99768f8f607a99";
3
3
  export declare function getUniversalConnector(rpcUrl: string): Promise<UniversalConnector>;
package/lib/connector.js CHANGED
@@ -34,11 +34,11 @@ 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';
37
+ import { UniversalConnector } from "@reown/appkit-universal-connector";
38
38
  // Get projectId from https://dashboard.reown.com
39
39
  export var projectId = "8bd21cb34c6a79f37b99768f8f607a99";
40
40
  if (!projectId) {
41
- throw new Error('Project ID is not defined');
41
+ throw new Error("Project ID is not defined");
42
42
  }
43
43
  export function getUniversalConnector(rpcUrl) {
44
44
  return __awaiter(this, void 0, void 0, function () {
@@ -48,26 +48,32 @@ export function getUniversalConnector(rpcUrl) {
48
48
  case 0: return [4 /*yield*/, UniversalConnector.init({
49
49
  projectId: projectId,
50
50
  metadata: {
51
- name: 'Universal Connector',
52
- description: 'Universal Connector',
53
- url: 'http://localhost:3000',
54
- icons: ['https://appkit.reown.com/icon.png']
51
+ name: "Universal Connector",
52
+ description: "Universal Connector",
53
+ url: "http://localhost:3000",
54
+ icons: ["https://appkit.reown.com/icon.png"],
55
55
  },
56
56
  networks: [
57
57
  {
58
- methods: ['sui_signPersonalMessage', 'sui_signTransaction', 'sui_signAndExecuteTransaction'],
59
- chains: [{
58
+ methods: [
59
+ "sui_signPersonalMessage",
60
+ "sui_signTransaction",
61
+ "sui_signAndExecuteTransaction",
62
+ ],
63
+ chains: [
64
+ {
60
65
  id: 784,
61
- chainNamespace: 'sui',
62
- caipNetworkId: 'sui:mainnet',
63
- name: 'Sui',
64
- nativeCurrency: { name: 'SUI', symbol: 'SUI', decimals: 9 },
65
- rpcUrls: { default: { http: [rpcUrl] } }
66
- }],
66
+ chainNamespace: "sui",
67
+ caipNetworkId: "sui:mainnet",
68
+ name: "Sui",
69
+ nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
70
+ rpcUrls: { default: { http: [rpcUrl] } },
71
+ },
72
+ ],
67
73
  events: [],
68
- namespace: 'sui'
69
- }
70
- ]
74
+ namespace: "sui",
75
+ },
76
+ ],
71
77
  })];
72
78
  case 1:
73
79
  universalConnector = _a.sent();
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe-next","version":"0.1.71","private":false,"description":"A collection of TypeScript frontend components and hooks","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./contexts/SettingsContext":"./contexts/SettingsContext.jsx","./contexts/WalletContext":"./contexts/WalletContext.jsx","./contexts":"./contexts/index.js","./fetchers":"./fetchers/index.js","./fetchers/useFetchBalances":"./fetchers/useFetchBalances.js","./hooks":"./hooks/index.js","./hooks/keypair":"./hooks/keypair.js","./hooks/useCoinMetadataMap":"./hooks/useCoinMetadataMap.js","./hooks/useIsAndroid":"./hooks/useIsAndroid.jsx","./hooks/useIsTouchscreen":"./hooks/useIsTouchscreen.jsx","./hooks/useIsiOS":"./hooks/useIsiOS.jsx","./hooks/useLedgerHashDialog":"./hooks/useLedgerHashDialog.js","./hooks/useRefreshOnBalancesChange":"./hooks/useRefreshOnBalancesChange.js","./lib/connector":"./lib/connector.js","./lib":"./lib/index.js","./lib/router":"./lib/router.js","./lib/toasts":"./lib/toasts.jsx"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && 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.10","@sentry/nextjs":"^8.38.0","@tanstack/react-query":"^5.60.2","bignumber.js":"^9.1.2","launchdarkly-react-client-sdk":"^3.6.0","lodash":"^4.17.21","next":"^15.0.3","react":"18.3.1","react-dom":"18.3.1","react-responsive":"^10.0.0","shio-sdk":"^1.0.8","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":"0.16.0","@mysten/sui":"1.28.2","@mysten/wallet-standard":"0.14.7","@suilend/sui-fe":"^0.3.31"}}
1
+ {"name":"@suilend/sui-fe-next","version":"0.1.74","private":false,"description":"A collection of TypeScript frontend components and hooks","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./contexts/SettingsContext":"./contexts/SettingsContext.jsx","./contexts/WalletContext":"./contexts/WalletContext.jsx","./contexts":"./contexts/index.js","./fetchers":"./fetchers/index.js","./fetchers/useFetchBalances":"./fetchers/useFetchBalances.js","./hooks":"./hooks/index.js","./hooks/keypair":"./hooks/keypair.js","./hooks/useCoinMetadataMap":"./hooks/useCoinMetadataMap.js","./hooks/useIsAndroid":"./hooks/useIsAndroid.jsx","./hooks/useIsTouchscreen":"./hooks/useIsTouchscreen.jsx","./hooks/useIsiOS":"./hooks/useIsiOS.jsx","./hooks/useLedgerHashDialog":"./hooks/useLedgerHashDialog.js","./hooks/useRefreshOnBalancesChange":"./hooks/useRefreshOnBalancesChange.js","./lib/connector":"./lib/connector.js","./lib":"./lib/index.js","./lib/router":"./lib/router.js","./lib/toasts":"./lib/toasts.jsx"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && 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.10","@sentry/nextjs":"^8.38.0","@tanstack/react-query":"^5.60.2","bignumber.js":"^9.1.2","launchdarkly-react-client-sdk":"^3.6.0","lodash":"^4.17.21","next":"^15.0.3","react":"18.3.1","react-dom":"18.3.1","react-responsive":"^10.0.0","shio-sdk":"^1.0.8","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":"0.16.0","@mysten/sui":"1.28.2","@mysten/wallet-standard":"0.14.7","@suilend/sui-fe":"^0.3.31"}}